:root{--coral:#ff6f59;--teal:#1a9e9a;--sand:#f7ead3;--ink:#1d2b3a;--dusk:#2b2d5c;--card:#fffaf1}
*{box-sizing:border-box}
body{margin:0;font-family:Outfit,system-ui,sans-serif;color:var(--ink);background:linear-gradient(180deg,var(--sand),#fdf6ea 60%,#e9f5f3)}
.hero{position:relative;min-height:300px;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;color:#fff}
.art{position:absolute;inset:0;width:100%;height:100%}
.hero-text{position:relative;text-align:center;padding:34px 16px 0;text-shadow:0 2px 12px rgba(29,26,51,.45)}
.kicker{margin:0;letter-spacing:.25em;text-transform:uppercase;font-size:.78rem;font-weight:600;opacity:.9}
h1{font-family:"DM Serif Display",serif;font-weight:400;font-size:clamp(2rem,5vw,3.4rem);margin:.15em 0}
.sub{margin:0 auto;max-width:560px;font-size:1.05rem}
main{max-width:1150px;margin:-26px auto 0;padding:0 16px 30px;display:grid;grid-template-columns:1.25fr 1fr;gap:18px;position:relative}
.card{background:var(--card);border-radius:20px;padding:18px 20px;box-shadow:0 10px 30px rgba(43,45,92,.12);border:1px solid #f1dcc0}
.map-card{grid-row:span 2}
h2{font-family:"DM Serif Display",serif;font-weight:400;font-size:1.45rem;margin:.1em 0 .4em;color:var(--dusk)}
.hint,.fine{font-size:.88rem;color:#5b6573}
#map{height:420px;border-radius:14px;border:2px solid #f4c27a}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.8rem;margin:.6em 0}
.legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c);margin-right:5px}
.presets{display:flex;flex-wrap:wrap;gap:8px}
.presets button{font:inherit;font-weight:600;border:0;border-radius:999px;padding:7px 14px;background:var(--teal);color:#fff;cursor:pointer}
.presets button:hover,.presets button:focus-visible{background:var(--coral);outline:none}
.field{margin:9px 0}
.field label{display:flex;justify-content:space-between;font-weight:600;font-size:.93rem}
.field output{color:var(--coral);font-weight:800}
.field small{color:#8a8f98;font-size:.74rem}
input[type=range]{width:100%;accent-color:var(--coral)}
.result .price{font-family:"DM Serif Display",serif;font-size:3rem;margin:.05em 0;color:var(--coral)}
.cap-flag{background:#ffe1d8;color:#8f1f1f;border-radius:10px;padding:6px 10px;font-weight:600;font-size:.88rem}
.bar{position:relative;height:12px;border-radius:6px;background:#e8dcc6;margin:10px 0 14px}
#band{position:absolute;top:0;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--teal),var(--coral))}
#pin{position:absolute;top:-5px;width:4px;height:22px;background:var(--dusk);border-radius:2px}
canvas{width:100%;height:auto}
.about{grid-column:1/-1}
.about li{margin:.3em 0}
a{color:#0f7c78}
.trilogy{font-weight:600}
footer{text-align:center;padding:20px;font-size:.85rem;color:#5b6573}
.pin-icon{width:18px;height:18px;border-radius:50%;background:var(--coral);border:3px solid #fff;box-shadow:0 0 0 2px var(--dusk)}
@media (max-width:860px){main{grid-template-columns:1fr}.map-card{grid-row:auto}#map{height:320px}}
