/* Plan B — cinematic site. Palette: ink #0A0A0A, off-white #F7F6F2, champagne #C9B386. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:#0A0A0A;font-family:'Schibsted Grotesk',sans-serif;color:#F7F6F2;-webkit-font-smoothing:antialiased}
a{color:#F7F6F2}a:hover{color:#C9B386}
input{font-family:inherit}
img{display:block}
button{font:inherit;cursor:pointer}
@keyframes pbRise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes pbSlash{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- shared ---------- */
.wordmark{font-weight:700;letter-spacing:-.025em;line-height:1}
.wordmark i{font-style:normal;color:#C9B386}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#C9B386;font-weight:500}
.h2{margin:0;font-weight:700;font-size:clamp(28px,4.4vw,52px);letter-spacing:-.03em;line-height:1.02}
.section{padding:clamp(60px,8vw,110px) clamp(16px,5vw,64px);border-top:1px solid #1E1E1E}
.lede{margin:0;font-size:16px;line-height:1.55;color:#D9D5CB}
.muted{color:#8A867C}
.media{position:relative;overflow:hidden;background:#111}
.media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:18px;bottom:16px;z-index:1;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#F7F6F2;font-weight:500;background:rgba(10,10,10,.55);padding:6px 10px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.zoom>img{transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.zoom:hover>img{transform:scale(1.03)}
.zoom-sm:hover>img{transform:scale(1.02)}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.head-row>span{font-size:13px;color:#8A867C;line-height:1.5}

.btn{border:0;font-weight:700;border-radius:999px;transition:transform .2s,background .2s,border-color .2s,color .2s}
.btn-light{background:#F7F6F2;color:#0A0A0A;padding:16px 26px;font-size:15px}
.btn-light:hover{background:#C9B386;transform:translateY(-1px)}
.btn-light:active{transform:scale(.98)}
.btn-ghost{background:none;color:#F7F6F2;border:1px solid rgba(247,246,242,.5);padding:15px 22px;font-weight:500;font-size:15px;white-space:nowrap}
.btn-ghost:hover{border-color:#C9B386}
.btn-shop{background:#5A31F4;color:#fff}
.link-btn{background:none;border:0;padding:0;color:#F7F6F2}
.link-btn:hover{color:#C9B386}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:16px clamp(16px,4vw,48px);background:linear-gradient(#0A0A0A 60%,rgba(10,10,10,0));pointer-events:none}
.nav>*{pointer-events:auto}
.nav .wordmark{font-size:20px}
.nav-links{display:flex;gap:clamp(14px,2.5vw,28px);align-items:center;font-size:13px;font-weight:500}
.bag-btn{background:none;border:1px solid rgba(247,246,242,.5);padding:7px 12px;color:#F7F6F2;display:flex;gap:6px;align-items:center;border-radius:999px;transition:border-color .2s}
.bag-btn:hover{border-color:#C9B386}
.bag-count{background:#C9B386;color:#0A0A0A;font-weight:700;font-size:11px;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;margin-top:-72px;overflow:hidden;background:#0A0A0A;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:center;padding:clamp(96px,14vh,140px) clamp(16px,5vw,64px) clamp(40px,6vh,64px);gap:clamp(24px,4vw,56px)}
.hero-glow{position:absolute;inset:0;pointer-events:none;transition:background .25s}
.hero-horizon{position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,#2A2824 30%,#2A2824 70%,transparent);pointer-events:none}
.hero-copy{position:relative;display:flex;flex-direction:column;gap:20px;max-width:560px;animation:pbRise .8s cubic-bezier(.2,.8,.2,1) both}
.hero h1{margin:0;font-weight:700;font-size:clamp(40px,6vw,84px);letter-spacing:-.035em;line-height:.94;text-wrap:pretty}
.hero-sub{margin:0;font-size:clamp(15px,1.6vw,19px);line-height:1.5;color:#D9D5CB;text-wrap:pretty;max-width:460px}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.hero-perks{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px;font-size:13px;color:#8A867C}
.hero-stage-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;min-width:0}
.hero-stage{position:relative;width:min(100%,560px);height:clamp(420px,72vh,720px)}
.hero-halo{position:absolute;left:50%;top:50%;width:70%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(201,179,134,.16),rgba(201,179,134,0) 70%);pointer-events:none}
.hero-stage plan-b-bottle{position:absolute;inset:0;width:100%;height:100%}
.views{display:flex;align-items:center;gap:6px;border:1px solid #2A2824;border-radius:999px;padding:4px}
.views button{background:transparent;color:#8A867C;border:0;padding:8px 16px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;transition:background .2s,color .2s}
.views button[aria-pressed="true"]{background:#F7F6F2;color:#0A0A0A}
.cue{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8A867C;transition:opacity .4s}

/* ---------- how it works ---------- */
.how{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(32px,5vw,80px)}
.how-intro{position:sticky;top:96px;align-self:start;display:flex;flex-direction:column;gap:20px}
.how-intro h2{margin:0;font-weight:700;font-size:clamp(30px,4.6vw,56px);letter-spacing:-.03em;line-height:1}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.chips span{font-size:12px;font-weight:500;border:1px solid #2A2A2A;padding:7px 12px;border-radius:999px;color:#D9D5CB}
.how-media{aspect-ratio:4/3;margin-top:10px;max-width:460px}
.how-media .tag{left:14px;bottom:12px;font-size:11px;padding:5px 9px}
.how-media>img{object-position:50% 40%}
.steps{display:flex;flex-direction:column;gap:14px}
.step{display:grid;grid-template-columns:64px 1fr;gap:20px;padding:28px;border:1px solid #1E1E1E;transition:border-color .4s,background .4s,transform .4s}
.step-n{font-weight:700;font-size:44px;line-height:1;letter-spacing:-.03em}
.step-body{display:flex;flex-direction:column;gap:8px}
.step-title{font-weight:700;font-size:20px;letter-spacing:-.01em}
.step-text{font-size:14px;line-height:1.55}

/* ---------- moments ---------- */
.moments{padding:clamp(60px,8vw,110px) 0 clamp(40px,6vw,80px);border-top:1px solid #1E1E1E;overflow:hidden}
.moments-head{padding:0 clamp(16px,5vw,64px);display:flex;flex-direction:column;gap:12px;max-width:760px}
.ticker{margin-top:40px;display:flex;gap:16px;padding:0 clamp(16px,5vw,64px);will-change:transform;width:max-content}
.moment{width:300px;height:380px;flex:none;position:relative;overflow:hidden;border:1px solid #2A2A2A;background:#0F0F0F;transition:border-color .3s,transform .3s}
.moment:hover{border-color:#C9B386;transform:translateY(-4px)}
.moment>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.moment-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.1) 30%,rgba(10,10,10,.85) 100%)}
.moment-copy{position:absolute;inset:0;padding:28px;display:flex;flex-direction:column;justify-content:space-between}
.moment-line{font-weight:700;font-size:24px;letter-spacing:-.02em;line-height:1.15}

/* ---------- shared layouts ---------- */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(32px,5vw,80px);align-items:center}
.stack{display:flex;flex-direction:column;gap:18px}

/* ---------- gallery ---------- */
.col{display:flex;flex-direction:column;gap:32px}
/* capped at 3 columns so the tall + wide tiles always pack without holes */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(260px,calc((100% - 24px) / 3))),1fr));grid-auto-rows:minmax(240px,auto);gap:12px}
.g-tall{grid-row:span 2;min-height:420px}
.g-wide{grid-column:span 2;min-height:240px}
.g-wide>img{object-position:50% 55%}
.g-contain>img{object-fit:contain;background:#fff}
@media (max-width:620px){.g-wide{grid-column:auto}.g-tall{grid-row:auto}}

/* ---------- fabrics ---------- */
.fabrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:1px;background:#1E1E1E;border:1px solid #1E1E1E}
.fabric{background:#0A0A0A;padding:32px 24px;display:flex;flex-direction:column;gap:10px;min-height:170px;transition:background .3s}
.fabric:hover{background:#141414}
.fabric b{font-weight:700;font-size:22px;letter-spacing:-.02em}
.fabric span{font-size:13px;color:#8A867C;line-height:1.5}
.fabric em{margin-top:auto;font-style:normal;font-size:12px;color:#C9B386;letter-spacing:.1em;text-transform:uppercase;font-weight:500}

/* ---------- where it fits ---------- */
.fits{align-items:start}
.fits-media{aspect-ratio:4/5;max-width:420px;margin-top:8px}
.compare{display:flex;flex-direction:column;border-top:1px solid #2A2A2A}
.compare div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:16px;padding:18px 0;border-bottom:1px solid #2A2A2A;font-size:14px;line-height:1.5;transition:padding-left .3s}
.compare div:hover{padding-left:8px}
.compare b{font-weight:700}
.compare span{color:#8A867C}

/* ---------- pre-order ---------- */
.buy{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(32px,5vw,80px);align-items:start;background:linear-gradient(#0A0A0A,#111)}
.buy h2{margin:0;font-weight:700;font-size:clamp(34px,5.4vw,68px);letter-spacing:-.03em;line-height:.98}
.pack-gallery{display:flex;flex-direction:column;gap:12px;max-width:440px;margin-top:8px}
.offer-media{aspect-ratio:4/5;outline:none;touch-action:pan-y}
/* whole shot is always visible (contain); app.js paints any letterbox with the shot's own edge colours */
.offer-media>img{transition:opacity .35s;-webkit-user-drag:none;user-select:none;object-fit:contain}
.offer-media:focus-visible{box-shadow:0 0 0 2px #C9B386}
.pack-count{position:absolute;right:16px;top:14px;z-index:1;font-size:11px;letter-spacing:.12em;font-weight:500;color:#F7F6F2;background:rgba(10,10,10,.55);padding:5px 9px;border-radius:999px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.pack-nav{position:absolute;top:50%;z-index:1;width:40px;height:40px;margin-top:-20px;border:0;border-radius:50%;background:rgba(247,246,242,.9);color:#0A0A0A;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0 0 3px;opacity:0;transition:opacity .25s,background .2s}
.pack-nav.prev{left:12px}.pack-nav.next{right:12px}
.offer-media:hover .pack-nav,.offer-media:focus-within .pack-nav{opacity:1}
.pack-nav:hover{background:#C9B386}
@media (hover:none){.pack-nav{opacity:1}}
.pack-thumbs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.pack-thumbs::-webkit-scrollbar{display:none}
.pack-thumbs button{flex:none;width:64px;height:80px;padding:0;border:1px solid #2A2A2A;background:#111;overflow:hidden;opacity:.55;transition:opacity .2s,border-color .2s}
.pack-thumbs button:hover{opacity:.85}
.pack-thumbs button[aria-current="true"]{opacity:1;border-color:#C9B386}
.pack-thumbs img{width:100%;height:100%;object-fit:cover}
.pack-includes{margin:0;display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:1.5;color:#D9D5CB}
.pack-includes span:first-child{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8A867C;font-weight:500}
.offers{display:flex;flex-direction:column;gap:10px}
.offer{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:transparent;border:1px solid #2A2A2A;padding:14px 18px 14px 14px;color:#F7F6F2;border-radius:14px;transition:border-color .25s,background .25s}
.offer:hover{border-color:#C9B386}
.offer[aria-checked="true"]{background:#1E1E1E;border-color:#C9B386}
.offer-l{display:flex;gap:14px;align-items:center}
.offer-l img{width:48px;height:60px;object-fit:cover;border-radius:6px;flex:none;background:#F7F6F2}
.offer-l>span,.offer-r{display:flex;flex-direction:column;gap:3px}
.offer-r{align-items:flex-end}
.offer b{font-weight:700;font-size:16px}
.offer small{font-size:12px;color:#8A867C}
.offer-r small{font-size:11px}
.add-btn{width:100%;background:#F7F6F2;color:#0A0A0A;border:0;padding:19px;font-weight:700;font-size:16px;border-radius:999px;margin-top:8px;transition:background .2s,transform .2s}
.add-btn:hover{background:#C9B386}
.add-btn:active{transform:scale(.98)}
.pay-row{display:flex;gap:8px}
.pay-row button{flex:1;border:0;padding:14px;font-weight:700;font-size:13px;border-radius:999px;color:#fff}
.pay-row .apple{background:#1E1E1E}
.fine{font-size:12px;line-height:1.55;color:#8A867C}

/* ---------- faq ---------- */
.faq{display:flex;flex-direction:column;gap:28px;background:#111}
.faq-list{display:flex;flex-direction:column;border-top:1px solid #2A2A2A;max-width:860px}
.faq-item{border-bottom:1px solid #2A2A2A}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;background:none;border:0;padding:20px 0;color:#F7F6F2;text-align:left}
.faq-q span:first-child{font-weight:700;font-size:16px;line-height:1.4}
.faq-slash{font-weight:700;color:#C9B386;font-size:22px;line-height:1;transition:transform .3s;flex:none}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.2,.8,.2,1)}
.faq-a>div{overflow:hidden}
.faq-a p{margin:0 0 20px;font-size:14px;line-height:1.6;color:#D9D5CB;max-width:640px}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-item.open .faq-slash{transform:rotate(90deg)}

/* ---------- closing + footer ---------- */
.closing{position:relative;height:70vh;min-height:420px;overflow:hidden;border-top:1px solid #1E1E1E}
.closing>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.closing-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.2),rgba(10,10,10,.75))}
.closing-copy{position:absolute;left:0;right:0;bottom:0;padding:0 clamp(16px,5vw,64px) clamp(32px,5vw,56px);display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.closing h2{margin:0;font-weight:700;font-size:clamp(30px,5vw,64px);letter-spacing:-.03em;line-height:.98;max-width:560px}
.footer{padding:28px clamp(16px,5vw,64px);border-top:1px solid #1E1E1E;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:#8A867C;background:#111}
.footer .wordmark{font-size:16px;color:#F7F6F2}
.footer nav{display:flex;gap:18px;flex-wrap:wrap}

/* ---------- cart drawer ---------- */
.cart{position:fixed;inset:0;z-index:80;display:flex;justify-content:flex-end;background:rgba(10,10,10,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.cart[hidden]{display:none}
.cart-scrim{flex:1}
.cart-panel{width:min(420px,100%);height:100%;background:#F7F6F2;color:#0A0A0A;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.5);animation:pbRise .35s cubic-bezier(.2,.8,.2,1)}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #D9D5CB}
.cart-head b{font-size:16px}
.cart-head button{background:none;border:0;font-size:13px;font-weight:500;color:#0A0A0A;padding:6px}
.cart-body{flex:1;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:18px}
.cart-empty{margin:0;font-size:14px;line-height:1.5;color:#45433E}
.line{display:flex;gap:16px;align-items:center;border:1px solid #D9D5CB;padding:14px}
.line>img{width:56px;height:84px;object-fit:contain;flex:none;background:#fff;border-radius:4px}
.line-info{flex:1;display:flex;flex-direction:column;gap:4px}
.line-info b{font-size:14px}
.line-info small{font-size:12px;color:#45433E}
.qty{display:flex;align-items:center;gap:10px;margin-top:6px}
.qty button{width:28px;height:28px;border:1px solid #0A0A0A;background:none;color:#0A0A0A}
.qty span{font-size:13px;font-weight:500;min-width:16px;text-align:center}
.line-total{font-weight:700;font-size:14px}
.cart-foot{border-top:1px solid #D9D5CB;padding:18px 22px;display:flex;flex-direction:column;gap:12px}
.cart-foot .row{display:flex;justify-content:space-between;font-size:14px}
.checkout{width:100%;background:#0A0A0A;color:#F7F6F2;border:0;padding:16px;font-weight:700;font-size:15px}
.cart-pay{display:flex;gap:8px}
.cart-pay button{flex:1;color:#fff;border:0;padding:12px;font-weight:700;font-size:13px;background:#0A0A0A}
.cart-pay .btn-shop{background:#5A31F4}

/* ---------- sticky buy bar ---------- */
.sticky{position:fixed;left:0;right:0;bottom:16px;z-index:45;display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.sticky[hidden]{display:none}
.sticky-pill{display:flex;align-items:center;gap:14px;background:rgba(247,246,242,.96);color:#0A0A0A;border-radius:999px;padding:6px;box-shadow:0 20px 50px rgba(0,0,0,.5);pointer-events:auto;animation:pbRise .4s cubic-bezier(.2,.8,.2,1)}
.sticky-pill img{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#fff}
.sticky-pill>span{display:flex;flex-direction:column;gap:1px}
.sticky-pill b{font-size:14px}
.sticky-pill small{font-size:11px;color:#45433E}
.sticky-pill button{background:#0A0A0A;color:#F7F6F2;border:0;padding:13px 20px;font-weight:700;font-size:14px;border-radius:999px}
.sticky-pill button:hover{background:#C9B386;color:#0A0A0A}
