@font-face{font-family:"DM Serif Display";src:url(fonts/dm-serif.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Figtree;src:url(fonts/figtree.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
:root{--aqua:#e8f6f8;--aqua2:#d4eef2;--teal:#1d7a8c;--deep:#12515e;--ink:#1c3a42;--mute:#3f5961;--grey:#f4f6f6;--sky:#dbeaf7;--rose:#f7d9d4;--sun:#faf1c4;--warm:#d9782d;--line:#cfe3e7;--serif:"DM Serif Display",Georgia,serif;--ui:Figtree,"Segoe UI",system-ui,sans-serif;--gut:clamp(1rem,4vw,3rem);--max:76rem;--out:cubic-bezier(.16,1,.3,1)}
*,*:before,*:after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable}
body{margin:0;background:var(--aqua);color:var(--ink);font:400 1.0625rem/1.65 var(--ui);-webkit-font-smoothing:antialiased;overflow-x:hidden}
@view-transition{navigation:auto}
img,svg{display:block;max-width:100%}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--deep);line-height:1.08;margin:0;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:clamp(2.6rem,5vw,4.5rem);line-height:1.03;letter-spacing:-.02em}h2{font-size:clamp(2rem,3.3vw,2.8rem)}h3{font:700 1.1rem/1.3 var(--ui);letter-spacing:0}
p{margin:0 0 1em;text-wrap:pretty}a{color:inherit}
:focus-visible{outline:3px solid var(--deep);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--deep);color:#fff;padding:.7rem 1rem;z-index:300;font-weight:700}.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
.lede{font-size:1.2rem;max-width:36rem;color:var(--mute)}.mute{color:var(--mute);font-size:.9rem}
/* header */
.hd{position:sticky;top:0;z-index:100;background:var(--aqua)}
.hd .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:84px;gap:1rem}
.nav{display:flex;gap:clamp(1rem,2.4vw,2.2rem)}
.nav a{font:600 1rem/1 var(--ui);text-decoration:none;color:var(--teal);min-height:44px;display:inline-flex;align-items:center;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current=page]{border-color:var(--teal)}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;justify-self:center}.brand svg{width:26px;height:32px}
.brand span{font:400 1.55rem/.95 var(--serif);color:var(--deep);letter-spacing:-.005em;display:block}.brand small{display:block;font:700 .62rem/1 var(--ui);letter-spacing:.3em;text-transform:uppercase;color:var(--teal);margin-top:.3rem}
.hr{display:flex;align-items:center;justify-content:flex-end;gap:.8rem}
.osign{position:relative;font-size:.85rem;font-weight:700;color:var(--deep);background:var(--sun);border-radius:6px;padding:.4rem .8rem;white-space:nowrap;margin-top:1.1rem;transform-origin:50% -1.1rem;animation:sway 5s ease-in-out infinite}.osign:before,.osign:after{content:"";position:absolute;top:-1.1rem;width:1.5px;height:1.1rem;background:var(--deep)}.osign:before{left:22%}.osign:after{right:22%}@keyframes sway{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
.cartbtn{display:inline-flex;align-items:center;gap:.5rem;min-height:46px;padding:0 1rem;border:0;border-radius:999px;background:var(--teal);color:#fff;font:700 .95rem var(--ui);cursor:pointer;transition:transform .25s var(--out)}
.cartbtn:hover{transform:translateY(-2px)}.cartbtn svg{width:18px;height:18px}.cartbtn b{display:grid;place-items:center;min-width:1.5rem;height:1.5rem;border-radius:999px;background:#fff;color:var(--deep);font-size:.8rem}
.menu{display:none;min-height:46px;padding:0 1.1rem;border:1.5px solid var(--teal);background:transparent;color:var(--teal);border-radius:999px;font:700 .9rem var(--ui);cursor:pointer;justify-self:start}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:0 1.5rem;border:2px solid var(--teal);background:var(--teal);color:#fff;font:600 .98rem/1 var(--ui);letter-spacing:.005em;text-decoration:none;border-radius:999px;cursor:pointer;transition:background .25s,transform .25s var(--out)}
.btn:hover{background:var(--deep);border-color:var(--deep);transform:translateY(-2px)}.btn.ol{background:transparent;color:var(--teal)}.btn.ol:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.btn svg{width:13px;height:13px}.btns{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.3rem}
.add{min-height:40px;padding:0 1.25rem;border:0;border-radius:999px;background:var(--teal);color:#fff;font:600 .88rem var(--ui);cursor:pointer;transition:background .2s,transform .2s}
.add:hover{background:var(--deep)}.add.on{background:var(--deep)}
/* hero collage */
.hero{padding:clamp(.5rem,2vw,1.5rem) 0 clamp(3rem,6vw,5rem)}
.collage{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:230px auto 270px;gap:12px}
.ph{overflow:hidden;border-radius:6px;background:var(--aqua2)}.ph img{width:100%;height:100%;object-fit:cover;will-change:transform}
.collage .a{grid-area:1/1/3/4}.collage .b{grid-area:1/4/2/10}.collage .hl{grid-area:2/4/3/10;display:grid;place-items:center;text-align:center;padding:1.2rem 0}.collage .c{grid-area:1/10/3/13}
.collage .d{grid-area:3/1/4/8;border-radius:6px 6px 6px 90px}.collage .txt{grid-area:3/8/4/13;background:var(--grey);display:flex;flex-direction:column;justify-content:center;padding:clamp(1.2rem,3vw,2.6rem);border-radius:6px}
.collage .txt p{margin:0;color:var(--ink);font-size:1.12rem;line-height:1.6}.collage .txt .btns{margin-top:1.1rem}
.hl h1{max-width:13ch}
/* rounds */
.rounds{background:#fff;border-radius:64px 64px 0 0;padding:clamp(2rem,5vw,3.5rem) 0 clamp(2.5rem,6vw,4.5rem);margin-top:-2.4rem;position:relative;z-index:1}
.rl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;text-align:center}
.rl li{position:relative;padding:.8rem 0 0}.rl li:before{display:none;content:"";position:absolute;left:6%;top:0;width:72%;aspect-ratio:1;border-radius:50%;background:var(--sky);transition:transform .5s var(--out)}.rl .rose:before{background:var(--rose)}.rl .sun:before{background:var(--sun)}
.rl li:hover:before{transform:translate(-.4rem,-.3rem)}
.disc{position:relative;display:block;width:76%;margin:0 0 0 auto;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--aqua2)}.disc img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--out)}
.rl li:hover .disc img,.rc:hover .disc img{transform:scale(1.07) rotate(-2deg)}
.rl b{display:block;font:700 1.05rem/1.2 var(--ui);color:var(--deep);margin-top:1rem}
/* about */
.about{padding:clamp(2.5rem,6vw,5rem) 0;background:#fff}
.ag{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4.5rem);align-items:center}
.abt{background:var(--grey);padding:clamp(1.5rem,4vw,3.4rem);border-radius:6px}.abt h2{margin-bottom:1rem}.abt p{color:var(--mute)}
.abp{position:relative;padding-bottom:3rem}.abp>img:first-child{width:86%;margin-left:auto;aspect-ratio:4/4.6;object-fit:cover;border-radius:6px 90px 6px 6px}
.abp .ins{position:absolute;left:0;bottom:0;width:44%;aspect-ratio:1;object-fit:cover;border-radius:50%;border:8px solid #fff}
/* featured rail */
.feat{background:#fff;padding:0 0 clamp(2.5rem,6vw,5rem)}
.fh{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.4rem}
.rbtn{display:flex;gap:.5rem}.rbtn button{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--teal);background:#fff;color:var(--teal);font-size:1.3rem;cursor:pointer;transition:background .2s,color .2s}.rbtn button:hover{background:var(--teal);color:#fff}
.rail{list-style:none;margin:0 0 1.6rem;padding:0 0 .6rem;display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.rail::-webkit-scrollbar{display:none}
.rc{flex:0 0 25%;min-width:240px;scroll-snap-align:start;padding:1rem 1.2rem;border-left:1px solid var(--line);text-align:center;display:flex;flex-direction:column;align-items:center}
.rc .disc{width:62%;margin:0 auto 1rem}.pr{font-style:normal;font-weight:700;color:var(--teal);font-size:.95rem;font-variant-numeric:tabular-nums}.rc h3{margin:.2rem 0 .4rem}.rc p{color:var(--mute);font-size:.95rem;line-height:1.5;flex:1}
/* at home */
.athome{background:var(--aqua);padding:clamp(3rem,6vw,5rem) 0}
.ahg{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4.5rem);align-items:center}
.cir{position:relative;aspect-ratio:1;max-width:30rem;margin-inline:auto;width:100%}.cir img{position:absolute;object-fit:cover;transition:transform .8s var(--out)}
.c1{left:0;top:0;width:66%;aspect-ratio:1;border-radius:50%}.c2{right:0;top:12%;width:42%;aspect-ratio:1;border-radius:50%;border:7px solid var(--aqua)}.c3{right:8%;bottom:0;width:48%;aspect-ratio:1;border-radius:50% 50% 50% 8%;border:7px solid var(--aqua)}
.cir:hover .c2{transform:translate(.4rem,-.4rem)}.cir:hover .c3{transform:translate(-.3rem,.4rem)}
.aht p{color:var(--mute)}.tips{margin:0 0 1.4rem;padding-left:1.3rem}.tips li{margin-bottom:.6rem}.tips li::marker{color:var(--teal);font-weight:800}
/* take home */
.take{display:grid;grid-template-columns:1fr 1fr;background:#fff}
.tl{background:var(--teal);color:#fff;padding:clamp(2rem,6vw,5rem) var(--gut) clamp(2rem,6vw,5rem) max(var(--gut),calc((100vw - var(--max))/2 + var(--gut)))}
.tl h2{color:#fff;margin-bottom:1rem}.tl p{color:#fff;max-width:30rem}
.bl{list-style:none;margin:1.6rem 0 0;padding:0}.bl li{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:1rem 0;border-top:1px solid rgba(255,255,255,.3)}.bl i{display:block;font-style:normal;font-size:.9rem;color:#fff}.bl em{font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}
.tl .add{background:#fff;color:var(--deep)}.tl .add:hover{background:var(--sun)}
.tr{overflow:hidden}.tr img{width:100%;height:100%;object-fit:cover;min-height:20rem;border-radius:0 0 0 0}
/* visit row */
.vrow{background:#fff;padding:clamp(2.2rem,5vw,3.6rem) 0}.vrow .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;text-align:center}
.vrow h2{font:800 .76rem/1 var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:.7rem}.vrow p{margin:0;color:var(--mute)}.vrow a{text-underline-offset:3px}
/* footer */
.ft{background:var(--teal);color:#fff;padding:clamp(2.2rem,5vw,3.4rem) 0 1.4rem;text-align:center}
.ft .brand{justify-self:center}.ft .brand span{color:#fff}.ft .brand small{color:#fff}.ft .brand svg path{fill:#fff}.ft .brand svg circle{fill:var(--teal)}
.fl{display:flex;flex-direction:column;align-items:center;gap:1rem}.ft nav{display:flex;gap:1.8rem}.ft nav a{text-decoration:none;font-weight:700;min-height:44px;display:inline-flex;align-items:center}.ft nav a:hover{text-decoration:underline}
.fine{font-size:.85rem;color:#fff;max-width:44rem;margin:1.4rem auto 0}
/* inner pages */
.phero{padding:clamp(2.4rem,6vw,4.5rem) 0 clamp(1rem,3vw,2rem)}.phero h1{margin-bottom:.6rem}
.pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem}.pills a{display:inline-flex;align-items:center;min-height:44px;padding:0 1.2rem;border-radius:999px;border:1.5px solid var(--teal);color:var(--teal);font-weight:700;text-decoration:none}.pills a:hover{background:var(--teal);color:#fff}
.msec{padding:clamp(1.5rem,4vw,2.6rem) 0;scroll-margin-top:90px}.msec:nth-of-type(even){background:#fff}.msg{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(1.5rem,5vw,4rem);align-items:start}.msg.one{grid-template-columns:1fr;max-width:52rem}
.msec h2{margin-bottom:1rem}
.ml{list-style:none;margin:0;padding:0}.ml li{display:flex;align-items:center;gap:.8rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.mn{flex:0 1 58%}.mn b{font:700 1.05rem/1.3 var(--ui);color:var(--deep);display:block}.mn i{display:block;font-style:normal;color:var(--mute);font-size:.95rem;line-height:1.4}
.dots{flex:1;border-bottom:2px dotted #a9cdd4;min-width:.8rem}.mp{font-weight:700;color:var(--teal);font-variant-numeric:tabular-nums}
.mph{aspect-ratio:1;border-radius:50%;overflow:hidden;position:sticky;top:104px}.mph img{width:100%;height:100%;object-fit:cover}
.notes{padding:1.4rem 0 2.6rem;color:var(--mute);font-size:.95rem}
.guide{background:#fff;padding:clamp(2.4rem,6vw,4.5rem) 0}.guide h2{margin-bottom:1.6rem}
.gl{list-style:none;margin:0;padding:0;counter-reset:g;display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}.gl li{counter-increment:g;background:var(--grey);border-radius:6px;padding:1.4rem 1.4rem 1.4rem 4.4rem;position:relative;color:var(--mute)}
.gl li:before{content:counter(g);position:absolute;left:1.2rem;top:1.1rem;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font:700 1rem var(--ui)}.gl b{color:var(--deep)}
.vg{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(1.5rem,5vw,4rem);align-items:start;padding-bottom:3rem}.ph.e{aspect-ratio:4/5;border-radius:999px 999px 6px 6px;position:sticky;top:104px}
.hours{border-collapse:collapse;width:100%;margin-bottom:2rem}.hours th,.hours td{text-align:left;padding:.8rem 0;border-bottom:1px solid var(--line)}.hours th{font:700 1rem var(--ui);color:var(--deep)}.hours tr.now{background:var(--sun)}
.nowtxt{font-weight:700;color:var(--teal)}
form{display:grid;gap:1.1rem;max-width:40rem}.two{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
label{font-weight:700;font-size:.95rem;display:block;margin-bottom:.35rem}
input,select,textarea{width:100%;min-height:50px;padding:.7rem .9rem;border:1.5px solid #6f8e97;background:#fff;color:var(--ink);border-radius:10px;font:400 1rem var(--ui)}textarea{min-height:100px}
.err{color:#a3261b;font-size:.9rem;margin:.3rem 0 0;min-height:1.2em}
.ok{background:#fff;border-left:5px solid var(--teal);padding:1rem 1.2rem;border-radius:6px;max-width:40rem}
.faq{padding:clamp(2.4rem,6vw,4.5rem) 0;background:#fff}.faq .wrap{max-width:50rem}.faq h2{margin-bottom:1.4rem}
details{background:var(--grey);border-radius:10px;margin-bottom:.7rem}summary{cursor:pointer;font:700 1.05rem/1.35 var(--ui);color:var(--deep);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;min-height:56px}
summary::-webkit-details-marker{display:none}summary:after{content:"+";flex:none;width:30px;height:30px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font:700 1.3rem/1 var(--ui)}details[open] summary:after{content:"\2212"}details p{padding:0 1.2rem 1rem;margin:0;color:var(--mute)}
/* cart */
dialog{border:0;border-radius:22px;padding:1.4rem;width:min(28rem,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow:auto;background:#fff;color:var(--ink);box-shadow:0 30px 70px -20px rgba(18,81,94,.5)}dialog::backdrop{background:rgba(18,81,94,.45)}
.ch{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}.x{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--teal);background:#fff;color:var(--teal);font-size:1.5rem;line-height:1;cursor:pointer}
#cl{list-style:none;margin:0;padding:0}#cl li{display:grid;grid-template-columns:1fr auto auto;gap:.7rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line)}#cl b{font-weight:700}
.q{display:inline-flex;align-items:center;gap:.3rem}.q button{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--teal);background:#fff;color:var(--teal);font:700 1.1rem/1 var(--ui);cursor:pointer}.q span{min-width:1.4rem;text-align:center;font-weight:700}
.tot{display:flex;justify-content:space-between;font-size:1.2rem;margin:1rem 0}.tot b{font:400 1.6rem var(--serif);color:var(--deep)}.empty{color:var(--mute)}.done{font-size:1.1rem}
#cartform{gap:.5rem;max-width:none}#cartform .btn{margin-top:.8rem}
/* motion */
html.js [data-rv]{transform:translateY(22px);transition:transform .9s var(--out)}html.js [data-rv].in{transform:none}
html.js .collage .ph{animation:unveil 1.1s var(--out) both}html.js .collage .b{animation-delay:.08s}html.js .collage .c{animation-delay:.16s}html.js .collage .d{animation-delay:.24s}
html.js .hl h1,html.js .txt{animation:rise .9s .2s var(--out) both}
@keyframes unveil{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}@keyframes rise{from{transform:translateY(22px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
/* responsive */
@media(max-width:1000px){.rl{grid-template-columns:1fr 1fr}.take{grid-template-columns:1fr}.tl{padding-inline:var(--gut)}.tr img{min-height:0;aspect-ratio:4/3}.msg,.vg{grid-template-columns:1fr}.mph{max-width:22rem;position:relative;top:0}.ph.e{position:relative;top:0;max-width:24rem}.vrow .wrap{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
.hd .wrap{grid-template-columns:auto 1fr auto}.menu{display:inline-flex;align-items:center}.brand{justify-self:center}.osign{display:none}
.nav{display:none;position:fixed;inset:84px 0 0 0;flex-direction:column;justify-content:center;gap:0;background:var(--aqua);padding:1rem var(--gut) 4rem;z-index:99}.nav.open{display:flex}.nav a{font:400 2.4rem/1.1 var(--serif);padding:.5rem 0;border:0;color:var(--deep)}
.collage{grid-template-columns:1fr 1fr;grid-template-rows:auto}.collage .a{grid-area:1/1/2/2;aspect-ratio:3/4}.collage .c{grid-area:1/2/2/3;aspect-ratio:3/4}.collage .hl{grid-area:2/1/3/3;padding:1.4rem 0}.collage .b{grid-area:3/1/4/3;aspect-ratio:16/8}.collage .txt{grid-area:4/1/5/3}.collage .d{grid-area:5/1/6/3;aspect-ratio:16/10;border-radius:6px 6px 6px 60px}
.ag,.ahg,.gl{grid-template-columns:1fr}.rc{flex-basis:70%}
}
@media(max-width:600px){.hd .wrap{min-height:72px}.nav{inset:72px 0 0 0}.brand span{font-size:1.35rem}.cartbtn span{display:none}.rounds{border-radius:36px 36px 0 0}.rl{gap:.8rem}.disc{width:84%}.vrow .wrap{grid-template-columns:1fr}.two{grid-template-columns:1fr}.ml li{display:grid;grid-template-columns:1fr auto auto;gap:.2rem .8rem}.mn{max-width:none}.dots{display:none}.bl li{grid-template-columns:1fr auto}.bl em{grid-column:2;grid-row:1}.bl .add{grid-column:1/3}}
.ins,.cir img,.abp>img:first-child{height:auto}

.bl span b{font-weight:700;display:block}.lede{line-height:1.55}.abt p,.aht p,.tl p{line-height:1.65}.abt h2,.tl h2{margin-bottom:1.1rem}.tips li{line-height:1.55}

/* a small warm accent borrowed from the second reference: eyebrow labels and facts */
.eyebrow{font:800 .74rem/1 var(--ui);letter-spacing:.18em;text-transform:uppercase;color:#a14d14;margin:0 0 .9rem}.hl .eyebrow{margin-bottom:1rem}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 0 clamp(1.8rem,4vw,3rem);padding-bottom:clamp(1.4rem,3vw,2.2rem);border-bottom:1px solid var(--line);text-align:center}.facts div{display:flex;flex-direction:column}
.facts dd{order:1;margin:0;font:400 clamp(2rem,4vw,3.2rem)/1 var(--serif);color:var(--teal)}.facts dt{order:2;margin-top:.4rem;color:var(--mute);font-weight:600;font-size:.95rem}
@media(max-width:600px){.facts{gap:.5rem}.facts dd{font-size:1.7rem}.facts dt{font-size:.8rem;line-height:1.3}}

/* v2: stronger eyebrows and numbers */
.eyebrow{display:inline-flex;align-items:center;gap:.8rem;font:800 .86rem/1 var(--ui);letter-spacing:.2em;color:#a14d14}.eyebrow:before{content:"";width:2.6rem;height:3px;border-radius:2px;background:var(--warm)}
.hl .eyebrow{justify-content:center}
.facts{padding-bottom:clamp(1.6rem,3.4vw,2.6rem);margin-bottom:clamp(2rem,4vw,3.2rem);border-bottom:2px solid var(--line)}
.facts>div+div{border-left:2px solid var(--line)}
.facts dd{font-size:clamp(3rem,7vw,5.6rem);line-height:.95;letter-spacing:-.02em}
.facts dt{margin-top:.7rem;font:800 .78rem/1.3 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--deep)}
@media(max-width:600px){.facts dd{font-size:2.2rem}.facts dt{font-size:.66rem;letter-spacing:.1em}}
/* door-shaped photos */
.collage .a,.collage .c{border-radius:999px 999px 6px 6px}
.abp>img:first-child{border-radius:999px 999px 6px 6px!important}
/* door that opens on the first visit of a session: wall, two windows showing the hero photos, an arched door that swings open, then we walk through */
.door{display:none}
html.intro .door{display:block;position:fixed;inset:0;z-index:1000;pointer-events:none;animation:gone 0s 1.55s forwards}
.wall{--dh:clamp(250px,56vh,520px);position:absolute;inset:0;background:var(--aqua2);display:flex;align-items:center;justify-content:center;gap:clamp(.7rem,3vw,3rem);transform-origin:50% 58%;animation:walk .6s .85s cubic-bezier(.7,0,.9,.35) forwards}
.win{flex:none;width:clamp(72px,17vw,250px);height:calc(var(--dh)*.66);border:clamp(5px,.9vw,10px) solid #fff;border-radius:999px 999px 6px 6px;overflow:hidden;background:var(--aqua);box-shadow:0 0 0 3px var(--teal)}.win img{width:100%;height:100%;object-fit:cover}
.dframe{flex:none;position:relative;width:clamp(120px,25vw,340px);height:var(--dh);perspective:1400px;border-radius:999px 999px 0 0;box-shadow:0 0 0 clamp(6px,1.2vw,14px) var(--deep)}
.room{position:absolute;inset:0;border-radius:999px 999px 0 0;background:var(--sun)}
.leaf{position:absolute;inset:0;border-radius:999px 999px 0 0;background:var(--teal);transform-origin:0 50%;animation:swing .65s .2s cubic-bezier(.65,0,.25,1) forwards}
.pn{position:absolute;left:18%;right:18%;border:3px solid rgba(255,255,255,.3);border-radius:999px 999px 6px 6px}.p1{top:12%;height:34%}.p2{top:52%;bottom:10%;border-radius:6px}
.knob{position:absolute;right:9%;top:54%;width:clamp(14px,2vw,26px);aspect-ratio:1;border-radius:50%;background:var(--sun);box-shadow:0 0 0 4px rgba(0,0,0,.14)}
@keyframes swing{to{transform:rotateY(-112deg)}}@keyframes walk{to{transform:scale(8);opacity:0}}@keyframes gone{to{visibility:hidden}}
/* the demo order slip */
.done{padding:.2rem 0 .6rem}.tk{display:block;position:relative;background:var(--sun);color:var(--deep);padding:1.2rem 1.2rem 1.7rem;border-radius:6px 6px 0 0;margin-bottom:1rem;font-variant-numeric:tabular-nums}
.tk:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:10px;background:conic-gradient(from 135deg at 50% 0,var(--sun) 25%,transparent 0) 0 0/20px 10px repeat-x}
.tn{display:block;font:400 1.8rem/1 var(--serif)}.tw{display:block;margin:.3rem 0 .8rem;font-weight:600}.tk ul{list-style:none;margin:0;padding:.6rem 0;border-top:2px dashed rgba(18,81,94,.4);border-bottom:2px dashed rgba(18,81,94,.4)}.tk li,.tt{display:flex;justify-content:space-between;gap:1rem}.tt{display:flex;font-weight:800;margin-top:.7rem}.tx{display:block;font-size:.9rem;color:var(--mute)}
@media(prefers-reduced-motion:reduce){html.intro .door{display:none}.osign{animation:none}}
/* phone: squarer windows, a door that looks like a door */
@media(max-width:700px){.wall{--dh:clamp(250px,40vh,380px);gap:.6rem}.dframe{width:min(40vw,calc(var(--dh)*.54))}.win{width:min(20vw,calc(var(--dh)*.28));height:calc(var(--dh)*.46);transform:translateY(calc(var(--dh)*-.16))}}

/* sections arrive as you scroll: opacity and transform only, tied to scroll position by the browser (no scripts per frame).
   Only blocks well below the first screen use it; the facts and drinks, which sit right under the hero, rise once on load instead. */
@keyframes rise-in{from{opacity:0;transform:translateY(54px)}to{opacity:1;transform:none}}
@keyframes settle{from{transform:scale(1.12)}to{transform:none}}
@keyframes drift-a{to{transform:translateY(-44px)}}@keyframes drift-b{to{transform:translateY(34px)}}
@supports(animation-timeline:view()){
  .about .abt,.about .abp,.feat .fh,.feat .rail,.athome .cir,.athome .aht,.take .tl,.take .tr,.vrow .wrap>div{animation:rise-in linear both;animation-timeline:view();animation-range:entry 0px entry 260px}
  .vrow .wrap>div:nth-child(2){animation-range:entry 24px entry 284px}.vrow .wrap>div:nth-child(3){animation-range:entry 48px entry 308px}.vrow .wrap>div:nth-child(4){animation-range:entry 72px entry 332px}
  .take .tr img,.about .abp>img.ins{animation:settle linear both;animation-timeline:view();animation-range:entry 0px cover 55%}
}
html.js .facts>div,html.js .rl li{animation:rise-in .9s var(--out) both;animation-delay:calc(var(--d,0)*110ms + .7s)}
.facts>div:nth-child(2),.rl li:nth-child(2){--d:1}.facts>div:nth-child(3),.rl li:nth-child(3){--d:2}.rl li:nth-child(4){--d:3}
@supports(animation-timeline:scroll()){
  .collage .a img,.collage .c img{animation:drift-a linear both;animation-timeline:scroll(root);animation-range:0 800px}
  .collage .b img,.collage .d img{animation:drift-b linear both;animation-timeline:scroll(root);animation-range:0 800px}
}
html.rvfb .rv:not(.in){opacity:0;transform:translateY(34px)}html.rvfb .rv{transition:opacity .7s var(--out),transform .8s var(--out)}
@media(prefers-reduced-motion:reduce){.about .abt,.about .abp,.feat .fh,.feat .rail,.athome .cir,.athome .aht,.take .tl,.take .tr,.vrow .wrap>div,.take .tr img,.collage .ph img,.facts>div,.rl li{animation:none!important}html.rvfb .rv:not(.in){opacity:1;transform:none}}

.rl li{padding-top:0}.rl .disc{margin:0 auto;width:82%}

/* fx-kit styles. Split words sit in masks so they rise from the baseline. */
.fx-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .06em .14em;margin:0 -.06em -.14em}
.fx-wi{display:inline-block;will-change:transform}
.fx-bar{position:fixed;left:0;top:0;right:0;height:3px;background:var(--sun,#f0b11f);transform-origin:0 50%;transform:scaleX(0);z-index:60;pointer-events:none}
@supports(animation-timeline:scroll()){.fx-bar{animation:fx-prog linear both;animation-timeline:scroll(root)}}
@keyframes fx-prog{to{transform:scaleX(1)}}
.fx-marq{overflow:hidden;background:var(--ink,#101a33);color:var(--sun,#f0b11f);white-space:nowrap;border-block:1px solid rgba(255,255,255,.18)}
.fx-marq div{display:inline-flex;animation:fx-marq 38s linear infinite;padding:.8rem 0;font:800 .8rem/1 var(--ui,system-ui);letter-spacing:.2em;text-transform:uppercase}
.fx-marq span{padding-right:2.4rem}
.fx-marq:hover div{animation-play-state:paused}
@keyframes fx-marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.fx-marq div{animation:none}.fx-bar{display:none}}
.nav{position:relative}.fx-ind{position:absolute;height:3px;border-radius:2px;background:var(--sun,#f0b11f);left:0;right:100%;opacity:0;pointer-events:none}
.fx-ind{background:var(--warm,#d9622b)}
