/* Alma Gourmet — deep forest green, warm cream, gold, chocolate wood */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;1,9..144,500&family=Manrope:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');

:root{
  --canvas:#152e1f;
  --canvas-deep:#0f2317;
  --panel:#f7f1e1;
  --panel-deep:#efe5cd;
  --accent:#c99a3d;
  --accent-hover:#e0b158;
  --accent-muted:rgba(201,154,61,.22);
  --wood:#6b4226;
  --tomato:#c1432a;
  --text-primary:#f7f1e1;
  --text-secondary:#c9bd9c;
  --ink:#20150c;
  --ink-secondary:#4a3b28;
  --ease:cubic-bezier(.22,.68,.24,1);
  --ease-soft:cubic-bezier(.4,.0,.2,1);
  --tshadow:0 1px 2px rgba(5,8,5,.95),0 3px 12px rgba(5,8,5,.78),0 10px 44px rgba(5,8,5,.8);
  --r-lg:22px;
  --r-md:14px;
}

*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:hidden;overflow-x:clip}
html{scroll-behavior:auto}
body{
  margin:0;
  background:var(--canvas);
  color:var(--text-primary);
  font-family:'Manrope',system-ui,sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;margin:0;font-weight:600;letter-spacing:-.01em}
p{margin:0}
.mono{font-family:'Space Mono',monospace;letter-spacing:.14em;text-transform:uppercase}

/* ---------- motion tokens & reduced motion ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal .part{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in .part{opacity:1;transform:translateY(0)}
.reveal.in .part:nth-child(1){transition-delay:0ms}
.reveal.in .part:nth-child(2){transition-delay:90ms}
.reveal.in .part:nth-child(3){transition-delay:180ms}
.reveal.in .part:nth-child(4){transition-delay:270ms}
.reveal.in.retire .part{transition-delay:0ms !important}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

body.paused *, body.paused *::before, body.paused *::after{animation-play-state:paused !important}

/* ---------- skip link / focus ---------- */
.skip-link{position:absolute;left:12px;top:-60px;background:var(--accent);color:var(--ink);padding:10px 16px;border-radius:8px;z-index:1000;transition:top .25s var(--ease);font-weight:600}
.skip-link:focus{top:12px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px clamp(18px,4vw,48px);
  background:linear-gradient(rgba(15,35,23,.72),rgba(15,35,23,0));
  pointer-events:none;
}
.nav *{pointer-events:auto}
.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary)}
.nav-brand img{width:34px;height:34px;border-radius:50%;background:var(--panel);object-fit:cover}
.nav-brand span{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{font-size:.92rem;text-decoration:none;opacity:.88;transition:opacity .3s var(--ease)}
.nav-links a:hover{opacity:1}
.nav-links a.btn{opacity:1}
@media (max-width:820px){.nav-links a:not(.btn){display:none}}
@media (max-width:480px){
  .nav{padding:14px 16px}
  .nav-brand span{display:none}
  .nav .btn{padding:10px 14px;font-size:.78rem;white-space:nowrap;gap:0}
}

/* underline-draw for plain text links */
.nav-links a:not(.btn),
.foot-links a{
  position:relative;
}
.nav-links a:not(.btn)::after,
.foot-links a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1.5px;
  background:var(--accent);transition:right .4s var(--ease);
}
.nav-links a:not(.btn):hover::after,
.foot-links a:hover::after{right:0}

.btn{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--accent);color:var(--ink);
  padding:12px 22px;border-radius:999px;border:none;
  font-family:'Manrope',sans-serif;font-weight:700;font-size:.95rem;
  text-decoration:none;cursor:pointer;
  transition:background .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);
  text-shadow:none;
  box-shadow:0 6px 22px rgba(201,154,61,.22);
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.4) 48%,rgba(255,255,255,.4) 52%,transparent 70%);
  background-size:250% 100%;background-position:150% 0;
  transition:background-position .7s var(--ease);
  pointer-events:none;
}
.btn:hover::before{background-position:-50% 0}
.btn:hover{background:var(--accent-hover);transform:translateY(-3px) scale(1.02);box-shadow:0 12px 30px rgba(201,154,61,.36)}
.btn:active{transform:translateY(-1px) scale(.98);transition-duration:.12s}
.btn.ghost{background:transparent;color:var(--text-primary);border:1.5px solid rgba(247,241,225,.4);box-shadow:none}
.btn.ghost:hover{border-color:var(--accent);background:var(--accent-muted)}
@media (pointer:coarse){.btn{min-height:44px}}

