:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #f5f2e8;--ink-soft: #b7c3b9;--ink-muted: #7e9085;--night: #07110e;--night-raised: #0d1814;--panel: #111e19;--panel-soft: #16251f;--line: rgba(226, 239, 218, .12);--line-strong: rgba(226, 239, 218, .22);--lime: #c9e86d;--lime-bright: #e0f59f;--lime-deep: #6b8b2e;--coral: #ff8068;--coral-soft: #ffad9d;--gold: #d3a95f;--player-one: #d8f277;--player-two: #ff846c;--shadow: 0 18px 48px rgba(0, 0, 0, .28);--radius-xl: 22px;--radius-lg: 16px;--radius-md: 12px;--content: 1680px;--page-gutter: clamp(64px, 7vw, 144px)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;scroll-behavior:smooth;scrollbar-gutter:stable}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;color:var(--ink);background:var(--night)}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,.difficulty-card:has(.difficulty-input:focus-visible),dialog:focus-visible{outline:3px solid var(--lime-bright);outline-offset:3px}button:disabled{cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand-copy,.room-code,.waiting-code{font-family:inherit}h1,h2,h3{letter-spacing:-.035em}.app-shell{display:flex;min-height:100vh;flex-direction:column}.skip-link{position:fixed;top:12px;left:12px;z-index:1000;padding:12px 16px;color:var(--night);background:var(--lime-bright);border-radius:10px;font-weight:800;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{position:relative;z-index:30;display:flex;width:min(calc(100% - var(--page-gutter)),var(--content));min-height:84px;margin:0 auto;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;min-height:48px;align-items:center;gap:12px;text-decoration:none}.brand-mark{position:relative;display:grid;width:40px;height:40px;place-items:center;background:var(--lime);border-radius:13px;box-shadow:0 6px 16px #0000003d;transform:rotate(-5deg)}.brand-mark:before,.brand-mark:after,.brand-mark i{position:absolute;display:block;content:"";background:var(--night);border-radius:2px}.brand-mark:before{width:20px;height:5px;transform:translate(-4px,-7px)}.brand-mark:after{width:5px;height:20px;transform:translate(7px,4px)}.brand-mark i:nth-child(1){width:5px;height:13px;transform:translate(-8px,7px)}.brand-copy{display:flex;flex-direction:column;line-height:.86;text-transform:uppercase}.brand-copy strong{font-size:.98rem;letter-spacing:.04em}.brand-copy span{color:var(--lime);font-size:.68rem;font-weight:800;letter-spacing:.26em}.nav-links{display:flex;align-items:center;gap:6px}.nav-link{position:relative;display:inline-flex;min-height:44px;padding:0 16px;align-items:center;justify-content:center;color:var(--ink-soft);border-radius:10px;font-size:.88rem;font-weight:700;text-decoration:none;transition:color .16s ease,background .16s ease}.nav-link:hover,.nav-link.is-active{color:var(--ink);background:#ffffff0e}.nav-link.is-active:after{position:absolute;bottom:4px;width:18px;height:3px;content:"";background:var(--lime);border-radius:99px}.main-content{width:min(calc(100% - var(--page-gutter)),var(--content));margin:0 auto}.main-content:focus{outline:none}.page{flex:1;padding:56px 0 76px}.button{display:inline-flex;min-height:48px;padding:0 20px;align-items:center;justify-content:center;gap:11px;border:1px solid transparent;border-radius:10px;font-size:.88rem;font-weight:800;line-height:1.15;text-align:center;text-decoration:none;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.button:hover:not(:disabled){border-color:var(--line-strong)}.button:disabled{opacity:.45}.button-primary{color:#10180b;background:var(--lime)}.button-primary:hover:not(:disabled){background:var(--lime-bright)}.button-secondary{color:var(--ink);background:#ffffff0e;border-color:var(--line-strong)}.button-secondary:hover:not(:disabled),.button-ghost:hover:not(:disabled){background:#ffffff17;border-color:#ffffff47}.button-ghost{color:var(--ink-soft);background:transparent;border-color:var(--line)}.button-danger{color:var(--coral-soft);background:#ff806814;border-color:#ff80684d}.button-danger:hover:not(:disabled){color:#fff;background:#ff806829}.button-large{min-height:56px;padding-inline:26px;border-radius:12px}.button-wide{width:100%}.hero{position:relative;display:grid;min-height:min(680px,calc(100vh - 84px));padding:48px 0 64px;grid-template-columns:minmax(0,.95fr) minmax(400px,1.05fr);align-items:center;gap:clamp(40px,6vw,100px)}.home-page .hero{min-height:calc(100vh - 84px);min-height:calc(100dvh - 84px);padding:clamp(28px,4vh,48px) 0}.home-page{overflow-x:clip}.hero-copy{position:relative;z-index:2}.hero-title{max-width:680px;margin-bottom:24px;font-size:clamp(3.25rem,5.4vw,5.6rem);line-height:.96;letter-spacing:-.06em}.home-page .hero-title{max-width:700px}.hero-lede{max-width:610px;margin-bottom:30px;color:var(--ink-soft);font-size:clamp(1.02rem,1.4vw,1.22rem);line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-visual{position:relative;min-height:480px;perspective:1000px}.mini-board{position:absolute;top:50%;left:48%;display:grid;width:min(470px,90%);aspect-ratio:1;padding:13px;grid-template-columns:repeat(9,1fr);gap:4px;background:#182920;border:1px solid rgba(255,255,255,.16);border-radius:20px;box-shadow:var(--shadow);transform:translate(-50%,-50%) rotateX(55deg) rotate(-28deg);transform-style:preserve-3d}.home-page .mini-board{width:min(clamp(460px,30vw,560px),92%)}.mini-board>span{aspect-ratio:1;background:#d8d0b7;border-radius:4px;box-shadow:inset 0 -3px #43382621}.mini-board>span:nth-child(2n){background:#b8b49e}.mini-pawn{position:absolute;width:34px;height:34px;border:6px solid rgba(255,255,255,.27);border-radius:50%;box-shadow:0 14px 18px #00000052;transform:translateZ(28px) rotateX(-45deg)}.mini-pawn-one{right:16%;bottom:10%;background:var(--player-one)}.mini-pawn-two{top:12%;left:20%;background:var(--player-two)}.mini-wall{position:absolute;height:10px;background:#101913;border:2px solid #415443;border-radius:3px;box-shadow:0 10px 10px #00000040;transform:translateZ(18px)}.mini-wall-one{top:40%;left:21%;width:29%}.mini-wall-two{top:60%;right:12%;width:30%}.mini-wall-three{top:21%;right:26%;width:28%;transform:translateZ(18px) rotate(90deg)}.page-heading h1{margin:0;font-size:clamp(2.2rem,3.5vw,3.6rem);line-height:1}.page-heading{max-width:780px;margin-bottom:36px}.page-heading h1{margin-bottom:14px}.page-heading>p:last-child{max-width:680px;margin:0;color:var(--ink-soft);font-size:1.02rem;line-height:1.55}.setup-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px}.setup-panel{min-width:0;margin:0;padding:0;border:0}.difficulty-grid{display:grid;gap:10px}.difficulty-card{position:relative;display:grid;min-height:132px;padding:20px 22px;grid-template-columns:1fr auto;background:#ffffff08;border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .16s ease,border-color .16s ease}.difficulty-card:hover{background:#ffffff0d}.difficulty-card.is-selected{background:#c9e86d11;border-color:#c9e86d7a}.difficulty-card strong{align-self:end;font-size:1.4rem}.difficulty-time{align-self:end;color:var(--ink-muted);font-size:.76rem;font-weight:700}.difficulty-description{max-width:590px;margin-top:7px;grid-column:1 / -1;color:var(--ink-soft);font-size:.88rem;line-height:1.55}.setup-summary{position:sticky;top:24px;display:grid;height:max-content;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl)}.turn-order-control{min-width:0;margin:0 0 18px;padding:0;border:0}.turn-order-control legend{margin-bottom:8px;color:var(--ink-muted);font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.turn-order-options{display:grid;overflow:hidden;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line-strong);border-radius:10px}.turn-order-option{position:relative;display:flex;min-width:0;min-height:44px;padding:0 12px;align-items:center;justify-content:space-between;gap:8px;color:var(--ink-muted);background:transparent;cursor:pointer}.turn-order-option+.turn-order-option{border-left:1px solid var(--line-strong)}.turn-order-option:hover{background:#ffffff0a}.turn-order-option.is-selected{color:var(--lime-bright);background:#c9e86d13}.turn-order-option:has(.turn-order-input:focus-visible){z-index:1;outline:2px solid var(--lime-bright);outline-offset:-2px}.turn-order-option strong{color:currentColor;font-size:.78rem}.turn-order-option span{color:currentColor;font-size:.66rem;font-weight:800}.setup-summary h2{margin-bottom:18px;font-size:1.4rem}.setup-summary dl{margin:0 0 18px}.setup-summary dl div{display:flex;padding:9px 0;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.setup-summary dt{color:var(--ink-muted);font-size:.78rem;font-weight:700}.setup-summary dd{margin:0;color:var(--ink);font-size:.82rem;font-weight:800}.setup-summary .button+.button{margin-top:9px}.online-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.online-page{padding:48px 0 36px}.online-intro{display:grid;margin-bottom:24px;grid-template-columns:minmax(0,1000px) minmax(320px,440px);align-items:start;justify-content:space-between;gap:48px}.online-intro .page-heading{max-width:1000px;margin-bottom:0}.lobby-name-field{max-width:440px;margin:0}.lobby-name-field .field-help{margin-bottom:0}.online-card{position:relative;display:flex;min-height:0;padding:28px 32px;flex-direction:column;background:transparent;border:0;border-radius:0}.online-card>.button,.online-card>form{margin-top:auto}.online-card+.online-card{border-left:1px solid var(--line)}.online-card h2{margin-bottom:10px;font-size:clamp(1.45rem,2vw,2rem)}.online-card>p{max-width:510px;min-height:48px;margin-bottom:20px;color:var(--ink-soft);line-height:1.55}.field{display:grid;gap:8px}.field-label{color:var(--ink-soft);font-size:.74rem;font-weight:800;letter-spacing:.04em}.input{width:100%;min-height:52px;padding:0 16px;color:var(--ink);background:#00000038;border:1px solid var(--line-strong);border-radius:10px}.input::placeholder{color:#68776e}.input:focus{border-color:#c9e86d99}.room-code{height:66px;padding-inline:20px;color:var(--lime-bright);font-size:1.8rem;font-weight:900;letter-spacing:.24em;text-transform:uppercase}.field-help{margin:7px 0 15px;color:var(--ink-muted);font-size:.72rem;text-align:right}.lobby-notice{margin-bottom:18px}.notice{padding:14px 16px;border:1px solid var(--line);border-radius:12px;font-size:.79rem;line-height:1.5}.notice-error{color:var(--coral-soft);background:#ff806813;border-color:#ff806840}.waiting-page{display:grid;min-height:calc(100vh - 168px);place-items:center}.waiting-card{width:min(100%,680px);padding:clamp(28px,5vw,48px);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 18px 42px #00000038;text-align:center}.waiting-card h1{margin-bottom:14px;font-size:clamp(2rem,4vw,3rem)}.room-opening{display:flex;width:min(100%,680px);padding:18px 0;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.room-opening .room-label{margin:0}.room-opening-status{display:flex;margin:0;align-items:center;gap:8px;color:var(--ink-soft);font-size:.76rem;font-weight:750}.room-opening-dot{width:7px;height:7px;background:var(--lime);border-radius:50%}.room-label{margin-bottom:10px;color:var(--ink-muted);font-size:.78rem;font-weight:750}.waiting-copy{max-width:560px;margin:0 auto 24px;color:var(--ink-soft);line-height:1.65}.waiting-code{display:flex;margin:0 auto 24px;justify-content:center;gap:clamp(5px,1.5vw,12px)}.waiting-code span{display:grid;width:clamp(42px,9vw,65px);aspect-ratio:.84;place-items:center;color:var(--lime-bright);background:#0000003b;border:1px solid rgba(201,232,109,.28);border-radius:11px;font-size:clamp(1.35rem,4vw,2.1rem);font-weight:900}.copy-row{display:flex;gap:10px}.copy-row .input{min-width:0}.copy-status{min-height:22px;margin:7px 0 18px;color:var(--ink-muted);font-size:.72rem}.waiting-seats{display:grid;margin:16px 0 22px;grid-template-columns:repeat(2,1fr);gap:16px}.waiting-seat{display:flex;min-height:68px;padding:14px 4px;align-items:center;gap:13px;background:transparent;border:0;border-top:1px dashed var(--line-strong);border-radius:0;text-align:left}.waiting-seat.is-present{border-top-style:solid;border-top-color:#c9e86d40}.waiting-seat div{display:grid}.waiting-seat strong{font-size:.86rem}.waiting-seat div span{color:var(--ink-muted);font-size:.7rem}.seat-placeholder{width:32px;height:32px;border:1px dashed var(--ink-muted);border-radius:50%}.lobby-lineup{display:grid;margin:24px 0;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:center;gap:12px}.lobby-seat{min-width:0;padding:14px 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left}.lobby-seat-role{display:block;color:var(--ink-muted);font-size:.7rem;font-weight:750}.lobby-seat-heading{display:flex;min-width:0;min-height:32px;margin-bottom:7px;align-items:center;justify-content:space-between;gap:5px}.lobby-remove-button{min-width:0;min-height:30px;padding:0 7px;color:var(--ink-muted);background:transparent;border:0;border-radius:7px;font-size:.64rem;font-weight:750;cursor:pointer}.lobby-remove-button:hover:not(:disabled){color:var(--coral);background:#ff806812}.lobby-remove-button:disabled{cursor:not-allowed;opacity:.45}.lobby-seat-player{display:flex;min-width:0;align-items:center;gap:10px}.lobby-seat-player>div{display:grid;min-width:0}.lobby-seat-player strong{font-size:.84rem;overflow-wrap:anywhere}.lobby-seat-player div span{color:var(--ink-muted);font-size:.68rem}.lobby-swap-button{display:grid;width:44px;height:44px;padding:0;place-items:center;color:var(--lime-bright);background:transparent;border:1px solid var(--line-strong);border-radius:10px;cursor:pointer}.lobby-swap-button:hover:not(:disabled){background:#ffffff0e;border-color:#c9e86d7a}.lobby-swap-button:disabled{color:var(--ink-muted);cursor:not-allowed;opacity:.5}.lobby-swap-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.lobby-ready-card .notice,.lobby-ready-card>.connection-banner{margin-bottom:14px;text-align:left}.lobby-ready-card>.button+.button,.lobby-host-note+.button{margin-top:9px}.lobby-host-note{margin:0;padding:14px 0;color:var(--ink-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.78rem}.room-sync-card .notice{margin-bottom:16px;text-align:left}.waiting-card>.connection-banner{padding-inline:4px;background:transparent;border-right:0;border-left:0;border-radius:0}.room-sync-card>.button+.button{margin-top:9px}.rules-layout{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:start;gap:clamp(30px,6vw,90px)}.rules-index{position:sticky;top:24px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.rules-index ol{display:grid;margin:0;padding:0;gap:3px;list-style:none}.rules-index li{padding:9px 4px;color:var(--ink-soft);font-size:.83rem;font-weight:700}.rules-content{display:grid;gap:0}.rules-card{display:grid;padding:clamp(28px,4vw,44px) 0;grid-template-columns:34px minmax(0,1fr);gap:18px;border-top:1px solid var(--line);scroll-margin-top:24px}.rules-card:last-child{border-bottom:1px solid var(--line)}.rules-number{display:block;padding-top:6px;color:var(--lime);font-size:.78rem;font-weight:900}.rules-card h2{margin-bottom:12px;font-size:clamp(1.55rem,2.5vw,2.1rem)}.rules-card p{color:var(--ink-soft);line-height:1.72}.rules-list{display:grid;margin:24px 0 0;padding:0;gap:10px;list-style:none}.rules-list li{position:relative;padding-left:23px;color:var(--ink-soft);font-size:.9rem}.rules-list li:before{position:absolute;top:.42em;left:1px;width:8px;height:8px;content:"";background:var(--lime);border-radius:2px;transform:rotate(45deg)}.rule-callout{display:grid;margin-top:28px;padding:20px;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:20px;background:#0000002e;border:1px solid var(--line);border-radius:10px}.rule-callout p{margin:0;font-size:.86rem}.rule-callout-accent{border-color:#c9e86d2e}.rule-diagram{position:relative;display:block;height:64px}.rule-diagram-jump i{position:absolute;top:20px;width:24px;height:24px;border-radius:50%}.rule-diagram-jump i:nth-child(1){left:0;background:var(--player-one)}.rule-diagram-jump i:nth-child(2){left:33px;background:var(--player-two)}.rule-diagram-jump i:nth-child(3){right:0;border:2px dashed var(--lime)}.rule-diagram-jump:after{position:absolute;top:6px;left:12px;width:65px;height:30px;content:"";border-top:2px solid var(--lime);border-radius:50%}.rule-diagram-route{background:linear-gradient(90deg,transparent 47%,rgba(255,255,255,.08) 48% 52%,transparent 53%),linear-gradient(transparent 47%,rgba(255,255,255,.08) 48% 52%,transparent 53%);background-size:30px 30px;border-radius:8px}.rule-diagram-route i{position:absolute;height:7px;background:var(--lime);border-radius:99px}.rule-diagram-route i:first-child{top:18px;left:8px;width:50px}.rule-diagram-route i:last-child{right:8px;bottom:14px;width:42px;transform:rotate(90deg)}.game-page{padding:18px 0 24px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:clamp(24px,3.2vw,50px)}.connection-banner{display:grid;min-height:64px;margin:0;padding:12px 14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;color:var(--ink-soft);background:#ffffff08;border:1px solid var(--line);border-radius:14px}.connection-indicator{width:10px;height:10px;background:var(--lime);border:2px solid var(--night);border-radius:50%;box-shadow:0 0 0 3px #c9e86d26}.connection-banner>div{display:grid;gap:2px}.connection-banner strong{color:var(--ink);font-size:.76rem}.connection-banner>div span{color:var(--ink-muted);font-size:.68rem}.connection-banner.connection-problem,.connection-banner.connection-opponent-offline{background:#ff80680f;border-color:#ff806833}.connection-problem .connection-indicator,.connection-opponent-offline .connection-indicator{background:var(--coral);box-shadow:0 0 0 3px #ff806821}.connection-retry{min-height:38px;padding-inline:13px;font-size:.7rem}.game-stage{min-width:0}.board-figure{width:min(100%,820px,calc(100dvh - 160px));margin:0 auto}.board-shell{--board-shell-padding: clamp(5px, .8vw, 10px);--board-grid-padding: clamp(3px, .45vw, 7px);--board-grid-gap: clamp(2px, .5vw, 6px);position:relative;width:100%;aspect-ratio:1;padding:var(--board-shell-padding);background:#27382e;border:1px solid rgba(232,238,215,.19);border-radius:clamp(14px,2.5vw,28px);box-shadow:0 32px 70px #0006,inset 0 0 0 5px #0000001f}.board-grid{display:grid;width:100%;height:100%;padding:var(--board-grid-padding);grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));gap:var(--board-grid-gap)}.cell{position:relative;display:grid;min-width:0;min-height:0;padding:0;place-items:center;overflow:visible;border:0;border-radius:clamp(3px,.75vw,9px);box-shadow:inset 0 -5px #262b1f1f,0 1px 2px #00000026}.cell:disabled{opacity:1;cursor:default}.cell-light{background:#d8d2bc}.cell-dark{background:#c3bea8}.cell:not(:disabled){cursor:pointer}.cell:not(:disabled):before{position:absolute;inset:0;z-index:7;content:"";pointer-events:auto;border-radius:inherit}.cell:not(:disabled):hover{background:#e4e6c5}.cell.is-last-move:after{position:absolute;inset:8%;content:"";pointer-events:none;border:clamp(2px,.35vw,4px) solid #5a7130;border-radius:inherit}.legal-marker{width:clamp(10px,2.2vw,23px);aspect-ratio:1;background:#50672b;border:2px solid rgba(255,255,255,.54);border-radius:50%;box-shadow:0 0 0 5px #50672b24;transition:transform .14s ease,box-shadow .14s ease}.cell:not(:disabled):hover .legal-marker,.cell:not(:disabled):focus-visible .legal-marker{box-shadow:0 0 0 9px #50672b2e;transform:scale(1.15)}.pawn{position:absolute;z-index:4;display:grid;width:clamp(25px,6.3vw,58px);max-width:74%;aspect-ratio:1;place-items:center;border:clamp(3px,.65vw,7px) solid rgba(255,255,255,.26);border-radius:50%;box-shadow:0 clamp(5px,1vw,11px) clamp(8px,1.6vw,17px) #12191052,inset 0 -7px 11px #00000029}.pawn:after{width:30%;height:30%;content:"";background:#ffffff70;border-radius:50%;transform:translate(-25%,-25%)}.pawn-player1{background:var(--player-one)}.pawn-player2{background:var(--player-two)}.pawn-core{position:absolute;inset:22%;border:1px solid rgba(0,0,0,.12);border-radius:inherit}.pawn-player1 .pawn-core{inset:30%;background:#345321cc;border-radius:50%}.pawn-player2 .pawn-core{inset:28%;background:#842b20bd;border-radius:3px;transform:rotate(45deg)}.wall-layer{position:absolute;inset:var(--board-shell-padding);z-index:6;display:grid;padding:var(--board-grid-padding);grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));gap:var(--board-grid-gap);pointer-events:none}.wall-slot{position:relative;z-index:2;display:block;margin:0;padding:0;align-self:end;justify-self:end;pointer-events:auto;background:transparent;border:0;transform:translate(calc(50% + var(--board-grid-gap) / 2),calc(50% + var(--board-grid-gap) / 2))}.wall-slot:after{position:absolute;top:50%;left:50%;content:"";opacity:0;background:var(--lime);border:1px solid rgba(255,255,255,.24);border-radius:99px;box-shadow:0 5px 11px #00000052;transform:translate(-50%,-50%);transition:opacity .1s ease,background .1s ease,box-shadow .1s ease}.wall-horizontal{width:calc(100% + var(--board-grid-gap));height:clamp(18px,3vw,34px)}button.wall-slot{z-index:5}button.wall-horizontal{z-index:6}.wall-horizontal:after{width:calc(200% - clamp(7px,1vw,13px));height:clamp(7px,1.2vw,13px)}.wall-vertical{width:clamp(18px,3vw,34px);height:calc(100% + var(--board-grid-gap))}.wall-vertical:after{width:clamp(7px,1.2vw,13px);height:calc(200% - clamp(7px,1vw,13px))}button.wall-slot:disabled{pointer-events:none}button.wall-slot:not(:disabled){cursor:pointer}.wall-slot.is-preview:after,.wall-slot.is-invalid:after,.wall-slot.is-wall:after{opacity:1}.wall-slot.is-preview:after{background:var(--lime-bright);box-shadow:0 0 0 4px #c9e86d2b,0 5px 11px #00000052}.wall-slot.is-invalid:after{background:repeating-linear-gradient(135deg,var(--coral),var(--coral) 5px,#8f3b30 5px,#8f3b30 9px);box-shadow:0 0 0 4px #ff806829}.wall-slot.is-wall{z-index:4;pointer-events:none}.wall-slot.is-wall:after{background:var(--gold);border-color:#e2c080;box-shadow:inset 0 -3px #5638185c,0 5px 12px #0000006b}.wall-slot.is-last-wall:after{background:var(--gold);border-color:#ffe2a8;box-shadow:0 0 0 4px #d3a95f33,0 5px 11px #00000061}.sr-status,.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.game-sidebar{position:sticky;top:20px;display:grid;padding:0;gap:0;background:#ffffff06;border:1px solid var(--line);border-radius:var(--radius-lg)}.game-sidebar>.connection-banner{grid-column:1 / -1;margin:8px 8px 0}.game-label{margin:0 0 10px;color:var(--ink-muted);font-size:.68rem;font-weight:850;letter-spacing:.08em;line-height:1.35;text-transform:uppercase}.players-status{display:grid;border-bottom:1px solid var(--line)}.player-status{display:grid;min-width:0;padding:13px 20px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.player-status+.player-status{border-top:1px solid var(--line)}.player-token{display:inline-block;width:29px;height:29px;border:4px solid rgba(255,255,255,.2);border-radius:50%;box-shadow:inset 0 -4px 5px #0000001f}.player-token-player1{background:var(--player-one)}.player-token-player2{background:var(--player-two)}.player-status .player-token{width:13px;height:13px;border:0;box-shadow:none}.player-name{min-width:0;font-size:.82rem;font-weight:700;overflow-wrap:anywhere}.player-status.is-active .player-name{color:var(--lime-bright);font-weight:850}.wall-count{color:var(--ink-muted);font-size:.7rem;white-space:nowrap}.wall-count strong{margin-right:3px;color:var(--ink);font-size:.9rem}.turn-card{padding:20px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}.turn-label{margin-bottom:7px;color:var(--ink-muted);font-size:.75rem;font-weight:700}.turn-value{margin-bottom:9px;font-size:1.2rem;font-weight:900}.last-action{margin:0;color:var(--ink-muted);font-size:.7rem;line-height:1.5}.controls{display:grid;padding:16px 20px 20px;gap:12px;background:transparent;border:0;border-radius:0}.wall-feedback{display:flex;margin:0;align-items:center;gap:8px;color:var(--coral-soft);font-size:.72rem;line-height:1.45}.wall-feedback:before{width:6px;height:6px;flex:0 0 auto;content:"";background:var(--coral);border-radius:50%}.notice-error,.controls .notice{display:flex;align-items:center;justify-content:space-between;gap:10px}.notice-close{flex:0 0 auto;width:30px;height:30px;padding:0;color:inherit;background:transparent;border:0;border-radius:8px;font-size:1.2rem;cursor:pointer}.notice-close:hover{background:#ffffff12}.game-actions{display:grid;gap:8px}.game-actions .button{min-height:43px;padding-inline:12px;font-size:.74rem}.rematch-status{grid-column:1 / -1;margin:0;color:var(--ink-muted);font-size:.69rem;line-height:1.5;text-align:center}.thinking{display:flex;width:max-content;max-width:100%;min-height:42px;margin:12px auto 0;padding:0 14px;align-items:center;gap:10px;color:var(--ink-soft);background:#ffffff09;border:1px solid var(--line);border-radius:99px;font-size:.72rem}.dialog-card{width:min(calc(100% - 32px),470px);padding:32px;color:var(--ink);background:#101c17;border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:0 24px 60px #0000006b;text-align:left}.dialog-card::backdrop{background:#020806d1}.dialog-danger{border-color:#ff80686b;border-top-width:3px}.dialog-danger .dialog-title{color:var(--coral-soft)}.dialog-title{margin-bottom:12px;font-size:2.25rem}.dialog-copy{margin-bottom:25px;color:var(--ink-soft);line-height:1.6}.dialog-status{margin:-12px 0 22px;padding:10px 12px;color:var(--ink-soft);background:#ffffff09;border:1px solid var(--line);border-radius:10px;font-size:.75rem;line-height:1.45}.dialog-actions{display:grid;gap:9px}.empty-state{display:grid;max-width:620px;min-height:420px;margin:0 auto;place-content:center;justify-items:center;text-align:center}.empty-state h1{margin-bottom:14px;font-size:clamp(2rem,4vw,3.2rem)}.empty-state p{margin-bottom:28px;color:var(--ink-soft)}@media(min-width:1600px){.home-page .hero{grid-template-columns:minmax(0,1.18fr) minmax(520px,.82fr);gap:clamp(40px,4vw,72px)}.home-page .hero-title{max-width:none;font-size:clamp(5.2rem,5vw,6rem)}.home-page .hero-lede{margin-bottom:24px}}@media(max-width:1080px){.hero{grid-template-columns:minmax(0,1fr) minmax(340px,.8fr);gap:30px}.hero-visual{min-height:450px}.game-layout{grid-template-columns:1fr}.board-figure{width:min(100%,760px)}.game-sidebar{position:static;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch}.turn-card{border-right:1px solid var(--line)}.controls{grid-column:1 / -1}.setup-layout{grid-template-columns:minmax(0,1fr) 310px}}@media(max-width:820px){html{scrollbar-gutter:auto}.site-header{min-height:76px}.hero{min-height:auto;padding-top:68px;grid-template-columns:1fr}.home-page .hero{min-height:auto;padding:56px 0 70px}.hero-title{font-size:clamp(2.8rem,10vw,4.2rem)}.hero-visual{min-height:420px}.setup-layout{grid-template-columns:1fr}.setup-summary{position:static}.setup-summary-start{order:3;min-height:54px;margin-bottom:18px}.turn-order-control{order:1}.setup-summary h2{order:2}.setup-summary dl{order:4}.setup-summary .button-ghost{order:5}.online-grid{grid-template-columns:1fr}.online-intro{margin-bottom:24px;grid-template-columns:1fr;gap:24px}.lobby-name-field{max-width:none}.online-card{min-height:0;padding-inline:0}.online-card+.online-card{border-top:1px solid var(--line);border-left:0}.rules-layout{grid-template-columns:1fr}.rules-index{position:static}.rules-index ol{display:flex;overflow-x:auto}.rules-index li{white-space:nowrap}.rules-card:first-child{border-top:0}}@media(max-width:620px){.site-header,.main-content{width:min(calc(100% - 24px),var(--content))}.site-header{min-height:70px;gap:8px}.brand-mark{width:36px;height:36px}.brand-copy{display:none}.nav-links{min-width:0;gap:0}.nav-link{min-height:42px;padding-inline:10px;font-size:.75rem}.page{padding:48px 0 70px}.hero{padding:50px 0 65px}.home-page .hero{padding:44px 0 56px}.hero-title{font-size:clamp(2.7rem,13vw,3.8rem)}.hero-lede{font-size:.98rem}.hero-actions{display:grid}.hero-visual{min-height:330px}.mini-board{width:89%;padding:11px;gap:4px;border-radius:20px}.mini-board>span{border-radius:4px}.mini-pawn{width:27px;height:27px;border-width:5px}.page-heading{margin-bottom:28px}.difficulty-card{min-height:132px;padding:18px}.setup-summary{padding:24px}.online-card{padding:24px 0}.connection-banner{grid-template-columns:auto minmax(0,1fr)}.connection-retry{grid-column:1 / -1;width:100%}.waiting-card{padding:28px 18px}.room-opening{padding:16px 0;align-items:flex-start;flex-direction:column;gap:12px}.copy-row{display:grid}.waiting-seats{grid-template-columns:1fr}.lobby-lineup{grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:6px}.lobby-seat{padding-inline:4px;text-align:center}.lobby-seat-player{flex-direction:column;gap:7px}.lobby-swap-button{width:40px;height:40px}.rules-card{padding:26px 0;grid-template-columns:28px minmax(0,1fr);gap:12px}.rules-number{padding-top:5px}.rule-callout{grid-template-columns:1fr}.rule-diagram{width:90px}.game-page{width:calc(100% - 16px);padding-top:22px}.board-shell{--board-shell-padding: 4px;--board-grid-padding: 3px;--board-grid-gap: 2px;border-radius:13px}.board-grid{padding:var(--board-grid-padding);gap:var(--board-grid-gap)}.wall-horizontal{height:32px}.wall-vertical{width:32px}.game-sidebar{grid-template-columns:1fr}.turn-card{border-right:0}.players-status{grid-template-columns:repeat(2,minmax(0,1fr))}.player-status{padding-inline:12px}.player-status+.player-status{border-top:0;border-left:1px solid var(--line)}.thinking{width:100%;justify-content:center;border-radius:12px;text-align:center}.dialog-card{padding:29px 22px}}@media(min-width:1000px){.setup-page{padding:48px 0 36px}.setup-page .page-heading{max-width:1000px;margin-bottom:28px}}@media(min-width:1000px)and (max-height:950px){.setup-page{padding:22px 0}.setup-page .page-heading{margin-bottom:16px}.setup-page .page-heading h1{margin-bottom:10px;font-size:3rem}.setup-page .page-heading>p:last-child{font-size:.9rem;line-height:1.4}.setup-layout{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.difficulty-grid{grid-template-columns:1fr;gap:8px}.difficulty-card{height:clamp(128px,calc((100dvh - 282px) / 3),172px);min-height:0;padding:20px 22px;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto}.difficulty-card strong{align-self:end}.difficulty-time{margin-top:0;align-self:end}.difficulty-description{max-width:590px;grid-column:1 / -1}.setup-summary{padding:20px}.setup-summary h2{margin-bottom:14px;font-size:1.45rem}.turn-order-control{margin-bottom:12px}.turn-order-control legend{margin-bottom:6px}.turn-order-option{min-height:40px}.setup-summary dl{margin-bottom:14px}.setup-summary dl div{padding:8px 0}.setup-summary .button{min-height:42px}.setup-summary .button+.button{margin-top:6px}}@media(min-width:1000px)and (max-height:950px){.online-page{padding:22px 0}.online-intro{margin-bottom:16px;grid-template-columns:minmax(0,1fr) 330px;gap:32px}.online-intro .page-heading h1{margin-bottom:10px;font-size:3rem}.online-intro .page-heading>p:last-child{font-size:.9rem;line-height:1.4}.lobby-name-field .input{min-height:46px}.lobby-name-field .field-help{margin-top:4px}.online-grid{gap:0}.online-card{height:auto;padding:22px 28px}.online-card h2{margin-bottom:6px;font-size:2rem}.online-card>p{min-height:0;margin-bottom:12px;line-height:1.4}.room-code{height:52px;font-size:1.5rem}.online-card .field-help{margin:4px 0 8px}.game-page{padding:12px 0 16px}.game-layout{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.board-figure{width:min(100%,820px,calc(100dvh - 174px))}.game-sidebar{position:static;gap:0}.game-label{font-size:.62rem}.connection-banner{min-height:52px;padding:8px 10px;gap:8px}.player-status{padding:10px 12px}.turn-card{padding:10px}.turn-value{margin-bottom:4px;font-size:1rem}.controls{padding:10px;gap:8px}.game-actions{gap:6px}.game-actions .button{min-height:34px}.game-stage{position:relative}.thinking{position:absolute;bottom:34px;left:50%;z-index:8;margin:0;transform:translate(-50%)}}@media(max-width:390px){.nav-link{padding-inline:7px;font-size:.7rem}.hero-title{font-size:2.75rem}.waiting-code{gap:4px}.waiting-code span{width:39px}.player-status{padding-inline:10px}.player-name{font-size:.75rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
