/* BRACKENMOOR ESTATE · styles. Palette: paper, bracken green, russet. */
:root{
  --canvas:#F1EEE6; --panel:#E6E2D6; --panel-2:#F7F5EF;
  --ink:#1F2421; --text-secondary:#565B54; --line:#D2CDBF; --line-strong:#8B8F86;
  --accent:#2E5540; --accent-hover:#234233; --accent-muted:#A9C4B2;
  --oak:#A5562B; --night:#171C19; --night-2:#202622; --on-night:#ECE6DC; --on-night-2:#B9B2A7;
  --display:'Newsreader', 'Times New Roman', serif;
  --body:'Instrument Sans', system-ui, sans-serif;
  --mono:'DM Mono', ui-monospace, monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-soft:cubic-bezier(.45,0,.2,1);
  --tshadow:0 1px 2px rgba(12,12,10,.9),0 3px 12px rgba(12,12,10,.6),0 10px 44px rgba(12,12,10,.6);
  --gut:clamp(16px,4vw,56px);
  --maxw:1240px;
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--ink);font:400 1.0625rem/1.65 var(--body);-webkit-font-smoothing:antialiased;animation:pagein 1s var(--ease) both}
@keyframes pagein{from{opacity:0}to{opacity:1}}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;letter-spacing:-.012em;margin:0}
p{margin:0 0 1em}
.mono{font:400 .74rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 1rem}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:16px;top:-60px;z-index:100;background:var(--ink);color:var(--canvas);padding:10px 16px;border-radius:4px;transition:top .3s var(--ease)}
.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
main:focus{outline:none}

