:root{--paper:#f5efe1;--panel:#fffdf7;--ink:#231f19;--muted:#746b5d;--line:#46341e29;--line-strong:#46341e57;--wood:#d7a75f;--blue:#1d5b7a;--red:#b33b2e;--display:Georgia, "Times New Roman", serif;--sans:Avenir Next, Avenir, Optima, Candara, sans-serif;color:var(--ink);background:linear-gradient(90deg, #231f1909 1px, transparent 1px), linear-gradient(#231f1909 1px, transparent 1px), var(--paper);font:16px/1.45 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:34px 34px}*{box-sizing:border-box}body{min-width:320px;margin:0}h1,h2,h3{color:var(--ink);font-family:var(--display);letter-spacing:0;font-weight:900}h1{margin:0;font-size:clamp(38px,6vw,68px);line-height:.95}p{margin:0}button,input{font:inherit}.shell{box-sizing:border-box;width:min(1180px,100vw - 32px);min-height:100svh;margin:0 auto}.home-shell{place-items:center;padding:32px 0;display:grid}.home-panel{border:1px solid var(--line);background:linear-gradient(135deg, #ffffffe6, #f4eddeb8), var(--panel);gap:22px;width:min(520px,100%);padding:36px;display:grid;box-shadow:0 20px 70px #362a1b1f}.brand-mark{border:2px solid var(--ink);background:var(--wood);width:72px;height:72px;color:var(--ink);font-family:var(--display);place-items:center;font-size:42px;line-height:1;display:grid}.home-copy{gap:10px;display:grid}.eyebrow{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.lede{max-width:44ch;color:var(--muted)}.field{color:var(--muted);gap:8px;font-size:13px;font-weight:700;display:grid}input{box-sizing:border-box;border:1px solid var(--line-strong);width:100%;min-width:0;color:var(--ink);font:inherit;background:#ffffffb8;border-radius:6px;padding:12px 14px}input:focus{outline-offset:2px;outline:2px solid #1d5b7a57}button{font:inherit}.primary-action,.secondary-action,.ghost-action{cursor:pointer;border:1px solid #0000;border-radius:6px;min-height:44px;font-weight:800;transition:transform .15s,border-color .15s,background .15s}.primary-action{background:var(--ink);color:#fffdf7;padding:0 18px}.secondary-action{background:var(--blue);color:#f7fbff;width:100%;padding:0 14px}.ghost-action{border-color:var(--line);color:var(--ink);background:#ffffff80;padding:0 14px}.primary-action:hover:not(:disabled),.secondary-action:hover:not(:disabled),.ghost-action:hover:not(:disabled){transform:translateY(-1px)}.primary-action:disabled,.board-cell:disabled{cursor:not-allowed}.form-error{color:var(--red);margin:0;font-weight:700}.game-shell{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:24px;padding:24px 0;display:grid}.board-zone,.side-panel{min-width:0}.room-strip{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.room-strip h1{text-align:right;margin:2px 0 0;font-size:26px}.board-wrap{aspect-ratio:1;box-sizing:border-box;background:var(--wood);border:2px solid #5f4324;width:min(100%,100svh - 92px);min-width:280px;margin:0 auto;padding:clamp(18px,3.4vw,34px);box-shadow:inset 0 0 0 1px #ffffff52,0 22px 60px #4a372033}.board-grid{isolation:isolate;width:100%;height:100%;position:relative}.board-grid:before{content:"";z-index:0;pointer-events:none;background:repeating-linear-gradient(90deg,#472f15c2 0 1px,#0000 1px 7.14286%),repeating-linear-gradient(#472f15c2 0 1px,#0000 1px 7.14286%);position:absolute;inset:0}.board-cell{z-index:1;aspect-ratio:1;background:0 0;border:0;border-radius:999px;place-items:center;width:clamp(20px,5.4vw,42px);padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.board-cell:not(:disabled):hover{background:#fff3}.board-cell span,.seat-stone{border-radius:999px;display:block}.board-cell span{aspect-ratio:1;width:84%}.board-cell.is-target span{outline-offset:2px;background:#fffdf75c;outline:2px dashed #1d5b7abf}.board-cell.is-target.target-black span{background:radial-gradient(circle at 34% 30%,#6c665d8a 0 8%,#0000 9%),radial-gradient(circle at 36% 30%,#2a2926bd,#050505bd 68%)}.board-cell.is-target.target-white span{background:radial-gradient(circle at 35% 28%,#ffffffb8 0 10%,#0000 11%),radial-gradient(circle at 38% 35%,#fffdf7c2,#d9d3c8c2 74%)}.stone-black span,.seat-stone.stone-black{background:radial-gradient(circle at 32% 28%,#6c665d 0 8%,#0000 9%),radial-gradient(circle at 36% 30%,#2a2926,#050505 68%);box-shadow:0 4px 10px #0000006b}.stone-white span,.seat-stone.stone-white{background:radial-gradient(circle at 35% 28%,#fff 0 10%,#0000 11%),radial-gradient(circle at 38% 35%,#fffdf7,#d9d3c8 74%);box-shadow:inset 0 0 0 1px #544d4238,0 4px 10px #0003}.board-cell.is-last:after{content:"";aspect-ratio:1;background:var(--red);border-radius:999px;width:18%;position:absolute}.board-cell.is-winning span{outline:3px solid var(--blue);outline-offset:2px}.side-panel{gap:14px;display:grid}.status-card,.player-seat,.invite-panel{border:1px solid var(--line);background:#fffdf7c7;border-radius:8px;box-shadow:0 12px 38px #362a1b14}.status-card{gap:10px;padding:20px;display:grid}.status-card h2,.player-seat h3{margin:0}.status-card p,.player-seat p{color:var(--muted);margin:0}.stats{grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 0;display:grid}.stats div{background:#1d5b7a14;border-radius:6px;padding:12px}.stats dt{color:var(--muted);font-size:12px;font-weight:700}.stats dd{color:var(--ink);margin:2px 0 0;font-size:20px;font-weight:900}.players{gap:10px;display:grid}.player-seat{grid-template-columns:42px 1fr;align-items:center;gap:12px;padding:14px;display:grid}.seat-stone{width:34px;height:34px}.invite-panel{gap:10px;padding:16px;display:grid}@media (width<=900px){.game-shell{grid-template-columns:1fr}.board-wrap{width:min(100%,680px)}.side-panel{grid-template-columns:1fr}}@media (width<=560px){.shell{width:min(100vw - 20px,1180px)}.home-panel{padding:24px}.room-strip{align-items:flex-start}.room-strip h1{font-size:20px}}
