/* Night Nabbers website. One stylesheet for every page type (landing, data pages, buddy pages, guides, legal).
   Fonts are self-hosted (the game's own Figtree files): latin is preloaded, latin-ext downloads only for pages that use it
   (tr, pl, vi glyphs). Cyrillic has no local Figtree, so :lang(ru) uses the system stack (SF / Segoe UI / Roboto all cover it). */
@font-face{font-family:Figtree;src:url(/fonts/figtree-latin.woff2) format("woff2");font-weight:300 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Figtree;src:url(/fonts/figtree-ext.woff2) format("woff2");font-weight:300 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* [d5-site-i18n] Figtree has no Cyrillic and no Vietnamese additions (U+1EA0-1EF9): ru and vi pages use Manrope (SIL OFL 1.1, public/fonts/OFL-Manrope.txt),
   subset per script so a page downloads only the files it needs. size-adjust matches Manrope's larger x-height to Figtree's. */
@font-face{font-family:Manrope;src:url(/fonts/manrope-latin.woff2) format("woff2");font-weight:300 800;font-display:swap;size-adjust:94%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Manrope;src:url(/fonts/manrope-cyr.woff2) format("woff2");font-weight:300 800;font-display:swap;size-adjust:94%;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;src:url(/fonts/manrope-vi.woff2) format("woff2");font-weight:300 800;font-display:swap;size-adjust:94%;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
:root{
--bg:#120e22;--bg2:#1a1430;--bg3:#0d0a19;--card:#1f1838;--card2:#271f45;--line:#2f2752;--line2:#41386b;
--tx:#f1ecff;--tx2:#ddd6f3;--mut:#b4abd0;--coral:#ff6a5c;--coral2:#ff8a7e;--mint:#7ee2a8;--mint2:#b5f5d2;--gold:#ffb15c;--lilac:#c9c3dd;
--sys:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif;
--font:Figtree,var(--sys);
--fs-sm:.875rem;--fs-0:clamp(1rem,.97rem + .15vw,1.0625rem);--fs-1:clamp(1.0625rem,1rem + .35vw,1.25rem);
--fs-h3:clamp(1.125rem,1.05rem + .35vw,1.3rem);--fs-h2:clamp(1.5rem,1.2rem + 1.4vw,2.25rem);--fs-h1:clamp(2rem,1.5rem + 2.6vw,3.4rem);--fs-hero:clamp(2.4rem,1.5rem + 4.4vw,4.9rem);
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--s9:clamp(56px,4rem + 3vw,112px);
--gut:clamp(16px,4vw,32px);--r:16px;--r2:22px;--tap:44px;
--shadow:0 24px 60px -20px #000c;
color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--tx);font:400 var(--fs-0)/1.6 var(--font);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;overflow-x:clip}
:lang(ru),:lang(vi){--font:Manrope,Figtree,var(--sys)}
:lang(ja){--font:Figtree,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,"Noto Sans CJK JP","Noto Sans JP",var(--sys)} /* no CJK webfont: system Japanese faces */
img,svg,video,picture{max-width:100%;height:auto}
img,video{display:block}
picture{display:block}
a{color:var(--mint);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--mint2)}
:focus-visible{outline:3px solid var(--mint);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:8px;background:var(--mint);color:var(--bg);padding:10px 16px;border-radius:10px;z-index:20;font-weight:700}
.skip:focus{left:max(8px,env(safe-area-inset-left))}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}
main.page{padding-top:var(--s6);padding-bottom:var(--s8);max-width:1040px}
h1,h2,h3{font-weight:800;line-height:1.12;letter-spacing:-.015em;margin:1.7em 0 .5em;text-wrap:balance}
h1{font-size:var(--fs-h1);margin-top:.25em;letter-spacing:-.025em}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);margin-top:0}
h2 small,h3 small{font-weight:500;color:var(--mut);font-size:.6em;margin-left:.4em;letter-spacing:0}
p,ul,ol,dl{margin:.65em 0}
ul,ol{padding-left:1.25em}
li{margin:.2em 0}
.lead{font-size:var(--fs-1);color:var(--tx2);max-width:64ch;text-wrap:pretty}
.muted{color:var(--mut)}
code{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:1px 8px;font-size:.92em;white-space:nowrap}