/* ================= HERO ================= */
#hero-pin{
  position:relative;
  height:100svh;height:100vh;
  background:var(--canvas-deep);
}
.hero-stage{
  position:relative;
  height:100%;width:100%;
  overflow:hidden;
  background:var(--canvas-deep);
}
.hero-stage video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  background:var(--canvas-deep);
  will-change:transform;transform:translateZ(0);
}
/* narrow phones: a 16:9 clip cropped edge-to-edge on a very tall screen shows
   only a sliver of the counter and hides the plate until the very last moment.
   Widen the video's own box past the viewport (clipped by the stage's overflow)
   so cover crops much less off the sides, without any letterbox bars. */
@media (max-width:480px){
  .hero-stage video{
    width:190%;left:50%;
    transform:translateX(-50%) translateZ(0);
  }
}

.scrim{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 120% 90% at 50% 45%,rgba(10,14,9,0) 35%,rgba(9,13,8,.6) 100%);
}

.hero-scroll-cue{
  position:absolute;left:50%;bottom:6vh;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  color:var(--text-secondary);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  opacity:.75;
  animation:cuebob 2.6s ease-in-out infinite;
  animation-delay:-1.2s;
}
body.paused .hero-scroll-cue{animation-play-state:paused}
@keyframes cuebob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
.hero-scroll-cue svg{width:16px;height:16px}

.band{
  position:absolute;inset:0;
  display:flex;align-items:center;
  padding:0 clamp(20px,7vw,110px);
  opacity:0;pointer-events:none;
}
.band::before{
  content:"";position:absolute;inset:-4%;pointer-events:none;
  opacity:calc(.25 + .75*var(--k,1));
  background:radial-gradient(ellipse 78% 60% at var(--scx,50%) var(--scy,50%),rgba(6,10,6,.68) 0%,rgba(6,10,6,.46) 46%,rgba(6,10,6,0) 76%);
}
.band-inner{position:relative;z-index:2;max-width:640px;text-shadow:var(--tshadow)}
.band .kicker{font-size:.78rem;color:var(--accent);margin-bottom:14px;display:block}
.band h1,.band h2{color:var(--text-primary);font-size:clamp(2rem,5.6vw,4.1rem);line-height:1.04}
.band .sub{margin-top:18px;font-size:clamp(1rem,1.6vw,1.3rem);color:var(--text-primary);max-width:34ch;opacity:.94}
.band .cta-row{margin-top:30px;opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.band .cta-row.show{opacity:1;transform:translateY(0)}

.band[data-band="0"]{left:0;justify-content:flex-start;--scx:34%}
.band[data-band="1"]{right:0;justify-content:flex-end;text-align:right;--scx:66%}
.band[data-band="1"] .band-inner{margin-left:auto}
.band[data-band="2"]{justify-content:center;text-align:center;align-items:flex-start;--scx:50%;--scy:26%;padding-top:max(12vh,112px)}
.band[data-band="2"] .band-inner{max-width:720px;margin:0 auto}
@media (max-height:760px){.band[data-band="2"]{padding-top:max(7vh,100px)}}

/* split-text spans */
.w{display:inline-block;white-space:pre}
.c{display:inline-block}
.split .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.6,1)}
.split.approach .w{opacity:var(--kc);transform:scale(calc(0.86 + 0.14*var(--kc))) translateY(calc((1 - var(--kc))*10px))}
.split.blur .w{opacity:var(--kc)}
.split.blur .w-soft{position:absolute;filter:blur(9px);opacity:calc(1 - var(--kc))}
.split.rise .w{opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*22px))}

/* ---------- static hero (phones / reduced motion / short landscape) ---------- */
.static-hero{
  position:relative;min-height:100svh;display:none;
  align-items:flex-end;
  background-size:cover;background-position:center;
  padding:0 22px 64px;
}
.static-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(9,13,8,.15) 0%,rgba(9,13,8,.78) 100%);
}
.static-hero .band-inner{position:relative;z-index:2;max-width:520px;text-shadow:var(--tshadow)}
.static-hero h1{font-size:clamp(2.1rem,9vw,2.8rem);color:var(--text-primary)}
.static-hero .kicker{color:var(--accent);font-size:.75rem;display:block;margin-bottom:12px}
.static-hero .sub{margin-top:16px;color:var(--text-primary);font-size:1.05rem;max-width:32ch}
.static-hero .cta-row{margin-top:26px}

