:root{
  --canvas:#F2F3F0; --panel:#FBFBF9; --sky:#E6ECF1; --sand:#EEEAE2;
  --ink:#14171B; --graphite:#3B4046; --muted:#5F656C; --line:#D9DCD6; --line-strong:#A9AEB2;
  --accent:#2049C9; --accent-hover:#183BA8; --accent-soft:#DCE4FA;
  --ease:cubic-bezier(.22,.8,.24,1); --ease-in:cubic-bezier(.6,0,.3,1);
  --r:6px;
  --display:"Archivo",system-ui,sans-serif; --body:"Manrope",system-ui,sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--ink);font:400 16px/1.6 var(--body);-webkit-font-smoothing:antialiased;animation:pagein .7s var(--ease) both}
@keyframes pagein{from{opacity:0}}
img,video,canvas{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-stretch:118%;font-weight:700;letter-spacing:-.01em;margin:0;line-height:1.02}
h2{font-size:clamp(2rem,4.4vw,3.6rem)}
.mono{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}
.small{color:var(--muted);margin:0 0 .5rem}
.kicker{color:var(--accent);margin:0 0 .9rem}
.sub{color:var(--graphite);max-width:52ch;font-size:1.06rem;margin:1rem 0 0}
.fine{color:var(--muted);font-size:.82rem;max-width:58ch}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:99}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
section{padding:clamp(4.5rem,9vw,8rem) clamp(1.1rem,4vw,3.5rem)}
.sec-head{max-width:1280px;margin:0 auto 2.6rem}
.sec-head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.4rem;border-radius:var(--r);font:600 .95rem/1 var(--body);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background .33s var(--ease),color .33s var(--ease),border-color .33s var(--ease),transform .33s var(--ease)}
.btn:active{transform:scale(.98)}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-hover)}
.btn-ghost{background:rgba(251,251,249,.85);color:var(--ink);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--ink)}
.wide{width:100%}
@media (pointer:coarse){.btn{min-height:46px}}