/* ------------------------------------------------ header */
.top{position:sticky;top:0;z-index:10;background:rgba(18,14,34,.86);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);border-bottom:1px solid #ffffff12;padding-top:env(safe-area-inset-top)}
.bar{display:flex;align-items:center;gap:var(--s3);min-height:64px}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:1.08rem;color:var(--tx);text-decoration:none;white-space:nowrap;min-height:var(--tap);margin-right:auto}
.brand img{border-radius:10px;width:36px;height:36px}
.brand:hover{color:var(--tx)}
.nav{display:none;gap:2px}
.nav a,.menu nav a{color:var(--mut);text-decoration:none;font-weight:600;font-size:.95rem;display:flex;align-items:center;min-height:var(--tap);min-width:var(--tap);padding:0 11px;border-radius:10px;white-space:nowrap}
.nav a:hover,.menu nav a:hover{color:var(--tx);background:#ffffff0d}
.nav a[aria-current],.menu nav a[aria-current]{color:var(--tx);background:#ffffff12}
.menu summary{list-style:none;display:grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:12px;border:1px solid var(--line);color:var(--tx);cursor:pointer}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{background:var(--card)}
.menu nav{position:absolute;left:0;right:0;top:100%;background:rgba(18,14,34,.98);border-bottom:1px solid var(--line);padding:var(--s2) max(var(--gut),env(safe-area-inset-right)) var(--s4) max(var(--gut),env(safe-area-inset-left));display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px;box-shadow:var(--shadow);max-height:calc(100svh - 64px);overflow:auto}
.menu nav a{min-height:48px;font-size:1rem}
@media(min-width:1080px){.nav{display:flex}.menu{display:none}}
.bar .play{white-space:nowrap}
.brand{min-width:var(--tap);padding-inline:4px}
.brand span{overflow:hidden;text-overflow:ellipsis}
@media(max-width:480px){.longplay .brand span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media(max-width:380px){.bar{gap:8px}.brand{gap:8px}.bar .play{padding:8px 14px}.brand span{font-size:1rem}}

/* ------------------------------------------------ buttons, badges, chips */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:999px;background:var(--coral);color:#1b0b10;font-weight:800;font-size:1rem;line-height:1.2;text-decoration:none;text-align:center;border:2px solid var(--coral);cursor:pointer;box-shadow:0 10px 30px -12px #ff6a5c99}
.btn:hover{background:var(--coral2);border-color:var(--coral2);color:#1b0b10}
.btn.sm{min-height:var(--tap);padding:8px 18px;font-size:.95rem;box-shadow:none}
.btn.lg{min-height:56px;padding:14px 30px;font-size:1.08rem}
.btn.ghost{background:#ffffff08;color:var(--tx);border-color:var(--line2);box-shadow:none}
.btn.ghost:hover{background:var(--card2);border-color:var(--lilac);color:var(--tx)}
.ctas{display:flex;flex-wrap:wrap;gap:var(--s3);margin:var(--s5) 0}
.badge{display:inline-block;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mint);background:#7ee2a814;border:1px solid #7ee2a833;border-radius:999px;padding:3px 10px}
.chip{display:inline-block;border:1px solid var(--c);color:var(--c);border-radius:999px;padding:1px 10px;font-size:.78rem;font-weight:700;white-space:nowrap}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--c);margin-right:10px;vertical-align:.1em}
.kicker,.eyebrow{color:var(--mint);font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;margin:0 0 var(--s2)}
.more{font-weight:700;text-decoration:none;display:inline-flex;align-items:center;min-height:var(--tap)}
.more::after{content:"";width:.45em;height:.45em;border:solid currentColor;border-width:2px 2px 0 0;transform:rotate(45deg);margin-left:.5em}

/* ------------------------------------------------ cards and grids */
.grid3{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--s5)}
.card>:last-child{margin-bottom:0}
.card h3{margin:.5em 0 .35em}
.card.link,.gcard{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--tx)}
.card.link p{color:var(--tx2)}
.card.link .badge,.tile .badge{align-self:flex-start}
.card.link:hover,.gcard:hover{border-color:var(--line2);background:var(--card2);color:var(--tx)}
.gcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4) var(--s5)}
.gcard b{font-size:1.05rem}
.gcard span{color:var(--mut);font-size:.92rem}
.cards{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(46%,150px),1fr))}
.bud{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:var(--r);padding:var(--s4) var(--s2);text-decoration:none;color:var(--tx);min-height:var(--tap)}
.bud:hover{border-color:var(--c);background:var(--card2);color:var(--tx)}
.bud strong{line-height:1.25}
.bud span{color:var(--mut);font-size:.85rem}
.bud .orb{width:56px;height:56px}
.note{background:var(--card)}
p.note{padding:var(--s4) var(--s5);border:1px solid var(--line);border-radius:12px}
.note h2{margin-top:.2em;font-size:var(--fs-h3)}
.band{text-align:center;background:radial-gradient(600px 240px at 50% 0,#4a3a9a55,transparent),linear-gradient(160deg,#2a1f55,#1a1430);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s7) var(--s5);margin:var(--s8) 0 0}
.band h2{margin-top:0}
.band .ctas{justify-content:center;margin-bottom:0}
.playbig{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s5);background:linear-gradient(135deg,#2a1f55,#1a1430);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s4) var(--s5);margin:var(--s5) 0}
.playbig p{margin:0;color:var(--tx2);flex:1 1 220px}
.playbig .btn{font-size:1.1rem;min-height:56px;padding:14px 34px}
.frame{border-radius:var(--r2);overflow:hidden;border:1px solid #ffffff1a;box-shadow:var(--shadow);background:var(--bg2)}
.frame img,.frame video{width:100%;height:auto}

/* ------------------------------------------------ landing */
.hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(560px,88svh,880px);padding:var(--s9) 0 var(--s8);overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:-1;background:var(--bg2)}
.hero-media picture,.hero-media img,.hero-video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.hero-video{opacity:0}
.hero-video.on{opacity:1}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,14,34,.35) 0%,rgba(18,14,34,.25) 30%,rgba(18,14,34,.82) 62%,var(--bg) 100%)}
@media(min-width:900px){.hero{align-items:center;padding-bottom:var(--s9)}.hero-media::after{background:linear-gradient(90deg,rgba(13,10,25,.94) 0%,rgba(13,10,25,.75) 34%,rgba(13,10,25,.15) 68%,rgba(13,10,25,0) 100%),linear-gradient(180deg,transparent 70%,var(--bg) 100%)}}
.hero-in{position:relative;width:100%}
.hero-in>*{max-width:620px}
.hero h1{font-size:var(--fs-hero);line-height:1.02;letter-spacing:-.035em;margin:.15em 0 .3em;text-shadow:0 2px 30px #0009}
.hero .lead{color:#e9e4fb;text-shadow:0 1px 16px #000a}
.badges{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2);margin:0}
.badges li{font-size:var(--fs-sm);color:var(--tx2);background:rgba(18,14,34,.55);border:1px solid #ffffff1f;border-radius:999px;padding:5px 12px;margin:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.vidctl{position:absolute;right:max(var(--gut),env(safe-area-inset-right));bottom:var(--s5);width:var(--tap);height:var(--tap);border-radius:50%;border:1px solid #ffffff33;background:rgba(18,14,34,.6);color:var(--tx);display:grid;place-items:center;cursor:pointer}
.vidctl[hidden]{display:none}
.vidctl .i-play,.vidctl.paused .i-pause{display:none}
.vidctl.paused .i-play{display:inline}
.stats-strip{list-style:none;padding:0;margin:0 0 var(--s7);display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.stats-strip li{background:var(--bg2);margin:0;padding:var(--s5) var(--s4);text-align:center;display:flex;flex-direction:column;gap:2px}
.stats-strip b{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.6rem);line-height:1;font-weight:900;letter-spacing:-.03em}
.stats-strip span{color:var(--mut);font-size:var(--fs-sm)}
@media(min-width:760px){.stats-strip{grid-template-columns:repeat(4,1fr)}}
.feature{display:grid;gap:var(--s5);align-items:center;margin:var(--s8) 0}
.feature h2{margin-top:0}
.feature p{color:var(--tx2);max-width:52ch}
@media(min-width:860px){.feature{grid-template-columns:1.2fr 1fr;gap:var(--s7)}.feature.flip>:first-child{order:2}}
.sec{margin:var(--s9) 0 0}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s3) var(--s5);margin-bottom:var(--s5)}
.sec-head h2{margin:0}
.rar{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s5) 0}
.rar li{border:1px solid color-mix(in srgb,var(--c) 55%,transparent);border-radius:12px;padding:8px 14px;display:flex;flex-direction:column;align-items:center;min-width:84px;background:var(--bg2);margin:0}
.rar b{font-size:1.4rem;color:var(--c);line-height:1.2}
.rar span{font-size:.8rem;color:var(--mut)}
.heroes{display:flex;gap:var(--s3);margin-top:var(--s5)}
.heroes img{width:calc((100% - 2 * var(--s3)) / 3);max-width:150px;border-radius:var(--r);background:var(--card);border:1px solid var(--line)}
.split{display:grid;gap:var(--s6);align-items:center}
.split h2{margin-top:0}
.phone{justify-self:center;width:min(62vw,270px)}
.phone picture{border-radius:32px;overflow:hidden;border:6px solid #2a2347;box-shadow:var(--shadow)}
@media(min-width:760px){.split{grid-template-columns:1fr auto;gap:var(--s8)}}
.checks{list-style:none;padding:0}
.checks li{position:relative;padding-left:30px;margin:.5em 0}
.checks li::before{content:"";position:absolute;left:4px;top:.45em;width:12px;height:7px;border:solid var(--mint);border-width:0 0 2px 2px;transform:rotate(-45deg)}
.flist{list-style:none;padding:0;display:grid;gap:1px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.flist li{background:var(--bg2);margin:0;padding:var(--s4) var(--s5);display:flex;flex-direction:column;gap:2px}
.flist span{color:var(--mut);font-size:.94rem}
.faqs{max-width:820px}
.faq{background:var(--card);border:1px solid var(--line);border-radius:14px;margin:var(--s2) 0;padding:0 var(--s5)}
.faq summary{cursor:pointer;font-weight:700;padding:var(--s3) 28px var(--s3) 0;min-height:var(--tap);display:flex;align-items:center;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:4px;top:50%;width:9px;height:9px;border:solid var(--mut);border-width:0 2px 2px 0;transform:translateY(-70%) rotate(45deg)}
.faq[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq p{margin-top:0;padding-bottom:var(--s4);color:var(--tx2)}
.duo{display:grid;gap:var(--s4)}
@media(min-width:760px){.duo{grid-template-columns:1fr 1fr}}
.tile{padding:var(--s6)}
.tile .more{margin-top:auto;color:var(--mint)}

/* ------------------------------------------------ data pages */
.crumbs{font-size:var(--fs-sm);color:var(--mut);display:flex;flex-wrap:wrap;align-items:center;gap:0 6px}
.crumbs a{color:var(--mut);display:inline-flex;align-items:center;min-height:var(--tap)}
.bhead{display:flex;gap:var(--s5);align-items:center;flex-wrap:wrap}
.bhead h1{margin:0}
.bhead .orb{width:clamp(88px,20vw,120px);height:auto;flex:none}
.quip{color:var(--tx2);font-style:italic}
.tier{color:var(--mut);font-weight:700;font-size:.85rem;margin-left:6px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:var(--s3);margin:var(--s5) 0}
@media(max-width:520px){.stats{grid-template-columns:1fr 1fr}}
.stats div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:var(--s4)}
.stats dt{color:var(--mut);font-size:.85rem}
.stats dd{margin:2px 0 0;font-size:clamp(1.25rem,1.1rem + .6vw,1.5rem);font-weight:800;color:var(--gold)}
.stats small{font-size:.8rem;color:var(--mut);font-weight:500}
.tags{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.tags li{background:var(--bg2);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:.9rem;margin:0}
.tags b{color:var(--gold)}
.tl{display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:12px;font-weight:900;color:#150d1c;flex:none}
.tS{background:#ff9bd0}.tA{background:#ffb15c}.tB{background:#ffe066}.tC{background:#7ee2a8}.tD{background:#8fe3ff}.tE{background:#c9c3dd}
.tier h2{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.steps li{margin:var(--s2) 0}
.toc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:var(--s4) var(--s5);margin:var(--s5) 0}
.toc strong{display:block;margin-bottom:4px}
.toc ol{margin:0;padding-left:1.2em;columns:2 240px}
.toc a{display:inline-flex;align-items:center;min-height:36px}
.gimg{display:block;width:100%;height:auto;border-radius:var(--r2);border:1px solid var(--line);margin:var(--s4) 0}
.kbd{display:inline-block;min-width:1.9em;text-align:center;background:var(--bg2);border:1px solid var(--line);border-bottom-width:3px;border-radius:7px;padding:1px 8px;font-weight:700;font-size:.9em}
.langs{display:flex;flex-wrap:wrap;gap:var(--s2);margin:10px 0}
.langs a{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:0 16px;min-height:var(--tap);text-decoration:none;color:var(--tx);background:var(--bg2)}
.langs a:hover{border-color:var(--mint)}
section[id],h2[id]{scroll-margin-top:84px}

/* tables: scroll inside their own box on mid widths, reflow into labelled cards on phones */
.tblw{overflow-x:auto;margin:var(--s4) 0;border:1px solid var(--line);border-radius:14px;background:var(--bg2)}
.tbl{width:100%;border-collapse:collapse;font-size:.95rem;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tbody tr:last-child>*{border-bottom:0}
.tbl thead th{color:var(--mut);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;background:#ffffff06;white-space:nowrap}
.tbl tbody th{font-weight:700}
.tbl .r{text-align:right}
#drops tr.live{background:#2c2350}
#drops .now{visibility:hidden;color:var(--mint);font-weight:700;white-space:nowrap}
#drops tr.live .now{visibility:visible}
@media(max-width:640px){
.tblw{overflow:visible;border:0;background:none}
.rf thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rf,.rf tbody,.rf tr,.rf th,.rf td{display:block;width:100%}
.rf tr{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:var(--s2) var(--s4);margin:0 0 var(--s3)}
.rf tbody th,.rf td{position:relative;padding:8px 0 8px calc(38% + var(--s3));min-height:2.4em;border-bottom:1px solid #ffffff0f;text-align:left}
.rf tbody tr>:last-child{border-bottom:0}
.rf [data-label]::before{content:attr(data-label);position:absolute;left:0;top:8px;width:38%;line-height:1.35;color:var(--mut);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding-top:.15em}
.rf tbody tr>:first-child{font-size:1.05rem;font-weight:800;padding:var(--s2) 0 8px}
.rf tbody tr>:first-child::before{display:none}
.rf .r{text-align:left}}

/* ------------------------------------------------ press */
.kit{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s4);background:linear-gradient(135deg,#2a1f55,#1a1430);border:1px solid var(--line2);border-radius:var(--r2);padding:var(--s5);margin:var(--s5) 0}
.kit div{display:flex;flex-direction:column;gap:4px;flex:1 1 300px}
.kit strong{font-size:var(--fs-h3)}
.kit span{color:var(--tx2)}
.facts{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.facts div{background:var(--bg2);padding:var(--s4) var(--s5);flex:1 1 min(100%,300px)}
.facts dt{color:var(--mut);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.facts dd{margin:4px 0 0}
.dl{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}
.dlc{display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 10px 14px;text-decoration:none;color:var(--tx)}
.dlc:hover{border-color:var(--line2);background:var(--card2);color:var(--tx)}
.dlc img{width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--bg3);border-radius:10px;margin-bottom:8px}
.dlc small{color:var(--mut)}
.copy{background:var(--card);border-left:4px solid var(--mint);border-radius:8px;padding:var(--s4) var(--s5)}
.trailer{width:100%;max-width:960px;aspect-ratio:16/9;height:auto;background:var(--bg3)}
.trailer-sec .trailer{margin-inline:auto}
@media(min-width:900px){.modes6{grid-template-columns:repeat(3,1fr)}}

/* ------------------------------------------------ links hub */
.linkhub{max-width:520px;margin:0 auto;text-align:center}
.linkhub img{border-radius:22px;margin:0 auto}
.links{list-style:none;padding:0;display:grid;gap:10px}
.btn.wide{width:100%;flex-direction:column;gap:0;min-height:60px;background:var(--card);color:var(--tx);border-color:var(--line);font-weight:700;box-shadow:none}
.btn.wide:hover{border-color:var(--mint);background:var(--card2);color:var(--tx)}
.btn.wide small{font-weight:400;color:var(--mut)}
.btn.wide.off{opacity:.55;cursor:default}

/* ------------------------------------------------ forms ([d4-site-forms] partials, class names nnf-*) */
.nnf-slot form,.nnf-slot .nnf-form{display:grid;gap:var(--s3)}
.nnf-slot label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
.nnf-slot input:not([type=checkbox]):not([type=radio]),.nnf-slot select,.nnf-slot textarea{width:100%;min-height:48px;padding:10px 14px;border-radius:12px;border:1px solid var(--line2);background:var(--bg3);color:var(--tx);font:inherit;font-size:max(16px,1rem)}
.nnf-slot textarea{min-height:110px;resize:vertical}
.nnf-slot input::placeholder,.nnf-slot textarea::placeholder{color:#8f86ad}
.nnf-slot input:focus-visible,.nnf-slot select:focus-visible,.nnf-slot textarea:focus-visible{outline:3px solid var(--mint);outline-offset:1px;border-color:transparent}
.nnf-slot input[type=radio]{width:22px;height:22px;accent-color:var(--mint);flex:none}
/* the checkbox is drawn 22 px inside a transparent 44 px hit area (tap target >= 44 px), focus ring included */
.nnf-slot input[type=checkbox]{-webkit-appearance:none;appearance:none;flex:none;width:var(--tap);height:var(--tap);margin:-10px -8px -10px -11px;border:11px solid transparent;border-radius:18px;background:var(--bg3);background-clip:padding-box;box-shadow:inset 0 0 0 2px var(--lilac);cursor:pointer}
.nnf-slot input[type=checkbox]:checked{background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M5.5 11.5l3.8 3.8 7.2-8' fill='none' stroke='%23120e22' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;background-clip:padding-box;box-shadow:none}
.nnf-slot input[type=checkbox]:focus-visible{outline:3px solid var(--mint);outline-offset:-3px;border-radius:14px}
.nnf-slot button,.nnf-slot [type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border-radius:999px;background:var(--coral);color:#1b0b10;font:inherit;font-weight:800;border:2px solid var(--coral);cursor:pointer}
.nnf-slot button:hover,.nnf-slot [type=submit]:hover{background:var(--coral2);border-color:var(--coral2)}
.nnf-slot button:disabled{opacity:.6;cursor:default}
.nnf-slot small,.nnf-slot .nnf-hint,.nnf-slot .nnf-fine{color:var(--mut);font-size:.85rem;font-weight:400}
.nnf-slot .nnf-ok,.nnf-slot [data-state=ok]{color:var(--mint)}
.nnf-slot .nnf-err,.nnf-slot .nnf-error,.nnf-slot [data-state=error]{color:var(--coral2)}
.nnf-slot .nnf-hp,.nnf-slot .nnf-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.nnf-slot .nnf-row{margin:0}
.nnf-slot .nnf-consent{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--mut)}
.nnf-slot .nnf-consent label{display:block;font-weight:400;font-size:.88rem}
.nnf-slot .nnf-status:empty{display:none}
.nnf-slot .nnf-title{font-size:var(--fs-h3);margin:0}
.fnews .nnf-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.linkform{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s5);margin:var(--s5) 0}
.apply .nnf-slot{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s5);max-width:640px}

/* ------------------------------------------------ footer */
.foot{border-top:1px solid var(--line);background:var(--bg3);padding:var(--s7) 0 calc(var(--s6) + env(safe-area-inset-bottom));margin-top:var(--s8);font-size:.95rem}
.fnews{display:grid;gap:var(--s4) var(--s6);align-items:center;background:linear-gradient(135deg,#231a47,#17122b);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s5);margin-bottom:var(--s7)}
.fnews h2{font-size:var(--fs-h3);margin:0 0 4px}
.fnews p{color:var(--mut);margin:0}
@media(min-width:860px){.fnews{grid-template-columns:1fr 1.1fr;padding:var(--s6)}}
.fcols{display:grid;gap:var(--s5);grid-template-columns:repeat(2,1fr)}
.fcols>div{display:flex;flex-direction:column;align-items:flex-start}
.fcols strong{margin-bottom:4px;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--lilac)}
.fcols a:not(.btn):not(.brand){color:var(--mut);text-decoration:none;display:inline-flex;align-items:center;min-height:var(--tap);min-width:var(--tap)}
.fcols a:not(.btn):not(.brand):hover{color:var(--tx)}
.fbrand{grid-column:1/-1;gap:var(--s2)}
.fbrand p{color:var(--mut);margin:0 0 var(--s2);max-width:34ch}
@media(min-width:760px){.fcols{grid-template-columns:1.6fr 1fr 1fr 1fr}.fbrand{grid-column:auto}}
.fine{color:var(--mut);font-size:.85rem;margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--line)}

/* ------------------------------------------------ motion: only when welcome */
@media(prefers-reduced-motion:no-preference){
html{scroll-behavior:smooth}
.btn,.bud,.card.link,.gcard,.dlc,.nav a,.menu nav a,.langs a,.nnf-slot button{transition:background-color .18s,border-color .18s,color .18s}
.hero-video{transition:opacity .9s ease}
.faq summary::after{transition:transform .2s}}
@media print{.top,.foot,.hero-media,.vidctl,.ctas,.playbig,.band{display:none}body{background:#fff;color:#000}}

/* [d5-site-i18n] language switcher (footer, no JS) and the "some pages are English only" note */
.langsw{align-items:center;margin:var(--s5) 0 var(--s2)}
.langsw a{font-family:var(--sys)} /* native names in the system face: always the right glyphs, and no extra webfont download just for the switcher */
.langsw-l{color:var(--lilac);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;margin-right:var(--s2)}
.langsw a[aria-current]{border-color:var(--mint);color:var(--mint2)}
.fnote{margin:var(--s4) 0 0;font-size:.85rem}
:lang(ja){line-break:strict}
:lang(ja) h1,:lang(ja) h2,:lang(ja) h3{line-height:1.3;text-wrap:balance}

/* ================================================ [f32-site] studio pass: one look for every page
   Night palette from the game (deep violet night, coral = action, mint = info / links, gold = coins only), a soft sky glow
   behind every page, a cinematic landing, real 3D portraits for heroes and buddies. Contrast: body text >= 7:1, muted
   >= 4.5:1, coral button text >= 7:1 (checked against --bg, --card and --card2). */
:root{--violet:#8f7bff;--r3:28px;--sky:radial-gradient(1100px 520px at 50% -260px,#3a2a7a 0,#3a2a7a00 70%);--edge:inset 0 1px 0 #ffffff12;--fs-xl:clamp(2.6rem,1.4rem + 5.2vw,5.6rem)}
body{background:var(--sky) no-repeat,var(--bg)}
.card,.gcard,.bud,.faq,.toc,.dlc,.stats div{background-image:linear-gradient(180deg,#ffffff07,#ffffff00 60%);box-shadow:var(--edge)}
.top{background:rgba(13,10,25,.78)}
.has-hero .top{background:linear-gradient(180deg,rgba(13,10,25,.85),rgba(13,10,25,.55));border-bottom-color:#ffffff0d}
main.page>h1:first-child,main.page>.crumbs+h1{font-size:var(--fs-h1)}
main.page>h1:first-child::after,main.page>.crumbs+h1::after{content:"";display:block;width:56px;height:4px;border-radius:4px;margin-top:.45em;background:linear-gradient(90deg,var(--coral),var(--violet))}
main.page p,main.page li{max-width:75ch}
.btn{letter-spacing:.005em}
.btn.xl{min-height:64px;padding:16px 36px;font-size:clamp(1.1rem,1rem + .4vw,1.3rem);font-weight:900;box-shadow:0 14px 44px -10px #ff6a5ccc,inset 0 1px 0 #ffffff55;text-transform:none}
.btn.xl svg{width:22px;height:22px}

/* landing hero: cinematic, one action */
.hero{min-height:clamp(600px,calc(100svh - 64px),940px);align-items:flex-end;padding:var(--s9) 0 var(--s8)}
.hero h1{font-size:var(--fs-xl);line-height:.98;letter-spacing:-.04em;max-width:12ch}
.hero-in>*{max-width:660px}
.hero-in>h1{max-width:12ch}
.hero-ctas{align-items:center;gap:var(--s4) var(--s6);margin:var(--s6) 0 var(--s4)}
.watch{display:inline-flex;align-items:center;gap:12px;min-height:var(--tap);color:var(--tx);font-weight:800;text-decoration:none}
.watch-i{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:2px solid #ffffff59;background:rgba(13,10,25,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.watch:hover{color:var(--tx)}.watch:hover .watch-i{border-color:var(--tx);background:rgba(13,10,25,.7)}
.live{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0 0 var(--s4);padding:6px 14px;border-radius:999px;background:rgba(13,10,25,.6);border:1px solid #7ee2a84d;font-size:var(--fs-sm);color:var(--tx2)}
.live[hidden]{display:none}
.live b{color:var(--mint2)}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px #7ee2a833}
@media(min-width:900px){.hero{align-items:center}}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#ffffff1f,transparent)}

/* stage: a full-bleed band (the hero roster) */
.stage{position:relative;padding:var(--s8) 0;margin-top:var(--s8);background:radial-gradient(900px 380px at 50% 0,#4a3a9a59,#4a3a9a00 70%),linear-gradient(180deg,var(--bg2),var(--bg3));border-block:1px solid var(--line)}
.stage-head{max-width:720px;margin:0 auto var(--s6);text-align:center}
.stage-head h2{margin:0 0 .3em;font-size:var(--fs-h1)}
.stage-head .lead{margin-inline:auto}
.roster{list-style:none;padding:0;margin:0;display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(min(30%,96px),1fr))}
@media(min-width:1100px){.roster{grid-template-columns:repeat(10,1fr);gap:var(--s3)}}
.roster li{margin:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--s2) 4px var(--s3);border-radius:var(--r);background:radial-gradient(70% 45% at 50% 82%,color-mix(in srgb,var(--c) 38%,transparent),transparent 72%),#ffffff05;border:1px solid #ffffff0f}
.roster picture{width:100%;max-width:120px}
.roster img{width:100%;height:auto;aspect-ratio:4/5}
.roster span{font-weight:700;font-size:.85rem;line-height:1.2;text-align:center;color:var(--tx2)}

/* buddy portraits (cards, buddy pages) */
.bpic{display:block;width:100%;max-width:132px;margin:0 auto 4px;border-radius:var(--r);background:radial-gradient(60% 40% at 50% 80%,color-mix(in srgb,var(--g) 45%,transparent),transparent 75%)}
.bpic img{width:100%;height:auto;aspect-ratio:4/5}
.bpic.big{width:clamp(140px,30vw,220px);max-width:none;margin:0;flex:none}
.cards.show{grid-template-columns:repeat(2,1fr)}
@media(min-width:640px){.cards.show{grid-template-columns:repeat(4,1fr)}}
.bud{padding-top:var(--s3)}

/* play anywhere */
.devs{list-style:none;padding:0;margin:var(--s5) 0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2)}
.devs li{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--s4) 4px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--edge);color:var(--mint);text-align:center}
.devs span{color:var(--tx2);font-size:.85rem;font-weight:700;line-height:1.2}
.plat{list-style:none;padding:0;margin:var(--s4) 0 0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.plat li{margin:0;display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);padding:0 16px;border-radius:12px;border:1px solid var(--line2);background:var(--bg3);font-weight:700;font-size:.92rem}
.plat li.on{color:var(--mint2);border-color:#7ee2a866}
.plat a{color:var(--tx);text-decoration:none}

/* features and frames */
.feature{margin:var(--s9) 0}
.frame{border-color:#ffffff24;box-shadow:0 30px 80px -30px #000,0 0 0 1px #8f7bff1f,0 0 60px -20px #8f7bff40}
.feature h2,.sec-head h2,.split h2{font-size:var(--fs-h1)}
.kicker{color:var(--mint)}
.band{background:radial-gradient(700px 300px at 50% 0,#ff6a5c33,transparent 70%),radial-gradient(800px 320px at 50% 100%,#8f7bff40,transparent 70%),linear-gradient(160deg,#2a1f55,#160f2c);padding:var(--s8) var(--s5)}
.band h2{font-size:var(--fs-h1)}

/* newsletter: a clear "check your inbox" state once the Worker said yes */
.nnf-news[data-sent] .nnf-row,.nnf-news[data-sent] .nnf-consent{display:none}
.nnf-slot .nnf-news[data-sent] .nnf-status{display:flex;gap:12px;align-items:center;padding:var(--s4);border-radius:14px;background:#7ee2a814;border:1px solid #7ee2a84d;font-weight:700;color:var(--mint2)}
.nnf-news[data-sent] .nnf-status::before{content:"";flex:none;width:28px;height:22px;border:2px solid currentColor;border-radius:4px;background:linear-gradient(to bottom right,transparent calc(50% - 1px),currentColor 50%,transparent calc(50% + 1px)) top left/50% 60% no-repeat,linear-gradient(to bottom left,transparent calc(50% - 1px),currentColor 50%,transparent calc(50% + 1px)) top right/50% 60% no-repeat}
.nnf-status:focus{outline:none}
.fnews{background:radial-gradient(600px 240px at 0 0,#8f7bff2e,transparent 70%),linear-gradient(135deg,#231a47,#17122b);box-shadow:var(--edge)}

/* 404 */
.lost{display:grid;gap:var(--s5);align-items:center;justify-items:start}
.lost picture{width:min(46vw,220px)}
@media(min-width:760px){.lost{grid-template-columns:auto 1fr;gap:var(--s7)}}

/* press kit + creators */
.logos{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}
.logos a{display:grid;place-items:center;aspect-ratio:4/3;border-radius:var(--r);border:1px solid var(--line);text-decoration:none;padding:var(--s4)}
.logos a.dk{background:var(--bg3)}.logos a.lt{background:#f1ecff}
.logos img{max-height:100%;width:auto;max-width:80%}
.perks{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}

@media(prefers-reduced-motion:no-preference){
.watch-i,.roster li,.plat li{transition:background-color .18s,border-color .18s}}
@media print{.stage{background:none}.live,.watch{display:none}}
.stage .wrap{max-width:1480px}
/* page header with art (press, creators) */
.phead{display:grid;gap:var(--s6);align-items:center;margin-bottom:var(--s7)}
.phead h1{margin-top:.1em}
.phead>img,.phead>picture{width:100%;height:auto}
@media(min-width:900px){.phead{grid-template-columns:1.05fr 1fr}}
main.page:has(.phead){max-width:1200px}
.rdl{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;text-decoration:none;color:var(--tx2);min-height:var(--tap)}
.rdl:hover{color:var(--tx)}
.roster li:has(.rdl:hover){border-color:var(--line2)}
.swatch{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.swatch li{margin:0;display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--line);background:var(--bg2);font:600 .85rem/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.swatch li::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--s);border:1px solid #ffffff33}
/* the live line appears after load: lift it out of the flow so it never shifts the hero */
.hero .live{position:absolute;top:calc(-1 * var(--s7));left:max(var(--gut),env(safe-area-inset-left));margin:0;max-width:calc(100% - 2 * var(--gut))}

/* [f34-site-polish] final pass */
/* the hero copy sits on the same 1200 px grid as the header and every section below (it was 1480, so at 1366+ the H1 and the
   logo started at different x) */
/* the live line is one line at every width (two lines ran into the eyebrow on phones): the mode list ellipsizes */
.hero .live{flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
.hero .live [data-live-list]{overflow:hidden;text-overflow:ellipsis;min-width:0}
.live-dot,.live b{flex:none}
/* Japanese headings break between phrases, not inside a word (Chromium 119+; others keep the strict line-break) */
:lang(ja) h1,:lang(ja) h2,:lang(ja) h3,:lang(ja) .lead{word-break:auto-phrase}
/* newsletter / creator form: a visible sending state and an error panel that matches the "check your inbox" one */
.nnf-slot button[aria-busy=true]{opacity:.75;cursor:progress}
.nnf-slot button[aria-busy=true]::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent}
@media(prefers-reduced-motion:no-preference){.nnf-slot button[aria-busy=true]::before{animation:nnspin .8s linear infinite}}
@keyframes nnspin{to{transform:rotate(1turn)}}
.nnf-slot .nnf-status.nnf-err{padding:var(--s3) var(--s4);border-radius:14px;background:#ff6a5c14;border:1px solid #ff6a5c59;font-weight:600}
/* footer contact row: the live mailboxes */
.fmail{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--s4);margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line)}
.fmail strong{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--lilac);margin-right:var(--s2)}
.fmail p{display:flex;flex-wrap:wrap;gap:0 var(--s5);margin:0}
.fmail a{color:var(--mut);text-decoration:none;display:inline-flex;align-items:center;min-height:var(--tap)}
.fmail a:hover{color:var(--tx);text-decoration:underline}