/* the one environment: slow drifting light + grain */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.env i{position:absolute;width:70vmax;height:70vmax;border-radius:50%;filter:blur(40px);opacity:.55}
.env i:first-child{background:radial-gradient(circle,#F8F3EA 0,rgba(248,243,234,0) 65%);left:-20vmax;top:-10vmax;animation:drift 90s var(--ease-soft) -20s infinite alternate}
.env i:last-child{background:radial-gradient(circle,rgba(169,196,178,.35) 0,rgba(169,196,178,0) 60%);right:-25vmax;bottom:-25vmax;animation:drift 120s var(--ease-soft) -50s infinite alternate-reverse}
.env::after{content:"";position:absolute;inset:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes drift{to{transform:translate(18vmax,12vmax) scale(1.12)}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:.95em 1.6em;border-radius:2px;font:500 .9rem/1 var(--body);letter-spacing:.04em;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent);color:#F4F1EA}
.btn-primary:hover{background:var(--accent-hover)}
.btn-light{background:#F4EFE7;color:var(--ink)}
.btn-light:hover{background:#fff8ee}
.btn-ghost{color:#F4EFE7;border-color:rgba(244,239,231,.7)}
.btn-ghost:hover{background:rgba(244,239,231,.14)}
.btn-wide{width:100%}
.link-arrow{display:inline-flex;align-items:center;gap:.5em;font-weight:500;color:var(--accent);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.link-arrow::after{content:"";width:18px;height:1px;background:currentColor;transition:width .4s var(--ease)}
.link-arrow:hover::after{width:30px}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:2rem;padding:18px var(--gut);color:#F4EFE7;transition:background-color .5s var(--ease),color .5s var(--ease),padding .5s var(--ease),box-shadow .5s var(--ease)}
.nav.solid{background:rgba(238,232,223,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--ink);padding-top:12px;padding-bottom:12px;box-shadow:0 1px 0 var(--line)}
.brand{display:flex;flex-direction:column;text-decoration:none;line-height:1}
.brand .word{font:400 1.6rem/1 var(--display);letter-spacing:.01em}
.brand small{font:400 .62rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;margin-top:6px;opacity:.8}
.nav nav{margin-left:auto}
.nav ul{display:flex;gap:1.8rem;list-style:none;margin:0;padding:0}
.nav ul a{font-size:.9rem;text-decoration:none;position:relative;padding:6px 0}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav ul a:hover::after{transform:scaleX(1)}
.nav:not(.solid) .btn-nav{background:rgba(244,239,231,.14);border-color:rgba(244,239,231,.6)}
.nav:not(.solid) .btn-nav:hover{background:rgba(244,239,231,.26)}
.btn-nav{padding:.8em 1.2em}
.menu-toggle{display:none;margin-left:auto;background:none;border:1px solid currentColor;color:inherit;font:500 .85rem/1 var(--body);padding:.7em 1em;border-radius:2px;cursor:pointer}

/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;background:var(--night);color:#F4EFE7}
.stage{position:absolute;inset:0;overflow:hidden}
.poster,#film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--night) center/cover no-repeat}
#film{opacity:0;transition:opacity 1.2s var(--ease);transform:translateZ(0)}
.stage.video-ready #film{opacity:1}
.stage.video-failed #film{display:none}
.stage.dim #film{opacity:0;transition-duration:.9s}
.scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(14,14,12,.45) 0,rgba(14,14,12,0) 22%),linear-gradient(0deg,rgba(14,14,12,.62) 0,rgba(14,14,12,.3) 32%,rgba(14,14,12,0) 58%),linear-gradient(90deg,rgba(14,14,12,.38) 0,rgba(14,14,12,0) 55%),radial-gradient(ellipse 120% 90% at 50% 45%,rgba(14,14,12,0) 38%,rgba(14,14,12,.5) 100%)}
.band{position:absolute;left:var(--gut);bottom:clamp(110px,16vh,170px);max-width:min(760px,calc(100% - 2*var(--gut)));opacity:0;text-shadow:var(--tshadow);will-change:opacity;pointer-events:none}
.band.live{pointer-events:auto}
.band::before{content:"";position:absolute;inset:-34% -22% -30% -26%;z-index:-1;pointer-events:none;opacity:calc(.3 + .7*var(--k,1));background:radial-gradient(ellipse 62% 58% at 40% 55%,rgba(12,12,10,.6) 0,rgba(12,12,10,.38) 48%,rgba(12,12,10,0) 78%)}
.band .kicker{display:block;font:400 .74rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;margin-bottom:1.1rem;opacity:calc(.2 + .8*var(--k,0))}
.band h1,.band h2{font-size:clamp(2.4rem,5.6vw,5rem);line-height:1.04;max-width:15ch}
.band .sub{font-size:clamp(1rem,1.4vw,1.2rem);max-width:44ch;margin-top:1.2rem;color:#EDE7DD;--ks:clamp(0,(var(--k,0) - .55)*3,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks))*10px))}
.band .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.8rem;--kb:clamp(0,(var(--k,0) - .75)*4,1);opacity:var(--kb);transform:translateY(calc((1 - var(--kb))*10px))}
.band .ctas .btn{text-shadow:none}
.split .w{display:inline-block}
.fx-rise .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.6,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*.45em))}
.fx-drift .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.6,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*-.5em))}
.fx-focus .stack{display:grid}
.fx-focus .stack>span{grid-area:1/1}
.fx-focus .sharp{opacity:var(--k,0)}
.fx-focus .soft{filter:blur(10px);opacity:calc(1 - var(--k,0))}
.b-settle{bottom:clamp(96px,14vh,150px)}
.hero-controls{position:absolute;right:var(--gut);bottom:clamp(28px,5vh,48px);display:flex;align-items:center;gap:18px;z-index:3}
.hero-timer{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.hero-timer button{width:36px;height:30px;background:none;border:0;padding:0;cursor:pointer;position:relative}
.hero-timer button::before{content:"";position:absolute;left:4px;right:4px;top:50%;height:1px;background:rgba(244,239,231,.45);transition:background-color .4s var(--ease),transform .4s var(--ease)}
.hero-timer li.on button::before{background:#F4EFE7;transform:scaleY(2.5)}
.hero-timer button:hover::before{background:#F4EFE7}
.playpause{width:48px;height:48px;padding:0;border:0;background:none;color:#F4EFE7;cursor:pointer}
.playpause svg{width:100%;height:100%;fill:currentColor}
.playpause .track{stroke:rgba(244,239,231,.3)}
.playpause .prog{fill:none;transform:rotate(-90deg);transform-origin:50% 50%}
.playpause .i-play{display:none}
.playpause[aria-pressed="true"] .i-play{display:block}
.playpause[aria-pressed="true"] .i-pause{display:none}
.hero-meta{position:absolute;left:var(--gut);bottom:clamp(28px,5vh,48px);margin:0;font:400 .68rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(244,239,231,.75);text-shadow:0 1px 3px rgba(0,0,0,.7)}
@media (max-height:600px){.hero-meta{display:none}}

/* reveals */
.rv{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.rv.in{opacity:1;transform:none}
.sec-head{margin-bottom:clamp(40px,6vw,72px);max-width:760px}
.sec-head h2{font-size:clamp(2rem,4vw,3.3rem)}
.horizon{display:block;width:min(360px,60%);height:2px;margin-top:1.6rem;overflow:visible}
.horizon line{stroke:var(--oak);stroke-width:1.4;stroke-dasharray:400;stroke-dashoffset:400;transition:stroke-dashoffset 1.8s var(--ease) .3s}
.in .horizon line,.horizon.drawn line{stroke-dashoffset:0}

/* premise */
.premise{padding:clamp(90px,12vw,170px) 0}
.premise-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(40px,7vw,110px);align-items:end}
.define h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25em 1.2rem}
.def-word{font-size:clamp(3.4rem,8vw,6.6rem);line-height:.95;letter-spacing:-.01em}
.def-say{font:400 1rem/1 var(--mono);letter-spacing:.1em;color:var(--text-secondary)}
.def-mean{font:400 clamp(1.2rem,2vw,1.5rem)/1.4 var(--display);color:var(--text-secondary);margin-top:1.2rem}
.wave{display:block;width:100%;height:56px;margin-top:2rem;overflow:visible}
.wave path{fill:none;stroke:var(--accent);stroke-width:1.4;opacity:.8;transform-origin:50% 50%;transform:scaleY(1);transition:transform 1.4s var(--ease)}
.premise.in .wave path{animation:calm 9s var(--ease-soft) -2s infinite alternate}
@keyframes calm{0%{transform:scaleY(1)}100%{transform:scaleY(.06)}}
.lede{font:400 clamp(1.4rem,2.4vw,1.9rem)/1.32 var(--display);margin-bottom:1.2em}
.premise-copy>p:not(.lede){color:var(--text-secondary);max-width:46ch}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:2.6rem 0 0;padding-top:1.6rem;border-top:1px solid var(--line)}
.facts div{display:flex;flex-direction:column-reverse;gap:6px}
.facts dt{font:400 .7rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}
.facts dd{margin:0;font:400 clamp(2.2rem,4vw,3.2rem)/1 var(--display)}
.facts dd small{font-size:.45em;color:var(--text-secondary)}

/* suites */
.suites{padding:clamp(60px,8vw,110px) 0 clamp(90px,12vw,150px)}
.suite{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(28px,5vw,72px);align-items:center;margin-bottom:clamp(64px,9vw,120px)}
.suite:last-child{margin-bottom:0}
.suite-flip{grid-template-columns:1fr 1.45fr}
.suite-flip .suite-img{order:2}
.suite-img{margin:0;overflow:hidden;border-radius:2px;aspect-ratio:16/10;background:var(--panel)}
.suite-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 2.2s var(--ease)}
.suite.in .suite-img img{transform:scale(1)}
.suite:hover .suite-img img{transform:scale(1.025)}
.suite-body h3{font-size:clamp(2rem,3.4vw,2.8rem);margin-bottom:1rem}
.suite-body>p:not(.mono):not(.price){color:var(--text-secondary);max-width:42ch}
.spec{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:1.4rem 0}
.spec li{font:400 .74rem/1 var(--mono);letter-spacing:.06em;padding:.6em .8em;border:1px solid var(--line-strong);border-radius:2px;color:var(--ink)}
.price{font:400 1.9rem/1.2 var(--display);margin:1.4rem 0 1.2rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35em .6em}
.price span{font:400 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}
.price small{font:400 .9rem/1.3 var(--body);color:var(--text-secondary);flex-basis:100%}

/* quiet (signature) */
.quiet{background:var(--night);color:var(--on-night);padding:clamp(90px,12vw,160px) 0;position:relative;overflow:hidden}
.quiet .mono{color:var(--on-night-2)}
.quiet-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,7vw,100px);align-items:center}
.quiet h2{font-size:clamp(2.4rem,5vw,4.2rem);margin-bottom:1.2rem}
.quiet-copy>p:not(.mono){color:var(--on-night-2);max-width:44ch}
.quiet-lines{list-style:none;padding:0;margin:2.2rem 0 0;border-top:1px solid rgba(236,230,220,.16)}
.quiet-lines li{display:flex;align-items:baseline;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(236,230,220,.16);color:var(--on-night-2);opacity:.35;transform:translateX(-6px);transition:opacity .9s var(--ease),transform .9s var(--ease),color .9s var(--ease)}
.quiet-lines li span{font:400 1.5rem/1 var(--display);min-width:4.2em;color:var(--on-night)}
.quiet.done .quiet-lines li{opacity:1;transform:none;color:var(--on-night)}
.quiet.done .quiet-lines li:nth-child(2){transition-delay:.18s}
.quiet.done .quiet-lines li:nth-child(3){transition-delay:.36s}
.meter{background:var(--night-2);border:1px solid rgba(236,230,220,.12);border-radius:4px;padding:clamp(20px,3vw,36px)}
.meter-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.meter-top .mono{margin:0}
.db{margin:0;font:400 clamp(3.4rem,7vw,5.4rem)/1 var(--display);font-variant-numeric:tabular-nums}
.db small{font:400 .9rem/1 var(--mono);color:var(--on-night-2);margin-left:.3em}
.noise{display:block;width:100%;height:160px;margin:1.4rem 0 .6rem}
.noise path{fill:none;stroke:var(--accent-muted);stroke-width:1.5}
.noise .base{stroke:rgba(236,230,220,.14);stroke-width:1;stroke-dasharray:3 5}
.meter-scale{display:flex;justify-content:space-between;color:var(--on-night-2);font-size:.64rem;margin-bottom:1.6rem}
.hold{position:relative;width:100%;min-height:64px;overflow:hidden;border:1px solid rgba(236,230,220,.4);background:transparent;color:var(--on-night);font:500 .95rem/1.2 var(--body);letter-spacing:.03em;border-radius:2px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;transition:border-color .4s var(--ease)}
.hold:hover{border-color:var(--on-night)}
.hold-fill{position:absolute;inset:0;background:var(--accent);transform-origin:left;transform:scaleX(var(--hp,0))}
.hold-label{position:relative}
.hold-hint{margin:.8rem 0 0;font-size:.62rem;color:var(--on-night-2)}
.quiet.done .hold{border-color:var(--accent)}