@media (orientation:landscape) and (pointer:coarse) and (max-height:560px),
       (prefers-reduced-motion:reduce){
  #hero-pin{display:none}
  .static-hero{display:flex}
}
@media (max-height:560px){.hero-scroll-cue{display:none}}

/* ================= SECTIONS ================= */
main{position:relative;background:var(--canvas)}
.section{padding:min(14vh,120px) clamp(20px,6vw,80px);position:relative}
.section-inner{max-width:1180px;margin:0 auto}
.kicker{font-size:.76rem;color:var(--accent);display:block;margin-bottom:16px}
.section h2{font-size:clamp(1.9rem,4vw,3rem);color:var(--text-primary);max-width:16ch}
.lede{margin-top:20px;font-size:1.08rem;color:var(--text-secondary);max-width:56ch;line-height:1.6}

.divider{position:relative;height:56px;margin:0 auto;max-width:1180px}
.divider svg{width:100%;height:100%;display:block}
.divider path{stroke:var(--accent);stroke-width:1.4;fill:none;opacity:.55;
  stroke-dasharray:600;stroke-dashoffset:600;transition:stroke-dashoffset 1.4s var(--ease)}
.divider.in path{stroke-dashoffset:0}

/* story */
.story{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);align-items:center}
.story-badge{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--accent-muted);border:1px solid rgba(201,154,61,.4);
  border-radius:999px;padding:8px 16px;font-size:.82rem;color:var(--accent);margin-top:22px;
}
.story-badge img{width:20px;height:20px;border-radius:50%}
.story-art{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:var(--panel-deep)}
.story-art img{width:100%;height:100%;object-fit:cover}
@media (max-width:880px){.story{grid-template-columns:1fr}.story-art{order:-1;aspect-ratio:16/10}}

/* menu grid */
.menu-tag{display:inline-flex;background:var(--accent-muted);color:var(--accent);border-radius:999px;padding:5px 12px;font-size:.68rem;margin-bottom:12px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:52px}
@media (max-width:880px){.grid3{grid-template-columns:1fr}}
.card{
  background:var(--panel);border-radius:var(--r-lg);overflow:hidden;color:var(--ink);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
  box-shadow:0 0 0 rgba(201,154,61,0);
}
.card:hover{transform:translateY(-8px) scale(1.015);box-shadow:0 24px 54px rgba(0,0,0,.3),0 0 0 1.5px var(--accent-muted)}
.card-media{aspect-ratio:4/5;overflow:hidden;position:relative}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.card:hover .card-media img{transform:scale(1.06)}
.card-body{padding:22px 22px 26px}
.card-body h3{font-size:1.24rem;color:var(--ink);position:relative;display:inline-block}
.card-body h3::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1.5px;background:var(--tomato);transition:right .45s var(--ease)}
.card:hover .card-body h3::after{right:0}
.card-body p{margin-top:10px;font-size:.94rem;color:var(--ink-secondary);line-height:1.55}

