/* What Happens Next — styles
   Layout system = the Minted template, measured at iPhone 14 Pro (393 × 852):
     • canvas 393 wide, scaled by WIDTH (see <head>), must still work at 393 × 660 (Safari with toolbars)
     • every screen: header 56 → (status row 52) → content (24px side margins) → footer with CTAs
     • CTAs 329 × 52, radius 60, 24px bold, 9px apart, 24–28px under the last one
     • cards: radius 20, padding 15/17, 10px apart
   All px are design px on that canvas. */

@font-face{font-family:"Bricolage Grotesque";src:url(../assets/fonts/BricolageGrotesque-Variable.woff2) format("woff2");font-weight:200 800;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:"WHN Logo";src:url(../assets/fonts/Montserrat-BlackItalic.woff2) format("woff2");font-weight:900;font-style:italic;font-display:block}
@font-face{font-family:"Plus Jakarta Sans";src:url(../assets/fonts/PlusJakartaSans-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(../assets/fonts/PlusJakartaSans-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(../assets/fonts/PlusJakartaSans-800.woff2) format("woff2");font-weight:800;font-display:swap}

:root{
  /* spacing tokens (Minted) */
  --side:24px;          /* content screens */
  --hdr-h:56px; --status-h:52px;
  --cta-w:329px; --cta-h:52px; --cta-gap:9px; --cta-bottom:26px;
  --card-r:20px; --card-pad:15px 17px; --card-gap:10px;
  --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
  /* colours */
  --bg-1:#1c0b22; --bg-2:#2c0452; --bg-3:#2c0091; --bg-4:#11003b;
  --yellow:#ffee59; --yellow-2:#ffe45a; --muted:#a897bd; --text-2:#d6cce6;
  --card-bg:rgba(255,255,255,.05); --card-line:rgba(255,255,255,.12);
  --sheet:#4a1c7f; --hbtn:#57169a;
  --green-1:#31ad83; --green-2:#24946b; --green-line:#3fd09b; --green-badge:#0a5a36;
  --red-1:#dc2d2f; --red-2:#95242b; --red-line:#ef5b5f; --red-badge:#8d0505;
  --gold-1:#8c6355; --gold-2:#74504a; --gold-line:#d0a021; --gold-badge:#ecbd0c;
  --btn-grad:linear-gradient(90deg,#fffefb 0%,#fff6aa 50%,#ffef5f 100%);
  --btn-white:linear-gradient(90deg,#ffffff 0%,#f1eff5 50%,#d6d2df 100%);
  --font:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation}
html{background:#14023f}
body{font-family:var(--font);color:#fff;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;
  background:
    radial-gradient(120% 60% at 0% 100%, var(--bg-3) 0%, rgba(44,0,145,0) 60%),
    radial-gradient(90% 50% at 100% 0%, var(--bg-2) 0%, rgba(44,4,82,0) 70%),
    linear-gradient(160deg, var(--bg-1) 0%, #21063f 45%, var(--bg-4) 100%)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none}
button:focus-visible,a:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
img{display:block;-webkit-user-drag:none;user-select:none}

/* ---------- canvas ---------- */
.app{position:absolute;left:50%;top:0;width:var(--w,393px);height:var(--h,852px);overflow:hidden;
  transform:translateX(-50%) scale(var(--s,1));transform-origin:50% 0}
.screen{position:absolute;inset:0;display:none;flex-direction:column;padding-top:var(--safe-t)}
.screen.active{display:flex;animation:fade .28s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- header: 56 tall · 12 top · 20 sides · 8 bottom ---------- */
.hdr{flex:none;height:var(--hdr-h);padding:12px 20px 8px;display:flex;align-items:center;gap:12px}
.hslot{width:36px;height:36px;flex:none}
.htitle{flex:1;min-width:0;text-align:center;font-weight:800;font-size:22px;letter-spacing:-.01em;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbtn{position:relative;width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:rgba(87,22,154,.85);border:1px solid rgba(255,255,255,.14)}
.hbtn::after{content:"";position:absolute;inset:-4px}              /* 44px tap target */
.hbtn svg{width:18px;height:18px;margin-left:-2px}
.mute{position:absolute;z-index:15;top:calc(var(--safe-t) + 12px);right:20px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
.mute::after{content:"";position:absolute;inset:-4px}
.mute svg{width:18px;height:18px}
.mute .off{display:none}
.mute[aria-pressed="true"] .on{display:none}
.mute[aria-pressed="true"] .off{display:block}

/* ---------- status row: 52 tall · 8 top · 24 sides · 12 bottom ---------- */
.status{flex:none;height:var(--status-h);padding:8px var(--side) 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.pill{height:32px;padding:5px 12px 5px 12px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;
  font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--yellow-2);background:rgba(255,238,89,.08);border:1px solid rgba(255,238,89,.22);white-space:nowrap;
  transition:background .25s,color .25s}
.pill.good{color:#1a0450;background:var(--btn-grad);border-color:transparent}
.pill.bad{color:#ffd0d0;background:rgba(220,45,47,.18);border-color:rgba(239,91,95,.45)}
.hearts{display:flex;gap:8px;flex:none}
.hearts img{width:22px;height:21px;transition:filter .3s,transform .3s}
.hearts img.lost{filter:brightness(.45) saturate(.8)}
.hearts img.pop{animation:pop .5s}
@keyframes pop{30%{transform:scale(1.35)}100%{transform:scale(1)}}

/* ---------- content: 24px side margins, scrolls only if it truly must ---------- */
.content{flex:1 1 auto;min-height:0;padding:4px var(--side) 12px;display:flex;flex-direction:column;
  overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.content::-webkit-scrollbar{display:none}
.content.center{justify-content:center;align-items:center}

/* ---------- footer CTAs: 329 × 52 · 9 apart · ~26 below ---------- */
.foot{flex:none;padding:12px var(--side) calc(var(--safe-b) + var(--cta-bottom));display:flex;flex-direction:column;align-items:center;gap:var(--cta-gap)}
.btn{display:flex;align-items:center;justify-content:center;width:var(--cta-w);max-width:100%;height:var(--cta-h);padding:12px 20px;border-radius:60px;
  font-weight:700;font-size:22px;letter-spacing:-.005em;color:#0b0518;background:var(--btn-grad);transition:transform .12s,filter .2s}
.btn:active{transform:scale(.98)}
.btn.white{background:var(--btn-white)}
.btn[disabled]{cursor:not-allowed;color:#1a0450;background:linear-gradient(90deg,#9480bf 0%,#8f7d9b 50%,#8a7852 100%)}
.btn:not([disabled]).pulse{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,238,89,0)}50%{box-shadow:0 0 0 7px rgba(255,238,89,.16)}}

/* ---------- shared text + cards ---------- */
.card{border-radius:var(--card-r);padding:var(--card-pad);background:var(--card-bg);border:1px solid var(--card-line)}
.eyebrow{font-weight:800;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow-2)}
.lead{color:var(--muted);font-size:15px;line-height:1.5}
.learn-link{display:inline-block;color:var(--yellow);font-weight:700;font-size:14px;text-decoration:none}
.learn-link:active{opacity:.7}
.learn-link.center{display:block;text-align:center}

/* ---------- 1. intro ---------- */
.intro-logo{text-align:center;animation:introIn .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes introIn{from{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:none}}
.logo{font-family:"WHN Logo","Montserrat",sans-serif;font-style:italic;font-weight:900;line-height:.86;letter-spacing:-.02em;text-transform:uppercase;font-size:58px}
.logo > span{display:block}
.logo > span:not(.next){padding-right:.06em}
.logo .next{font-size:72px;width:max-content;margin:0 auto;padding:0 .08em;background:linear-gradient(180deg,#ffe800 0%,#ffc400 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.tagline{margin-top:20px;font-size:15px;letter-spacing:.06em;font-weight:500;color:#fff}

/* ---------- 2. how it works ---------- */
#s-how .lead{margin-top:4px}
.how-list{list-style:none;display:flex;flex-direction:column;gap:var(--card-gap);margin-top:20px}
.how-list .card{display:flex;gap:14px;align-items:center}
.how-list img{width:48px;height:48px;border-radius:12px;flex:none}
.how-list h3{font-weight:700;font-size:16px}
.how-list p{color:var(--muted);font-size:14px;line-height:1.45;margin-top:2px}

/* ---------- 3. news ---------- */
.news-title{font-weight:800;font-size:30px;line-height:1.1;letter-spacing:-.01em}
.news-body{color:var(--text-2);font-size:16px;line-height:1.5;margin-top:10px}
.news-art{flex:1 1 300px;min-height:120px;max-height:380px;margin:16px -8px 0;display:flex;justify-content:center;overflow:hidden;
  -webkit-mask-image:radial-gradient(ellipse 72% 68% at 50% 52%,#000 52%,transparent 100%);mask-image:radial-gradient(ellipse 72% 68% at 50% 52%,#000 52%,transparent 100%)}
.news-art img{width:100%;height:100%;object-fit:contain}
.news-art .ph{width:100%;height:100%;display:grid;place-items:center;font-size:88px;background:radial-gradient(60% 60% at 50% 50%,rgba(124,92,252,.35),transparent 70%)}

/* ---------- 4. prediction ---------- */
.outcomes{list-style:none;display:flex;flex-direction:column;gap:var(--card-gap)}
.oc{width:100%;display:flex;align-items:center;gap:14px;min-height:60px;padding:9px 14px;border-radius:var(--card-r);text-align:left;
  background:var(--card-bg);border:1px solid var(--card-line);transition:background .25s,border-color .25s,box-shadow .25s,opacity .25s,min-height .25s}
.oc .ico{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:19px;flex:none}
.oc .lbl{flex:1;font-weight:600;font-size:15px;line-height:1.35}
.oc .slot{width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;border:1.5px dashed rgba(255,255,255,.35)}
.oc .slot::before{content:"+";font-size:13px}
.oc .slot[data-n]{border:0}
.oc .slot[data-n]::before{content:attr(data-n);font-weight:700;font-size:15px}
.oc.picked{background:linear-gradient(180deg,var(--gold-1),var(--gold-2));border:2px solid var(--gold-line);box-shadow:0 0 16px rgba(230,170,30,.22)}
.oc.picked .slot{background:var(--gold-badge)}
.oc.correct{background:linear-gradient(180deg,var(--green-1),var(--green-2));border:2px solid var(--green-line);box-shadow:0 0 16px rgba(49,195,141,.2)}
.oc.correct .slot{background:var(--green-badge)}
.oc.wrong{background:linear-gradient(180deg,var(--red-1),var(--red-2));border:2px solid var(--red-line);box-shadow:0 0 16px rgba(220,45,47,.2)}
.oc.wrong .slot{background:var(--red-badge)}
.oc.locked{cursor:default}
.oc.shake{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.oc.bump{animation:bump .28s ease}
@keyframes bump{40%{transform:scale(1.03)}100%{transform:scale(1)}}
.oc.celebrate{animation:bump .5s ease both}
.i-red{background:linear-gradient(135deg,#e01a1a,#f04a0a)}
.i-green{background:linear-gradient(135deg,#0aa84a,#00c853)}
.i-blue{background:linear-gradient(135deg,#1f5ef0,#2f7cff)}
.i-pink{background:linear-gradient(135deg,#e0105a,#f03040)}
.i-orange{background:linear-gradient(135deg,#ea8a00,#f5a300)}
.i-violet{background:linear-gradient(135deg,#7a3cf0,#a35cff)}
.i-teal{background:linear-gradient(135deg,#0a9a9a,#18c0b0)}
/* answers frame: options outside the chain step back so the chain + summary read clearly */
#s-predict.done .oc:not(.correct){min-height:42px;padding-top:5px;padding-bottom:5px;opacity:.5}
#s-predict.done .oc:not(.correct) .ico{width:28px;height:28px;font-size:14px}
#s-predict.done .oc:not(.correct) .lbl{font-size:13.5px}
#s-predict.done .oc:not(.correct) .slot{width:22px;height:22px}
.summary-box{margin-top:var(--card-gap)}
.summary-box p{color:var(--text-2);font-size:14px;line-height:1.5;margin-top:6px}
.summary-box .learn-link{margin-top:10px}

/* ---------- 5. summary ---------- */
.content.summary{justify-content:space-evenly;gap:12px}
.sum-top{text-align:center}
.sum-top .emoji{font-size:40px;line-height:1}
.result-title{font-weight:800;font-size:28px;line-height:1.15;color:var(--yellow);margin-top:10px;letter-spacing:-.01em;text-wrap:balance}
.sum-top .lead{margin-top:8px;font-size:14px}
.perf{padding:16px 17px 6px}
.perf .eyebrow span{color:var(--muted);letter-spacing:.08em;font-weight:600}
.perf ul{list-style:none;margin-top:6px}
.perf li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid rgba(255,255,255,.07)}
.perf li:first-child{border-top:0}
.perf .pi{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(120,110,200,.22);flex:none}
.perf .pi svg{width:18px;height:18px}
.perf .k{flex:1;font-size:15px}
.perf .v{font-weight:700;font-size:16px}

/* ---------- 6. share ---------- */
.content.share{align-items:center;justify-content:space-evenly;gap:12px}
.result-card{position:relative;width:100%;height:220px;flex:none;border-radius:24px;overflow:hidden;text-align:center;font-family:"Plus Jakarta Sans",sans-serif;
  background:radial-gradient(60% 70% at 15% 15%,rgba(110,50,170,.55),transparent 70%),radial-gradient(60% 70% at 90% 40%,rgba(60,50,140,.6),transparent 70%),#1d1236;border:1px solid rgba(255,255,255,.12)}
.result-card .trophy{font-size:44px;margin-top:48px;line-height:1}
.result-card .big{font-weight:800;font-size:32px;margin-top:16px;letter-spacing:-.02em;line-height:1}
.result-card .big b{color:#f0c544}
.result-card .sm{font-weight:800;font-size:17px;color:#c9a6f2;margin-top:6px}
.conf{position:absolute;border-radius:2px}
.c1{left:56px;top:30px;width:8px;height:18px;background:#e9b33a;transform:rotate(50deg)}
.c2{left:42px;top:84px;width:14px;height:14px;background:#a585e8;transform:rotate(15deg)}
.c3{right:66px;top:30px;width:14px;height:14px;background:#e86b6b;transform:rotate(12deg)}
.c4{right:46px;top:66px;width:14px;height:11px;background:#d8b23c}
.c5{right:50px;top:110px;width:7px;height:16px;background:#e7738c;transform:rotate(-50deg)}
.share-q{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:22px;line-height:1.3;text-align:center}
.share-q span{display:block;color:var(--yellow)}
.mascot-wrap{flex:1 1 160px;min-height:80px;max-height:190px;display:flex;justify-content:center;align-items:center}
.mascot{height:100%;max-height:180px;width:auto;aspect-ratio:380/390;object-fit:contain;
  -webkit-mask:radial-gradient(closest-side,#000 82%,transparent);mask:radial-gradient(closest-side,#000 82%,transparent)}
.share-sheet{flex:none;border-radius:26px 26px 0 0;background:#1a0d2f;border-top:1px solid rgba(255,255,255,.08);padding:12px 6px calc(var(--safe-b) + 26px)}
.handle{width:40px;height:4px;border-radius:4px;background:rgba(255,255,255,.25);margin:0 auto 16px}
.targets{display:flex;justify-content:space-around}
.targets button{display:flex;flex-direction:column;align-items:center;gap:8px;font-family:"Plus Jakarta Sans",sans-serif;font-size:12px;color:#d0c8dc;min-width:56px}
.targets .t{width:50px;height:50px;border-radius:50%;display:grid;place-items:center}
.targets svg{width:25px;height:25px}

/* ---------- modals ---------- */
.scrim{position:absolute;inset:0;background:rgba(5,0,20,.6);display:none;z-index:20;animation:fadein .2s}
.scrim.open{display:block}
@keyframes fadein{from{opacity:0}}
.sheet{position:absolute;left:0;right:0;background:var(--sheet);z-index:21;display:none;text-align:center;padding:0 var(--side);max-height:100%;overflow-y:auto}
.sheet.open{display:flex;flex-direction:column;align-items:center}
.sheet.bottom{bottom:0;border-radius:26px 26px 0 0;padding-bottom:calc(var(--safe-b) + var(--cta-bottom));animation:up .3s ease}
.sheet.center{top:50%;left:16px;right:16px;transform:translateY(-50%);border-radius:24px;padding-bottom:24px;animation:fadein .25s}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
.sheet .handle{margin-top:12px;width:60px}
.sheet h2{font-weight:800;font-size:26px;letter-spacing:-.01em}
.sheet p{font-size:16px;line-height:1.5;color:var(--text-2)}
.sheet .btn{width:var(--cta-w);margin-top:var(--cta-gap)}
#exitSheet h2{margin-top:16px}
#exitSheet img{width:84px;height:84px;margin:16px auto 0}
#exitSheet p{margin:20px 0 14px}
#heartsModal h2{margin-top:28px}
#heartsModal p.s{font-size:15px;margin-top:10px}
#heartsModal img{width:84px;height:80px;margin:26px auto 18px}

/* ---------- toast (sits in the 56px band above the footer) ---------- */
.toast{position:absolute;left:50%;bottom:calc(var(--safe-b) + 170px);transform:translateX(-50%);height:44px;padding:0 18px;border-radius:10px;display:flex;align-items:center;
  background:#fff;color:#1a0450;font-weight:700;font-size:14px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s;z-index:40;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.toast.show{opacity:1}
.fx-canvas{position:absolute;inset:0;pointer-events:none;z-index:30}

/* ---------- adapting to shorter screens ----------
   .short  : usable height < 760 (phone browsers with toolbars)
   .xshort : usable height < 640 → header 44, status row tighter (Minted rule) */
.short #s-predict.done .outcomes{gap:7px}
.short #s-predict.done .oc.correct{min-height:52px;padding-top:6px;padding-bottom:6px}
.short #s-predict.done .oc:not(.correct){min-height:36px;padding-top:3px;padding-bottom:3px}
.short #s-predict.done .oc:not(.correct) .ico{width:24px;height:24px;font-size:12px}
.short #s-predict.done .oc:not(.correct) .slot{display:none}
.short #s-predict.done .summary-box{padding:12px 15px}
.short #s-predict.done .summary-box p{font-size:13.5px;line-height:1.45}
.short #s-predict.done .summary-box .learn-link{margin-top:6px;font-size:13.5px}
/* the two answer-frame CTAs sit side by side so the chain and summary keep their room */
.short #s-predict.done .foot{flex-direction:row;justify-content:center}
.short #s-predict.done .foot .btn{flex:1 1 0;width:auto;font-size:18px;padding:12px 10px}
.short .oc{min-height:56px}
.short .perf li{padding:8px 0}
.short .sum-top .emoji{font-size:32px}
.short .result-card{height:190px}
.short .result-card .trophy{margin-top:36px}
.xshort{--hdr-h:44px;--status-h:44px}
.xshort .hdr{padding:6px 20px 2px}
.xshort .status{padding:4px var(--side) 8px}
.xshort .mute{top:calc(var(--safe-t) + 4px)}
.xshort .foot{padding-bottom:calc(var(--safe-b) + 18px)}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.short #s-predict.done .foot .btn{font-size:16.5px;white-space:nowrap;padding:12px 8px}
.short #s-predict.done .outcomes{gap:6px}
