@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=Marcellus&family=Barlow+Semi+Condensed:wght@500;600&display=swap");:root{--bg:#0b0e14;--ink:#eef0f4;--key:#d9a066;--accent:#d9a066;--dim:#b6bcc8;--good:#7db486;--bad:#d98a72;--line:rgba(217,160,102,.22)}body,html{background:var(--bg);color:var(--ink)}body{font-family:Barlow Semi Condensed,sans-serif;-webkit-font-smoothing:antialiased}.phone{position:relative;width:100%;max-width:430px;margin-inline:auto;height:100dvh;min-height:100dvh;background:var(--bg);overflow:hidden;display:flex;flex-direction:column}.scene{inset:0;z-index:0}.photo,.scene{position:absolute}.photo{top:0;left:0;right:0;height:32dvh;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 45%,rgba(0,0,0,.6) 70%,rgba(0,0,0,0));mask-image:linear-gradient(180deg,#000 45%,rgba(0,0,0,.6) 70%,rgba(0,0,0,0))}.photo img{width:100%;height:100%;object-fit:cover;object-position:57% 50%;display:block;filter:brightness(.82) saturate(.9)}.dim{top:0;left:0;right:0;height:32dvh;background:rgba(11,14,20,.5)}.dim,.grad{position:absolute;pointer-events:none}.grad{inset:0;background:linear-gradient(180deg,rgba(11,14,20,0) 11%,rgba(11,14,20,.34) 18%,rgba(11,14,20,.78) 25%,#0b0e14 30%,#0b0e14)}.status{position:absolute;z-index:6;top:0;left:0;right:0;display:flex;align-items:center;justify-content:flex-end;gap:20px;padding:max(15px,env(safe-area-inset-top)) 18px 26px;background:linear-gradient(180deg,rgba(6,8,13,.78),rgba(6,8,13,.34) 52%,rgba(6,8,13,0));font-size:14.5px;letter-spacing:.03em;color:#b6bcc8}.status .stat{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-shadow:0 1px 6px rgba(0,0,0,.7)}.status .stat svg{width:19px;height:19px;flex:0 0 19px;color:rgba(217,160,102,.82)}.status .stat b{font-weight:600;color:#e7eaf0}.status .stat .frac{color:#8f96a4;font-size:13px}.locband{position:absolute;z-index:6;left:0;right:0;top:calc(30dvh - 110px);height:118px;display:flex;flex-direction:column;justify-content:flex-end;padding:0 28px 16px;pointer-events:none;background:linear-gradient(180deg,rgba(6,8,13,0),rgba(6,8,13,.5) 44%,rgba(6,8,13,.88) 76%,rgba(6,8,13,.62) 92%,rgba(6,8,13,.2))}.locband .tick{width:30px;height:2px;border-radius:1px;margin-bottom:8px;background:linear-gradient(90deg,#d9a066,rgba(217,160,102,.15))}.locband .title{font-family:Marcellus,serif;font-size:23px;line-height:1.02;letter-spacing:.11em;text-transform:uppercase;color:#f0e9da;text-shadow:0 2px 16px rgba(0,0,0,.9),0 1px 3px rgba(0,0,0,.85)}.locband .sub{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:500;font-size:15px;letter-spacing:.01em;color:rgba(230,211,175,.94);margin-top:4px;text-shadow:0 1px 3px rgba(0,0,0,.95),0 1px 12px rgba(0,0,0,.9)}.lower{position:relative;z-index:5;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;padding-top:30dvh;background:transparent}.lower:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;height:210px;pointer-events:none;background:radial-gradient(130% 100% at 50% -8%,rgba(217,160,102,.07) 0,rgba(217,160,102,0) 52%),linear-gradient(180deg,rgba(18,16,22,.55),rgba(11,14,20,.2) 46%,rgba(11,14,20,0))}.dim,.grad,.photo,.scene{transition:transform .34s ease,opacity .34s ease}.locband{transition:background .34s ease}.phone.is-collapsed .dim,.phone.is-collapsed .photo{transform:translateY(-100%);opacity:0}.phone.is-collapsed .grad{opacity:0}.phone.is-collapsed .locband{top:0;height:auto;justify-content:flex-start;z-index:5;padding:max(9px,env(safe-area-inset-top)) 28px 9px;background:linear-gradient(180deg,rgba(6,8,13,.96),rgba(6,8,13,.8) 72%,rgba(6,8,13,0))}.phone.is-collapsed .locband .tick{display:none}.phone.is-collapsed .locband .title{font-size:15px;letter-spacing:.09em;color:#f4eee2;text-shadow:0 1px 10px rgba(0,0,0,.95),0 1px 2px rgba(0,0,0,.9)}.phone.is-collapsed .lower{padding-top:calc(env(safe-area-inset-top, 0px) + 48px)}@media (prefers-reduced-motion:reduce){.dim,.grad,.locband,.lower,.photo,.scene{transition:none}}.game-screen{position:fixed;inset:0;z-index:70;background:var(--bg);justify-content:center;padding:max(32px,env(safe-area-inset-top)) 28px max(32px,env(safe-area-inset-bottom));animation:roll-overlay-in .35s ease both}.game-screen,.gs-inner{display:flex;align-items:center}.gs-inner{width:100%;max-width:420px;text-align:center;flex-direction:column;gap:18px}.gs-title{font-family:Marcellus,serif;font-size:30px;letter-spacing:.06em;color:#f0e9da;text-shadow:0 2px 16px rgba(0,0,0,.8)}.gs-title.is-good{color:var(--good)}.gs-title.is-bad{color:var(--bad)}.gs-text{font-family:Cormorant Garamond,serif;font-size:19px;line-height:1.5;color:#d5dae4}.gs-btn{margin-top:8px;font-family:Barlow Semi Condensed,sans-serif;font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:#22160b;padding:14px 40px;border-radius:12px;border:1px solid rgba(232,184,122,.5);background:radial-gradient(130% 130% at 50% 34%,#e6ba7c 0,#cc9f66 52%,#ab7a41 100%);box-shadow:0 10px 30px rgba(217,160,102,.3),0 3px 10px rgba(0,0,0,.45);cursor:pointer}.gs-btn:active{transform:scale(.98)}@media (prefers-reduced-motion:reduce){.game-screen{animation:none}}.ribbon{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 28px;display:flex;flex-direction:column;gap:7px;-webkit-mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,.45) 2.5%,#000 7%,#000);mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,.45) 2.5%,#000 7%,#000);scrollbar-width:none}.ribbon::-webkit-scrollbar{display:none}.ribbon>.para:first-child{margin-top:auto}.para{font-family:Cormorant Garamond,serif;font-size:20px;line-height:1.32;color:#d5dae4;text-shadow:0 1px 10px rgba(0,0,0,.95)}.para.p3{opacity:.42}.para.p4{opacity:.66}.para.quote{font-style:italic;color:#ead1a8}.para.fresh{opacity:1;font-size:22px;line-height:1.3;color:#f6f4ee;font-weight:600;border-left:2px solid rgba(217,160,102,.6);padding-left:14px;margin-left:-16px;text-shadow:0 2px 14px rgba(0,0,0,.95)}.replies{padding:13px 28px 2px;display:flex;flex-direction:column;gap:9px;opacity:.92}.reply{display:flex;align-items:baseline;gap:11px;font-family:Cormorant Garamond,serif;padding-block:2px;transition:opacity .15s ease,color .15s ease}.reply.active{cursor:pointer}.reply.active:active{opacity:.7}.reply .cue{flex:0 0 60px;min-width:0;text-align:right;font-family:Barlow Semi Condensed,sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding-top:5px}.reply .line{flex:1 1;font-size:16.5px;line-height:1.32}.reply .line .meta{font-size:11px}.reply .line .lock,.reply .line .meta{font-family:Barlow Semi Condensed,sans-serif;letter-spacing:.02em}.reply .line .lock{display:inline-flex;align-items:center;gap:4px;font-size:10.5px}.reply .line .lock svg{width:11px;height:11px;flex:0 0 11px}.reply.active .cue{color:rgba(217,160,102,.5)}.reply.active .line{color:rgba(226,216,199,.62)}.reply.active .line .meta{color:rgba(217,160,102,.5)}.reply.locked{cursor:default}.reply.locked .cue{color:rgba(150,158,172,.3)}.reply.locked .line{color:rgba(160,168,182,.36);font-style:italic}.reply.locked .line .lock{color:rgba(160,168,182,.4);font-style:normal}.voicewrap{display:flex;flex-direction:column;align-items:center;margin:14px 0 max(20px,env(safe-area-inset-bottom))}.voicewrap .onboard{max-width:284px;text-align:center;margin-bottom:15px;font-family:Cormorant Garamond,serif;font-style:italic;font-weight:500;font-size:15.5px;line-height:1.32;letter-spacing:.01em;color:rgba(233,215,182,.9);text-shadow:0 1px 8px rgba(0,0,0,.92)}.voice{position:relative;width:78px;height:78px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#22160b;background:radial-gradient(130% 130% at 50% 34%,#e6ba7c 0,#cc9f66 52%,#ab7a41 100%);box-shadow:0 0 0 8px rgba(217,160,102,.06),0 10px 30px rgba(217,160,102,.3),0 3px 10px rgba(0,0,0,.45),inset 0 -2px 6px rgba(0,0,0,.22);border:1px solid rgba(232,184,122,.45);cursor:pointer}.voice:before{content:"";position:absolute;inset:-9px;border-radius:50%;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,rgba(217,160,102,.26),rgba(217,160,102,0) 72%);animation:voice-breath 3.4s ease-in-out infinite}@keyframes voice-breath{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.16);opacity:.85}}@media (prefers-reduced-motion:reduce){.voice:before{animation:none;opacity:.6}}.voice svg{width:31px;height:31px}.voicewrap .vlabel{margin-top:11px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(226,178,116,.95);font-weight:600}.roll-overlay{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:roll-overlay-in .3s ease both}@keyframes roll-overlay-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.roll-overlay{animation:none}}.roll-inner{width:100%;max-width:430px;margin-inline:auto;min-height:100dvh;display:flex;flex-direction:column;padding:max(22px,env(safe-area-inset-top)) 26px max(24px,env(safe-area-inset-bottom))}.roll-kicker{font-family:Barlow Semi Condensed,sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.roll-threshold{display:flex;align-items:baseline;gap:8px;padding:11px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,rgba(217,160,102,.07),rgba(217,160,102,0))}.rt-label{font-family:Barlow Semi Condensed,sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(217,160,102,.8)}.rt-val{font-family:Marcellus,serif;font-size:24px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rt-diff{font-size:15px;margin-left:auto}.roll-nodc,.rt-diff{font-family:Cormorant Garamond,serif;font-style:italic;color:var(--dim)}.roll-nodc{font-size:14px;opacity:.7;margin-bottom:14px}.roll-die-area{display:grid;place-items:center;perspective:640px;margin:2px 0 4px}.roll-die-wrap{position:relative;width:104px;height:104px;display:grid;place-items:center}.roll-glow{position:absolute;inset:-24%;border-radius:50%;z-index:0;pointer-events:none;background:radial-gradient(circle,rgba(217,160,102,.3),transparent 62%);filter:blur(8px);opacity:.5}.roll-die{width:104px;height:104px;position:relative;z-index:1}.roll-die polygon{fill:rgba(217,160,102,.06);stroke:var(--accent);stroke-width:1.4;stroke-linejoin:round}.roll-halo{position:absolute;z-index:2;width:88px;height:66px;pointer-events:none;background:radial-gradient(ellipse at center,rgba(0,0,0,.95) 0,rgba(0,0,0,.7) 42%,transparent 72%);filter:blur(9px)}.roll-num{position:absolute;z-index:3;font-family:Marcellus,serif;font-size:42px;color:var(--ink);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-shadow:0 2px 14px rgba(0,0,0,.9),0 0 30px rgba(0,0,0,.85)}.roll-range{font-family:Barlow Semi Condensed,sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(182,188,200,.62);text-align:center;margin-bottom:14px}.roll-ledger{display:flex;flex-direction:column}.rl-row{display:flex;align-items:baseline;gap:12px;padding:8px 0;animation:roll-slidein .5s cubic-bezier(.2,.9,.3,1) both}.rl-row:first-child{animation-delay:.05s}.rl-row:nth-child(2){animation-delay:.18s}.rl-row:nth-child(3){animation-delay:.31s}.rl-op{font-family:Marcellus,serif;font-size:18px;color:var(--accent);flex:0 0 16px;text-align:center}.rl-name{flex:1 1;font-family:Cormorant Garamond,serif;font-size:18px;color:var(--dim)}.rl-qual{font-style:italic;font-size:15px;color:rgba(182,188,200,.6)}.rl-val{font-family:Barlow Semi Condensed,sans-serif;font-weight:600;font-size:18px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rl-rule{height:1px;background:var(--line);margin:6px 0}.rl-total{animation-delay:.46s}.rl-total .rl-name{font-family:Marcellus,serif;font-size:17px;letter-spacing:.05em;text-transform:uppercase;color:rgba(217,160,102,.85)}.rl-total .rl-val{font-family:Marcellus,serif;font-size:28px;color:var(--ink)}.roll-verdict{margin-top:12px;text-align:center}.roll-word{font-family:Marcellus,serif;font-size:26px;letter-spacing:.02em;animation:roll-slidein .5s ease .6s both}.roll-word.is-bad{color:var(--bad)}.roll-word.is-good{color:var(--good)}.roll-vs{font-family:Barlow Semi Condensed,sans-serif;font-size:15px;letter-spacing:.03em;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:5px;font-weight:600;animation:roll-slidein .5s ease .68s both}.roll-bar{margin:14px auto 0;max-width:260px;animation:roll-slidein .5s ease .74s both}.rb-track{position:relative;display:block;height:6px;border-radius:3px;background:rgba(182,188,200,.14);overflow:visible}.rb-fill{left:0;border-radius:3px;background:rgba(217,160,102,.55)}.rb-fill,.rb-gap{position:absolute;top:0;height:100%}.rb-gap{background-image:repeating-linear-gradient(45deg,currentColor 0 3px,transparent 3px 6px);opacity:.5}.rb-gap.is-bad{color:var(--bad)}.rb-gap.is-good{color:var(--good)}.rb-mark{position:absolute;top:-3px;width:2px;height:12px;transform:translateX(-1px);border-radius:1px}.rb-dc{background:var(--ink)}.roll-reason{font-family:Cormorant Garamond,serif;font-style:italic;font-size:16px;line-height:1.38;color:rgba(182,188,200,.82);margin-top:10px;animation:roll-slidein .5s ease .82s both}.roll-cta{margin-top:auto;padding-top:12px}.roll-btn{width:100%;font-family:Barlow Semi Condensed,sans-serif;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:transparent;border:1px solid var(--line);border-radius:12px;padding:15px;cursor:pointer}.roll-btn:active{background:rgba(217,160,102,.08)}@keyframes roll-slidein{0%{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.rl-row,.roll-bar,.roll-reason,.roll-vs,.roll-word{animation:none}}.rv-caret{display:inline-block;width:2px;height:1em;margin-left:1px;vertical-align:-.12em;background:var(--key);animation:rv-blink 1s step-end infinite}@keyframes rv-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.rv-word{transition:opacity .3s ease}.rv-line{display:block;opacity:0;transform:translateX(12px);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.9,.3,1)}.rv-line.is-in{opacity:1;transform:none}.rv-fade{animation:rv-fadein var(--rv-dur,.7s) ease both}.rv-fade.rv-instant{animation:none}@keyframes rv-fadein{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.rv-line,.rv-word{transition:none}.rv-line{opacity:1;transform:none}.rv-fade{animation:none}.rv-caret{display:none}}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}