@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap";:root{color:#f3ede2;font-synthesis:none;text-rendering:optimizelegibility;font-smooth:always;background:#151715;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}body{background:radial-gradient(at 50% -20%,#32352d 0,#1c1e1a 46%,#141513 100%);min-width:320px;min-height:100vh;margin:0}button{font:inherit;color:inherit}#root{min-height:100vh}.app-shell{width:min(100% - 36px,590px);margin:0 auto;padding:25px 0 22px}.topbar{align-items:center;gap:12px;margin-bottom:18px;display:flex}.brand-mark{color:#d5b574;background:#24251f;border:1px solid #494a3f;border-radius:13px;place-items:center;width:42px;height:42px;font-size:26px;display:grid}.eyebrow{letter-spacing:1.65px;color:#9e9a8c;margin:0 0 4px;font-size:9px;font-weight:700}.topbar h1{letter-spacing:.1px;margin:0;font:700 23px Playfair Display,serif}.topbar h1 span{color:#d1b273}.icon-button{color:#d7c89f;cursor:pointer;background:#292a24;border:1px solid #45463b;border-radius:50%;width:40px;height:40px;margin-left:auto;font-size:22px}.mode-row{color:#969487;letter-spacing:1.25px;justify-content:space-between;align-items:center;margin:0 2px 10px;font-size:9px;font-weight:700;display:flex}.mode-row>div{align-items:center;gap:7px;display:flex}.live-dot{background:#94ae76;border-radius:50%;width:6px;height:6px;box-shadow:0 0 9px #94ae76}.player-card{background:linear-gradient(110deg,#262720,#20211d);border:1px solid #37382f;border-radius:12px;align-items:center;gap:11px;height:58px;padding:0 12px;display:flex}.opponent{margin-bottom:12px}.user{margin-top:12px}.avatar{border-radius:10px;place-items:center;width:35px;height:35px;font-size:24px;display:grid}.bot{color:#d8bc7c;background:#3b3324}.person{color:#b3c89b;background:#26332b}.player-info{gap:3px;display:grid}.player-info strong{font-size:12px;font-weight:600}.player-info span{color:#a6a395;font-size:10px}.turn-pill{letter-spacing:1px;color:#928e7d;border:1px solid #45453b;border-radius:20px;margin-left:auto;padding:5px 8px;font-size:8px;font-weight:700}.turn-pill.active{color:#c7d4a8;border-color:#546244}.board-frame{margin:0 13px 0 12px;padding:0 0 20px 20px;position:relative}.chessboard{aspect-ratio:1;border:5px solid #5b4933;outline:1px solid #866b45;grid-template-columns:repeat(8,1fr);display:grid;overflow:hidden;box-shadow:0 12px 28px #0007,inset 0 0 0 1px #c6a16a}.square{aspect-ratio:1;cursor:pointer;border:0;place-items:center;min-width:0;padding:0;display:grid;position:relative}.light{background:#e5d4b6}.dark{background:#927452}.square.last-move.light{background:#d9ca83}.square.last-move.dark{background:#a18c50}.square.selected{background:#b7b65e}.square.check{background:#c65b4d}.piece{z-index:1;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 2px 1px #34271966);font-family:Segoe UI Symbol,DejaVu Sans,serif;font-size:clamp(27px,8.5vw,52px);line-height:1;position:relative}.white-piece{color:#fff9e9;text-shadow:0 1px 1px #3d3327,1px 0 #776750,-1px 0 #776750,0 -1px #776750}.black-piece{color:#29251f;text-shadow:0 1px 1px #dbc9a9}.target:after{content:"";background:#31372875;border-radius:50%;width:23%;height:23%;position:absolute}.capture:after{background:0 0;border:4px solid #43382670;width:84%;height:84%}.coordinates{color:#dcc6a0;pointer-events:none;font-size:9px;font-weight:700;display:flex;position:absolute}.left-coords,.right-coords{flex-direction:column;justify-content:space-around;top:0;bottom:20px}.left-coords{left:4px}.right-coords{right:-12px}.bottom-coords{justify-content:space-around;bottom:2px;left:20px;right:0}.status-line{color:#c0c6a8;justify-content:center;align-items:center;gap:8px;height:29px;font-size:11px;font-weight:600;display:flex}.status-symbol{color:#d1b273}.status-line.warning{color:#ef9b8e}.warning .status-symbol{color:#ed8172}.lower-grid{grid-template-columns:1.1fr .9fr;gap:10px;margin-top:13px;display:grid}.history-card,.controls-card{background:#20211d;border:1px solid #37382f;border-radius:12px;padding:13px}.section-heading{border-bottom:1px solid #393a32;justify-content:space-between;align-items:end;padding-bottom:9px;display:flex}h2{margin:0;font:600 14px Playfair Display,serif}.move-count{color:#959181;font-size:9px}.move-list{max-height:88px;padding-top:5px;overflow:auto}.move-row{grid-template-columns:27px 1fr 1fr;padding:4px 0;font-size:10px;display:grid}.move-row span{color:#8f8b7c}.move-row b{font-weight:500}.empty-history{color:#8f8b7c;margin:13px 0 8px;font-size:10px}.controls-card h2{margin:0 0 10px}.primary-button,.secondary-button{cursor:pointer;border-radius:8px;align-items:center;gap:8px;width:100%;height:32px;padding:0 10px;font-size:11px;display:flex}.primary-button{color:#24231e;background:#cfb477;border:0;margin-bottom:7px;font-weight:700}.secondary-button{color:#c5bfb0;background:0 0;border:1px solid #48483d}.secondary-button:disabled{opacity:.4;cursor:default}.result-card{background:#3a3628;border:1px solid #66583d;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:11px;display:flex}.result-card button{color:#222;background:#d0b576;border:0;border-radius:6px;padding:7px 10px;font-size:10px;font-weight:700}footer{text-align:center;color:#77766a;letter-spacing:1.1px;padding-top:19px;font-size:8px}footer i{background:#9d8a60;border-radius:50%;width:3px;height:3px;margin:0 8px 2px;display:inline-block}.modal-backdrop{z-index:4;background:#000a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.promotion-modal{background:#24251f;border:1px solid #55503f;border-radius:16px;width:min(100%,340px);padding:22px;box-shadow:0 20px 70px #0009}.promotion-modal h2{margin:5px 0 18px;font-size:20px}.promotion-options{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.promotion-options button{cursor:pointer;background:#303129;border:1px solid #48483b;border-radius:9px;justify-items:center;gap:7px;padding:8px 2px;display:grid}.promotion-options small{color:#c4bdad;font-size:9px}.promotion-options .piece{font-size:35px}@media (width>=600px){.app-shell{padding-top:32px}.player-card{height:62px}.board-frame{margin-left:10px;margin-right:10px}.lower-grid{margin-top:16px}.history-card,.controls-card{padding:16px}.move-list{max-height:110px}}@media (width<=380px){.app-shell{width:calc(100% - 26px);padding-top:17px}.board-frame{margin-left:10px;margin-right:10px}.player-card{height:53px}.lower-grid{gap:7px}.history-card,.controls-card{padding:10px}.eyebrow{font-size:8px}}.square:disabled{cursor:default}.thinking .status-symbol{animation:1.1s linear infinite think}@keyframes think{to{transform:rotate(360deg)}}.difficulty-picker{align-items:center;gap:6px;display:flex}.difficulty-picker>span{letter-spacing:1px;color:#aaa592;font-size:8px}.difficulty-picker select{color:#e5d6b7;letter-spacing:.15px;background:#292a24;border:1px solid #45463b;border-radius:7px;max-width:175px;padding:6px 7px;font:600 9px DM Sans,sans-serif}.difficulty-picker option{color:#eee;background:#24251f}@media (width<=380px){.difficulty-picker{gap:4px}.difficulty-picker select{max-width:152px;font-size:8px}.difficulty-picker>span{font-size:7px;display:none}.mode-row{gap:6px}}.level-open{color:#dfd0ad;letter-spacing:.4px;cursor:pointer;background:#292a24;border:1px solid #494a3f;border-radius:8px;padding:7px 10px;font-size:9px;font-weight:700}.level-backdrop{z-index:5;overscroll-behavior:contain;overflow-y:auto}.level-modal{overscroll-behavior:contain;background:#24251f;border:1px solid #55503f;border-radius:16px;width:min(100%,510px);max-height:min(92dvh,790px);padding:20px;overflow-y:auto;box-shadow:0 20px 70px #0009}.level-modal>header{justify-content:space-between;align-items:center;display:flex}.level-modal h2{font-size:21px}.close-levels{flex:none;width:44px;height:44px;margin:0;font-size:24px}.progress-summary{color:#c3b995;margin:12px 0;font-size:11px}.level-category{margin:12px 0}.level-category h3{letter-spacing:1px;text-transform:uppercase;color:#b6a77f;margin:0 0 6px;font-size:10px}.level-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:2px;display:grid}.level-tile{aspect-ratio:1;color:#e1d2b3;cursor:pointer;touch-action:manipulation;background:#34342d;border:1px solid #4a493c;border-radius:7px;place-content:center;gap:1px;min-width:0;min-height:44px;padding:2px;display:grid}.level-tile b{font-size:12px}.level-tile span{color:#a9a28f;font-size:8px}.level-tile.current{outline-offset:1px;outline:2px solid #cfb477}.level-tile.completed{color:#dce8c9;background:#344033;border-color:#607550}.level-tile.locked{color:#b8b3a6;cursor:not-allowed;background:#292a25;border-color:#414237}.level-tile.locked span{color:#77776c}.local-note{color:#aaa592;margin:14px 0 8px;font-size:9px;line-height:1.5}.reset-progress{width:auto;min-height:44px;padding:0 11px;font-size:10px}.result-card{margin:7px 0}.result-card strong{line-height:1.4}@media (width<=480px){.level-backdrop{padding:12px}.level-modal{width:100%;max-height:calc(100dvh - 24px);padding:15px}.level-grid{grid-template-columns:repeat(5,minmax(44px,1fr));gap:4px}.level-tile{border-radius:6px;min-width:44px;min-height:44px}.level-tile b{font-size:12px}.level-tile span{font-size:8px}.level-category{margin:10px 0}.level-open{padding:6px 7px;font-size:8px}}@media (width<=380px){.level-modal{padding:12px}.level-backdrop{padding:10px}.level-modal{max-height:calc(100dvh - 20px)}}.license-link{color:#c7b78f;letter-spacing:.25px;cursor:pointer;background:#24251f;border:1px solid #494a3f;border-radius:8px;min-height:44px;margin:9px auto 0;padding:8px 12px;font:600 10px DM Sans,sans-serif;display:block}.licenses-backdrop{z-index:8}.licenses-modal{overscroll-behavior:contain;background:#24251f;border:1px solid #55503f;border-radius:16px;width:min(100%,510px);max-height:min(92dvh,790px);padding:20px;overflow-y:auto;box-shadow:0 20px 70px #0009}.licenses-modal>header{justify-content:space-between;align-items:center;display:flex}.licenses-modal h2{font-size:21px}.licenses-modal h3{color:#d1b273;margin:16px 0 6px;font-size:12px}.licenses-modal p,.licenses-modal li{color:#c4bdad;font-size:12px;line-height:1.6}.licenses-modal ul{padding-left:20px}.licenses-modal a{color:#dcc68d;text-underline-offset:3px}.license-copy-status{background:#302f27;border-left:2px solid #cfb477;padding:10px}.licenses-modal .icon-button{flex:none;width:44px;height:44px;margin:0}@media (width<=480px){.licenses-backdrop{padding:12px}.licenses-modal{width:100%;max-height:calc(100dvh - 24px);padding:15px}}