/* desserts feature */
.dessert-feature{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,70px);align-items:center;margin-top:52px}
.dessert-art{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:1/1}
.dessert-art img{width:100%;height:100%;object-fit:cover}
.dessert-copy p{color:var(--text-secondary);font-size:1.02rem;line-height:1.65;margin-top:16px}
.chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.chip{
  background:rgba(8,12,7,.4);border:1px solid rgba(201,154,61,.35);border-radius:999px;
  padding:8px 15px;font-size:.82rem;color:var(--text-primary);
  display:inline-block;
  animation:chipbob 5s ease-in-out infinite;
  transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.chip:hover{
  transform:translateY(-4px) scale(1.06);
  background:var(--accent-muted);border-color:var(--accent);
  box-shadow:0 8px 20px rgba(201,154,61,.25);
  animation-play-state:paused;
}
.chip-row .chip:nth-child(1){animation-delay:-.4s}
.chip-row .chip:nth-child(2){animation-delay:-1.8s}
.chip-row .chip:nth-child(3){animation-delay:-3.1s}
.chip-row .chip:nth-child(4){animation-delay:-.9s}
@keyframes chipbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (max-width:880px){.dessert-feature{grid-template-columns:1fr}}

/* ---------- interactive: build your box ---------- */
.build-box{
  margin-top:56px;background:var(--panel);border-radius:26px;color:var(--ink);
  padding:clamp(26px,4vw,52px);display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
}
@media (max-width:880px){.build-box{grid-template-columns:1fr}}
.build-visual{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.box-svg{width:82%;height:auto}
.box-lid{transform-origin:50% 78%;transition:transform 1s var(--ease)}
.build-box.sealed .box-lid{transform:rotateX(0deg)}
.build-box:not(.sealed) .box-lid{transform:rotateX(-34deg)}
.topping-dot{transition:opacity .5s var(--ease),transform .5s var(--ease)}
.topping-dot{opacity:0;transform:translateY(6px) scale(.6)}
.build-box[data-t1="1"] .t1{opacity:1;transform:none}
.build-box[data-t2="1"] .t2{opacity:1;transform:none}
.build-box[data-t3="1"] .t3{opacity:1;transform:none}
.topping-list{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 28px}
.topping-list button{
  border:1.5px solid rgba(32,21,12,.22);background:transparent;border-radius:999px;
  padding:9px 16px;font-family:'Manrope',sans-serif;font-size:.86rem;color:var(--ink);
  cursor:pointer;transition:transform .25s var(--ease),background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);
}
.topping-list button:hover{transform:translateY(-2px);border-color:var(--ink)}
.topping-list button:active{transform:translateY(0) scale(.96)}
.topping-list button.on{background:var(--ink);border-color:var(--ink);color:var(--panel)}
@media (pointer:coarse){.topping-list button{min-height:44px}}
.hold-btn{
  position:relative;overflow:hidden;width:100%;
  background:var(--accent);color:var(--ink);border:none;border-radius:16px;
  padding:18px;font-weight:700;font-size:1rem;cursor:pointer;font-family:'Manrope',sans-serif;
}
.hold-btn .fill{position:absolute;inset:0;background:rgba(32,21,12,.18);width:0%;transition:width .1s linear}
.hold-btn span{position:relative;z-index:1}
.build-result{margin-top:14px;font-size:.9rem;color:var(--ink-secondary);min-height:1.4em}

/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:52px;counter-reset:step}
@media (max-width:880px){.steps{grid-template-columns:1fr}}
.step{
  background:rgba(247,241,225,.05);border:1px solid rgba(247,241,225,.12);border-radius:var(--r-lg);padding:30px 26px;
  transition:transform .5s var(--ease),background .5s var(--ease),border-color .5s var(--ease);
}
.step:hover{transform:translateY(-6px);background:rgba(247,241,225,.08);border-color:rgba(201,154,61,.4)}
.step .num{font-family:'Fraunces',serif;font-size:2.2rem;color:var(--accent);opacity:.85;display:inline-block;transition:transform .5s var(--ease)}
.step:hover .num{transform:translateY(-3px) scale(1.06)}
.step h3{margin-top:14px;font-size:1.14rem;color:var(--text-primary)}
.step p{margin-top:10px;font-size:.92rem;color:var(--text-secondary);line-height:1.55}

/* proof */
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:52px}
@media (max-width:980px){.proof-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.proof-grid{grid-template-columns:1fr}}
.quote{
  background:rgba(247,241,225,.05);border:1px solid rgba(247,241,225,.12);border-radius:var(--r-md);padding:24px;
  transition:transform .5s var(--ease),background .5s var(--ease),border-color .5s var(--ease);
}
.quote:hover{transform:translateY(-5px);background:rgba(247,241,225,.08);border-color:rgba(201,154,61,.35)}
.quote p{font-family:'Fraunces',serif;font-style:italic;font-size:1.08rem;color:var(--text-primary);line-height:1.5}
.quote .who{margin-top:14px;font-size:.82rem;color:var(--accent)}

