/* Table Voice R4 DS2 × Refined Motion — isolated concept. No production overrides. */
@font-face{font-family:"TV Golos";src:url("/fonts/GolosText-Variable.ttf") format("truetype");font-style:normal;font-weight:400 900;font-display:swap}
@font-face{font-family:"TV Dela";src:url("/fonts/DelaGothicOne-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:dark;--ink:#eff8f5;--muted:#a8c0c0;--dim:#788e94;--brand:#6cd4d4;--brand-dark:#0c3337;--night:#0c1519;--surface:#111e23;--panel:#17282e;--border:rgba(177,217,219,.13);--radius:23px;--font-ui:"TV Golos","Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:"TV Dela","Dela Gothic One",var(--font-ui);--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);background:var(--night);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overflow-x:clip}button,input,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.045em}h1,h2{font-family:var(--font-display);font-weight:400}::selection{color:#06181a;background:#6cd4d4}.shell{width:min(1160px,calc(100% - 44px));margin-inline:auto}.skip-link{position:absolute;z-index:99;left:12px;top:-100px;background:var(--brand);color:#081517;padding:12px 20px;border-radius:10px}.skip-link:focus{top:12px}:focus-visible{outline:2px solid #7dd3fc;outline-offset:4px}
.topbar{height:78px;position:sticky;top:0;z-index:50;background:rgba(12,21,25,.91);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}.bar-inner{height:100%;display:flex;justify-content:space-between;align-items:center;gap:15px}.brand{display:inline-flex;align-items:center;gap:11px;font-family:var(--font-display);font-size:17px;white-space:nowrap;letter-spacing:-.035em}.brand img{width:33px;height:33px;object-fit:contain}.top-actions{display:flex;align-items:center;gap:13px}.langs{display:flex;background:#15262b;border:1px solid #2d454a;border-radius:12px;padding:3px;gap:2px}.langs button{color:#a0b8bb;background:transparent;border:0;border-radius:9px;min-width:38px;height:32px;font-size:12px;font-weight:650}.langs button[aria-pressed="true"]{background:#2a444a;color:#f5fffe}.header-play{height:38px;border-radius:10px;padding:0 16px;background:var(--brand);color:#102a2c;display:flex;align-items:center;gap:13px;font-weight:850;font-size:13px;transition:transform .2s var(--ease),background .2s}.header-play:hover,.btn-primary:hover{background:#8ae3dc;transform:translateY(-2px)}.header-play span{font-size:17px}
.micro{font-size:11px;font-weight:840;letter-spacing:.155em;line-height:1.5;color:var(--brand);text-transform:uppercase}.hero{position:relative;background:radial-gradient(ellipse 58% 58% at 78% 38%,rgba(23,70,69,.22),transparent 78%),linear-gradient(162deg,#0e1b20 0%,#0c1519 78%);overflow:hidden}.hero::before{content:"";position:absolute;width:460px;height:460px;right:-120px;top:-160px;pointer-events:none;background:radial-gradient(circle,rgba(85,192,182,.08) 1px,transparent 1px);background-size:22px 22px;mask-image:radial-gradient(ellipse,#000,transparent 72%);opacity:.65}.hero-layout{min-height:635px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:44px;padding-top:70px;padding-bottom:95px}.hero-copy{position:relative;z-index:2}.hero .micro{display:flex;gap:9px;align-items:center}.tiny-line{display:block;width:21px;height:2px;background:var(--brand);border-radius:3px}.hero h1{font-size:clamp(38px,3.52vw,55px);line-height:1.17;letter-spacing:-.046em;margin-top:26px;max-width:640px}.line-reveal{display:block;overflow:hidden}.line-reveal>span{display:block;transform:translateY(105%);animation:line-come .95s var(--ease) .1s both}.line-reveal:nth-child(2)>span{animation-delay:.23s}.accent-title{color:var(--brand)}@keyframes line-come{to{transform:translateY(0)}}.hero-sub{font-size:clamp(16px,1.6vw,19px);line-height:1.58;color:var(--muted);max-width:510px;margin-top:25px;animation:soft-arrive .8s var(--ease) .26s both}.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:31px;animation:soft-arrive .8s var(--ease) .36s both}.btn{border:0;display:inline-flex;justify-content:space-between;align-items:center;gap:34px;min-height:53px;padding:0 21px;border-radius:13px;font-size:15px;font-weight:820}.btn-primary{background:var(--brand);color:#09262a;box-shadow:0 12px 32px rgba(51,194,182,.12);transition:transform .25s var(--ease),background .25s}.btn-arr{font-size:21px;font-weight:500}.entry-link{display:flex;align-items:center;gap:12px;padding-block:12px;color:#d9e8e7;font-size:14px;font-weight:720;transition:color .18s}.entry-link:hover{color:var(--brand)}.hero-platform{display:flex;align-items:center;gap:9px;font-size:12px;color:#849b9d;margin-top:28px;animation:soft-arrive .8s var(--ease) .43s both}.live-pulse{display:inline-block;width:6px;height:6px;background:var(--brand);border-radius:50%;box-shadow:0 0 0 4px rgba(108,212,212,.1)}.dot-separator{color:#4c666a}@keyframes soft-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
/* First hero art is a designed product illustration made of three DS2 game surfaces. */
.hero-art{position:relative;min-width:0;height:460px;perspective:950px;isolation:isolate;--flight:0;animation:soft-arrive 1s var(--ease) .06s both}.hero-art::before{content:"";position:absolute;inset:68px 38px;border:1px solid rgba(110,201,196,.07);border-radius:50%;transform:rotate(-23deg)}.art-orbit{position:absolute;border:1px dashed rgba(108,212,212,.19);border-radius:50%;z-index:-1}.art-orbit-a{width:74%;aspect-ratio:1;top:18%;left:12%;transform:rotate(-17deg)}.art-orbit-b{width:59%;aspect-ratio:1;top:25%;left:21%;transform:rotate(17deg);border-color:rgba(108,212,212,.1)}.hero-slab{position:absolute;background:linear-gradient(155deg,#20353b,#111e24);border:1px solid rgba(194,222,218,.19);border-radius:19px;box-shadow:0 26px 45px rgba(0,0,0,.29);color:#eff8f5;will-change:transform}.hero-slab-mafia{width:220px;height:237px;top:24px;left:0;transform:rotate(-13deg) translate(2px,9px);animation:slab-mafia .9s var(--ease) .26s both}.hero-slab-alias{width:213px;height:231px;right:0;bottom:28px;transform:rotate(11deg);animation:slab-alias .9s var(--ease) .32s both}.slab-head{display:flex;justify-content:space-between;align-items:center;padding:19px 19px 9px;font-size:10px;font-weight:850;letter-spacing:.095em}.hero-slab-mafia .slab-head b{color:#ff7992}.hero-slab-alias .slab-head b{color:#79b6ff}.slab-head span{font-size:9px;color:#729098}.mafia-micro{display:flex;justify-content:center;align-items:flex-end;gap:9px;height:115px}.mafia-micro span{display:block;width:42px;height:77px;border-radius:9px 9px 6px 6px;border:1px solid #713946;background:linear-gradient(175deg,#543142,#201a2b);box-shadow:0 9px 12px rgba(0,0,0,.2);position:relative}.mafia-micro span::after{content:"";position:absolute;left:50%;top:18%;transform:translateX(-50%);width:17px;height:17px;border-radius:50%;border:1px solid #f2849b;box-shadow:0 0 0 8px rgba(229,95,128,.08)}.mafia-micro span.active{height:97px;background:linear-gradient(185deg,#8d3548,#301e2b);border-color:#f96a87;transform:translateY(-4px)}.hero-slab-mafia p{font-size:11px;text-align:center;letter-spacing:.035em;font-weight:770;margin:8px auto}.slab-foot{position:absolute;bottom:16px;left:18px;color:#74929a;font-size:9px;font-weight:700;letter-spacing:.06em}.alias-micro{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;height:137px;font-family:var(--font-display);font-size:21px;letter-spacing:-.03em}.alias-micro span:first-child{color:#d6edfa;transform:translate(-14px,0)}.alias-micro span:last-child{color:#67abf5;transform:translate(24px,0)}.hero-slab-alias .slab-foot{right:18px;display:flex;justify-content:space-between;align-items:center;gap:7px}.slab-foot i{height:4px;width:10px;border-radius:4px;background:#4784bc}.hero-center{position:absolute;top:105px;left:50%;transform:translateX(-50%) rotate(-1deg);width:279px;height:249px;border-radius:25px;background:linear-gradient(147deg,#24464b 0%,#123137 57%,#10272a 100%);border:1px solid rgba(106,217,211,.56);box-shadow:0 30px 70px rgba(0,0,0,.49),inset 0 1px 0 rgba(255,255,255,.12);z-index:3;display:flex;flex-direction:column;justify-content:space-between;animation:center-arrive 1s var(--ease) .15s both}.hero-center::before{content:"";position:absolute;inset:8px;border-radius:20px;border:1px solid rgba(124,220,215,.12);pointer-events:none}@keyframes center-arrive{from{opacity:.7;transform:translate(-50%,24px) rotate(4deg) scale(.88)}to{opacity:1;transform:translate(-50%,0) rotate(-1deg) scale(1)}}@keyframes slab-mafia{from{opacity:0;transform:rotate(-2deg) translate(90px,35px) scale(.8)}to{opacity:1;transform:rotate(-13deg) translate(2px,9px) scale(1)}}@keyframes slab-alias{from{opacity:0;transform:rotate(2deg) translate(-88px,-25px) scale(.8)}to{opacity:1;transform:rotate(11deg) scale(1)}}.hero-center-top{padding:20px 20px 0;display:flex;gap:10px;align-items:center;font-size:12px;letter-spacing:.05em;color:#e4fffc}.hero-center-top img{width:27px;height:27px}.center-rule{height:1px;margin:9px 21px 0;background:linear-gradient(90deg,rgba(108,212,212,.3),transparent)}.hero-room-figure{display:flex;justify-content:center;align-items:center;gap:8px;height:75px}.figure-dots{display:flex;align-items:center;gap:7px}.figure-dots i{width:17px;height:25px;border-radius:8px 8px 4px 4px;background:#76c4c0;box-shadow:0 1px 14px rgba(113,208,199,.18);position:relative}.figure-dots i:before{content:"";position:absolute;width:12px;height:12px;border-radius:50%;top:-15px;left:2px;background:#b8f1e9}.figure-dots i:nth-child(2){height:33px;background:#6cd4d4}.figure-dots i:nth-child(2):before{background:#d3ffff}.figure-dots i:nth-child(3){background:#69a9bb}.figure-dots i:nth-child(4){background:#f19aa7}.figure-line{width:22px;height:1px;background:#4ba19e}.hero-center-foot{padding:16px 21px 21px;display:flex;justify-content:space-between;align-items:center;color:#7caeaf;font-size:10px;letter-spacing:.10em}.hero-center-foot b{color:#dffcf5}.art-bottom-note{position:absolute;left:19px;bottom:44px;font-size:9px;line-height:1.8;letter-spacing:.12em;color:#789196}.handoff-connector{height:38px;position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);width:2px;z-index:3}.handoff-path{width:2px;height:100%;background:linear-gradient(to bottom,rgba(108,212,212,.1),rgba(108,212,212,.65));transform-origin:top;transform:scaleY(var(--handoff,.4))}.handoff-bead{height:9px;width:9px;position:absolute;left:-3.5px;top:calc(var(--handoff,.4)*30px);border-radius:50%;background:#6cd4d4;box-shadow:0 0 0 4px rgba(108,212,212,.09)}
.section-pad{padding:105px 0}.catalog{position:relative;background:linear-gradient(180deg,#111f24 0,#0c171c 97%);border-top:1px solid rgba(115,184,181,.08)}.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:31px}.section-heading h2,.room h2,.platform h2,.faq h2,.closing h2{font-size:clamp(30px,3.4vw,48px);line-height:1.25;margin-top:12px}.accent-punc{color:var(--brand)}.section-lead{color:var(--muted);font-size:16px;padding-bottom:3px}.catalog-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.85fr);align-items:stretch;gap:21px}.feature-panel{--game-accent:#ff6b85;--game-soft:rgba(255,107,133,.14);position:relative;min-width:0;min-height:566px;border-radius:27px;overflow:hidden;padding:27px 27px 22px;background:radial-gradient(ellipse at 50% 46%,var(--game-soft) 0%,transparent 67%),linear-gradient(159deg,#203139 0%,#15262c 45%,#0e1b21 100%);border:1px solid rgba(156,206,204,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 19px 35px rgba(0,0,0,.09);transition:border-color .28s,background-color .28s}.feature-panel::after{content:"";position:absolute;top:-105px;right:-125px;width:330px;height:330px;border-radius:50%;border:1px solid color-mix(in srgb,var(--game-accent) 26%,transparent);pointer-events:none}.feature-top{display:flex;justify-content:space-between;gap:12px;font-size:11px;font-weight:820;letter-spacing:.11em;z-index:1;position:relative}.feature-index{color:#a4b6bd}.feature-tag{color:var(--game-accent)}.feature-visual{height:315px;display:grid;place-items:center;position:relative;min-width:0}.feature-visual.is-changing .motif{animation:visual-swap .47s var(--ease) both}@keyframes visual-swap{0%{opacity:.28;clip-path:inset(0 45% 0 45% round 22px);transform:translateY(16px) scale(.89)}60%{opacity:1}100%{opacity:1;clip-path:inset(0 0 0 0 round 22px);transform:translateY(0) scale(1)}}.motif{position:relative;width:min(100%,440px);height:268px;color:#fff}.motif-glow{position:absolute;inset:55px 57px 35px;border-radius:100%;background:radial-gradient(ellipse,var(--game-soft),transparent 76%);filter:blur(9px)}
/* Mafia motif: 3 variable-depth sealed role cards. */
.role-cards{height:205px;display:flex;align-items:center;justify-content:center;gap:0;perspective:500px}.role-card{background:#27232d;border:1px solid rgba(255,112,143,.36);border-radius:16px;box-shadow:0 24px 28px #080d15a8;display:flex;align-items:center;flex-direction:column;justify-content:space-around;position:relative}.role-card small{font-size:9px;color:#efa0ac;letter-spacing:.14em;font-weight:800}.role-card.side{width:122px;height:167px;transform:translate(15px,6px) rotate(-13deg);opacity:.75}.role-card.side:last-child{transform:translate(-15px,7px) rotate(13deg)}.role-card.side b{font-size:45px;color:#c37b8d;font-weight:400}.role-card.main{width:145px;height:204px;z-index:2;border-color:#ff748f;box-shadow:0 21px 35px #090e16ac,0 0 0 1px rgba(255,112,143,.15);background:linear-gradient(156deg,#5f2939,#28212f)}.role-card.main strong{font-size:17px;letter-spacing:.1em;color:#fff}.role-card i{width:60%;height:1px;background:rgba(255,141,163,.3)}.role-mark{display:flex;gap:5px}.role-mark span{width:13px;height:28px;border-radius:2px 2px 9px 9px;border:1px solid #ffa3b6;transform:skew(-4deg)}.role-mark span:nth-child(2){height:37px;transform:translateY(-5px)}.vote-track{display:flex;gap:21px;justify-content:center;align-items:center;margin-top:4px;font-size:10px;letter-spacing:.13em;color:#ff98ad}.vote-track div{display:flex;gap:5px}.vote-track i{width:16px;height:5px;border-radius:4px;background:#8f4557}.vote-track i:first-child{background:#ff849e}
/* Bunker: architectural aperture with revealing capacity. */
.motif-bunker .vault{position:absolute;inset:12px 26px 17px;border-radius:130px 130px 18px 18px;border:2px solid #b98c44;background:linear-gradient(160deg,#352e25,#17272b 72%);overflow:hidden;box-shadow:inset 0 12px 55px rgba(250,177,71,.13),0 25px 35px rgba(0,0,0,.27)}.motif-bunker .vault:before{content:"";position:absolute;inset:19px 34px 15px;border-radius:110px 110px 10px 10px;border:1px dashed rgba(247,189,92,.42)}.motif-bunker .vault-door{position:absolute;top:27px;bottom:21px;width:48%;left:50%;transform:translateX(-50%);border:2px solid #b47f37;border-radius:90px 90px 4px 4px;background:linear-gradient(105deg,#6d5540,#312f2d);box-shadow:-18px 4px 45px rgba(0,0,0,.6)}.motif-bunker .vault-door:before{content:"";position:absolute;right:14px;top:52%;width:27px;height:27px;border:4px double #efb35b;border-radius:50%}.vault-plaque{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:#ffd392;background:#34312c;border:1px solid #af8b51;border-radius:40px;padding:6px 13px;font-size:11px;font-weight:850;letter-spacing:.09em;white-space:nowrap}.motif-bunker .seat{position:absolute;top:5px;width:64px;height:26px;border-radius:7px;display:grid;place-items:center;background:#473d31;border:1px solid #97733f;color:#ffd38a;font-size:11px;font-weight:850}.seat.one{left:0}.seat.two{right:0}
/* Codenames: real typographic word grid and two team traces. */
.motif-codenames .wordboard{position:absolute;inset:15px 16px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);gap:9px;transform:rotate(-4deg);filter:drop-shadow(0 21px 19px rgba(0,0,0,.27))}.wordboard span{display:grid;place-items:center;border-radius:9px;border:1px solid #36504b;background:#203b37;font-size:11px;font-weight:770;color:#cde8db;text-transform:uppercase;letter-spacing:.03em}.wordboard .blue{border-color:#598fe3;background:#244c76;color:#e8f2ff}.wordboard .red{border-color:#e45a63;background:#612e3c;color:#fff3f3}.wordboard .active{border-color:#57d6a0;background:#326e57;box-shadow:0 0 0 3px #2ecb8d22}.wordboard::after{content:"";position:absolute;inset:-10px;border-radius:18px;border:1px solid #4dc98f3c;pointer-events:none}.wordboard .link{position:absolute;height:2px;background:linear-gradient(90deg,#37ca8c,#8aefbd);width:30%;left:33%;top:45%;transform:rotate(-22deg);box-shadow:0 0 12px #57dca199;pointer-events:none}
/* Spy: location overlay and one concealed token. */
.motif-spy .spy-document{position:absolute;inset:25px 62px 30px;background:linear-gradient(158deg,#422a38,#241e2a);border:1px solid #c05785;border-radius:17px;transform:rotate(-5deg);padding:25px;box-shadow:0 24px 28px #0006}.spy-document header{font-size:11px;letter-spacing:.15em;color:#ff97bf}.spy-document strong{display:block;font-family:var(--font-display);font-size:19px;line-height:1.4;margin-top:28px;color:#ffe4ed}.spy-document .redacted{height:7px;background:#e7649b;width:80%;opacity:.5;margin-top:20px}.spy-document .redacted:last-child{width:53%}.spy-cover{position:absolute;right:12px;top:37px;width:130px;height:185px;transform:rotate(13deg);border:1px solid #ed7ca4;background:#422335;border-radius:12px;display:grid;place-items:center;font-size:74px;color:#ff8db5;box-shadow:0 20px 24px #0008}
/* Alias: kinetic typed words, progress/time. */
.motif-alias .type-stack{position:absolute;top:8px;bottom:10px;left:34px;right:34px;display:flex;flex-direction:column;justify-content:center;gap:5px;transform:rotate(-5deg)}.type-stack span{font-family:var(--font-display);line-height:1.35;font-size:clamp(25px,3.3vw,36px);text-align:center}.type-stack span:nth-child(1){color:#85b9ff;transform:translateX(-14px)}.type-stack span:nth-child(2){color:#fff}.type-stack span:nth-child(3){color:#7caeff;transform:translateX(21px)}.type-stack .type-progress{height:5px;width:75%;margin:17px auto 0;border-radius:20px;background:#30425d;overflow:hidden}.type-progress::after{content:"";display:block;width:69%;height:100%;background:#6eaeff}
/* Who Am I: concealed identity and viewer logic. */
.motif-whoami .identity-frame{position:absolute;left:50%;top:13px;transform:translateX(-50%) rotate(6deg);height:250px;width:206px;border:1px solid #60cdbb;border-radius:21px;background:linear-gradient(154deg,#24544e,#133a36);box-shadow:0 20px 29px #0007;padding:18px;display:flex;flex-direction:column;justify-content:space-between}.identity-frame small{font-size:10px;letter-spacing:.13em;color:#99eee2;font-weight:850}.identity-frame .identity-key{font-family:var(--font-display);font-size:52px;text-align:center;color:#c7fff4}.identity-frame footer{border-top:1px solid #68bcb179;font-size:9px;color:#b3ebe1;padding-top:15px;text-align:center;letter-spacing:.09em}
/* Danetki: progressive case-file. */
.motif-danetki .casefile{position:absolute;inset:8px 55px 18px;border-radius:13px;border:1px solid #d2934f;background:linear-gradient(166deg,#49382c,#241f22);padding:26px;box-shadow:0 20px 30px #0009;transform:rotate(-5deg)}.casefile small{color:#ffa950;font-size:11px;font-weight:800;letter-spacing:.15em}.casefile h4{font:400 26px/1.35 var(--font-display);margin:25px 0;color:#fff0d7}.casefile .case-lines{display:flex;flex-direction:column;gap:8px}.casefile .case-lines i{height:6px;background:#d9aa7259;border-radius:10px}.casefile .case-lines i:last-child{width:65%}.casefile .case-seal{position:absolute;top:24px;right:21px;width:42px;height:42px;border:1px dashed #efa85a;border-radius:50%;display:grid;place-items:center;color:#f5ae57;font-weight:850}
.feature-bottom{display:flex;justify-content:space-between;align-items:end;gap:15px;position:relative;z-index:1}.feature-small{color:var(--game-accent);font-size:10px;font-weight:850;letter-spacing:.12em}.feature-name h3{font:400 clamp(27px,3vw,35px)/1.3 var(--font-display);margin:5px 0 8px}.feature-name p{font-size:14px;color:#a9c3c6;line-height:1.5;max-width:370px;min-height:42px}.feature-controls{display:flex;gap:8px}.circle-btn{width:44px;height:44px;border-radius:13px;border:1px solid #476065;background:#22363b;color:#e3f4f1;font-size:22px;transition:background .2s,transform .2s}.circle-btn:hover{background:#36565c;transform:translateY(-2px)}.feature-go{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:12px;background:var(--game-accent);color:#0e2023;font-size:14px;font-weight:850;padding:15px 17px;min-height:51px;transition:transform .22s,filter .22s}.feature-go:hover{filter:brightness(1.15);transform:translateY(-2px)}.feature-go span:last-child{font-size:22px;font-weight:500}.feature-meter{height:2px;width:100%;margin-top:23px;background:#3d5357}.feature-meter span{height:100%;display:block;width:14.285%;background:var(--game-accent);transition:width .43s var(--ease),background-color .43s}
.catalog-side{border:1px solid rgba(166,205,204,.16);background:#122128;border-radius:25px;padding:15px;display:flex;flex-direction:column}.catalog-caption{padding:9px 9px 16px;display:flex;justify-content:space-between;font-size:10px;font-weight:850;letter-spacing:.12em;color:#a2b9b9}.game-links{display:flex;flex-direction:column;gap:4px}.game-link{--row-color:#a8c0c0;display:grid;grid-template-columns:23px 37px minmax(0,1fr) 27px 15px;align-items:center;gap:12px;padding:9px 12px 9px 10px;min-height:60px;border-radius:12px;border:1px solid transparent;transition:background .21s,border-color .21s,transform .2s}.game-link:hover,.game-link:focus-visible{background:#1b343b;border-color:#33535a;transform:translateX(3px)}.game-link.selected{background:#203940;border-color:rgba(108,212,212,.23)}.game-n{font-size:11px;color:#77929b;font-weight:800}.game-symbol{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;color:var(--row-color);border:1px solid color-mix(in srgb,var(--row-color) 40%,transparent);background:color-mix(in srgb,var(--row-color) 8%,transparent);font-size:19px;font-weight:750}.game-word{font-size:16px;font-weight:760;white-space:nowrap}.game-min{font-size:11px;color:var(--row-color);font-weight:830}.game-arrow{font-size:17px;color:#698b8e}.game-link.selected .game-arrow,.game-link:hover .game-arrow{color:var(--brand)}.game-link[data-game="mafia"]{--row-color:#ff6b85}.game-link[data-game="bunker"]{--row-color:#f0b34d}.game-link[data-game="codenames"]{--row-color:#57d29b}.game-link[data-game="spy"]{--row-color:#ff5c9d}.game-link[data-game="alias"]{--row-color:#68afff}.game-link[data-game="whoami"]{--row-color:#55d7c2}.game-link[data-game="danetki"]{--row-color:#f5a343}.side-hint{font-size:12px;color:#849a9f;line-height:1.55;margin:auto 10px 11px;padding-top:23px}
.room{background:linear-gradient(158deg,#101c20,#15252a 74%,#112127);border-block:1px solid rgba(160,215,207,.07)}.room-layout{display:grid;grid-template-columns:.81fr 1.19fr;gap:70px;align-items:center}.room h2{margin-top:17px}.room h2 span{color:var(--brand)}.room-copy>p:not(.micro){font-size:17px;line-height:1.6;color:var(--muted);margin-top:24px;max-width:370px}.room-fact{display:flex;align-items:center;gap:11px;font-size:14px;line-height:1.5;font-weight:660;color:#cfe8e4;margin-top:24px}.fact-symbol{width:25px;height:25px;display:grid;place-items:center;border:1px solid rgba(108,212,212,.33);color:var(--brand);border-radius:9px}.room-diagram{position:relative;min-height:345px;border:1px solid #35545a;border-radius:27px;background:radial-gradient(circle at 50% 35%,rgba(63,137,134,.11),transparent 58%),linear-gradient(145deg,#1d3338,#13252b);padding:23px 25px 20px;overflow:hidden;isolation:isolate}.diagram-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.diagram-visual-note{font-size:9px;color:#779598;letter-spacing:.1em;font-weight:750}.room-core{position:relative;z-index:3;margin:17px auto 0;width:185px;height:127px;border:1px solid rgba(108,212,212,.4);border-radius:18px;background:#21444a;box-shadow:0 10px 27px #0005;text-align:center;padding:12px 17px;transform:translateY(0);transition:transform .5s var(--ease)}.room-core-brand{display:flex;gap:7px;align-items:center;justify-content:center;color:#e1fffb;font-size:11px;letter-spacing:.06em}.room-core-brand img{width:23px;height:23px}.room-code{font-size:20px;font-weight:820;color:#def7ef;letter-spacing:.12em;margin-top:8px;opacity:.9;transition:opacity .4s}.room-status{display:flex;align-items:center;justify-content:center;gap:7px;font-size:9px;color:#a1d7d0;margin-top:8px}.room-status i{width:6px;height:6px;border-radius:50%;background:#6cd4d4}.room-lines{position:absolute;left:2%;width:96%;height:230px;top:73px;z-index:1;overflow:visible}.room-lines path{fill:none;stroke:#5cbdb7;stroke-width:1.5;stroke-dasharray:5 5;stroke-dashoffset:350;opacity:.45;transition:stroke-dashoffset .9s var(--ease)}.device-list{position:relative;z-index:2;display:flex;justify-content:space-around;gap:25px;margin-top:68px}.device{display:flex;flex-direction:column;align-items:center;gap:5px;width:80px;opacity:.45;transform:translateY(6px);transition:opacity .6s,transform .6s}.device>span:first-child{position:absolute;top:-15px;font-size:9px;color:#91b0b1;font-weight:750}.device-avatar{width:42px;height:42px;display:grid;place-items:center;border:1px solid #4f8b8d;background:#1e464c;color:#b5ece7;border-radius:14px;font-size:15px;font-weight:850}.device small{font-size:9px;letter-spacing:.05em;color:#8daeb0}.device i{width:15px;height:2px;background:#6cd4d4;border-radius:5px;opacity:.5}.room-diagram.animated .room-lines path{stroke-dashoffset:0}.room-diagram.animated .device{opacity:1;transform:none}.room-diagram.animated .device:nth-child(2){transition-delay:.25s}.room-diagram.animated .device:nth-child(3){transition-delay:.5s}.room-diagram:not(.animated) .room-code{opacity:.43}.diagram-footer{border-top:1px solid #37515870;display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-top:13px;gap:12px;font-size:11px;color:#91b2b1}.diagram-footer button{border:0;color:#a8e1db;background:none;font-size:11px;font-weight:750;padding:8px}
.platform{background:#101d21}.platform-heading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px}.platform-heading h2{margin-top:9px}.platform-heading>p:last-child{color:var(--muted);font-size:16px}.platform-list{margin-top:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.platform-item{display:flex;align-items:center;gap:14px;padding:20px 21px;border:1px solid #385155;border-radius:18px;background:#1a2e34;min-height:90px;transition:border-color .2s,transform .2s}.platform-item[href]:hover{border-color:#6cd4d4;transform:translateY(-3px)}.platform-ico{width:40px;height:40px;border:1px solid #537679;border-radius:12px;display:grid;place-items:center;font-size:20px;color:#76d6cd;flex-shrink:0}.platform-item b{font-size:16px;flex:1}.platform-item>span:nth-last-child(2){color:#9bb2b7;font-size:12px}.platform-item.no-url{opacity:.8}.muted-arrow{color:#5b757c}
.faq{background:#0e181c;border-top:1px solid #3e565720}.faq-layout{display:grid;grid-template-columns:.73fr 1.27fr;gap:90px}.faq h2{margin-top:12px}.faq-list details{border-bottom:1px solid #364e5163}.faq-list summary{list-style:none;min-height:66px;padding:19px 29px 19px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px;font-weight:700;cursor:pointer}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"+";font-weight:400;font-size:23px;color:var(--brand)}.faq-list details[open] summary::after{content:"−"}.faq-list details p{font-size:14px;line-height:1.6;color:var(--muted);padding:0 30px 20px 0;max-width:590px}
.closing{padding:87px 0;background:radial-gradient(ellipse 60% 78% at 50% 100%,rgba(56,132,130,.14),transparent 77%),#0d191d;text-align:center;border-top:1px solid #42585a2d}.closing-inner{display:flex;flex-direction:column;align-items:center}.closing-mark{width:68px;height:68px;border:1px solid #406568;border-radius:21px;background:#19353a;display:grid;place-items:center;margin-bottom:23px}.closing h2{margin:13px auto 27px}.closing h2 span{color:var(--brand)}.footer{border-top:1px solid #38565954;padding:23px 0;background:#0c1519}.footer-inner{display:flex;justify-content:space-between;gap:20px;color:#758d94;font-size:11px}.footer-inner>div{display:flex;gap:23px}.footer-inner a:hover{color:var(--brand)}
/* Responsive priority: 390 x 844. */
@media(max-width:800px){.topbar{height:66px}.shell{width:min(100% - 36px,540px)}.brand{font-size:14px;gap:8px}.brand img{width:28px;height:28px}.top-actions{gap:8px}.langs button{min-width:31px;height:30px;font-size:11px}.header-play{height:36px;padding:0 11px;font-size:12px;gap:7px}.hero-layout{grid-template-columns:1fr;min-height:auto;gap:3px;padding-top:50px;padding-bottom:27px}.hero h1{font-size:clamp(30px,8.5vw,41px);line-height:1.24;letter-spacing:-.04em;margin-top:21px}.hero-sub{font-size:15px;line-height:1.58;margin-top:19px;max-width:375px}.hero-cta{gap:13px;margin-top:25px}.btn{min-height:51px;padding:0 17px;font-size:14px;gap:19px}.entry-link{font-size:12px;gap:7px}.hero-platform{margin-top:20px;font-size:11px}.hero-art{width:min(100%,390px);height:295px;margin:4px auto 0;transform:scale(.96);transform-origin:center top}.hero-art::before{inset:35px 20px}.hero-slab-mafia{width:150px;height:161px;top:26px;left:0;border-radius:14px}.hero-slab-alias{width:148px;height:159px;right:0;bottom:12px;border-radius:14px}.slab-head{padding:12px 12px 5px;font-size:8px}.slab-head span{font-size:7px}.mafia-micro{height:75px;gap:6px}.mafia-micro span{width:29px;height:51px;border-radius:5px}.mafia-micro span.active{height:66px}.mafia-micro span::after{width:12px;height:12px;box-shadow:0 0 0 6px #e55f8014}.hero-slab-mafia p{font-size:8px}.slab-foot{font-size:7px;left:11px;bottom:9px}.alias-micro{height:99px;font-size:14px}.hero-center{width:200px;height:185px;top:64px;border-radius:18px}.hero-center::before{inset:6px;border-radius:14px}.hero-center-top{padding:14px 14px 0;font-size:9px;gap:7px}.hero-center-top img{width:21px;height:21px}.center-rule{margin:6px 14px 0}.hero-room-figure{height:55px;gap:5px}.figure-line{width:12px}.figure-dots{gap:6px}.figure-dots i{width:10px;height:18px}.figure-dots i:before{width:8px;height:8px;top:-10px;left:1px}.figure-dots i:nth-child(2){height:25px}.hero-center-foot{padding:10px 13px 15px;font-size:8px}.art-bottom-note{left:6px;bottom:26px;font-size:7px}.section-pad{padding:65px 0}.section-heading{align-items:start;gap:10px;flex-direction:column;margin-bottom:22px}.section-heading h2,.room h2,.platform h2,.faq h2,.closing h2{font-size:clamp(27px,7vw,35px)}.section-lead{font-size:14px}.catalog-layout{grid-template-columns:1fr;gap:17px}.feature-panel{min-height:474px;padding:20px 19px;border-radius:23px}.feature-visual{height:253px}.motif{height:230px;width:min(100%,380px)}.role-cards{height:179px}.role-card.side{width:92px;height:142px}.role-card.main{width:128px;height:176px}.role-card.side b{font-size:35px}.role-card.main strong{font-size:14px}.vote-track{margin-top:5px;font-size:9px}.motif-bunker .vault{inset:11px 31px 10px}.motif-bunker .vault-door{top:20px;bottom:15px}.motif-codenames .wordboard{inset:9px 7px;gap:6px}.wordboard span{font-size:9px}.motif-spy .spy-document{inset:10px 48px 20px}.spy-cover{right:5px;top:28px}.motif-alias .type-stack{left:15px;right:15px}.motif-whoami .identity-frame{height:213px;width:175px}.motif-danetki .casefile{inset:8px 40px}.feature-name h3{font-size:27px}.feature-name p{min-height:39px;font-size:13px}.feature-controls{gap:6px}.circle-btn{width:40px;height:40px}.feature-go{margin-top:17px}.feature-meter{margin-top:17px}.catalog-side{padding:11px 13px;border-radius:22px}.game-link{min-height:56px;padding:7px 10px;gap:9px;grid-template-columns:18px 34px minmax(0,1fr) 25px 14px}.game-symbol{width:34px;height:34px}.game-word{font-size:14px}.game-n{font-size:10px}.side-hint{font-size:11px;margin-bottom:7px;padding-top:16px}.room-layout{grid-template-columns:1fr;gap:27px}.room-copy>p:not(.micro){margin-top:16px;font-size:15px}.room-fact{margin-top:17px;font-size:13px}.room-diagram{padding:17px 16px 16px;min-height:326px}.room-core{margin-top:19px}.device-list{margin-top:65px}.room-lines{top:80px}.diagram-footer{margin-top:17px}.platform-list{grid-template-columns:1fr;gap:9px;margin-top:27px}.platform-item{min-height:71px;padding:14px 16px}.faq-layout{grid-template-columns:1fr;gap:14px}.faq-list summary{min-height:64px;font-size:14px}.faq-list details p{font-size:13px}.closing{padding:70px 0}.footer-inner{flex-direction:column;gap:10px}}
@media(max-width:359px){.shell{width:calc(100% - 28px)}.brand{font-size:12px}.brand img{width:24px;height:24px}.langs{padding:2px}.langs button{min-width:26px;font-size:10px}.header-play{font-size:11px;padding:0 9px}.hero h1{font-size:30px}.hero-cta{gap:8px}.btn{font-size:13px;padding-inline:13px}.entry-link{font-size:11px}.hero-art{transform:scale(.9);margin-bottom:-23px}.feature-panel{padding-inline:15px}.feature-controls{gap:4px}.circle-btn{width:36px;height:36px}.game-link{gap:8px}.section-pad{padding-block:56px}}
@media(min-width:801px) and (max-width:1100px){.hero h1{font-size:clamp(37px,4.5vw,50px)}.hero-layout{gap:15px}.hero-art{transform:scale(.88)}.catalog-layout{grid-template-columns:1fr 360px}.room-layout{gap:32px}}
/* Non-blocking motion and accessibility. */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.line-reveal>span{transform:none!important}.hero-art,.hero-slab-mafia,.hero-slab-alias,.hero-center{animation:none!important}.room-diagram .room-lines path{stroke-dashoffset:0!important}.room-diagram .device{opacity:1!important;transform:none!important}.room-diagram:not(.animated) .room-code{opacity:1!important}}
/* Hero → catalogue transition: move the same visual rhythm through a shared connector. */
html[data-motion="on"] .handoff-connector{height:54px}html[data-motion="on"] .handoff-path{transform:scaleY(var(--handoff,.4))}.feature-panel{--handoff-progress:0}

.no-js .room-diagram .device{opacity:1;transform:none}.no-js .room-diagram .room-code{opacity:1}.no-js .room-diagram .room-lines path{stroke-dashoffset:0}.no-js .line-reveal>span{animation:none;transform:none}.no-js .hero-art,.no-js .hero-slab-mafia,.no-js .hero-slab-alias,.no-js .hero-center{animation:none}

/* Stable touch panning and mobile scroll handoff */
.feature-panel{touch-action:pan-y}.hero-art.entrance-done{animation:none;transform:translateY(calc(var(--flight,0)*-20px)) scale(calc(var(--size,1) - var(--flight,0)*.07));transition:transform .12s linear}@media(max-width:800px){.hero-art{--size:.96}}@media(max-width:359px){.hero-art{--size:.9}}

/* Game detail pages; public 9.4.3 DS2 rollout */
.breadcrumbs{display:flex;gap:13px;align-items:center;color:#8caaa9;font-size:13px;padding-top:23px}.breadcrumbs a:hover{color:var(--brand)}.breadcrumbs [aria-current]{color:#e3f2ee}.game-hero{padding-block:100px 112px;display:grid;grid-template-columns:.93fr 1.07fr;gap:70px;align-items:center}.game-copy h1{font-size:clamp(48px,7vw,84px);margin:20px 0 14px;line-height:1.15}.game-strap{font:400 clamp(23px,2.2vw,31px)/1.4 var(--font-display);letter-spacing:-.02em;color:var(--page-color)}.game-description{font-size:18px;line-height:1.6;color:var(--muted);max-width:480px;margin-top:23px}.game-tags{display:flex;gap:9px;flex-wrap:wrap;margin:22px 0 27px}.game-tags span{font-size:12px;padding:10px 14px;border-radius:30px;color:#c5ded8;border:1px solid #38545a;background:#162a30}.game-stage{min-height:410px;border:1px solid color-mix(in srgb,var(--page-color) 35%,#2b4546);border-radius:29px;background:radial-gradient(ellipse at 55% 48%,color-mix(in srgb,var(--page-color) 18%,transparent),transparent 67%),linear-gradient(135deg,#223039,#122127);box-shadow:0 40px 80px #02080856;padding:28px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.gs-top,.gs-bottom{display:flex;justify-content:space-between;font-size:10px;font-weight:850;letter-spacing:.11em;color:var(--page-color)}.gs-top span:last-child,.gs-bottom span:last-child{color:#7c9b9f}.game-art-mafia{width:100%;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:22px}.game-art-mafia>span{color:#f5a3b6;font-size:12px;font-weight:850;letter-spacing:.16em}.mafia-art-cards{display:flex;align-items:center;justify-content:center;height:160px}.mafia-art-cards i{width:99px;height:142px;background:linear-gradient(150deg,#56313c,#281f2a);border:1px solid #b85d78;border-radius:14px;transform:rotate(-14deg) translateX(25px);box-shadow:0 18px 30px #0005}.mafia-art-cards i:nth-child(2){transform:translateY(-12px);z-index:2;background:linear-gradient(160deg,#82374e,#312030);border-color:#f47d99}.mafia-art-cards i:nth-child(3){transform:rotate(14deg) translateX(-25px)}.game-art-mafia>strong{font-size:13px;color:#fff}.vote-dots{color:#fc7894;letter-spacing:.35em}.game-art-vault{width:220px;height:238px;border-radius:115px 115px 16px 16px;border:2px solid #f0b34d;position:relative;margin:auto;background:#483d2b;box-shadow:inset 0 0 0 15px #282c29,inset 0 0 0 16px #a88645}.vault-gate{position:absolute;inset:40px 40px 10px;background:linear-gradient(160deg,#816a49,#363b31);border:1px solid #eab566;border-radius:70px 70px 8px 8px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:17px;text-align:center}.vault-gate span{color:#ffd18b;font:400 28px var(--font-display)}.vault-gate b{font-size:10px;color:#e4bd80;max-width:100px}.game-art-words{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;transform:rotate(-5deg);max-width:360px;margin:auto}.game-art-words i{display:grid;place-items:center;border-radius:8px;border:1px solid #4d987a;background:#254c40;color:#d8f4e6;padding:12px 8px;font-style:normal;font-size:10px;font-weight:800;min-height:57px}.game-art-words i:nth-child(3n){border-color:#6d9bd5;background:#264b6a}.game-art-words i:nth-child(5){border-color:#e45a63;background:#65323b}.game-art-emblem{margin:auto;text-align:center;color:var(--page-color);font-size:14px;letter-spacing:.16em;font-weight:800}.game-art-emblem b{display:block;color:#fff;font:400 clamp(30px,4vw,50px)/1.3 var(--font-display);letter-spacing:-.03em;margin-top:13px}.game-art-type{text-align:center;margin:auto;font:400 clamp(27px,4vw,48px)/1.5 var(--font-display);letter-spacing:-.02em}.game-art-type em{font-style:normal;color:var(--page-color)}.game-details{border-top:1px solid #3147496c;padding-top:68px;padding-bottom:75px;display:grid;grid-template-columns:.8fr 1.2fr;gap:65px}.game-details h2{font-size:clamp(27px,3vw,40px);margin-top:13px}.game-details ol{list-style:none;counter-reset:g;padding:0;margin:0}.game-details li{counter-increment:g;border-bottom:1px solid #344e4e6b;padding:21px 0;display:flex;gap:20px;line-height:1.6;color:#c9dbdc}.game-details li::before{content:'0' counter(g);color:var(--page-color);font-size:11px;font-weight:850;letter-spacing:.09em;margin-top:5px}.game-bottom{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:92px}.detail-faq,.more-games{border-radius:23px;border:1px solid #355051;background:#17282e;padding:31px}.game-bottom h3{font:400 23px/1.4 var(--font-display);margin:13px 0}.game-bottom p:not(.micro){font-size:15px;line-height:1.6;color:#a8c0c0}.more-games>div{display:flex;flex-wrap:wrap;gap:9px}.more-games a{border:1px solid #4c6266;border-radius:10px;padding:11px 13px;font-size:13px;color:#e1f5f3}.more-games a:hover{border-color:var(--page-color)}@media(max-width:800px){.breadcrumbs{font-size:11px}.game-hero{padding-block:58px 72px;grid-template-columns:1fr;gap:31px}.game-copy h1{font-size:43px}.game-strap{font-size:22px}.game-description{font-size:15px}.game-stage{min-height:335px}.game-details{padding-block:54px;grid-template-columns:1fr;gap:21px}.game-details li{font-size:14px}.game-bottom{grid-template-columns:1fr;padding-bottom:65px}.detail-faq,.more-games{padding:23px}.game-bottom h3{font-size:21px}}

/* R4 production polish: explicit identities, compact editorial composition. */
:root{--font-display:"TV Dela","Dela Gothic One",sans-serif}
html[lang="zh-CN"]{--font-display:"Noto Sans CJK SC","Noto Sans SC","Microsoft YaHei",sans-serif}
html[lang="zh-CN"] h1,html[lang="zh-CN"] h2,html[lang="zh-CN"] h3{font-weight:700;letter-spacing:-.025em;-webkit-text-stroke:0;text-shadow:none}
.site-header .seo-langs{display:flex;align-items:center;padding:3px;border-radius:12px;background:#17292d;border:1px solid #345153}.site-header .seo-langs a{min-width:32px;padding:9px 8px;text-align:center;border-radius:9px;font-size:12px;font-weight:700;color:#9fbcbe}.site-header .seo-langs a[aria-current]{background:#304b50;color:#e8f7f2}
.game-icon{display:block;flex-shrink:0}.game-symbol .game-icon{width:21px;height:21px}
.game-symbol.symbol-mafia{color:#ff6b85}.game-symbol.symbol-bunker{color:#f0b34d}.game-symbol.symbol-danetki{color:#f5a343}
.motif .game-icon{width:43px;height:43px}.role-card .game-icon{margin:auto;width:42px;height:42px;color:#fc9eb7}.role-card.main .mafia-mask{margin:auto;display:grid;place-items:center;width:75px;height:75px;border:1px solid #ff879d60;border-radius:50%;background:#562b3c77}.role-card.main .mafia-mask svg{color:#ff9ab2;width:48px;height:48px}
.spy-cover{display:grid;place-items:center}.spy-cover svg{width:30px}
.case-seal svg{width:34px;height:34px}
.feature-panel.stage-exit .feature-visual>*{animation:stage-out .17s both}.feature-panel.stage-enter .feature-visual>*{animation:stage-in .45s cubic-bezier(.2,.95,.2,1) both}
@keyframes stage-out{to{opacity:.25;transform:translateY(9px) scale(.97);clip-path:inset(0 0 80% 0 round 16px)}}
@keyframes stage-in{from{opacity:.55;transform:translateY(12px) scale(.975);clip-path:inset(0 0 80% 0 round 16px)}to{opacity:1;transform:none;clip-path:inset(0 round 0)}}
.hero{min-height:calc(100svh - 72px)}.hero-layout{min-height:calc(100svh - 74px)}
.handoff-connector{display:none!important}.art-bottom-note{display:none!important}.hero-platform>i:first-child{display:none!important}
.hero-art{translate:0 calc(var(--scroll-handoff,0) * -16px);transition:translate .14s linear}
.hero .mafia-micro span{position:relative}.hero .mafia-micro span::after{content:'●';font-size:13px;text-align:center;color:#ed839e;background:none;box-shadow:none}
.hero-center-foot{align-items:center}.hero-center-foot span{white-space:nowrap}
.room-diagram:not(.animated) .room-code{opacity:1}.device{opacity:1;transform:none}.device small{max-width:100px;text-align:center}
.room-diagram.animated .device:nth-child(1){animation:connect .55s .1s both}.room-diagram.animated .device:nth-child(2){animation:connect .55s .52s both}.room-diagram.animated .device:nth-child(3){animation:connect .55s 1s both}
.room-diagram.animated .room-code{animation:room-code .7s .2s both}
@keyframes connect{from{opacity:.2;transform:translateY(18px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes room-code{from{opacity:.2;letter-spacing:.5em}to{opacity:1;letter-spacing:.12em}}
.diagram-footer{display:none!important}.room-lines{opacity:.5}
.platform-ico svg{stroke:currentColor}.platform-item.no-url{opacity:1}.platform-item.no-url span:nth-last-child(2){color:#87a8ac}
.feature-panel .feature-visual{overflow:hidden}.feature-bottom{position:relative}
.side-hint,.section-lead{display:none}
.game-hero .game-stage-art{height:280px;display:grid;place-items:center}.game-hero .game-stage-art .motif{width:100%;max-width:370px;margin:auto;--game-accent:var(--page-color)}.game-play{background:var(--page-color)!important;color:#102126!important}
.game-facts{display:grid;grid-template-columns:1fr 2fr;gap:14px;margin-bottom:72px}.game-facts>div{border-radius:18px;border:1px solid #36565b;padding:24px;background:#1b2e33;display:grid;gap:9px}.game-facts small{font-size:11px;color:#9bb7b6}.game-facts strong{font-size:19px}
.game-faq{display:grid;grid-template-columns:.65fr 1fr;gap:60px;margin-bottom:90px}.game-faq h2,.game-related h2{font-family:var(--font-display);font-size:clamp(28px,3vw,42px);font-weight:400;margin-top:12px}
.game-related{margin-bottom:85px}.related-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}.related-row{display:grid;min-height:75px;grid-template-columns:40px minmax(0,1fr) 28px 18px;border:1px solid #345358;background:#1b3035;border-radius:17px}.related-row .game-word{font-size:15px}
.footer-inner{align-items:center}.footer-inner nav{display:flex;gap:24px;flex-wrap:wrap}.footer-inner nav a:hover{color:var(--brand)}
@media(max-width:800px){.hero{min-height:calc(100svh - 66px)}.hero-layout{min-height:calc(100svh - 66px);align-content:center}.hero-art{max-height:285px}.game-faq{grid-template-columns:1fr;gap:15px;margin-bottom:60px}.game-facts{grid-template-columns:1fr 1.5fr;margin-bottom:60px}.related-list{grid-template-columns:1fr;gap:10px}.game-hero .game-stage-art{height:225px}.game-hero .game-stage-art .motif{transform:scale(.9)}.footer-inner{align-items:flex-start}.footer-inner nav{gap:15px}}
@media(max-width:359px){.site-header .seo-langs a{font-size:10px;min-width:27px;padding:8px 5px}.related-row{grid-template-columns:38px minmax(0,1fr) 25px 18px}.game-facts{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.room-diagram.animated .device,.room-diagram.animated .room-code,.feature-panel.stage-enter .feature-visual>*{animation:none!important}.hero-art{translate:none!important}}
/* First screen: theatrical mask is the Mafia identity, not an abstract stack. */
.hero .mafia-micro{display:grid;place-items:center}.hero .mafia-micro .game-icon{width:56px;height:56px;color:#e67694;filter:drop-shadow(0 6px 15px #d64b6826)}

/* R4.1 final closeout — mobile editorial alignment, legible motifs and room narrative. */
.hero .hero-sub{display:none!important}
.hero-platform .live-pulse{display:none!important}
.hero-art .hero-slab-mafia{left:-17px;top:13px}
.hero-art .hero-slab-alias{right:-14px;bottom:17px}
.catalog .section-heading{justify-content:center;text-align:center}
.catalog .section-heading>div{width:100%}
.feature-visual .role-cards{padding-top:3px}
.role-card.main{justify-content:initial;gap:0;padding:19px 9px 13px;box-sizing:border-box}
.role-card.main small{margin:1px 0 13px}
.role-card.main .mafia-mask{margin:0 auto 13px}
.role-card.main strong{margin-top:auto;margin-bottom:12px;font-size:clamp(12px,1.35vw,16px);letter-spacing:.015em;line-height:1.25;white-space:normal;overflow-wrap:anywhere;text-align:center;width:100%;max-width:100%;color:#fff}
.role-card.main i{flex-shrink:0}
.role-card.side{justify-content:flex-start;padding:18px 7px 16px;gap:25px;box-sizing:border-box}
.role-card.side b.identity-question{font-family:var(--font-display);font-size:45px;line-height:1.25;color:#d28b9e}
.role-card.side small{margin-bottom:6px}
.room-layout{row-gap:25px}
.room-copy{text-align:center}
.room-copy>p:not(.micro){margin-left:auto;margin-right:auto;max-width:460px}
.room-fact{grid-column:1/-1;justify-content:center;text-align:center;margin-top:0;margin-bottom:0}
.room-diagram .room-lines path{stroke-dashoffset:0;opacity:.24;transition:stroke-dashoffset 1.3s var(--ease),opacity .7s var(--ease)}
.room-diagram.animated .room-lines path{opacity:.65}
.room-diagram.animated .room-lines path:nth-child(1){animation:room-path 2.1s .8s ease-out both}
.room-diagram.animated .room-lines path:nth-child(2){animation:room-path 2.1s 1.3s ease-out both}
.room-diagram.animated .room-lines path:nth-child(3){animation:room-path 2.1s 1.8s ease-out both}
.room-diagram .room-core{transform:translateY(0);transition:box-shadow .55s,transform .55s}
.room-diagram.animated .room-core{animation:room-wake .9s .14s cubic-bezier(.2,.8,.2,1) both}
.room-diagram .device{opacity:1;transform:none}
.room-diagram.animated .device:nth-child(1){animation:room-node .76s .95s both}
.room-diagram.animated .device:nth-child(2){animation:room-node .76s 1.75s both}
.room-diagram.animated .device:nth-child(3){animation:room-node .76s 2.55s both}
.room-status span{display:inline-block;min-height:1em}
.room-diagram.animated .room-status i{animation:room-heart 1.25s 1.35s ease-in-out 3}
@keyframes room-path{0%{stroke-dashoffset:350;opacity:.08}70%{stroke-dashoffset:20;opacity:.7}100%{stroke-dashoffset:0;opacity:.65}}
@keyframes room-wake{0%{transform:translateY(10px) scale(.96);box-shadow:0 4px 9px #0004}100%{transform:none;box-shadow:0 10px 27px #0005}}
@keyframes room-node{0%{opacity:.35;transform:translateY(14px) scale(.94)}100%{opacity:1;transform:none}}
@keyframes room-heart{50%{box-shadow:0 0 0 5px rgba(108,212,212,.1)}}
.platform-heading>p:last-child{margin-top:12px;font-size:15px}
.motif-codenames .wordboard .link{display:none!important}
.motif-codenames .wordboard{transform:rotate(-2deg)}
.game-facts>div{min-width:0}
.game-facts strong{overflow-wrap:anywhere;hyphens:auto}
@media(max-width:800px){
 .hero-layout{padding-top:46px;gap:10px;justify-items:center}
 .hero-copy{text-align:center;width:100%}
 .hero .micro{justify-content:center}
 .hero h1{margin:23px auto 0}
 .hero-cta{justify-content:center;gap:13px;margin-top:29px}
 .hero-platform{justify-content:center;margin-top:18px}
 .hero-art{margin:28px auto 4px;height:294px}
 .hero-art .hero-slab-mafia{left:-4px;top:14px}
 .hero-art .hero-slab-alias{right:-4px;bottom:18px}
 .catalog .section-heading,.room-copy,.faq-layout>div:first-child{text-align:center}
 .catalog .section-heading .micro,.room-copy .micro,.faq-layout .micro{justify-content:center}
 .room-layout{grid-template-columns:1fr;gap:26px}
 .room h2{margin-inline:auto}
 .room-copy>p:not(.micro){max-width:340px;margin-top:20px;text-wrap:balance}
 .room-fact{margin-top:-3px;max-width:340px;margin-inline:auto}
 .game-facts{grid-template-columns:1fr!important;gap:10px;margin-bottom:54px}
 .game-facts>div{padding:18px 20px;display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;column-gap:14px;min-height:67px}
 .game-facts small{font-size:12px}
 .game-facts strong{font-size:15px;line-height:1.4;text-align:right}
 .faq-layout>div:first-child{margin-bottom:3px}
}
@media(max-width:359px){.game-facts>div{grid-template-columns:104px minmax(0,1fr)}.game-facts strong{font-size:13px}.hero-cta{gap:6px}.hero-cta .entry-link{font-size:11px}}
@media(prefers-reduced-motion:reduce){.room-diagram.animated .room-lines path,.room-diagram.animated .room-core,.room-diagram.animated .device,.room-diagram.animated .room-status i{animation:none!important;transform:none!important;opacity:1!important}}

/* 9.4.3 R4.2 — final micro-polish: semantic game art and one-screen room. */
.hero-room-games{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;margin:auto 0;min-height:102px}
.room-game-mark{display:grid;place-items:center;width:51px;height:59px;border:1px solid currentColor;border-radius:13px;background:color-mix(in srgb,currentColor 12%,#112b30);box-shadow:0 8px 19px #0615194d;transform-origin:center;opacity:.97}
.room-game-mark .game-icon{width:28px;height:28px;stroke-width:1.9}
.room-game-mafia{color:#ff7c9e;transform:rotate(-13deg) translateY(7px)}
.room-game-bunker{color:#edb658;transform:translateY(-5px);width:57px;height:67px}
.room-game-codenames{color:#57d5aa;transform:rotate(11deg) translateY(7px)}
/* The room section is an independent viewport chapter, offset below the sticky header. */
.room{min-height:calc(100svh - 78px);min-height:calc(100dvh - 78px);box-sizing:border-box;display:flex;align-items:center;scroll-margin-top:78px}
.room>.room-layout{width:100%}
.room-fact{margin-top:15px}
@media(max-width:800px){
 .room{min-height:calc(100svh - 66px);min-height:calc(100dvh - 66px);scroll-margin-top:66px;padding-block:clamp(53px,6.6svh,76px)}
 .room-layout{row-gap:30px}
 .room-fact{margin-top:6px;line-height:1.45}
 .hero-room-games{min-height:85px;gap:7px}
 .room-game-mark{width:47px;height:55px}.room-game-bunker{width:53px;height:63px}
}
@media(max-width:380px){.room{padding-block:36px}.room-layout{row-gap:20px}.room-diagram{padding-inline:15px}}
@media(prefers-reduced-motion:reduce){.room-game-mark{transition:none!important}}
/* 9.4.3 R4.3 final motion: progressive only, CSS unchanged until JS observes a section. */
@keyframes tv-section-rise{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@keyframes tv-catalog-visual{from{opacity:0;translate:-16px 8px;scale:.965}to{opacity:1;translate:0 0;scale:1}}
@keyframes tv-row-in{from{opacity:0;translate:19px 0}to{opacity:1;translate:0 0}}
@keyframes tv-platform-in{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
.catalog.tv-scroll-ready:not(.tv-scroll-visible) .feature-visual,
.catalog.tv-scroll-ready:not(.tv-scroll-visible) .feature-bottom,
.catalog.tv-scroll-ready:not(.tv-scroll-visible) .feature-go,
.catalog.tv-scroll-ready:not(.tv-scroll-visible) .catalog-caption,
.catalog.tv-scroll-ready:not(.tv-scroll-visible) .game-link,
.platform.tv-scroll-ready:not(.tv-scroll-visible) .platform-item{opacity:0}
.catalog.tv-scroll-visible .feature-visual{animation:tv-catalog-visual .56s cubic-bezier(.18,.8,.23,1) both}
.catalog.tv-scroll-visible .feature-bottom{animation:tv-section-rise .49s cubic-bezier(.2,.8,.2,1) .10s both}
.catalog.tv-scroll-visible .feature-go{animation:tv-section-rise .47s cubic-bezier(.2,.8,.2,1) .19s both}
.catalog.tv-scroll-visible .catalog-caption{animation:tv-section-rise .37s ease-out .06s both}
.catalog.tv-scroll-visible .game-link{animation:tv-row-in .37s cubic-bezier(.2,.82,.3,1) both;animation-delay:calc(.09s + var(--tv-item-index,0)*.055s)}
.platform.tv-scroll-visible .platform-item{animation:tv-platform-in .43s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--tv-item-index,0)*.085s)}
@keyframes tv-motif-glide{from{opacity:.35;translate:-12px 9px}to{opacity:1;translate:0 0}}
@keyframes tv-motif-lift{from{opacity:.38;translate:10px 8px}to{opacity:1;translate:0 0}}
@keyframes tv-motif-pop{from{opacity:.4;scale:.92}to{opacity:1;scale:1}}
.catalog.tv-scroll-visible .motif-mafia .role-card.side,
.feature-panel.stage-enter .motif-mafia .role-card.side{animation:tv-motif-glide .42s ease-out .12s both}
.catalog.tv-scroll-visible .motif-bunker .vault,
.feature-panel.stage-enter .motif-bunker .vault{animation:tv-motif-pop .42s ease-out .10s both}
.catalog.tv-scroll-visible .motif-codenames .wordboard span,
.feature-panel.stage-enter .motif-codenames .wordboard span{animation:tv-motif-pop .32s ease-out both;animation-delay:calc(var(--tv-item-index,0)*.028s)}
.catalog.tv-scroll-visible .motif-spy .spy-document,
.feature-panel.stage-enter .motif-spy .spy-document{animation:tv-motif-glide .4s ease-out .08s both}
.catalog.tv-scroll-visible .motif-spy .spy-cover,
.feature-panel.stage-enter .motif-spy .spy-cover{animation:tv-motif-lift .44s ease-out .12s both}
.catalog.tv-scroll-visible .motif-alias .type-stack span,
.feature-panel.stage-enter .motif-alias .type-stack span{animation:tv-motif-glide .34s ease-out both;animation-delay:calc(var(--tv-item-index,0)*.07s)}
.catalog.tv-scroll-visible .motif-whoami .identity-key,
.feature-panel.stage-enter .motif-whoami .identity-key{animation:tv-motif-pop .40s ease-out .08s both}
.catalog.tv-scroll-visible .motif-danetki .casefile,
.feature-panel.stage-enter .motif-danetki .casefile{animation:tv-motif-pop .44s ease-out .08s both}
@media(prefers-reduced-motion:reduce){
 .catalog.tv-scroll-ready .feature-visual,.catalog.tv-scroll-ready .feature-bottom,
 .catalog.tv-scroll-ready .feature-go,.catalog.tv-scroll-ready .catalog-caption,
 .catalog.tv-scroll-ready .game-link,.platform.tv-scroll-ready .platform-item{opacity:1!important;animation:none!important;translate:none!important;scale:none!important}
 .catalog .motif *,.feature-panel.stage-enter .motif *{animation:none!important}
}
