@charset "UTF-8";
:root{color-scheme:light;--ink:#201b38;--purple:#6f55d9;--purple-dark:#44348e;--coral:#ff6577;--mint:#73dfb0;--cream:#fff7e8;--light:#f4e9d5;--dark:#765bc4;--line:#ded3c2;--font:"Avenir Next",Avenir,ui-rounded,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 10% 4%,#fff 0 6%,transparent 6.2%),linear-gradient(145deg,#fff8e9,#eee7ff);color:var(--ink);font:16px/1.4 var(--font);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:4px solid #ffbd3e;outline-offset:3px}.skip{position:fixed;top:-80px;left:12px;z-index:50;padding:9px;background:#201b38;color:#fff}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(14px,4vw,38px);border-bottom:1px solid #e7dece;background:#fffaf2df;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:950;text-decoration:none}.brand img{width:36px;height:36px}.topbar>div{display:flex;align-items:center;gap:9px}.game-label{padding:6px 12px;border-radius:999px;background:#ece5ff;color:#5d43bd;font-size:.78rem;font-weight:950}.install{min-height:39px;display:flex;align-items:center;gap:8px;padding:7px 13px;border:2px solid var(--purple-dark);border-radius:13px;background:var(--purple);color:#fff;font-size:.78rem;font-weight:950;box-shadow:0 4px 0 var(--purple-dark)}.install:active{translate:0 3px;box-shadow:0 1px 0 var(--purple-dark)}.install:disabled{background:#d6cec2;color:#69616e;border-color:#b7ad9f;box-shadow:0 3px 0 #b7ad9f}.install-glyph{position:relative;width:15px;height:16px;border-bottom:2.5px solid currentColor}.install-glyph::before{content:"";position:absolute;left:6px;top:0;width:2.5px;height:10px;border-radius:2px;background:currentColor}.install-glyph::after{content:"";position:absolute;left:3px;top:5px;width:7px;height:7px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;rotate:45deg}.setup{width:min(960px,calc(100% - 28px));margin:clamp(25px,5vw,58px) auto}.hero{text-align:center}.hero-board{position:relative;width:190px;height:110px;margin:0 auto 12px}.hero-board::before{content:"";position:absolute;inset:13px 20px;border:8px solid #fff;border-radius:20px;background:conic-gradient(from 90deg,var(--purple) 0 25%,var(--light) 0 50%,var(--purple) 0 75%,var(--light) 0);box-shadow:0 10px 0 #c9beae,0 18px 28px #372b6628;rotate:-4deg}.hero-board i,.hero-board b,.hero-board em{position:absolute;z-index:2;font-family:Georgia,serif;font-style:normal;line-height:1;filter:drop-shadow(0 5px 2px #21183f45)}.hero-board i{left:39px;top:7px;color:#211b3c;font-size:4.5rem;rotate:-10deg}.hero-board b{right:39px;top:5px;color:#fff;font-size:4.8rem;rotate:8deg}.hero-board em{left:83px;bottom:-1px;color:var(--coral);font-size:3.5rem}.eyebrow{margin:0;color:#6e51d1;font-size:.72rem;font-weight:950;letter-spacing:.16em;text-transform:uppercase}.hero h1{margin:8px 0 13px;font-size:clamp(2.7rem,7vw,5.2rem);line-height:.95;letter-spacing:-.065em}.hero h1 em{color:var(--coral);font-family:Georgia,serif}.hero>p:last-child{max-width:610px;margin:auto;color:#756d7e;font-size:1.05rem}.setup-card{margin-top:30px;padding:clamp(19px,4vw,34px);border:2px solid #e4dac9;border-radius:28px;background:#fff;box-shadow:0 18px 0 #dbd1c1,0 28px 65px #3a2d6925}.setup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.setup-head h2{margin:0;font-size:1.35rem}.link-button{border:0;background:transparent;color:#6248be;font-weight:900}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode-card{min-height:145px;padding:20px;text-align:left;border:3px solid #eee5d9;border-radius:22px;background:#fffaf1;color:var(--ink)}.mode-card[aria-pressed=true]{border-color:var(--purple);background:#f0eaff;box-shadow:0 7px 0 #c9bced}.mode-card strong,.mode-card small{display:block}.mode-card strong{margin:9px 0 3px;font-size:1.12rem}.mode-card small{color:#777080}.mode-art{position:relative;display:block;width:58px;height:39px}.bot-art i{position:absolute;width:38px;height:30px;border:3px solid var(--purple-dark);border-radius:10px;background:var(--mint)}.bot-art i::before,.bot-art i::after{content:"";position:absolute;top:8px;width:5px;height:5px;border-radius:50%;background:var(--purple-dark)}.bot-art i::before{left:7px}.bot-art i::after{right:7px}.bot-art b{position:absolute;left:26px;top:18px;padding:3px 6px;border-radius:7px;background:var(--coral);color:#fff;font-size:.62rem}.human-art i,.human-art b{position:absolute;font:2.7rem/1 Georgia,serif}.human-art i{left:0;color:#fff;text-shadow:-2px 0 var(--ink),0 2px var(--ink),2px 0 var(--ink),0 -2px var(--ink)}.human-art b{left:28px;color:var(--ink)}fieldset{margin:22px 0;padding:0;border:0}legend{margin-bottom:9px;font-weight:900}.side-row{display:flex;gap:8px}.side-row button{flex:1;min-height:47px;border:2px solid #ddd3c4;border-radius:13px;background:#fff;color:var(--ink);font-weight:900}.side-row button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:#fff}.start{width:100%;height:58px;border:0;border-radius:16px;background:var(--mint);color:#123929;font-size:1.05rem;font-weight:950;box-shadow:0 7px 0 #269a68}.start span{float:right}.game{width:min(780px,calc(100% - 20px));margin:10px auto 28px}.gamebar{min-height:62px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px}.gamebar>strong{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-brand img{display:block;width:42px;height:42px;border-radius:12px}.actions{display:flex;gap:5px}.actions button,.dialog-head button{width:41px;height:41px;display:grid;place-items:center;border:2px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font-weight:950;font-size:1.1rem}.actions .install-glyph{display:block}.match{display:grid;grid-template-columns:1fr;gap:8px}.player{min-height:62px;display:flex;align-items:center;gap:11px;padding:8px 12px;border:2px solid #dfd5c5;border-radius:18px;background:#ffffffd9;box-shadow:0 4px 0 #d6cbbb}.player.active{border-color:var(--purple);box-shadow:0 4px 0 #9e8ad7}.player .avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#eee7ff;font:2rem/1 Georgia,serif}.player strong,.player small{display:block}.player small{color:#766e7b;font-size:.75rem}.player .check{margin-left:auto;padding:5px 9px;border-radius:999px;background:var(--coral);color:#fff;font-size:.68rem;text-transform:uppercase}.captured{height:20px;display:flex;align-items:center;padding-inline:8px;color:#4a4262;font:1.2rem/1 Georgia,serif}.top-captured{justify-content:flex-end}.board-shell{padding:7px;border:4px solid var(--ink);border-radius:19px;background:#fff;box-shadow:0 9px 0 #c9beae,0 18px 35px #30265f2c}.board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,minmax(0,1fr));aspect-ratio:1;overflow:hidden;border:2px solid var(--ink);border-radius:10px}.square{position:relative;display:grid;place-items:center;min-width:0;padding:0;border:0;color:var(--ink)}.square.light{background:var(--light)}.square.dark{background:var(--dark)}.square.last{box-shadow:inset 0 0 0 999px #ffd84f66}.square.selected{box-shadow:inset 0 0 0 5px var(--coral)}.square.legal::after{content:"";position:absolute;width:22%;aspect-ratio:1;border-radius:50%;background:#241d3cb3;box-shadow:0 0 0 3px #fff7}.square.capture::after{width:72%;background:transparent;border:5px solid #ff5068;box-shadow:0 0 0 2px #fff9}.piece{position:relative;z-index:2;font:clamp(2.15rem,8.4vw,4.6rem)/1 Georgia,"Times New Roman",serif;translate:0 -2%;transition:transform .12s ease;filter:drop-shadow(0 3px 1px #261c3d55)}.square:hover .piece{transform:translateY(-4%)}.white-piece{color:#fff;text-shadow:-1.5px 0 #211b38,0 1.5px #211b38,1.5px 0 #211b38,0 -1.5px #211b38}.black-piece{color:#211b38;text-shadow:0 1px #ffffff55}.rank,.file{position:absolute;z-index:3;font-size:clamp(.45rem,1.2vw,.65rem);font-weight:950;opacity:.72}.rank{left:3px;top:2px}.file{right:3px;bottom:1px}.dark .rank,.dark .file{color:#fff}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-head h2{margin:0}dialog{width:min(480px,calc(100% - 24px));padding:23px;border:0;border-radius:23px;color:var(--ink);box-shadow:0 30px 90px #17102c99}dialog::backdrop{background:#1c163799;backdrop-filter:blur(4px)}dialog p{color:#696172}dialog ol{padding-left:22px}dialog li{margin:9px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog-actions button{min-height:44px;padding:0 14px;border:0;border-radius:12px;background:#eae3f6;color:var(--ink);font-weight:900}.dialog-actions .danger{background:var(--coral);color:#fff}.promotions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.promotions button{min-height:94px;border:2px solid #ddd2c2;border-radius:14px;background:#fffaf1;font-size:.7rem;font-weight:900}.promotions span{display:block;font:2.6rem/1 Georgia,serif}.result{text-align:center}.result span{font:5rem/1 Georgia,serif}.result p{font-size:1.1rem;font-weight:900}.loading{min-height:100dvh;display:grid;place-items:center;text-align:center}
@media(max-width:620px){body.playing{height:100dvh;overflow:hidden}.game{width:100%;height:100dvh;margin:0;padding:max(5px,env(safe-area-inset-top)) 5px max(5px,env(safe-area-inset-bottom));display:flex;flex-direction:column}.gamebar{min-height:48px;height:48px;grid-template-columns:32px 1fr auto;gap:5px}.mini-brand img{width:32px;height:32px}.gamebar>strong{font-size:.78rem}.actions{gap:3px}.actions button{width:34px;height:34px;border-radius:10px}.match{flex:1;min-height:0;align-content:center;gap:4px}.player{min-height:48px;padding:4px 8px;border-radius:13px}.player .avatar{width:34px;height:34px;font-size:1.55rem}.board-shell{width:min(100%,calc(100dvh - 194px));margin:auto;padding:3px;border-width:3px;border-radius:12px;box-shadow:0 6px 0 #c9beae}.board{border-radius:6px}.captured{height:14px;font-size:.9rem}.piece{font-size:clamp(2rem,11vw,3.5rem)}.square.selected{box-shadow:inset 0 0 0 3px var(--coral)}.square.capture::after{border-width:3px}.topbar{height:58px;padding-inline:10px}.game-label{display:none}.install{min-height:36px;padding:6px 10px}.install b{font-size:.72rem}.setup{margin-top:22px}.mode-grid{grid-template-columns:1fr}.mode-card{min-height:112px}.setup-head{align-items:flex-start;flex-direction:column}.side-row{flex-wrap:wrap}.side-row button{min-width:30%}}

/* Keep the board inside its card even when browser zoom or mobile text scaling
   increases the intrinsic width of the chess glyphs. */
html,body{max-width:100%;overflow-x:clip}body{-webkit-text-size-adjust:100%}.game,.match,.player,.board-shell,.board{min-width:0;max-width:100%}.match{width:100%}.board-shell{width:100%;justify-self:center}.board{width:100%;height:auto}.square{overflow:hidden}.piece{display:block;max-width:100%}@media(max-width:620px){.board-shell{width:min(100%,calc(100dvh - 194px))}}
.bot-options{display:grid;grid-template-columns:1fr 1fr;gap:18px}.bot-options fieldset{margin:20px 0 0}.start{margin-top:22px}@media(min-width:621px){body.playing{height:100dvh;overflow:hidden}.playing .game{height:100dvh;margin:0 auto;padding:6px 0 12px;display:flex;flex-direction:column}.playing .match{width:min(100%,calc(100dvh - 286px));flex:1;min-height:0;margin-inline:auto;align-content:center}.playing .board-shell{width:100%}}@media(max-width:620px){.bot-options{grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