/* faq */
.faq{max-width:780px;margin-top:52px}
.faq-item{border-bottom:1px solid rgba(247,241,225,.16)}
.faq-q{
  width:100%;text-align:left;background:none;border:none;color:var(--text-primary);
  font-family:'Fraunces',serif;font-size:1.12rem;padding:22px 0;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  transition:color .3s var(--ease),padding-left .35s var(--ease);
}
.faq-q:hover{color:var(--accent);padding-left:6px}
.faq-q .plus{color:var(--accent);font-size:1.3rem;transition:transform .4s var(--ease);flex:none}
.faq-item.open .faq-q .plus{transform:rotate(45deg)}
.faq-q:hover .plus{transform:scale(1.15)}
.faq-item.open .faq-q:hover .plus{transform:rotate(45deg) scale(1.15)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.faq-a p{padding-bottom:22px;color:var(--text-secondary);line-height:1.6;max-width:60ch}
.faq-item.open .faq-a{max-height:220px}

/* final cta */
.final-cta{
  text-align:center;background:linear-gradient(180deg,rgba(201,154,61,.1),transparent);
  border-radius:32px;margin:0 clamp(10px,3vw,40px);padding:min(12vh,100px) 24px;
}
.final-cta h2{max-width:none}
.final-cta .lede{margin-left:auto;margin-right:auto}
.final-cta .btn{margin-top:32px;font-size:1.05rem;padding:16px 32px}

/* legal pages */
.legal-hero{padding:min(16vh,140px) clamp(20px,6vw,80px) 20px}
.legal-hero .section-inner{max-width:820px;margin:0 auto}
.legal-updated{margin-top:14px;font-size:.82rem;color:var(--text-secondary)}
.legal-content{max-width:820px;margin:0 auto;padding:20px clamp(20px,6vw,80px) 100px}
.legal-content h2{font-size:1.4rem;color:var(--text-primary);margin-top:52px}
.legal-content h2:first-child{margin-top:0}
.legal-content p{margin-top:16px;color:var(--text-secondary);line-height:1.7;font-size:1rem}
.legal-content ul{margin:16px 0 0;padding-left:22px;color:var(--text-secondary);line-height:1.7}
.legal-content li{margin-top:8px}
.legal-content a{color:var(--accent)}
.legal-back{display:inline-flex;align-items:center;gap:8px;color:var(--accent);text-decoration:none;font-size:.9rem;margin-bottom:30px}
.legal-back:hover{text-decoration:underline}

/* footer */
footer{padding:60px clamp(20px,6vw,80px) 40px;border-top:1px solid rgba(247,241,225,.12)}
.foot-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:30px;max-width:1180px;margin:0 auto}
.foot-brand{display:flex;align-items:center;gap:12px}
.foot-brand img{width:40px;height:40px;border-radius:50%;background:var(--panel)}
.foot-brand span{font-family:'Fraunces',serif;font-size:1.2rem}
.foot-links{display:flex;align-items:center;gap:26px;flex-wrap:wrap;font-size:.9rem;color:var(--text-secondary)}
.foot-links a{display:inline-flex;align-items:center;gap:7px;text-decoration:none;transition:color .3s var(--ease)}
.foot-links a:hover{color:var(--accent)}
.foot-links a svg{width:16px;height:16px;flex:none}
.foot-legal{
  max-width:1180px;margin:26px auto 0;padding-top:22px;border-top:1px solid rgba(247,241,225,.08);
  display:flex;flex-wrap:wrap;gap:20px;font-size:.78rem;color:var(--text-secondary);
}
.foot-legal a{text-decoration:none;opacity:.8;transition:opacity .3s var(--ease),color .3s var(--ease)}
.foot-legal a:hover{opacity:1;color:var(--accent)}
.foot-bottom{
  max-width:1180px;margin:20px auto 0;font-size:.76rem;color:var(--text-secondary);opacity:.7;
  display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between;
}
.foot-credit a{color:var(--accent);text-decoration:none;opacity:.9;transition:opacity .3s var(--ease)}
.foot-credit a:hover{opacity:1;text-decoration:underline}

/* cookie banner */
.cookie-banner{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:200;
  max-width:640px;margin:0 auto;
  background:var(--panel);color:var(--ink);border-radius:16px;
  padding:20px 22px;box-shadow:0 20px 50px rgba(0,0,0,.35);
  display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between;
  transform:translateY(140%);transition:transform .6s var(--ease);
}
.cookie-banner.show{transform:translateY(0)}
.cookie-banner p{font-size:.86rem;line-height:1.5;color:var(--ink-secondary);flex:1;min-width:220px}
.cookie-banner a{color:var(--ink);text-decoration:underline}
.cookie-banner .btn{padding:10px 20px;font-size:.86rem;flex:none}

/* whisper particles (fixed world layer) */
.world-layer{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;opacity:.5}
.mote{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--accent);opacity:.35;
  animation:drift 22s linear infinite;animation-delay:-4s}
@keyframes drift{
  0%{transform:translateY(0) translateX(0);opacity:0}
  10%{opacity:.4}
  90%{opacity:.3}
  100%{transform:translateY(-110vh) translateX(30px);opacity:0}
}