/* day */
.day{padding:clamp(90px,12vw,160px) 0}
.day-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,32px);align-items:start}
.day-list li:nth-child(even){margin-top:clamp(40px,6vw,90px)}
.day-list figure{margin:0 0 1.2rem;aspect-ratio:3/4;overflow:hidden;border-radius:2px;background:var(--panel)}
.day-list img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.day-list li:hover img{transform:scale(1.04)}
.time{font:400 2rem/1 var(--display);color:var(--accent);margin-bottom:.6rem}
.day-list h3{font:500 1.05rem/1.3 var(--body);margin-bottom:.5rem}
.day-list p:not(.time){color:var(--text-secondary);font-size:.97rem}
.day-list li.rv:nth-child(2){transition-delay:.1s}
.day-list li.rv:nth-child(3){transition-delay:.2s}
.day-list li.rv:nth-child(4){transition-delay:.3s}
.day-list li.rv.done{transition-delay:0s}

/* rates */
.rates{background:var(--panel);padding:clamp(90px,12vw,150px) 0}
.rates-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,7vw,100px);align-items:center}
.rates h2{font-size:clamp(2.2rem,4.4vw,3.6rem);margin-bottom:1.2rem}
.rates-head>p:not(.mono){color:var(--text-secondary);max-width:42ch;margin-bottom:2rem}
.compare{display:grid;grid-template-columns:1fr 1fr;background:var(--panel-2);border-radius:4px;overflow:hidden;box-shadow:0 30px 60px -40px rgba(36,33,29,.35)}
.compare .col{padding:clamp(22px,3vw,36px)}
.compare ul{list-style:none;margin:0;padding:0}
.compare li{padding:.85rem 0;border-top:1px solid var(--line);font-size:.98rem}
.col-them li{color:var(--text-secondary);text-decoration:line-through;text-decoration-color:rgba(92,84,75,.6)}
.col-us{background:var(--accent);color:#F2EFE8}
.col-us .mono{color:#CFE0DE}
.col-us li{border-top-color:rgba(242,239,232,.22);display:flex;gap:.6em;align-items:baseline}
.col-us li::before{content:"";flex:none;width:12px;height:6px;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg) translateY(-3px)}

/* words */
.words{padding:clamp(90px,12vw,150px) 0}
.quotes{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:clamp(20px,3vw,40px);align-items:end}
.q{margin:0;padding-top:1.4rem;border-top:1px solid var(--line-strong)}
.q blockquote{margin:0 0 1.2rem}
.q p{font:400 clamp(1.2rem,1.7vw,1.4rem)/1.4 var(--display)}
.q-wide p{font-size:clamp(1.5rem,2.4vw,2rem)}
.q figcaption{font:400 .72rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}
.note{margin-top:2.4rem;font-size:.64rem}

/* faq */
.faq{padding:0 0 clamp(90px,12vw,150px)}
.faq-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(40px,7vw,100px);align-items:start}
.faq .sec-head p:not(.mono){color:var(--text-secondary);margin-top:1.2rem}
.faq .sec-head a{color:var(--accent)}
.faq-list details{border-top:1px solid var(--line-strong)}
.faq-list details:last-child{border-bottom:1px solid var(--line-strong)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.3rem 0;font:400 clamp(1.15rem,1.8vw,1.35rem)/1.3 var(--display)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";flex:none;width:12px;height:12px;background:linear-gradient(currentColor,currentColor) center/12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 12px no-repeat;transition:transform .45s var(--ease)}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{color:var(--text-secondary);max-width:58ch;padding-bottom:1.3rem;margin:0}
.faq-list details[open] p{animation:open .6s var(--ease)}
@keyframes open{from{opacity:0;transform:translateY(-6px)}}

/* book */
.book{position:relative;padding:clamp(90px,12vw,160px) 0;color:var(--on-night);background:var(--night);overflow:hidden}
.book-bg{position:absolute;inset:0;background:url('img/bush-road.jpg') center/cover no-repeat;opacity:.32;transform:scale(1.04)}
.book-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,28,25,.92) 0,rgba(23,28,25,.75) 45%,rgba(23,28,25,.55) 100%)}
.book-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,100px);align-items:start}
.book .mono{color:var(--on-night-2)}
.book h2{font-size:clamp(2.2rem,4.4vw,3.6rem);margin-bottom:1.2rem}
.book-copy>p:not(.mono){color:var(--on-night-2);max-width:42ch}
.assure{list-style:none;padding:0;margin:2rem 0 0}
.assure li{padding:.8rem 0;border-top:1px solid rgba(236,230,220,.18);display:flex;gap:.8em;align-items:baseline}
.assure li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-muted);flex:none;transform:translateY(-2px)}
.form{position:relative;background:var(--panel-2);color:var(--ink);border-radius:4px;padding:clamp(22px,3.4vw,40px);display:grid;gap:16px}
.form label{display:grid;gap:6px;font:500 .82rem/1.2 var(--body);letter-spacing:.02em}
.form .opt{font-weight:400;color:var(--text-secondary)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form input,.form select,.form textarea{width:100%;font:400 1rem/1.3 var(--body);color:var(--ink);background:#FBF9F5;border:1px solid var(--line-strong);border-radius:2px;padding:.8em .85em;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.form textarea{resize:vertical;min-height:90px}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(46,85,64,.2)}
.form [aria-invalid="true"]{border-color:#9A3B2E}
.form-err{color:#9A3B2E;font-size:.88rem;margin:0;min-height:1.2em}
.book .form .mono,.form-demo{margin:0;font-size:.64rem;text-align:center;color:var(--text-secondary)}
.form-done:focus{outline:none}
.form-done{position:absolute;inset:0;background:var(--panel-2);border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(22px,3.4vw,40px);opacity:0;visibility:hidden;transition:opacity .8s var(--ease),visibility 0s .8s}
.form.sent .form-done{opacity:1;visibility:visible;transition:opacity .8s var(--ease)}
.form-done svg{width:120px;height:30px;margin-bottom:1.4rem}
.form-done path{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-dasharray:140;stroke-dashoffset:140;transition:stroke-dashoffset 1.6s var(--ease) .3s}
.form.sent .form-done path{stroke-dashoffset:0}
.form-done h3{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:.8rem}
.form-done p{color:var(--text-secondary)}

/* footer */
.foot{padding:clamp(56px,7vw,90px) 0 48px;font-size:.92rem}
.foot-grid{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:40px}
.foot .word{font:400 1.9rem/1 var(--display);letter-spacing:.01em;margin-bottom:1rem}
.foot p{color:var(--text-secondary)}
.foot .mono{margin:0 0 .3rem}
.foot a{color:var(--ink)}
.foot-note p{font-size:.86rem}

/* responsive */
@media (max-width:1000px){
  .nav ul{gap:1.2rem}
  .day-list{grid-template-columns:repeat(2,1fr)}
  .quotes{grid-template-columns:1fr;align-items:start}
}
@media (max-width:860px){
  .nav nav,.btn-nav{display:none}
  .menu-toggle{display:inline-flex}
  .nav.open-menu{background:var(--canvas);color:var(--ink)}
  .nav.open-menu nav{display:block;position:absolute;top:100%;left:0;right:0;background:var(--canvas);padding:8px var(--gut) 24px;box-shadow:0 1px 0 var(--line)}
  .nav ul.open{flex-direction:column;gap:0}
  .nav ul.open a{display:block;padding:14px 0;font-size:1.05rem;border-bottom:1px solid var(--line)}
  .premise-grid,.quiet-grid,.rates-grid,.faq-grid,.book-grid{grid-template-columns:1fr}
  .suite,.suite-flip{grid-template-columns:1fr}
  .suite-flip .suite-img{order:0}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-note{grid-column:1/-1}
}
@media (max-width:720px){
  .band{bottom:120px}
  .band h1,.band h2{font-size:clamp(2.2rem,10vw,3rem)}
  .hero-timer,.hero-meta{display:none}
  .facts{grid-template-columns:1fr 1fr 1fr;gap:12px}
  .compare{grid-template-columns:1fr}
  .day-list{grid-template-columns:1fr 1fr;gap:16px}
  .day-list li:nth-child(even){margin-top:40px}
  .row2{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
}
@media (pointer:coarse){
  .btn,.link-arrow{min-height:44px}
  .hero-timer button{height:44px}
}

/* reduced motion: everything in its finished state */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;transition-delay:0s !important;scroll-behavior:auto !important}
  .rv{opacity:1;transform:none}
  .horizon line,.form-done path{stroke-dashoffset:0}
  .suite-img img{transform:none}
  .hero .poster{background-image:url('hero-ending.jpg')}
  .band{opacity:0}
  .band.b-settle{opacity:1;--k:1}
  .hero-controls{display:none}
  .quiet-lines li{opacity:1;transform:none;color:var(--on-night)}
}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused !important}

/* Brackenmoor: fern motif and the load-shedding blocks */
.fern{display:block;width:100%;max-width:520px;height:auto;margin-top:2.2rem;overflow:visible}
.fern path{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round}
.fern .stem{stroke-dasharray:620;stroke-dashoffset:620;transition:stroke-dashoffset 2.2s var(--ease) .2s}
.fern .leaves path{stroke-dasharray:90;stroke-dashoffset:90;transition:stroke-dashoffset .9s var(--ease)}
.premise.in .fern .stem,.premise.in .fern .leaves path{stroke-dashoffset:0}
.fern .leaves path:nth-child(n+1){transition-delay:.5s}.fern .leaves path:nth-child(n+3){transition-delay:.7s}.fern .leaves path:nth-child(n+5){transition-delay:.9s}.fern .leaves path:nth-child(n+7){transition-delay:1.1s}.fern .leaves path:nth-child(n+9){transition-delay:1.3s}.fern .leaves path:nth-child(n+11){transition-delay:1.5s}.fern .leaves path:nth-child(n+13){transition-delay:1.7s}
.premise.in .fern .leaves{animation:sway 9s var(--ease-soft) -2s infinite alternate;transform-origin:0 80%}
@keyframes sway{to{transform:rotate(-1.2deg)}}
.blocks{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:1.6rem 0 1.2rem}
.block .mono{margin:0 0 .7rem;font-size:.64rem}
.wins{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}
.wins i{aspect-ratio:3/4;border-radius:1px;background:#E9C77B;opacity:var(--o,1);transition:opacity .5s var(--ease)}
.block.ours .wins i{background:#F0D48C}
.block.street .wins i.off{opacity:.07}
.meter-scale span{transition:color .6s var(--ease)}
.quiet.done .meter-scale span{color:var(--accent-muted)}
.form-done path{stroke-dasharray:200;stroke-dashoffset:200;stroke-linecap:round}
@media (prefers-reduced-motion:reduce){.fern .stem,.fern .leaves path{stroke-dashoffset:0}}