/* NAV */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem clamp(1rem,3vw,2.4rem);transition:background .4s var(--ease),border-color .4s var(--ease);border-bottom:1px solid transparent}
.nav.solid{background:rgba(242,243,240,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none}
.brand svg{width:34px;height:34px}
.brand svg rect{fill:var(--accent)}
.brand svg path{stroke:#fff;stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.brand span{font:700 1.05rem/1 var(--display);font-stretch:118%;display:flex;flex-direction:column}
.brand em{font:500 .62rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;font-style:normal;color:var(--muted)}
.nav nav{display:flex;gap:1.8rem}
.nav nav a{text-decoration:none;font-weight:600;font-size:.9rem;color:var(--graphite);transition:color .3s}
.nav nav a:hover{color:var(--accent)}
.nav-cta{padding:.65rem 1.1rem}
@media (max-width:900px){.nav nav{display:none}}

/* HERO */
.hero{position:relative;min-height:100svh;padding:0;display:flex;align-items:flex-end;overflow:hidden;background:#dfe2df}
.hero-media{position:absolute;inset:0}
.hero-media img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.hero-media video{opacity:0;transition:opacity 1.2s var(--ease)}
.hero-media video.on{opacity:1}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(242,243,240,.82) 0%,rgba(242,243,240,.55) 30%,rgba(242,243,240,0) 52%)}
.hero-copy{position:relative;z-index:2;padding:0 clamp(1.1rem,4vw,3.5rem) clamp(6rem,14vh,9rem);max-width:760px}
.hero h1{font-size:clamp(2.7rem,6.6vw,6rem);font-weight:800;line-height:.96}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .ln{animation:rise 1.1s var(--ease) both}
.hero h1 .ln:nth-child(2){animation-delay:.12s;color:var(--accent)}
@keyframes rise{from{transform:translateY(40px);opacity:0}}
.hero .lede{font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--graphite);max-width:40ch;margin:1.3rem 0 1.8rem;animation:rise 1.1s .25s var(--ease) both}
.hero .eyebrow{color:var(--graphite);margin:0 0 1rem;animation:rise 1s var(--ease) both}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;animation:rise 1.1s .38s var(--ease) both}
.hero-spec{position:absolute;z-index:2;right:clamp(1rem,3vw,2.4rem);bottom:1.4rem;display:flex;gap:.5rem;list-style:none;margin:0;padding:0}
.hero-spec li{background:rgba(251,251,249,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:.55rem .8rem;border-radius:var(--r);color:var(--graphite)}
.hero-spec b{color:var(--ink);font-weight:600}
@media (max-width:720px){
  .hero{align-items:flex-end}
  .hero-media img,.hero-media video{object-position:70% 30%;height:62%}
  .hero-media::after{background:linear-gradient(180deg,rgba(242,243,240,0) 30%,rgba(242,243,240,.95) 58%,var(--canvas) 66%)}
  .hero-copy{padding-bottom:5.5rem}
  .hero-spec{left:1rem;right:1rem;bottom:1rem;flex-wrap:wrap}
  .hero-spec li{font-size:.62rem;padding:.45rem .55rem}
}

/* BEFORE AFTER */
.ba{background:var(--panel)}
.ba-frame{position:relative;max-width:1280px;margin:0 auto;aspect-ratio:2688/1520;border-radius:10px;overflow:hidden;user-select:none;touch-action:pan-y;cursor:ew-resize;background:#ddd}
.ba-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-before-wrap{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba-tag{position:absolute;top:1rem;background:rgba(251,251,249,.9);padding:.45rem .7rem;border-radius:4px;color:var(--ink);pointer-events:none}
.ba-tag-l{left:1rem}.ba-tag-r{right:1rem}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:0;outline:none}
.ba-line{position:absolute;top:0;bottom:0;left:-1px;width:2px;background:#fff}
.ba-knob{position:absolute;top:50%;left:0;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:#fff;display:grid;place-items:center;transition:transform .33s var(--ease)}
.ba-knob svg{width:24px;height:24px;fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ba-frame:hover .ba-knob,.ba-handle:focus-visible .ba-knob{transform:scale(1.08)}
.ba-handle:focus-visible .ba-knob{outline:2px solid var(--accent);outline-offset:3px}
.ba-frame.hint .ba-handle{transition:left 1.1s var(--ease)}
.ba-frame.hint .ba-before-wrap{transition:clip-path 1.1s var(--ease)}
.ba-notes{max-width:1280px;margin:1.6rem auto 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.ba-notes li{border-top:1px solid var(--line);padding-top:.9rem;color:var(--graphite);font-size:.95rem}
.ba-notes .mono{display:block;color:var(--ink);margin-bottom:.3rem}
@media (max-width:720px){.ba-notes{grid-template-columns:1fr}.ba-frame{aspect-ratio:4/3}.ba-tag{font-size:.6rem}}

/* BUILDER */
.builder{background:var(--canvas)}
.cfg{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.2rem,3vw,2.6rem);align-items:start}
.cfg-stage{position:sticky;top:84px}
.cfg-img{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--sky)}
.cfg-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .6s var(--ease),transform 1.2s var(--ease)}
.cfg-img img.out{opacity:0;transform:scale(1.03)}
.cfg-total{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--line)}
.cfg-name{font:700 1.3rem/1.15 var(--display);font-stretch:112%;margin:0}
.cfg-meta{color:var(--muted);margin:.4rem 0 0}
.price{margin:0;font:800 clamp(2.4rem,4.4vw,3.6rem)/1 var(--display);font-stretch:112%;display:flex;align-items:flex-start;font-variant-numeric:tabular-nums}
.price span{font-size:.45em;margin-top:.2em;color:var(--muted)}
.cfg-panel fieldset{border:0;margin:0 0 1.8rem;padding:0}
.cfg-panel legend{font:700 1.05rem var(--display);font-stretch:112%;margin-bottom:.8rem;display:flex;align-items:center;gap:.6rem}
.cfg-panel legend .mono{width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:.68rem}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.chip input,.track input,.pkg input,.addon input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:flex;flex-direction:column;gap:.15rem;padding:.85rem .95rem;border:1.5px solid var(--line);border-radius:var(--r);background:var(--panel);cursor:pointer;transition:border-color .3s var(--ease),background .3s var(--ease)}
.chip b{font-weight:700;font-size:.95rem}
.chip i{font-style:normal;color:var(--muted);font-size:.8rem}
.chip:hover span{border-color:var(--line-strong)}
.chip input:checked+span{border-color:var(--accent);background:var(--accent-soft)}
.chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.track{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#E3E5E1;border-radius:8px;padding:4px;margin-bottom:.8rem}
.track label{position:relative;z-index:1;text-align:center;cursor:pointer}
.track span{display:block;padding:.65rem;font-weight:700;font-size:.92rem;color:var(--graphite);transition:color .3s}
.track input:checked+span{color:var(--ink)}
.track input:focus-visible+span{outline:2px solid var(--accent);border-radius:6px}
.track-pill{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);background:var(--panel);border-radius:6px;transition:transform .45s var(--ease)}
.track.show .track-pill{transform:translateX(100%)}
.pkgs,.addons{display:grid;gap:.55rem}
.pkg span,.addon span{display:grid;grid-template-columns:1fr auto;gap:.15rem 1rem;padding:.85rem .95rem;border:1.5px solid var(--line);border-radius:var(--r);background:var(--panel);cursor:pointer;transition:border-color .3s var(--ease),background .3s var(--ease)}
.pkg b,.addon b{font-weight:700}
.pkg em,.addon em{font-style:normal;font-weight:600;font-variant-numeric:tabular-nums}
.pkg i,.addon i{grid-column:1/-1;font-style:normal;color:var(--muted);font-size:.84rem}
.pkg input:checked+span{border-color:var(--accent);background:var(--accent-soft)}
.addon span{grid-template-columns:22px 1fr auto;align-items:center}
.addon span::before{content:"";width:18px;height:18px;border:1.5px solid var(--line-strong);border-radius:4px;transition:background .25s,border-color .25s;background:var(--panel) center/12px no-repeat}
.addon input:checked+span{border-color:var(--accent)}
.addon input:checked+span::before{background-color:var(--accent);border-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.5 2.5L10 3.5' stroke='white' stroke-width='2' fill='none'/%3E%3C/svg%3E")}
.addon i{grid-column:2/-1}
.pkg input:focus-visible+span,.addon input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.pkgs.swap{animation:swap .5s var(--ease)}
@keyframes swap{from{opacity:0;transform:translateY(8px)}}
@media (max-width:900px){.cfg{grid-template-columns:1fr}.cfg-stage{position:sticky;top:60px;z-index:5;background:var(--canvas)}.cfg-img{aspect-ratio:16/8}}
@media (max-width:720px){.chips{grid-template-columns:1fr 1fr}.chip i{display:none}.cfg-img{aspect-ratio:16/7}.cfg-total{padding:.7rem 0}.cfg-name{font-size:1rem}}

/* POLISH */
.polish{background:var(--sky)}
.polish-grid,.bead-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.meter{margin:2rem 0 1.2rem;max-width:380px}
.meter-row{display:flex;justify-content:space-between;margin-bottom:.5rem}
.meter-bar{height:6px;background:rgba(20,23,27,.1);border-radius:3px;overflow:hidden}
.meter-bar i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;transform:scaleX(0);transition:transform .3s var(--ease)}
.polish-stage{position:relative;aspect-ratio:2336/1744;border-radius:10px;overflow:hidden;touch-action:none;cursor:none;background:#111}
.polish-stage canvas{width:100%;height:100%}
.pad{position:absolute;left:0;top:0;width:110px;height:110px;margin:-55px 0 0 -55px;border-radius:50%;border:3px solid #F28C38;background:radial-gradient(circle,rgba(242,140,56,.18),rgba(242,140,56,.05) 70%);opacity:0;pointer-events:none;transition:opacity .3s}
.polish-stage.active .pad{opacity:1}
.pad.spin{animation:spin .5s linear infinite}
@keyframes spin{to{rotate:360deg}}
.polish-hint{position:absolute;left:50%;bottom:1rem;translate:-50% 0;background:rgba(251,251,249,.92);padding:.5rem .8rem;border-radius:4px;pointer-events:none;transition:opacity .4s}
@media (max-width:900px){.polish-grid,.bead-grid{grid-template-columns:1fr}.pad{width:84px;height:84px;margin:-42px 0 0 -42px}}

/* BEAD */
.bead{background:var(--panel)}
.bead-grid{grid-template-columns:1.2fr .8fr}
.bead-stage{position:relative;aspect-ratio:16/10;border-radius:10px;overflow:hidden;cursor:pointer;background:linear-gradient(160deg,#4c6f97,#21344f 60%,#30496a)}
.bead-stage canvas{width:100%;height:100%}
.bead-lbl{position:absolute;top:1rem;background:rgba(251,251,249,.92);padding:.45rem .7rem;border-radius:4px;color:var(--ink)}
.bead-lbl.l{left:1rem}.bead-lbl.r{right:1rem}
.bead-copy .btn{margin-top:1.8rem}
.bead-facts{list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.bead-facts li{border-top:1px solid var(--line);padding-top:.8rem}
.bead-facts b{display:block;font:800 1.6rem/1.1 var(--display);font-stretch:112%}
.bead-facts span{color:var(--muted);font-size:.85rem}
@media (max-width:900px){.bead-grid{grid-template-columns:1fr}.bead-copy{order:-1}}

/* AREA */
.area{background:var(--sand)}
.area-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(1.2rem,3vw,2.6rem);align-items:start}
.map-wrap{background:#F6F3EC;border-radius:10px;overflow:hidden;border:1px solid #DCD6C9}
#map{width:100%;height:auto;display:block;font-family:var(--body)}
#map .land{fill:#F6F3EC}
#map .water{fill:#BFD5E3;stroke:#9FBBCE;stroke-width:1.2}
#map .road{fill:none;stroke:#D9CFBC;stroke-width:3;stroke-linecap:round}
#map .road-l{font:500 10px var(--mono);fill:#A89C86;letter-spacing:.06em}
#map .ring{fill:none;stroke:var(--accent);stroke-dasharray:3 7;stroke-width:1.5;opacity:.55}
#map .ring2{opacity:.3}
#map .ring-l{font:500 10px var(--mono);fill:var(--accent);letter-spacing:.06em}
#map .town{cursor:pointer}
#map .town circle{fill:var(--panel);stroke:var(--ink);stroke-width:2;transition:r .3s var(--ease),fill .3s}
#map .town text{font:600 13px var(--body);fill:var(--graphite);transition:fill .3s}
#map .town:hover circle,#map .town.sel circle{fill:var(--accent);stroke:var(--accent)}
#map .town.sel text{fill:var(--ink);font-weight:700}
#map .town:focus-visible{outline:none}
#map .town:focus-visible circle{stroke-width:4}
#map .hq circle{fill:var(--accent)}
#map .route{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-dasharray:6 8}
#map .vanmark rect{fill:var(--accent)}
#map .lake-l{font:italic 500 11px var(--body);fill:#6E8DA3}
.area-card{background:var(--panel);border-radius:10px;padding:1.5rem;border:1px solid #E1DCD1}
.town-pick{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem}
.town-pick button{font:600 .82rem var(--body);padding:.45rem .7rem;border-radius:20px;border:1.5px solid var(--line);background:var(--panel);cursor:pointer;color:var(--graphite);transition:all .3s var(--ease)}
.town-pick button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff}
.ar-town{font:800 2rem/1 var(--display);font-stretch:118%;margin:.4rem 0 .4rem}
.ar-zone{color:var(--accent);margin:0 0 1rem}
.area-result dl{margin:0 0 1.2rem;display:grid;gap:.1rem}
.area-result dl div{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding:.6rem 0}
.area-result dt{color:var(--muted);margin:0}
.area-result dd{margin:0;font-weight:700}
.area-result.flip{animation:swap .5s var(--ease)}
@media (max-width:900px){.area-grid{grid-template-columns:1fr}}

/* GALLERY */
.gallery{background:var(--canvas)}
.filters{display:flex;background:#E3E5E1;border-radius:8px;padding:4px}
.filters button{font:700 .88rem var(--body);border:0;background:none;padding:.6rem 1rem;border-radius:6px;cursor:pointer;color:var(--graphite);transition:background .3s,color .3s}
.filters button[aria-selected=true]{background:var(--panel);color:var(--ink)}
.masonry{max-width:1280px;margin:0 auto;columns:3 300px;column-gap:1rem}
.g{position:relative;margin:0 0 1rem;break-inside:avoid;border-radius:8px;overflow:hidden;background:#ddd;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.g img,.g video{width:100%;height:auto;transition:transform 1.2s var(--ease)}
.g.tall video{aspect-ratio:9/14;object-fit:cover}
.g:hover img,.g:hover video{transform:scale(1.03)}
.g figcaption{position:absolute;left:.7rem;bottom:.7rem;right:.7rem;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}
.g figcaption b,.g figcaption span{background:rgba(251,251,249,.92);padding:.25rem .5rem;border-radius:4px}
.g figcaption b{font-size:.88rem}
.g figcaption span{font-size:.75rem;color:var(--graphite)}
.g.hide{display:none}
.g.fade{opacity:0;transform:translateY(12px)}

/* STEPS */
.steps{background:var(--panel)}
.step-row{max-width:1280px;margin:0 auto;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.step-row img{aspect-ratio:4/3;object-fit:cover;border-radius:8px;margin-bottom:1rem;width:100%}
.step-row .mono{color:var(--accent)}
.step-row h3{font-size:1.35rem;margin:.4rem 0 .5rem}
.step-row p{color:var(--graphite);margin:0}
@media (max-width:800px){.step-row{grid-template-columns:1fr}}

/* REVIEWS */
.reviews{background:var(--sky);padding-top:4rem;padding-bottom:4rem}
.rev-track{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.reviews blockquote{margin:0;padding:1.4rem;background:var(--panel);border-radius:10px}
.reviews p{font:600 1.08rem/1.45 var(--body);margin:0 0 1rem}
.reviews cite{font-style:normal;color:var(--muted);font-size:.85rem}
@media (max-width:800px){.rev-track{grid-template-columns:1fr}}

/* BOOK */
.book{background:var(--canvas)}
.book-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem)}
.sum{margin-top:2rem;padding:1.3rem;border-radius:10px;background:var(--panel);border:1px solid var(--line);max-width:420px}
.sum-name{font:700 1.2rem/1.2 var(--display);font-stretch:112%;margin:0}
.sum-add{color:var(--muted);margin:.3rem 0 .6rem;font-size:.9rem}
.sum-price{font:800 2.2rem/1 var(--display);margin:0 0 .6rem}
.link{color:var(--accent);font-weight:600;font-size:.9rem}
.book-form{background:var(--panel);border-radius:10px;padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--line);position:relative}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin-bottom:1.2rem}
.day{font:600 .8rem/1.2 var(--body);padding:.55rem .2rem;border:1.5px solid var(--line);border-radius:var(--r);background:var(--panel);cursor:pointer;display:flex;flex-direction:column;align-items:center;transition:all .3s var(--ease)}
.day b{font:800 1.1rem var(--display)}
.day[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff}
.day:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.slots{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem}
.slot{font:600 .85rem var(--body);padding:.55rem .8rem;border:1.5px solid var(--line);border-radius:20px;background:var(--panel);cursor:pointer;transition:all .3s}
.slot[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.book-form label{display:block;font-weight:600;font-size:.88rem;margin-bottom:.9rem}
.book-form input{display:block;width:100%;margin-top:.35rem;padding:.8rem .9rem;border:1.5px solid var(--line-strong);border-radius:var(--r);font:500 1rem var(--body);background:#fff;color:var(--ink);transition:border-color .3s}
.book-form input:focus{outline:none;border-color:var(--accent)}
.book-form input.bad{border-color:#B3261E}
.success{position:absolute;inset:0;background:var(--panel);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;animation:swap .6s var(--ease)}
.success[hidden]{display:none}
.success svg{width:64px;height:64px;fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.success circle{stroke-dasharray:151;stroke-dashoffset:151;animation:draw .8s .1s var(--ease) forwards}
.success path{stroke-dasharray:40;stroke-dashoffset:40;animation:draw .5s .7s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.success p{font:700 1.2rem/1.4 var(--display);max-width:30ch}
@media (max-width:900px){.book-grid{grid-template-columns:1fr}}

/* FAQ */
.faq{background:var(--panel)}
.faq-list{max-width:900px;margin:0 auto}
.faq .sec-head{max-width:900px}
details{border-top:1px solid var(--line)}
details:last-child{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;padding:1.2rem 2.5rem 1.2rem 0;font:700 1.1rem/1.35 var(--display);font-stretch:108%;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:.4rem;top:50%;width:12px;height:12px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease)}
details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
details p{margin:0 0 1.3rem;color:var(--graphite);max-width:68ch}

/* FOOT */
.foot{background:var(--sand);padding:3rem clamp(1.1rem,4vw,3.5rem)}
.foot-top{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.foot-top p{color:var(--graphite);margin:0}
.disclaim{max-width:1280px;margin:1.6rem auto 0;color:var(--muted);font-size:.8rem}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
  .success circle,.success path{stroke-dashoffset:0}
}
