
:root{color-scheme:dark;--bg:#101610;--panel:#1a221b;--line:#303b2d;--text:#edf0e4;--muted:#a3ac9c;--accent:#d4e6a3}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:radial-gradient(ellipse at 85% 5%,#26332155,transparent 48%),var(--bg);color:var(--text);font:15px/1.5 'Segoe UI',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button,a,progress{accent-color:var(--accent)}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #e6c077;outline-offset:5px}button{cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p{margin:0}h2{font-size:20px;letter-spacing:-.5px}h3{font-size:27px;letter-spacing:-.7px}[hidden]{display:none!important}.shell{max-width:1080px;margin:auto;padding:0 32px}.topbar{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-weight:800;letter-spacing:3px;font-size:19px}.brand small{display:block;font-size:9px;letter-spacing:2.2px;color:var(--muted);margin-top:2px}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid #596343;border-radius:14px;background:#263222;font-size:27px}.tag,.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#b3c297}.tag{color:var(--muted)}.preview-note{margin-top:18px;border-left:2px solid #cdb67b;padding:7px 12px;background:#d0b67509;color:#cabb95;font-size:12px}.greeting{display:flex;justify-content:space-between;align-items:center;padding:35px 0 28px}h1{font-size:43px;line-height:1.15;letter-spacing:-1.9px;margin:10px 0 12px}.dot{color:#d3b877}.greeting p{color:var(--muted)}.icon-button{height:44px;width:44px;border-radius:50%;font-size:25px;border:1px solid var(--line);background:transparent;color:var(--accent)}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:20px}.balance-card,.profile-card,.list-card{padding:25px;border:1px solid var(--line);border-radius:20px;background:var(--panel)}.balance-card{background:radial-gradient(ellipse at 90% 60%,#59733166,transparent 62%),#26371e;border-color:#435335;position:relative;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.pill{font-size:10px;border:1px solid #8e9b7540;border-radius:20px;padding:4px 9px;color:#d8dfc5;white-space:nowrap}.balance-line{display:flex;align-items:center;justify-content:space-between;margin:18px 0 3px;gap:12px}#acorns{font-size:58px;font-weight:650;letter-spacing:-3px;overflow-wrap:anywhere;line-height:1.15}.acorn{font-size:64px;filter:drop-shadow(0 12px 20px #101b0c88);transform:rotate(-18deg)}.balance-card p{font-size:13px;color:#b7c7a5}.balance-foot{display:flex;align-items:center;gap:6px;border-top:1px solid #6a79513d;padding-top:15px;margin-top:24px;font-size:11px;color:#c5d3b6}#updated{margin-left:auto}.live-dot{height:6px;width:6px;background:#c1df83;border-radius:50%}.profile-head{display:flex;gap:14px;align-items:center;margin-bottom:26px}.avatar{height:60px;width:60px;flex-shrink:0;display:grid;place-items:center;background:#303b29;border-radius:18px;font-size:36px}.profile-head h2{overflow-wrap:anywhere;margin:3px 0}.muted{color:var(--muted);font-size:12px}.rank-line{display:flex;justify-content:space-between;font-size:13px;gap:10px}#xp{color:#d3ddb8}progress{display:block;width:100%;height:7px;margin:13px 0 10px;border:none;border-radius:8px;overflow:hidden;background:#343e2e}progress::-webkit-progress-bar{background:#343e2e}progress::-webkit-progress-value{background:#c4d998;border-radius:8px}progress::-moz-progress-bar{background:#c4d998}.section-wide{grid-column:1/-1}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:18px}.games{padding-top:9px}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.game-card{position:relative;overflow:hidden;border-radius:20px;border:1px solid var(--line);padding:24px;min-height:225px;isolation:isolate;background:linear-gradient(120deg,#263027,#18221d)}.poker{background:linear-gradient(120deg,#302c24,#211e1a);border-color:#463c2c}.game-card h3{margin-top:16px}.game-card p{color:#b5bbaa;font-size:13px;margin:5px 0 20px}.game-card button{display:flex;justify-content:space-between;gap:20px;background:transparent;border:0;border-top:1px solid #ffffff17;width:65%;text-align:left;padding:12px 0 0;color:#c4ceb3;font-size:12px}.game-art{position:absolute;right:18px;top:12px;z-index:-1;font-size:160px;line-height:1.2;color:#91a67b;transform:rotate(-13deg);text-shadow:0 15px 25px #0007}.cards{font-size:122px;top:36px;right:38px;color:#c6b796}.cards small{position:absolute;top:54px;right:-25px;font-size:58px;color:#ae7158;transform:rotate(27deg)}.count{font-size:12px;border:1px solid var(--line);padding:2px 9px;border-radius:10px}.empty{text-align:center;padding:30px 12px;color:var(--muted);font-size:13px}.empty-symbol{display:block;font-size:27px;color:#9eae82;margin-bottom:12px}.empty strong{display:block;color:#d4dcc8;font-weight:500;margin-bottom:5px}.row{display:flex;align-items:center;gap:12px;padding:15px 0;border-top:1px solid var(--line)}.row-icon{flex-shrink:0;background:#2c3528;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:#c9dda5}.row-title{font-size:13px;overflow-wrap:anywhere}.row-meta{font-size:11px;color:var(--muted)}.row-value{margin-left:auto;text-align:right;white-space:nowrap;font-size:14px}.positive{color:#c4dfa0}.negative{color:#e4ad96}.frozen{font-size:12px;color:#e8bc83;margin-top:12px}footer{padding:30px 0 120px;text-align:center;color:#a0aa96;font-size:11px}footer span{display:block;font-size:9px;letter-spacing:2px;margin-top:14px;color:#7e8a75}nav{position:fixed;z-index:10;bottom:18px;left:50%;transform:translateX(-50%);display:flex;justify-content:space-around;width:min(540px,calc(100% - 32px));border:1px solid #4e5b4266;border-radius:20px;background:#1e281eee;backdrop-filter:blur(18px);box-shadow:0 10px 40px #0007;padding:10px 8px calc(10px + env(safe-area-inset-bottom))}nav a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;color:#a1af94;min-width:54px;padding:3px 8px;border-radius:10px}nav a span{font-size:23px;line-height:1.2}nav a.active{background:#d5e7ae14;color:#e1eec9}.status-panel,.loading{margin:50px auto 120px;padding:32px;max-width:560px;border-radius:24px;border:1px solid var(--line);background:var(--panel)}.status-panel h1,.loading h1{font-size:30px}.status-panel p,.loading p{color:var(--muted);margin:12px 0 22px}.primary{background:var(--accent);color:#202b16;border:0;padding:13px 20px;border-radius:12px;font-weight:600;display:inline-block}.status-icon{font-size:48px}.skeleton{height:120px;border-radius:15px;background:linear-gradient(100deg,#293422,#3e4931,#293422);background-size:200% 100%;animation:shimmer 1.3s infinite;margin-top:20px}.skeleton.short{height:65px}@keyframes shimmer{to{background-position:-200% 0}}@media(max-width:650px){.shell{padding:0 20px}.topbar{height:80px}.tag{font-size:8px;letter-spacing:1px;max-width:80px;text-align:right}.greeting{padding:28px 0 24px}h1{font-size:34px;letter-spacing:-1.4px}.greeting p{font-size:13px}.dashboard{grid-template-columns:1fr;gap:16px}.balance-card,.profile-card,.list-card{padding:22px}.balance-line{margin-top:16px}#acorns{font-size:58px}.balance-foot{margin-top:18px}.profile-head{margin-bottom:20px}.game-grid{gap:12px}.game-card{padding:17px;min-height:265px}.game-card h3{font-size:23px;margin-top:60px}.game-card p{font-size:11px;min-height:34px}.game-art{font-size:82px;right:15px;top:30px}.cards{font-size:63px;right:28px;top:43px}.cards small{font-size:31px;right:-15px;top:24px}.game-card button{width:100%;font-size:10px;gap:3px}.section-heading h2{font-size:19px}.status-panel,.loading{padding:24px}.preview-note{font-size:10px}.profile-head h2{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.skeleton{animation:none}}@media(max-width:350px){.shell{padding:0 14px}.card-head{flex-wrap:wrap}nav a{min-width:48px;padding:3px 4px}.game-card{padding:13px}}
.chess-panel{background:#18231c;border:1px solid #3b4c39;border-radius:22px;padding:20px;scroll-margin-top:20px}.chess-layout{display:grid;grid-template-columns:minmax(0,520px) minmax(160px,1fr);gap:24px}#chess-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));width:100%;aspect-ratio:1;border:3px solid #59694c;border-radius:5px;overflow:hidden}.square{position:relative;aspect-ratio:1;border:0;border-radius:0;padding:0;display:grid;place-items:center;cursor:pointer;min-width:0}.square.light{background:#d4d9b7}.square.dark{background:#648064}.piece{font-family:'Segoe UI Symbol','DejaVu Sans',serif;font-size:clamp(23px,6.5vw,49px);line-height:1;z-index:1}.white-piece{color:#fff8e7;-webkit-text-stroke:1px #3d483b;text-shadow:0 1px 2px #17221a}.black-piece{color:#17251d;-webkit-text-stroke:.5px #d5dfbb}.coordinate{position:absolute;left:3px;bottom:1px;font-size:9px;color:#243b2a}.square.selected{box-shadow:inset 0 0 0 4px #f8c460}.square.last{background:#b1b46a}.square.legal:after{content:'';position:absolute;width:28%;height:28%;border-radius:50%;background:#193d4399;z-index:2;pointer-events:none}.square:focus-visible{outline:3px solid #e87738;outline-offset:-3px}.square:disabled{opacity:1;cursor:default}.chess-sidebar .primary{margin:4px 4px 8px 0}#chess-error{color:#ffc994}#chess-moves{line-height:1.8;max-height:220px;overflow:auto;overflow-wrap:anywhere}.chess-sidebar small{color:#afbaa5}#chess-status{font-weight:bold;color:#e2c78b}@media(max-width:650px){.chess-layout{grid-template-columns:1fr}.chess-panel{padding:12px}.piece{font-size:clamp(23px,7.6vw,46px)}}

/* Keep navigation out of the board's hit area while a game is open. */
.shell:has(#chess-panel:not([hidden])) > nav{position:static;transform:none;margin:18px auto;width:min(540px,100%)}

/* Shared chess lobby */
.pvp-actions {display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}
#pvp-target {min-width:0;flex:1;width:180px;max-width:100%;padding:13px;border-radius:12px;border:1px solid #667553;background:#111912;color:#fff;font:inherit}
.invite-row {padding:12px 0;border-bottom:1px solid #354634;overflow-wrap:anywhere}
.invite-row button {margin:8px 8px 0 0}
#pvp-error {color:#ffba9a}
#pvp-connection {color:#c6dca3;font-size:14px}
