:root{--bg: #0b0907;--ink: #ead7ad;--panel: #ead9b2;--panel-ink: #2a160c;--line: #9a6d32;--gold: #d5a33c;--rust: #9b3f24;--teal: #2f7d76;--cell: clamp(42px, 7vw, 72px);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}button:disabled,.button-disabled{cursor:not-allowed;opacity:.45;pointer-events:none}.app{min-height:100vh;background:radial-gradient(circle at 20% 0%,rgba(177,79,41,.18),transparent 32rem),linear-gradient(135deg,#070503,#14100c);color:var(--ink);font-family:Georgia,Times New Roman,serif}.topbar{min-height:68px;border-bottom:1px solid #4c3516;background:#050403f0;display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding:0 24px}.brand,.topbar nav button,.account-chip button{background:transparent;border:0;color:var(--gold)}.brand{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.brand-mark{border:1px solid var(--line);border-radius:4px;padding:4px 6px;font-size:12px}.topbar nav{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}.topbar nav button{border-bottom:2px solid transparent;padding:6px 0;text-transform:uppercase;letter-spacing:.08em;font-size:12px}.topbar nav .nav-active{border-bottom-color:#f3d278;color:#f3d278}.account-chip{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:140px;color:#d8b166;font-size:13px}.account-chip button{border:1px solid var(--line);border-radius:4px;padding:5px 8px}.intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:clamp(14px,3vw,36px);background:#050403db;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.intro-modal{width:min(960px,100%);max-height:min(92vh,860px);overflow:auto;position:relative;display:grid;gap:14px;border:1px solid rgba(213,163,60,.86);border-radius:10px;background:radial-gradient(circle at 50% 0%,rgba(111,33,16,.36),transparent 26rem),linear-gradient(145deg,#090604fa,#24140cfa);color:var(--ink);box-shadow:0 34px 100px #000000b8;padding:clamp(16px,3vw,28px)}.intro-close{position:absolute;top:14px;right:14px;border:1px solid rgba(213,163,60,.75);background:#0e0805d1;color:#f3d278;border-radius:5px;padding:7px 10px}.intro-copy{padding-right:82px}.intro-kicker{display:block;color:#b99554;font-size:12px;text-transform:uppercase;letter-spacing:.14em}.intro-copy h1{margin:4px 0 0;color:#f3d278;font-size:clamp(28px,5vw,48px);line-height:1.05}.intro-video-frame{width:100%;aspect-ratio:16 / 9;border:1px solid rgba(213,163,60,.56);border-radius:8px;overflow:hidden;background:#070503}.intro-video,.intro-load{width:100%;height:100%}.intro-video{display:block;background:#050403}.intro-load{display:grid;place-items:center;gap:6px;border:0;background:linear-gradient(#0a070440,#0a0704ad),url(/media/rsg-intro-poster.jpg) center / cover,radial-gradient(circle at 50% 35%,#6f2110a8,#070503 68%);color:#f3d278;font-weight:700;font-size:clamp(20px,4vw,34px)}.intro-load small{display:block;color:#d7b66d;font-size:13px;font-weight:400}.intro-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.main-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;max-width:1480px;margin:0 auto;padding:22px}.board-column{min-height:calc(100vh - 112px);display:flex;align-items:center;justify-content:center}.match-stage{width:min(720px,100%);display:grid;gap:12px;align-items:center}.board-stage{position:relative;display:grid;place-items:center;min-height:calc((var(--cell) * 8) + 64px)}.board-status-card{border:1px solid rgba(213,163,60,.58);background:linear-gradient(135deg,#0d0906f0,#2c160ceb);box-shadow:0 20px 56px #00000059;color:#f3d278;padding:12px 16px;border-radius:8px;text-align:center}.turn-kicker{color:#b99554;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.turn-headline{margin-top:3px;font-size:clamp(20px,3vw,30px);font-weight:700}.capture-alert{margin:8px auto 0;width:fit-content;max-width:100%;border:1px solid rgba(236,92,52,.72);background:#731b10a6;color:#ffe4bc;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700}.countdown-gate,.ranked-result-card{width:min(520px,100%);min-height:min(560px,calc(100vh - 260px));display:grid;align-content:center;gap:16px;border:2px solid rgba(213,163,60,.75);border-radius:10px;background:radial-gradient(circle at 50% 20%,rgba(111,33,16,.5),transparent 18rem),linear-gradient(145deg,#090604f5,#25140cf0);color:#f3d278;padding:clamp(22px,5vw,42px);text-align:center;box-shadow:0 32px 90px #00000094}.countdown-ring{width:clamp(128px,26vw,190px);aspect-ratio:1;margin:0 auto;display:grid;place-items:center;border-radius:999px;border:2px solid rgba(243,210,120,.86);background:#0c0805d1;box-shadow:0 0 0 8px #d5a33c1f,inset 0 0 32px #d5a33c3d;animation:countdown-pulse 1s infinite}.countdown-ring span{font-size:clamp(64px,16vw,112px);line-height:1;font-weight:700}.countdown-gate strong,.ranked-result-card h2{font-size:clamp(22px,4vw,34px);margin:0}.countdown-gate p{margin:0;color:#b99554}.result-kicker{color:#b99554;font-size:12px;text-transform:uppercase;letter-spacing:.14em}.rating-results{display:grid;gap:8px}.rating-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 64px 64px;gap:8px;align-items:center;border:1px solid rgba(213,163,60,.32);border-radius:7px;background:#fff6dc14;padding:10px;text-align:left}.rating-row-own{border-color:#45ad8dc7;box-shadow:0 0 0 2px #45ad8d24}.rating-row strong,.rating-row span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rating-row span{color:#b99554;font-size:12px}.rating-before,.rating-delta,.rating-after{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.rating-delta{border-radius:999px;padding:4px 6px;text-align:center}.rating-gain{background:#2e8b5e40;color:#9fe1b5}.rating-loss{background:#972c203d;color:#ffb29b}.rematch-card{display:grid;gap:12px;border-top:1px solid rgba(213,163,60,.24);padding-top:14px}.rematch-card strong,.rematch-card span{display:block}.rematch-card span{color:#b99554;font-size:13px;margin-top:2px}.rematch-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.match-stage-your-turn .board-status-card{border-color:#45ad8dc7;box-shadow:0 0 0 1px #45ad8d33,0 22px 64px #0000006b}.match-stage-capture .board-status-card{border-color:#ea4e2ae6;box-shadow:0 0 0 2px #ea4e2a38,0 22px 64px #0000006b}.player-strip{min-height:68px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(154,109,50,.7);background:#090705cc;color:var(--ink);border-radius:8px;padding:10px 12px}.player-active{border-color:#f3d278;box-shadow:0 0 0 2px #d5a33c33}.player-own{background:linear-gradient(135deg,#090705e0,#1e251fe6)}.player-avatar{width:42px;aspect-ratio:1;border-radius:999px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(243,210,120,.7);background:#17100a;color:#f3d278;font-weight:700}.player-avatar img{width:100%;height:100%;object-fit:cover}.player-copy{min-width:0;display:grid;gap:2px}.player-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-copy span{color:#b99554;font-size:12px}.player-clock{min-width:68px;text-align:right;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;color:#f3d278}.board-shell{background:radial-gradient(circle at 25% 15%,#261a13,#070504 65%);border:2px solid #6d4b18;border-radius:8px;padding:clamp(14px,3vw,30px);box-shadow:0 32px 90px #00000094}.board-your-turn{border-color:#45ad8ddb;box-shadow:0 0 0 4px #2f7d7629,0 32px 90px #00000094}.board-must-capture{border-color:#f25f31f2;box-shadow:0 0 0 4px #c12d1938,0 32px 90px #0000009e}.file-row{display:grid;grid-template-columns:24px repeat(5,var(--cell));color:#ca9842;font-size:12px;text-align:center;margin-bottom:4px}.board-grid{display:grid;background:#351608;padding:8px;border:1px solid #7b4b17}.rank-label{width:24px;height:var(--cell);display:flex;align-items:center;justify-content:center;color:#ca9842;font-size:12px}.square{width:var(--cell);height:var(--cell);border:1px solid #301207;position:relative;display:grid;place-items:center;padding:0;overflow:hidden}.square-light{background:#c65331}.square-dark{background:#90361f}.square-legal:after,.square-capture:after{content:"";position:absolute;width:20%;aspect-ratio:1;border-radius:999px;background:#fadd7ee6;box-shadow:0 0 14px #fadd7ecc}.square-capture:after{width:62%;border:2px solid #670a0a;background:#690b0b33}.square-selected{outline:3px solid #f3d278;z-index:2}.square-forced{z-index:2}.square-forced .piece{animation:forced-piece-pulse 1.1s infinite}.square-last-from{box-shadow:inset 0 0 0 3px #2f7d76b8}.square-last-from:before{content:"";position:absolute;width:58%;height:3px;background:#88e1c7b8;transform:rotate(-28deg);box-shadow:0 0 16px #88e1c7bf}.square-last-to{box-shadow:inset 0 0 0 3px #f3d278e6}.square-last-capture:before{content:"";position:absolute;width:86%;aspect-ratio:1;border-radius:999px;border:2px solid rgba(255,232,175,.88);animation:capture-burst .52s ease-out both}.promo-mark{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(246,205,100,.65)}.piece{width:74%;aspect-ratio:1;border-radius:999px;display:grid;place-items:center;position:relative;z-index:1;box-shadow:0 7px 18px #0000008c;font-weight:700}.piece-dark{background:radial-gradient(circle at 35% 28%,#555,#111 64%);border:2px solid #d2a04f;color:#d2a04f}.piece-light{background:radial-gradient(circle at 35% 28%,#fff1c4,#be8b40 70%);border:2px solid #4b2816;color:#4b2816}.piece-king{box-shadow:0 0 0 4px #e0b04638,0 7px 18px #0000008c}.piece-arrive{animation:piece-arrive .42s cubic-bezier(.17,.84,.44,1)}.sidebar{display:flex;flex-direction:column;gap:14px}.panel{width:100%;background:var(--panel);color:var(--panel-ink);border:1px solid #b68a46;border-radius:8px;padding:16px;box-shadow:0 18px 45px #00000047}.compact-panel{display:flex;flex-direction:column;gap:10px}.panel-title{font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:#7b431f;border-bottom:1px solid rgba(123,67,31,.35);padding-bottom:8px;margin-bottom:12px}.status-main{font-size:18px;font-weight:700;margin-bottom:8px}.muted{color:#7f6741;font-size:13px}.field{display:grid;gap:5px;font-size:12px;font-weight:700;color:#57341c}.field input{width:100%;border:1px solid #b68a46;background:#fff6dc;color:#2a160c;border-radius:4px;padding:8px 10px}.button,.panel button,.button-row button,.control-grid button{border:1px solid #7a4020;background:#2e0e07;color:#e0b24e;border-radius:5px;padding:9px 11px;text-decoration:none;text-align:center}.button-primary{background:#6f2110;border-color:#c78239;color:#f3d278}.button-row,.control-grid{display:grid;gap:8px}.button-row{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.queue-card{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;gap:12px;align-items:center;margin-top:14px;padding:12px;border:1px solid rgba(123,67,31,.35);border-radius:6px;background:#34140814}.queue-card strong,.queue-card span{display:block}.queue-card span{color:#73552c;font-size:13px;margin-top:2px}.queue-card-found{background:#39672c24}.queue-pulse{width:14px;height:14px;border-radius:999px;background:#d5a33c;box-shadow:0 0 #d5a33c99;animation:queue-pulse 1.4s infinite}.queue-time{min-width:52px;text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:#2a160c}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.active-control{outline:2px solid #d5a33c}.reaction-panel{display:grid;gap:10px}.reaction-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.reaction-button{min-height:42px;border-radius:7px;display:grid;place-items:center;font-size:20px;line-height:1.1}.reaction-phrase{grid-column:span 2;font-size:12px;font-weight:700}.reaction-pop-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;display:grid;align-content:start;justify-items:center;gap:8px;padding-top:18px}.reaction-bubble{min-width:88px;max-width:min(220px,86%);display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(243,210,120,.72);border-radius:999px;background:#0c0805e0;color:#ffe7b0;padding:8px 12px;box-shadow:0 16px 34px #00000061;animation:reaction-pop 2.4s ease-out both}.reaction-bubble span{font-size:20px;line-height:1}.reaction-bubble small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-login{display:grid;gap:8px}.move-list{padding:0;margin:0;list-style:none;display:grid;gap:5px;max-height:230px;overflow:auto}.move-list li{display:grid;grid-template-columns:32px 24px 1fr;gap:6px;font-size:13px}.move-current{border-radius:5px;background:#2f7d7629;color:#2a160c;padding:3px 5px}.clock-grid{display:grid;grid-template-columns:1fr auto;gap:6px 10px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(123,67,31,.25)}.match-state{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(123,67,31,.25);color:#5d3b1d;font-size:13px}@keyframes queue-pulse{0%{box-shadow:0 0 #d5a33c99}70%{box-shadow:0 0 0 8px #d5a33c00}to{box-shadow:0 0 #d5a33c00}}@keyframes countdown-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 8px #d5a33c1f,inset 0 0 32px #d5a33c3d}50%{transform:scale(1.025);box-shadow:0 0 0 14px #d5a33c0a,inset 0 0 42px #d5a33c52}}@keyframes forced-piece-pulse{0%,to{box-shadow:0 0 0 3px #ef442a29,0 7px 18px #0000008c;transform:translateY(0)}50%{box-shadow:0 0 0 8px #ef442a57,0 12px 28px #0000009e;transform:translateY(-2px)}}@keyframes piece-arrive{0%{opacity:.55;transform:translateY(-22%) scale(.86)}72%{opacity:1;transform:translateY(4%) scale(1.06)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes capture-burst{0%{opacity:.95;transform:scale(.38)}to{opacity:0;transform:scale(1.2)}}@keyframes reaction-pop{0%{opacity:0;transform:translateY(10px) scale(.88)}14%,76%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-18px) scale(.96)}}.work-surface{width:min(920px,100%);display:grid;gap:16px;align-self:flex-start;margin-top:36px}.status-stack{display:grid;gap:10px}.status-stack span{color:#73552c;margin-left:8px}.match-meta{display:grid;gap:8px;overflow-wrap:anywhere}.share-link{border:1px solid rgba(123,67,31,.28);background:#fff6dcb8;color:#2a160c;border-radius:4px;padding:10px;font-size:13px;overflow-wrap:anywhere;margin:8px 0 12px}.share-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rights-panel p{margin:0;color:#4a2b16;font-size:13px;line-height:1.55}.rights-panel-compact{box-shadow:none}.load-match-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:14px}.load-match-row input{min-width:0;border:1px solid #b68a46;background:#fff6dc;color:#2a160c;border-radius:4px;padding:9px 10px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;border-bottom:1px solid rgba(123,67,31,.22);padding:9px 6px}th{color:#7b431f;font-size:12px;text-transform:uppercase;letter-spacing:.07em}.prose-panel{line-height:1.75;max-width:780px}.toast{position:fixed;top:82px;left:50%;transform:translate(-50%);z-index:10;background:#7a2115;color:#ffe7b0;border:1px solid #d39947;border-radius:6px;padding:10px 14px;max-width:min(720px,calc(100vw - 32px));box-shadow:0 18px 40px #00000073}.toast-secondary{top:128px;background:#2b1d0d}@media (max-width: 980px){.topbar{grid-template-columns:1fr;padding:14px 16px}.topbar nav{justify-content:flex-start}.account-chip{justify-content:flex-start}.main-layout{grid-template-columns:1fr;padding:14px}.board-column{min-height:auto}.match-stage{width:100%}.sidebar{order:-1}}@media (max-width: 560px){.button-row{grid-template-columns:1fr}.share-grid{grid-template-columns:1fr 1fr}.reaction-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reaction-phrase{grid-column:span 3}.rating-row{grid-template-columns:minmax(0,1fr) 48px 54px 48px;gap:5px;font-size:13px}.rematch-actions{grid-template-columns:1fr}.player-strip{grid-template-columns:auto minmax(0,1fr)}.player-clock{grid-column:2;text-align:left;font-size:18px}.queue-card{grid-template-columns:18px minmax(0,1fr)}.queue-card .button,.queue-time{grid-column:2;text-align:left}.intro-modal{max-height:94vh;padding:14px}.intro-copy{padding-right:70px}.intro-actions{justify-content:stretch}.intro-actions .button{flex:1 1 150px}.board-shell{padding:8px}.board-grid{padding:5px}}
