:root{color-scheme:light;--ink:#183330;--muted:#68766e;--green:#173e3a;--green-hover:#26534d;--paper:#f6f3eb;--surface:#fffdf7;--line:#dedfd3;--gold:#ae8b50;--light-square:#e5e6d3;--dark-square:#7d9a88;--soft:#edf0e6;--danger:#a14739;--radius:18px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b68435;outline-offset:4px}button{color:inherit}a{color:inherit}svg{display:block}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:Georgia,"Times New Roman",serif;font-weight:400}h1{font-size:clamp(42px,5vw,68px);line-height:1.06;letter-spacing:-2.2px}h2{font-size:36px;line-height:1.12;letter-spacing:-.8px}h3{font-size:15px;font-weight:650;line-height:1.4}.muted{color:var(--muted);line-height:1.65}.eyebrow{text-transform:uppercase;font-size:10px;line-height:1.5;letter-spacing:2px;font-weight:750;color:var(--muted)}.shell{max-width:1280px;margin:auto;padding:0 48px}.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:16px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;border:0;padding:0;background:none;text-align:left}.brand-mark{width:41px;height:46px;background:var(--green);color:#faf6e9;border-radius:11px 11px 17px 17px;display:grid;place-items:center}.brand-mark svg{width:27px;height:32px}.brand-name{display:block;font-size:16px;font-weight:650;letter-spacing:-.4px}.brand-sub{display:block;font-size:9px;letter-spacing:2.4px;text-transform:uppercase;margin-top:5px;color:var(--muted)}.header-links{display:flex;align-items:center;gap:24px}.text-button{border:0;background:none;font-size:12px;font-weight:600;padding:9px 0;display:flex;align-items:center;gap:7px;color:var(--muted)}.text-button:hover{color:var(--ink)}.version{border:1px solid var(--line);border-radius:30px;padding:6px 10px;color:var(--muted);font-size:10px;white-space:nowrap}.button{min-height:46px;padding:12px 18px;border:1px solid transparent;border-radius:9px;font-size:12px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;transition:background .15s,transform .15s}.button:not(:disabled):active{transform:translateY(1px)}.primary{background:var(--green);color:#fffdf5}.primary:not(:disabled):hover{background:var(--green-hover)}.subtle{background:transparent;border-color:var(--line)}.subtle:not(:disabled):hover{background:var(--soft)}.soft{background:var(--soft);color:var(--green)}.danger{background:var(--danger);color:#fff}.full{width:100%}.button-row{display:flex;gap:9px;flex-wrap:wrap}.button-row>.button{flex:1}.icon-button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;border-radius:50%;font-size:24px;color:var(--muted);line-height:1}.icon{width:16px;height:16px;flex-shrink:0}.hero{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:65px;padding:64px 0 58px}.hero-copy>.eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:25px}.small-dash{height:1px;width:24px;background:var(--gold)}.hero h1 em{font-style:italic;color:var(--green)}.hero-description{font-size:14px;line-height:1.8;max-width:395px;margin-top:23px;color:var(--muted)}.hero-cta{margin-top:29px;min-width:190px}.join-form{display:flex;gap:9px;margin-top:20px;max-width:385px}.join-form input{min-width:0;width:100%;border:0;border-bottom:1px solid #bfc6ba;border-radius:0;padding:10px 0;background:transparent;font-size:12px;color:var(--ink)}.join-form input::placeholder{color:#7a847a}.join-form button{background:none;border:0;padding:8px 0 8px 8px;font-size:12px;font-weight:650;white-space:nowrap}.hero-footnote{font-size:11px;line-height:1.6;color:var(--muted);margin-top:18px;display:flex;align-items:center;gap:6px}.hero-visual{position:relative;padding:22px 26px 35px 0}.demo-frame{border:1px solid #bdc5b6;background:#fffdf6;border-radius:13px;padding:13px;transform:rotate(-3deg);box-shadow:0 20px 40px #16392d12}.demo-board{display:grid;grid-template-columns:repeat(8,1fr);overflow:hidden;border-radius:4px;aspect-ratio:1}.demo-square{display:grid;place-items:center;position:relative}.demo-square .piece-svg{width:80%;height:80%;filter:drop-shadow(0 2px 1px #173e3a24)}.demo-caption{display:flex;justify-content:space-between;align-items:center;padding:13px 3px 0;font-size:9px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase}.demo-caption strong{font-size:10px;color:var(--green);font-weight:500;letter-spacing:0;text-transform:none}.reveal-card{position:absolute;bottom:3px;right:0;display:flex;gap:14px;align-items:center;background:var(--green);color:#faf8ed;padding:18px 24px;border-radius:12px;box-shadow:0 8px 24px #173e3a15;transform:rotate(2deg)}.reveal-card .piece-svg{width:38px;height:38px}.reveal-card .eyebrow{color:#b8c8b6;letter-spacing:1.2px;font-size:8px}.reveal-card p{font-family:Georgia,serif;font-size:20px;margin-top:6px}.features{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:30px 0 39px}.feature{display:flex;gap:15px}.feature-index{font-family:Georgia,serif;font-size:15px;color:var(--gold);padding-top:2px}.feature h3{font-size:12px}.feature p{font-size:11px;line-height:1.7;color:var(--muted);margin-top:6px;max-width:250px}.site-footer{border-top:1px solid var(--line);padding:19px 0 26px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted)}.footer-dot{color:var(--gold);padding:0 5px}.game-header{display:flex;align-items:center;justify-content:space-between;padding:27px 0 22px;gap:12px}.game-title{font-size:27px;letter-spacing:-.7px}.game-header .eyebrow{font-size:9px;margin-bottom:6px}.room-meta{display:flex;gap:10px;align-items:center}.connection{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.status-dot{width:6px;height:6px;border-radius:100%;background:#5e8566;display:inline-block;flex-shrink:0}.status-dot.offline{background:#b88b46}.status-dot.waiting{background:#a7afa3}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:32px;align-items:start;max-width:1120px;margin:0 auto;padding-bottom:35px}.board-column{min-width:0}.player-strip{display:flex;align-items:center;justify-content:space-between;padding:0 2px 14px;gap:12px}.player-strip.bottom{padding:14px 2px 0}.player-name{display:flex;align-items:center;gap:10px;min-width:0}.player-avatar{width:32px;height:32px;flex-shrink:0;border:1px solid #a4b1a0;border-radius:50%;background:#eceddf;display:grid;place-items:center}.player-avatar.black{background:#193d38}.player-avatar .piece-svg{width:23px;height:26px}.player-copy strong{display:block;font-size:12px;font-weight:650}.player-copy span{display:block;font-size:9px;color:var(--muted);margin-top:4px}.player-tag{font-size:9px;color:var(--muted);background:#eaece0;border:1px solid #dbe0d1;padding:5px 9px;border-radius:20px;white-space:nowrap}.player-tag.turn{background:var(--green);color:#faf9ee;border-color:var(--green)}.player-tag.ready{color:#40684b}.board-frame{padding:13px 13px 3px 3px;border:1px solid #bdc8b5;background:#e9ecdd;border-radius:9px;box-shadow:0 10px 30px #173e3a08}.board-coordinates{display:grid;grid-template-columns:20px minmax(0,1fr);grid-template-rows:auto 22px}.rank-labels{display:grid;grid-template-rows:repeat(8,1fr);grid-column:1;grid-row:1;color:#65735f;font-size:9px;text-align:center;align-items:center}.file-labels{display:grid;grid-template-columns:repeat(8,1fr);grid-column:2;grid-row:2;color:#65735f;font-size:9px;text-align:center;align-items:center}.board{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));aspect-ratio:1;overflow:hidden;border-radius:3px}.square{position:relative;border:0;border-radius:0;padding:0;min-width:0;aspect-ratio:1;display:grid;place-items:center;isolation:isolate;opacity:1!important}.light{background:var(--light-square)}.dark{background:var(--dark-square)}.square::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4}.square.last-move::after{background:#f7da6440;box-shadow:inset 0 0 0 2px #d8b85466}.square.selected::after{box-shadow:inset 0 0 0 3px #163e37;background:#f8ecc138}.square.check-square::after{box-shadow:inset 0 0 0 3px #ad5743;background:#b245332b}.square:not(:disabled):hover::before{content:"";position:absolute;inset:0;background:#fff8db2c}.square:focus-visible{outline:3px solid #193e36;outline-offset:-3px;z-index:6}.piece-svg{width:79%;height:79%;max-width:76px;max-height:76px;z-index:1;pointer-events:none;overflow:visible}.piece-white{color:#faf7e9;--piece-outline:#344b40}.piece-black{color:#1c3934;--piece-outline:#e6e6d4}.piece-svg .piece-shape{fill:currentColor;stroke:var(--piece-outline);stroke-width:1.35;stroke-linejoin:round;stroke-linecap:round}.piece-svg .piece-detail{fill:none;stroke:var(--piece-outline);stroke-width:1.3;stroke-linecap:round}.piece-svg .piece-eye{fill:var(--piece-outline);stroke:none}.cover-badge{position:absolute;right:3px;bottom:3px;width:24%;height:25%;display:grid;place-items:center;z-index:3;border-radius:50%;background:#f6f2e4;box-shadow:0 0 0 1px #556c5a70}.cover-badge .piece-svg{width:85%;height:85%;filter:none}.reveal-mark{position:absolute;left:3px;top:3px;width:14px;height:14px;background:#f8f3de;color:#355d42;border-radius:50%;display:grid;place-items:center;z-index:5;box-shadow:0 0 0 1px #516d4d40}.reveal-mark svg{width:10px;height:10px}.just-revealed{animation:reveal .55s ease-out}@keyframes reveal{0%{filter:brightness(1.8)}100%{filter:brightness(1)}}.board-legend{display:flex;justify-content:center;align-items:center;gap:18px;font-size:9px;color:var(--muted);padding-top:19px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px}.legend-mask{width:15px;height:15px;border:1px solid #8a9d80;background:#f7f3e6;border-radius:50%;display:grid;place-items:center;font-size:10px}.board-hint{font-size:11px;line-height:1.65;text-align:center;color:var(--muted);margin:14px 20px 0;min-height:36px}.sidebar{display:flex;flex-direction:column;gap:15px;padding-top:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.panel .eyebrow{font-size:9px;letter-spacing:1.6px}.panel-title{font-family:Georgia,serif;font-size:25px;line-height:1.18;margin-top:12px;font-weight:400;letter-spacing:-.5px}.panel-description{font-size:11px;line-height:1.8;color:var(--muted);margin-top:10px}.phase-label{display:flex;align-items:center;justify-content:space-between}.step-count{font-size:10px;color:var(--gold);font-family:Georgia,serif}.panel-actions{margin-top:20px;display:flex;flex-direction:column;gap:9px}.panel-actions .button{min-height:43px}.setup-tools{display:flex;gap:8px}.setup-tools button{flex:1;font-size:10px;padding:10px 6px;min-height:37px}.selection-card{padding:11px 12px;border:1px solid #ced7c4;background:#f1f4e9;border-radius:8px;font-size:11px;line-height:1.6;margin-top:15px}.selection-card strong{font-weight:650}.army-list{display:flex;justify-content:space-between;gap:3px;padding:14px 0 2px}.army-item{display:flex;align-items:center;gap:2px;color:var(--muted);font-size:9px}.army-item .piece-svg{width:22px;height:25px}.separator{height:1px;background:var(--line);margin:17px 0}.invite-box{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding:10px 11px;background:var(--soft);border:1px dashed #c6cfbb;border-radius:8px;min-width:0}.invite-code{font-size:13px;letter-spacing:2px;font-weight:650;overflow:hidden;text-overflow:ellipsis}.copy-button{background:none;border:0;padding:5px;color:var(--green);display:flex;align-items:center;gap:5px;font-size:10px;font-weight:650;flex-shrink:0}.notice{border-left:3px solid #b49050;padding:11px 12px;background:#f6efdd;border-radius:0 6px 6px 0;font-size:11px;line-height:1.6;margin-bottom:16px}.connection-banner{border:1px solid #d6ba80;background:#faf2df;padding:11px 15px;font-size:11px;line-height:1.6;border-radius:8px;margin-bottom:15px}.connection-banner .button{min-height:28px;padding:3px 8px;margin-left:8px}.history-panel{padding:20px 0 0;overflow:hidden}.history-panel .panel-heading{padding:0 20px 15px;display:flex;justify-content:space-between;align-items:center}.history-panel .panel-heading span:last-child{font-size:9px;color:var(--muted)}.history{max-height:245px;overflow:auto;overscroll-behavior:contain;padding:0 0 8px}.history-table{width:100%;border-collapse:collapse;font-size:11px}.history-table td{padding:10px 8px;border-top:1px solid #edeee6;width:39%;font-variant-numeric:tabular-nums}.history-table td:first-child{color:#8a9487;width:22%;padding-left:20px}.history-table tr:last-child{background:#f0f2e9}.move-meta{font-size:8px;color:var(--muted);display:block;margin-top:4px;line-height:1.5}.empty-history{padding:6px 20px 23px;font-size:11px;color:var(--muted);line-height:1.7}.capture-row{display:flex;gap:3px;flex-wrap:wrap;min-height:29px;align-items:center;margin-top:10px}.capture-row .piece-svg{width:26px;height:29px}.capture-label{font-size:10px;color:var(--muted);margin-top:13px}.capture-row .muted{font-size:10px}.result-panel{background:var(--green);color:#f6f4e8;border-color:var(--green)}.result-panel .eyebrow{color:#bdcbbb}.result-panel .panel-description{color:#c5d0bf}.result-panel .button{background:#eff0dc;color:var(--green)}.result-icon{width:37px;height:37px;border:1px solid #91a58c;border-radius:50%;display:grid;place-items:center;font-size:20px;margin:17px 0 2px;color:#d2c08a}.draw-offer{background:#f3efdf;border:1px solid #d8cbab;border-radius:8px;padding:13px;margin-top:15px;font-size:11px;line-height:1.7}.draw-offer .button-row{margin-top:9px}.draw-offer .button{padding:8px;min-height:34px;font-size:10px}.small-actions{display:flex;align-items:center;justify-content:space-between;margin-top:4px;gap:12px}.small-actions .text-button{font-size:10px}.small-actions .resign-link{color:#98695d}.reveal-details{margin-top:23px;border-top:1px solid var(--line);padding-top:19px}.reveal-details summary{font-size:12px;font-weight:600;cursor:pointer}.reveal-details p{font-size:11px;line-height:1.7;color:var(--muted);margin:10px 0}.assignment-table{width:100%;border-collapse:collapse;font-size:10px}.assignment-table th{text-align:left;font-weight:600;padding:9px 4px;border-bottom:1px solid var(--line);color:var(--muted)}.assignment-table td{padding:7px 4px;border-bottom:1px solid #e3e6da}.assignment-role{display:flex;align-items:center;gap:5px}.assignment-role .piece-svg{width:23px;height:25px}.join-page{max-width:520px;margin:70px auto 85px;text-align:center}.join-page .large-mark{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 23px;background:var(--soft);border-radius:50%}.large-mark svg{width:44px;height:50px}.join-page h1{font-size:43px;margin:17px 0}.join-page p{font-size:13px;line-height:1.8;color:var(--muted);max-width:410px;margin:0 auto}.join-page .button-row{max-width:380px;margin:28px auto 0}.join-page .room-code{font-size:11px;letter-spacing:1.7px;margin-top:20px;color:var(--green)}.join-page .join-form{margin:24px auto 0}.loading-page{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:15px;font-size:13px}.loading-mark{font-size:45px;color:var(--green)}.modal{border:1px solid var(--line);border-radius:20px;background:var(--surface);padding:30px;color:var(--ink);max-width:600px;width:calc(100% - 30px);max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 25px 90px #112b3340}.modal::backdrop{background:#15352b80;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:15px}.modal>h2{font-size:33px;line-height:1.2}.rules-content{margin:27px 0}.rules-content section{display:flex;gap:17px;margin-bottom:22px}.rule-number{font-family:Georgia,serif;font-size:20px;color:var(--gold);padding-top:2px}.rules-content h3{font-size:13px}.rules-content p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:7px}.rules-note{font-size:11px;line-height:1.8;border:1px solid var(--line);background:var(--soft);padding:15px;border-radius:9px;color:var(--muted)}.promotion-modal{max-width:440px}.promotion-modal>p,.confirm-modal>p{font-size:12px;margin-top:14px}.promotion-options{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:24px}.promotion-choice{border:1px solid var(--line);border-radius:10px;padding:12px 5px;background:var(--soft);display:flex;flex-direction:column;align-items:center;gap:7px;font-size:11px}.promotion-choice:hover{background:#dce6d2}.promotion-choice .piece-svg{width:48px;height:55px}.confirm-modal{max-width:440px}.confirm-modal h2{margin-top:15px}.confirm-modal .button-row{margin-top:25px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;border:1px solid #496457;border-radius:10px;background:#173e3a;color:#fffcf0;box-shadow:0 5px 25px #112c2825;font-size:12px;line-height:1.6;max-width:min(520px,calc(100vw - 32px));width:max-content;z-index:100}.toast[hidden]{display:none}
@media(min-width:1200px){.game-layout{grid-template-columns:minmax(0,650px) 310px;justify-content:center}.game-header{max-width:992px;margin:auto}}
@media(max-width:1000px){.shell{padding:0 30px}.hero{gap:35px;padding-top:48px}.hero h1{font-size:52px}.hero-visual{padding-right:12px}.reveal-card{padding:15px 18px}.game-layout{gap:22px;grid-template-columns:minmax(0,1fr) 275px}.panel{padding:18px}.history-panel{padding:18px 0 0}.panel-title{font-size:23px}.cover-badge{right:2px;bottom:2px}.reveal-mark{width:12px;height:12px;left:2px;top:2px}.reveal-mark svg{width:9px;height:9px}}
@media(max-width:760px){.shell{padding:0 22px}.site-header{height:83px}.brand-name{display:block;font-size:14px}.brand-sub{display:block;font-size:8px}.brand-mark{width:35px;height:40px}.header-links{gap:15px}.version{display:none}.hero{grid-template-columns:1fr;gap:35px;padding:39px 0 35px}.hero-copy{max-width:490px}.hero h1{font-size:54px}.hero-description{max-width:430px}.hero-visual{max-width:480px;width:100%;margin:0 auto;padding:13px 25px 30px 3px}.hero-footnote{font-size:10px}.features{gap:20px;padding-top:25px}.feature{gap:9px}.feature p{font-size:10px}.game-header{padding:22px 0 20px}.game-title{font-size:25px}.game-layout{grid-template-columns:minmax(0,1fr);gap:23px;max-width:550px}.game-header{max-width:550px;margin:auto}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sidebar .primary-panel{grid-column:1/-1}.panel{padding:20px}.history-panel{padding:20px 0 0}.primary-panel .panel-actions{margin-top:17px}.panel-title{font-size:27px}.board-frame{padding-right:11px}.player-strip{padding-bottom:12px}.board-hint{min-height:0;margin-top:12px}.board-legend{padding-top:15px}.assignment-table{font-size:10px}.board-column{order:0}.sidebar{order:1}.cover-badge{right:3px;bottom:3px}.reveal-mark{width:14px;height:14px;top:3px;left:3px}.reveal-mark svg{width:10px;height:10px}.game-header .connection{font-size:9px}.game-header .room-meta{gap:7px}.game-header .version{display:inline-block;font-size:9px;padding:5px 8px}.site-footer{font-size:9px}.game-shell .site-header{height:76px}}
@media(max-width:440px){.shell{padding:0 15px}.site-header{height:77px}.brand{gap:9px}.brand-name{display:block;font-size:13px}.brand-sub{display:block;font-size:7px;letter-spacing:2px}.header-links .text-button{font-size:10px;gap:5px}.header-links .icon{width:14px}.hero h1{font-size:47px}.hero-description{font-size:13px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:1.4px}.features{grid-template-columns:1fr;gap:19px}.feature p{max-width:100%;font-size:11px}.feature h3{font-size:12px}.hero-visual{padding-left:4px;padding-right:15px}.reveal-card p{font-size:17px}.reveal-card{padding:14px 17px}.hero-cta{width:100%}.join-form{max-width:100%}.game-title{font-size:22px}.game-header .room-meta{flex-direction:column;align-items:flex-end;gap:6px}.game-header .eyebrow{font-size:8px}.game-header{padding:20px 0 19px}.board-frame{padding:8px 8px 0 0;border-radius:7px}.board-coordinates{grid-template-columns:17px minmax(0,1fr);grid-template-rows:auto 19px}.file-labels,.rank-labels{font-size:8px}.player-strip{padding-left:2px;padding-right:2px}.player-copy strong{font-size:11px}.player-copy span{font-size:8px}.player-avatar{width:29px;height:29px}.player-tag{font-size:8px;padding:4px 7px}.cover-badge{right:2px;bottom:2px;width:25%;height:25%}.reveal-mark{width:12px;height:12px;left:2px;top:2px}.reveal-mark svg{width:8px;height:8px}.sidebar{grid-template-columns:1fr}.sidebar .primary-panel{grid-column:auto}.board-legend{font-size:8px;gap:12px}.board-hint{font-size:10px;margin-left:5px;margin-right:5px}.panel{border-radius:13px}.history{max-height:190px}.site-footer{flex-direction:column;gap:7px;padding:15px 0 20px}.modal{padding:23px}.modal>h2{font-size:29px}.rules-content section{gap:12px}.promotion-options{gap:6px}.promotion-choice{font-size:10px}.promotion-choice .piece-svg{width:41px;height:47px}.join-page{margin-top:50px}.join-page h1{font-size:37px}.assignment-table th,.assignment-table td{padding-left:2px;padding-right:2px}.assignment-role{gap:3px}.assignment-role .piece-svg{width:18px;height:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
