:root{--font-display:Anton,sans-serif;--bg:#0c0c0e;--fg:#fff;--muted:#a9a9b4;--card:#17171b;--line:#2a2a31;--ac:#ffb938;--e:cubic-bezier(.2,.8,.2,1);box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0c0c0e;--fg:#fff}}
:root[data-theme="dark"]{--bg:#0c0c0e;--fg:#fff}
html{scroll-behavior:smooth;scroll-padding-top:calc(110px + env(safe-area-inset-top,0px))}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:'Space Grotesk',system-ui,sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}
.wrap{max-width:1360px;margin:0 auto;padding:0 28px}
#cur{position:fixed;left:0;top:0;width:360px;height:360px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,color-mix(in srgb,var(--ac) 20%,transparent),transparent 65%);transform:translate(-50%,-50%);opacity:0;transition:opacity .4s}
header{position:sticky;top:0;z-index:50;padding:8px 0;background:var(--bg)}
header .logo>img{display:block;width:64px;height:64px;flex-shrink:0;object-fit:contain}
header .logo>svg{display:block;width:300px;height:46px;flex-shrink:0}
header .pill{background:#17171b;color:var(--ac);border:0;transition:color .5s}
header .ind{background:color-mix(in srgb,var(--ac) 22%,#17171b)}
@media(max-width:900px){header .pill a{transition:opacity .2s,background .5s}header .pill a.on{background:color-mix(in srgb,var(--ac) 22%,#17171b)}}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{display:flex;align-items:center;gap:10px;font:400 26px var(--font-display);letter-spacing:.5px;text-transform:uppercase}
.pill{display:flex;position:relative;background:#fff;color:#111;border-radius:999px;padding:6px}
.pill a{position:relative;z-index:1;min-height:44px;padding:12px 22px;font-weight:500;font-size:15px;border-radius:999px;transition:opacity .2s}
.ind{position:absolute;top:6px;bottom:6px;border-radius:999px;background:var(--ac);transition:left .35s var(--e),width .35s var(--e),background .5s}
.mb{display:none;width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:transparent}
@media(max-width:900px){html{scroll-padding-top:calc(110px + env(safe-area-inset-top,0px))}.nav{flex-wrap:wrap;justify-content:space-between}.pill{display:flex;position:relative;width:100%;max-width:520px;flex-direction:row;padding:6px}.pill a{flex:1;min-width:0;padding:12px 6px;text-align:center;font-size:13px}.ind{display:none}.pill a.on{background:var(--ac)}}
.hero{min-height:100vh;position:relative;padding:110px 0 36px;overflow:hidden;background:radial-gradient(55% 70% at 72% 48%,color-mix(in srgb,var(--ac) 30%,transparent),transparent 70%);transition:background .6s}
.hero .wrap{display:grid;grid-template-columns:1.02fr .98fr;gap:24px;align-items:center;min-height:calc(100vh - 150px);position:relative;z-index:2}
h1{font:400 clamp(54px,8.4vw,138px)/.94 var(--font-display);text-transform:uppercase;margin:0;letter-spacing:.5px}
.ln{display:block;overflow:hidden;padding-bottom:.04em}.sp{display:inline-block}.wdw{display:inline-block;white-space:nowrap}
.ch{display:inline-block;animation:rise .9s var(--e) both;animation-delay:calc(var(--i)*.045s + .15s)}
@keyframes rise{from{transform:translateY(105%);opacity:0}}
.wd{display:inline-block;overflow:hidden;color:var(--ac);transition:color .5s}
#wd{display:inline-block;transition:transform .26s,opacity .26s}#wd.out{transform:translateY(-100%);opacity:0}
.seal{width:clamp(78px,9vw,128px);height:clamp(78px,9vw,128px);flex:none;align-self:center;animation:spin 16s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.lead{font-size:19px;line-height:1.55;max-width:430px;margin:26px 0 30px;color:#e9e9ee}
.cta{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:60px;padding:0 32px;border-radius:999px;border:1.5px solid #fff;background:transparent;color:#fff;font-weight:500;font-size:17px;transition:background .3s,color .3s;will-change:transform}
.btn.w{background:#fff;color:#111}.btn:hover{background:var(--ac);border-color:var(--ac);color:#111}
.proof{display:flex;align-items:center;gap:14px;margin-top:34px;flex-wrap:wrap}
.stage{position:relative;aspect-ratio:1/1.02;width:100%;max-width:700px;margin:0 auto}
.art{position:absolute;inset:0 0 14% 0;transition:translate .3s ease-out}
.art img{width:100%;height:100%;object-fit:contain;animation:bob 6s ease-in-out infinite}
.art.sw img{animation:swap .9s var(--e),bob 6s .9s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-14px) rotate(1.5deg)}}
@keyframes swap{from{opacity:0;transform:scale(.6) rotate(-25deg);filter:blur(14px)}}
.drop{position:absolute;border-radius:50%;background:var(--ac);animation:fl 5s ease-in-out infinite;transition:background .5s}
@keyframes fl{50%{transform:translateY(-18px) scale(1.15)}}
.steam{animation:st 3s ease-in-out infinite;opacity:0}.steam:nth-of-type(2){animation-delay:.9s}.steam:nth-of-type(3){animation-delay:1.8s}@keyframes st{0%{opacity:0;transform:translateY(8px)}40%{opacity:.8}100%{opacity:0;transform:translateY(-28px)}}
.glass{position:absolute;top:10%;left:-4%;z-index:4;padding:16px 22px;border-radius:20px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(16px);animation:bob 7s 1s ease-in-out infinite}
.glass small{display:block;font-size:13px;color:#ddd}.glass b{display:block;font:400 34px var(--font-display);letter-spacing:1px;margin:2px 0 8px}
.rail{position:absolute;right:0;bottom:0;display:flex;gap:12px;align-items:flex-end;z-index:5}
.cd{width:150px;border-radius:24px;border:0;background:rgba(255,255,255,.92);color:#111;padding:8px 8px 14px;text-align:left;transition:transform .3s var(--e);animation:cin .6s var(--e) both}
.cd:nth-child(2){animation-delay:.08s}.cd:nth-child(3){animation-delay:.16s}@keyframes cin{from{opacity:0;transform:translateY(30px)}}
.cd:hover{transform:translateY(-8px)}
.cd .th{height:104px;border-radius:18px;display:grid;place-items:center;overflow:hidden}.cd .th img{width:92%;height:92%;object-fit:contain}
.cd .dish-name{margin:12px 6px 0;font-size:16px;font-weight:700;color:#555560}
.cd.on{width:232px;background:#fff;cursor:default}.cd.on:hover{transform:none}.cd.on .th{height:150px;position:relative}.cd.on .dish-name{color:#111;font-size:20px}
.cd p{margin:6px 6px 12px;font-size:13px;color:#595959;line-height:1.4}
.cr{display:flex;justify-content:space-between;align-items:center;margin:0 6px}.cr b{font-size:22px}
.ctl{position:absolute;right:0;bottom:calc(100% + 14px);display:flex;gap:8px;background:#fff;padding:6px;border-radius:999px;z-index:5}
.ctl button{width:44px;height:44px;border-radius:50%;border:0;background:#eee;color:#111;display:grid;place-items:center;transition:.25s}.ctl button.n{background:var(--ac)}.ctl button:hover{transform:scale(1.1)}
.mq{border-block:1px solid var(--line);overflow:hidden;padding:20px 0;background:#111114}
.mq div{display:flex;gap:40px;width:max-content;animation:mq 30s linear infinite;font:400 44px var(--font-display);text-transform:uppercase;letter-spacing:1px}.mq span:nth-child(even){color:var(--ac)}
@keyframes mq{to{transform:translateX(-50%)}}
section{padding:110px 0;position:relative;z-index:2}
h2{font:400 clamp(44px,7vw,104px)/.95 var(--font-display);text-transform:uppercase;margin:0 0 18px}h2 em{font-style:normal;color:var(--ac)}
.sub{color:var(--muted);font-size:18px;line-height:1.6;max-width:520px;margin:0 0 40px}
.rv{opacity:1;transform:none}.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s var(--e)}.js .rv.in{opacity:1;transform:none}
.feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.ft{border:1px solid var(--line);border-radius:28px;padding:30px;background:var(--card);transition:transform .3s,border-color .3s}.ft:hover{transform:translateY(-8px);border-color:var(--ac)}
.ft b{font:400 54px var(--font-display);color:var(--ac)}.ft h3{margin:6px 0 8px;font-size:22px}.ft p{margin:0;color:var(--muted);line-height:1.6}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.mc{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:12px 12px 20px;transition:transform .25s,border-color .3s;transform-style:preserve-3d}.mc:hover{border-color:var(--ac)}
.mc .th{height:210px;border-radius:20px;display:grid;place-items:center;overflow:hidden;margin-bottom:16px}.mc .th img{width:88%;height:88%;object-fit:contain;transition:transform .6s var(--e)}.mc:hover .th img{transform:rotate(14deg) scale(1.08)}
.mc h3{margin:0 10px 6px;font-size:22px;line-height:1.25}.mc p{margin:0 10px 16px;color:var(--muted);font-size:14px;line-height:1.5}.mc .cr{margin:0 10px}.mc .cr b{font-size:22px}
footer{padding:44px 0;border-top:1px solid var(--line);color:var(--muted);position:relative;z-index:2}footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:56px;align-items:center}
.collage{position:relative;aspect-ratio:1/1;max-width:560px;width:100%;border-radius:44px;background:linear-gradient(150deg,color-mix(in srgb,var(--ac) 55%,#000),#17171b);overflow:hidden;transition:background .6s}
.collage img{position:absolute;width:58%;height:58%;filter:drop-shadow(0 20px 20px rgba(0,0,0,.35))}
.collage img:nth-child(1){left:2%;top:8%;animation:bob 7s ease-in-out infinite}.collage img:nth-child(2){right:-2%;top:30%;animation:bob 8s 1s ease-in-out infinite}.collage img:nth-child(3){left:16%;bottom:0;animation:bob 9s 2s ease-in-out infinite}
.stamp{position:absolute;right:22px;top:22px;width:112px;height:112px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;text-align:center;font-weight:700;font-size:12px;line-height:1.2;animation:spin 20s linear infinite;z-index:2}.stamp b{display:block;font:400 34px Anton,sans-serif}
.pts{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:12px;color:var(--muted)}.pts li{padding-left:30px;position:relative}.pts li:before{content:"";position:absolute;left:0;top:10px;width:16px;height:3px;background:var(--ac);border-radius:2px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;position:relative}
.sp2{border:1px solid var(--line);border-radius:28px;padding:28px;background:var(--card);transition:.3s;position:relative;overflow:hidden}.sp2:hover{border-color:var(--ac);transform:translateY(-8px)}
.sp2 b{font:400 72px var(--font-display);color:transparent;-webkit-text-stroke:1.5px var(--ac)}.sp2 h3{margin:4px 0 8px;font-size:24px}.sp2 p{margin:0;color:var(--muted);line-height:1.6}
.sp2:after{content:"";position:absolute;left:0;bottom:0;height:4px;width:0;background:var(--ac);transition:width 1.2s var(--e)}.steps.in .sp2:after{width:100%}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}.chip{min-height:46px;padding:0 22px;border-radius:999px;border:1.5px solid var(--line);background:transparent;font-weight:700;transition:.25s}.chip:hover{border-color:var(--ac)}.chip[aria-pressed="true"]{background:var(--ac);color:#111;border-color:var(--ac)}
.mc.pop{animation:cin .5s var(--e) both}
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:16px}
.gt{border-radius:28px;position:relative;overflow:hidden;border:0;padding:0;display:grid;place-items:center;text-align:left;transition:transform .4s var(--e)}.gt:hover{transform:scale(.98)}.gt img{position:absolute;inset:10%;width:80%;height:80%;object-fit:contain;transition:transform .7s var(--e)}.gt:hover img{transform:scale(1.1) rotate(8deg)}
.gt figcaption{pointer-events:none;position:absolute;left:18px;bottom:16px;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);padding:8px 14px;border-radius:999px;font-size:13px;font-weight:700;color:#fff}
.gt:nth-child(1){grid-column:1;grid-row:1/span 2}.gt:nth-child(4){grid-column:2/span 2;grid-row:2}.gt:nth-child(5){grid-column:4;grid-row:1/span 2}
.rev>div{max-width:900px}.rq{font:400 clamp(26px,3.4vw,46px)/1.12 var(--font-display);text-transform:uppercase;min-height:3.4em;margin:0 0 24px}.rq.sw{animation:rise .7s var(--e)}
.who{display:flex;align-items:center;gap:14px}.who i{width:48px;height:48px;border-radius:50%;background:var(--ac);transition:background .5s}.dots2{display:flex;gap:6px;margin-left:auto}.dots2 button{width:44px;height:44px;border:0;background:transparent;position:relative}.dots2 button:after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px;border-radius:5px;background:var(--line);transition:.35s}.dots2 button.on:after{width:30px;margin-left:-15px;background:var(--ac)}
.faq>div{max-width:900px}details{border-bottom:1px solid var(--line);padding:6px 0}summary{list-style:none;cursor:pointer;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:21px;font-weight:700}summary::-webkit-details-marker{display:none}summary:after{content:"+";font:400 34px var(--font-display);color:var(--ac);transition:transform .3s}details[open] summary:after{transform:rotate(45deg)}details p{margin:0 0 20px;color:var(--muted);line-height:1.6;animation:rise .5s var(--e)}
.visit{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.info{display:grid;gap:14px}.info div{border:1px solid var(--line);border-radius:24px;padding:22px 24px;background:var(--card)}.info small{color:var(--ac);font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:12px}.info b{display:block;font-size:20px;margin-top:6px}
.map{min-height:340px;min-width:0;border-radius:32px;border:1px solid var(--line);background:var(--card);position:relative;overflow:hidden}.map iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}.map-link{position:absolute;right:16px;bottom:24px;z-index:1;padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ac);font-size:14px;font-weight:700}.map-link:hover{border-color:var(--ac)}.map-link:focus-visible{outline:2px solid var(--ac);outline-offset:3px}
.fg{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;margin-bottom:32px}.fg h4{margin:0 0 14px;color:#fff;font-size:16px}.fg a,.fg span.l{display:block;padding:6px 0;color:var(--muted)}.fg a:hover{color:var(--ac)}.fb{border-top:1px solid var(--line);padding-top:20px;font-size:14px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media(max-width:900px){.gal{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.gt:nth-child(1){grid-column:auto;grid-row:span 2}.gt:nth-child(4){grid-column:span 2;grid-row:auto}.gt:nth-child(5){grid-column:span 2;grid-row:auto}.fg{grid-template-columns:1fr 1fr}}
@media(max-width:1000px){.hero .wrap{grid-template-columns:1fr}.stage{max-width:520px}.stage{aspect-ratio:auto;padding-top:84%}.art{bottom:auto;height:auto;aspect-ratio:1;inset:0 0 auto}.rail{position:relative;margin-top:0;flex-wrap:wrap}.ctl{position:static;margin:0 0 12px auto;width:max-content}.glass{left:0}.cd.on{width:100%;flex-basis:100%}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}

/* Extensions use the existing palette, type, pill controls and rounded cards. */
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--ac);outline-offset:5px}
.skip{position:fixed;left:16px;top:12px;z-index:100;background:#fff;color:#111;padding:14px 22px;border-radius:999px;transform:translateY(-160%)}.skip:focus{transform:none}
.wrap>*{min-width:0}.eyebrow{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ac);margin:0 0 20px;line-height:1.6}
.note{font-size:13px;line-height:1.6;color:var(--muted);margin:18px 0 0}.note a{text-decoration:underline;text-underline-offset:4px}
.hero .proof{font-size:13px;color:var(--muted)}.hero .proof span{border:1px solid var(--line);border-radius:999px;padding:9px 14px}
.hero-intro{display:flex;align-items:center;gap:18px;margin-top:22px}.hero-intro .lead{margin:0}
.seal-copy{width:100%;height:100%}.rail{width:100%}.rail .cd{flex:1;min-width:0;width:auto}.rail .cd.on{flex:1.55}
.ctl{gap:6px}.ctl button{flex-shrink:0}.ctl #motion{font-size:16px}.glass b{font-size:28px}
.mq:focus-within div,.motion-paused .mq div{animation-play-state:paused}
.motion-paused .art img,.motion-paused .drop,.motion-paused .seal,.motion-paused .glass,.motion-paused .collage img,.motion-paused .stamp,.motion-paused .pin,.motion-paused .steam{animation-play-state:paused}
.timeline{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:18px;counter-reset:chapter}.timeline li{border-left:2px solid var(--line);padding-left:18px;color:var(--muted);line-height:1.6}.timeline b{display:block;color:var(--fg);font-size:18px;margin-bottom:4px}.timeline li:hover{border-color:var(--ac)}
.stamp{animation:none}.stamp b{font-size:25px}.collage img{object-fit:contain}
.steps{list-style:none;padding:0;margin:0}.sp2 svg{display:block;width:56px;height:56px;stroke:var(--ac);fill:none;stroke-width:1.6;margin:14px 0}.sp2:focus-within{border-color:var(--ac)}
.menu-tools{margin-bottom:28px}.menu-tools .chips{margin-bottom:16px}.variants{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.variants>span{color:var(--muted);font-size:14px}.variants .chip{min-height:44px;padding:0 18px}
.menu-count{color:var(--muted);font-size:14px;margin:14px 0 0}.mc{display:flex;flex-direction:column}.mc .th{flex-shrink:0}.mc .cr{margin-top:auto;align-items:end;gap:8px}.diet{font-size:12px;line-height:1.4;color:var(--muted);border:1px solid var(--line);padding:5px 8px;border-radius:999px;max-width:60%}.mc .cr b{font-size:18px;white-space:nowrap}
.guide{margin-top:30px}.guide .ft h3{color:var(--ac)}
.coffee-art{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:44px;background:radial-gradient(ellipse at 50% 60%,#b8743f55,transparent 70%),var(--card);overflow:hidden}.coffee-art img{width:95%;height:95%;object-fit:contain}.coffee-art .steam{position:absolute;width:15px;height:90px;border-left:2px solid #ffffff80;border-radius:50%;top:10%;left:48%;pointer-events:none}.coffee-art .steam:nth-of-type(2){left:55%}.coffee-art figcaption{position:absolute;bottom:20px;font-size:12px;color:var(--muted)}
.coffee-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.coffee-links a{display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:14px}.coffee-links a:hover{border-color:var(--ac)}
.glossary{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.glossary details{border:1px solid var(--line);border-radius:28px;padding:14px 22px;background:var(--card);align-self:start;transition:border-color .3s}.glossary details:hover,.glossary details[open]{border-color:var(--ac)}.glossary summary{font-size:20px;min-height:60px}.glossary .glyph{color:var(--ac);font-size:28px;margin-right:10px}.glossary summary:after{font-size:28px}.glossary p{font-size:15px}
.gt{margin:0}.gt button{position:absolute;inset:0;min-width:0;min-height:0;width:100%;height:100%;border:0;padding:0;display:grid;place-items:center;background:transparent}.gt:hover img,.gt:focus-within img{transform:scale(1.08)}
dialog{width:min(880px,calc(100% - 32px));max-height:90dvh;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:28px;padding:24px}dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}dialog img{display:block;width:100%;height:min(60dvh,600px);object-fit:contain}dialog h3{margin:16px 0 8px;font-size:24px}.close{display:block;margin-left:auto;min-height:44px;border:1px solid var(--line);border-radius:999px;padding:8px 18px;background:transparent}.close:hover{border-color:var(--ac)}
.reviews-controls{display:flex;align-items:center;gap:10px;margin-bottom:24px}.reviews-controls .chip{padding:0 16px}
.info b{overflow-wrap:anywhere}.info p{font-size:13px;color:var(--muted);line-height:1.6;margin:8px 0 0}
footer .wrap{display:block}.fg{width:100%}.fg .logo{display:flex;padding:0}.fg .l{overflow-wrap:anywhere}.fb{width:100%}
@media(min-width:1001px){.hero .wrap{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)}.rail .cd .th{height:clamp(80px,8vw,104px)}.rail .cd.on .th{height:clamp(120px,12vw,150px)}}
@media(max-width:1000px){.hero{padding-top:60px;min-height:auto}.hero .wrap{min-height:auto;gap:40px}.rail .cd.on{flex-basis:100%}.rail .cd:not(.on){flex-basis:40%}.rail .cd .th{height:140px}.stage{max-width:520px}.glass{top:8%}.ctl{flex-basis:100%;justify-content:flex-end;background:transparent;padding:0}.ctl button{background:#fff}.ctl button.n{background:var(--ac)}}
@media(max-width:900px){header .logo{gap:8px}header .logo>img{width:52px;height:52px}header .logo>svg{width:clamp(140px,calc(100vw - 180px),300px);height:auto;aspect-ratio:300/46}.js .mb{display:grid;place-items:center;flex-shrink:0}.mb span{font-size:24px}.pill{order:3;max-width:none}.nav{gap:12px}.fg{gap:24px}.split{gap:32px}}
@media(max-width:600px){.wrap{padding:0 20px}header{padding:6px 0}.hero{padding:40px 0 48px}h1{font-size:clamp(50px,12.6vw,76px)}h2{font-size:clamp(44px,11vw,68px);line-height:1.02;overflow-wrap:break-word}section{padding:72px 0}.hero-intro{gap:14px}.lead{font-size:16px}.seal{width:78px;height:78px}.btn{padding:0 22px;min-height:54px;font-size:15px}.cta{gap:10px}.split,.visit{grid-template-columns:minmax(0,1fr)}.grid,.feats,.steps{grid-template-columns:minmax(0,1fr)}.hero .proof{margin-top:24px;gap:8px}.stage{padding-top:90%}.rail .cd .th{height:110px}.rail .cd.on .th{height:170px}.glass{padding:12px 16px;top:4%}.glass b{font-size:24px}.glass small{font-size:11px}.gal{grid-auto-rows:160px;gap:12px}.gt figcaption{left:10px;bottom:10px;font-size:12px;padding:7px 10px;max-width:calc(100% - 20px)}.chip{padding:0 16px}.map{min-height:300px}.fg{grid-template-columns:1fr 1fr}.fg>div:first-child{grid-column:1/-1}.sub{font-size:16px;margin-bottom:28px}.ft,.sp2{padding:24px}.timeline{gap:14px}.coffee-art{margin:0}.glossary{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .rv{opacity:1;transform:none}.steam{opacity:.45}#wd.out{transform:none;opacity:1}}

/* Shared frosted header after scrolling; retain an opaque fallback. */
header{transition:background .3s,box-shadow .3s}
header.is-scrolled{box-shadow:0 1px 0 #ffffff0d,0 8px 28px #00000018}
@supports ((backdrop-filter:blur(18px)) or (-webkit-backdrop-filter:blur(18px))){
header.is-scrolled{background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%)}
}

/* Legal links fit the existing footer bottom row and wrap on small screens. */
.footer-legal{display:flex;flex-wrap:wrap;gap:4px 20px;align-items:center}
.footer-legal a{display:inline-flex;align-items:center;min-height:44px}
.footer-legal a:hover{color:var(--ac)}

/* Keep the expanded header navigation readable at intermediate and mobile widths. */
@media(min-width:901px) and (max-width:1100px){header .pill a{padding-inline:8px}}
/* Mobile navigation fills the viewport without changing the desktop pill. */
.mobile-nav-intro,.mobile-nav-footer{display:none}
@media(max-width:900px){
  html.nav-open,html.nav-open body{overflow:hidden;overscroll-behavior:none}
  html.nav-open body{position:fixed;top:var(--nav-scroll-offset,0px);left:0;width:100%}
  /* Keep the logo and close button anchored when the page is locked mid-scroll. */
  html.nav-open header{position:fixed;inset:0 0 auto;padding-top:calc(8px + env(safe-area-inset-top,0px));background:var(--bg);box-shadow:none}
  header,header.is-scrolled{-webkit-backdrop-filter:none;backdrop-filter:none}
  header .nav{flex-wrap:wrap}
  header .logo,.js header .mb{position:relative;z-index:2}
  .js header .mb{width:48px;height:48px;border-color:color-mix(in srgb,var(--ac) 30%,var(--line));background:var(--card);transition:background .25s,border-color .25s}
  .js header .mb:hover{border-color:var(--ac)}
  .mb .menu-icon{position:relative;display:block;width:20px;height:14px}
  .menu-icon::before,.menu-icon::after{content:"";position:absolute;left:0;width:20px;height:2px;border-radius:2px;background:var(--ac);transition:transform .35s var(--e),top .35s var(--e)}
  .menu-icon::before{top:3px}.menu-icon::after{top:11px}
  .mb[aria-expanded="true"] .menu-icon::before{top:7px;transform:rotate(45deg)}
  .mb[aria-expanded="true"] .menu-icon::after{top:7px;transform:rotate(-45deg)}
  .js header .pill{display:flex;position:fixed;inset:0;z-index:1;width:100%;max-width:none;height:100vh;height:100dvh;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;padding:calc(96px + env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));border-radius:0;background:radial-gradient(ellipse at 100% 10%,color-mix(in srgb,var(--ac) 12%,transparent),transparent 55%),var(--bg);overflow-y:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;transform:translateY(-16px);pointer-events:none;transition:opacity .35s var(--e),transform .45s var(--e),visibility .45s}
  .js header .pill.open{visibility:visible;opacity:1;transform:none;pointer-events:auto}
  .js .mobile-nav-intro{display:flex;flex-direction:column;gap:8px;padding:12px 0 24px;color:var(--muted);font-size:11px;letter-spacing:1.5px;text-transform:uppercase}
  .mobile-nav-intro b{font-size:13px;font-weight:500;color:var(--ac);letter-spacing:.5px}
  .js header .pill a{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;min-height:58px;padding:12px 4px;border-radius:0;border-bottom:1px solid var(--line);text-align:left;font:400 clamp(30px,7vw,48px)/1.15 var(--font-display);letter-spacing:.5px;text-transform:uppercase;color:var(--fg);opacity:0;transform:translateY(20px);transition:opacity .2s,transform .3s var(--e),color .2s}
  .js header .pill a::after{content:"↗";font:400 24px/1 system-ui,sans-serif;color:var(--muted);transition:transform .25s,color .25s}
  .js header .pill.open a{opacity:1;transform:none;transition-delay:calc(var(--nav-order)*45ms + 80ms),calc(var(--nav-order)*45ms + 80ms),0s}
  .js header .pill a:nth-of-type(1){--nav-order:0}.js header .pill a:nth-of-type(2){--nav-order:1}.js header .pill a:nth-of-type(3){--nav-order:2}.js header .pill a:nth-of-type(4){--nav-order:3}.js header .pill a:nth-of-type(5){--nav-order:4}
  .js header .pill a.on,.js header .pill a:hover,.js header .pill a:focus-visible{background:transparent;color:var(--ac)}
  .js header .pill a.on::after,.js header .pill a:hover::after{color:var(--ac);transform:rotate(45deg)}
  .js .mobile-nav-footer{display:flex;flex-direction:column;gap:12px;margin-top:auto;padding-top:32px;font-size:12px;line-height:1.5;color:var(--muted)}
  .mobile-nav-footer span:last-child{font-size:10px;letter-spacing:2px;color:var(--ac)}
}
@media(max-width:900px) and (max-height:600px){
  .js header .pill{padding-top:80px}
  .js .mobile-nav-intro{padding:0 0 12px}
  .mobile-nav-intro b{display:none}
  .js header .pill a{min-height:46px;padding-block:8px;font-size:28px}
  .js .mobile-nav-footer{padding-top:20px}
}

/* Shared footer: five editorial columns and a separate legal/credit row. */
.site-footer{padding:64px 0 28px;background:var(--bg);color:var(--muted)}
.site-footer>.wrap{max-width:2048px;padding-inline:clamp(20px,4.4vw,90px)}
.site-footer .footer-main{display:grid;grid-template-columns:minmax(300px,2.3fr) repeat(3,minmax(0,1fr)) minmax(175px,1.1fr);gap:clamp(24px,3vw,60px);align-items:start;padding-bottom:48px}
.site-footer .footer-brand-link{display:flex;align-items:center;gap:14px;color:var(--ac);font:800 clamp(20px,1.75vw,30px)/1.2 Georgia,'Times New Roman',serif}
.site-footer .footer-brand-logo{display:block;flex:0 0 50px;width:50px;height:50px;object-fit:contain}
.site-footer .footer-brand-wordmark{display:block;flex:1;min-width:0;max-width:280px;height:42px}
.site-footer .footer-brand p{max-width:390px;margin:24px 0 0;font-size:17px;line-height:1.7}
.site-footer .footer-links{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.site-footer .footer-links h2{margin:0 0 14px;font:700 17px/1.4 'Space Grotesk',system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--fg);overflow-wrap:normal}
.site-footer .footer-links a{display:flex;align-items:center;min-height:44px;padding:6px 0;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.site-footer .footer-links a:hover,.site-footer .footer-legal a:hover{color:var(--ac)}
.site-footer .footer-actions{display:flex;align-items:flex-start;flex-direction:column;gap:14px}
.site-footer .footer-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:50px;max-width:100%;padding:11px 26px;border:1px solid var(--ac);border-radius:999px;color:var(--ac);font-size:16px;line-height:1.4;font-weight:700;transition:background .2s,color .2s}
.site-footer .footer-button--solid{background:var(--ac);color:var(--bg);min-width:120px}
.site-footer .footer-button--solid:hover{background:var(--fg);border-color:var(--fg)}
.site-footer .footer-button--outline:hover{background:var(--ac);color:var(--bg)}
.site-footer .footer-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.2fr);gap:20px;align-items:center;border-top:1px solid var(--line);font-size:14px;line-height:1.7}
.site-footer .footer-bottom p{margin:0}
.site-footer .footer-legal{justify-content:center;gap:4px 24px}
.site-footer .footer-credits{text-align:right;overflow-wrap:anywhere}
.site-footer .footer-developer-link{display:inline-flex;align-items:center;min-height:44px;color:var(--ac);font-weight:700}
.site-footer .footer-developer-link:hover{text-decoration:underline;text-underline-offset:4px}
.site-footer :focus-visible{outline:3px solid var(--ac);outline-offset:5px}
.site-footer .footer-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1100px){
 .site-footer .footer-main{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(180px,1.1fr);gap:32px}
 .site-footer .footer-brand{grid-column:1/-1}
 .site-footer .footer-brand p{max-width:460px;margin-top:18px}
 .site-footer .footer-brand-link{font-size:26px}
 .site-footer .footer-bottom{grid-template-columns:1fr auto}
 .site-footer .footer-credits{grid-column:1/-1;text-align:left}
}
@media(max-width:767px){
 .site-footer{padding:44px 0 max(12px,env(safe-area-inset-bottom,0px))}
 .site-footer .footer-main{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 20px;padding-bottom:16px}
 .site-footer .footer-actions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}
 .site-footer .footer-brand-link{font-size:23px}
 .site-footer .footer-brand p{font-size:16px}
 .site-footer .footer-links a{font-size:14px}
 /* Compact mobile footer without extra dividers or empty row space. */
 .site-footer .footer-bottom{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:2px;padding-top:0;border-top:0;font-size:12px;line-height:1.6;text-align:center}
 .site-footer .footer-copyright{color:var(--muted)}
 .site-footer .footer-legal{justify-content:center;gap:0 20px}
 .site-footer .footer-legal a{min-height:32px;white-space:nowrap}
 .site-footer .footer-credits{width:100%;margin:0;padding:0;border:0;text-align:center}
 .site-footer .footer-credits p{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;column-gap:4px}
 .site-footer .footer-developer-link{min-height:32px;white-space:nowrap}
}
@media(max-width:420px){.site-footer .footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer .footer-brand-link{font-size:20px}.site-footer .footer-brand-logo{flex-basis:44px;width:44px;height:44px}.site-footer .footer-button{padding-inline:22px;font-size:15px}}
