@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700;800&family=Literata:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{font-family:'Golos Text',sans-serif;color:#273c32;background:#f4f3eb;font-synthesis:none;--green:#2e6757;--muted:#728076;--line:#d9dfd5;--paper:#fffef9;--red:#c95346;--blue:#416caf}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.48;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #d5943c;outline-offset:4px}button{transition:background .15s,transform .15s}button:not(:disabled):active{transform:translateY(1px)}h1,h2,h3,p{margin:0}text{display:contents}.shell{max-width:1440px;margin:auto;padding:0 56px}.header{height:108px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:32px}.brand{font-weight:800;font-size:32px;letter-spacing:-1.6px;display:flex;gap:10px;align-items:center}.brand-icon{font-size:40px;font-weight:400;color:var(--green);letter-spacing:0;line-height:1}.tagline{font-size:13px;color:var(--muted)}.header-note{margin-left:auto}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:600;line-height:1.6}.lobby{display:grid;grid-template-columns:.84fr 1.4fr;gap:76px;align-items:center;min-height:calc(100vh - 190px);padding:70px 0 78px}.intro>.eyebrow{display:block;color:var(--green);margin-bottom:25px}h1{font-family:Literata,Georgia,serif;font-size:clamp(40px,4vw,60px);line-height:1.18;font-weight:500;letter-spacing:-2px}h1 em{color:var(--green);font-weight:400}.lead{font-size:15px;line-height:1.8;color:#6b796f;margin-top:26px;max-width:370px}.name-field{margin-top:35px;max-width:340px}.field-label{display:block;font-size:12px;font-weight:600;margin-bottom:10px}input{width:100%;min-width:0;border:1px solid #cfd6ca;border-radius:7px;background:#fcfbf5;padding:13px 15px;color:#273c32;font-size:14px}input::placeholder{color:#899188}.join-box{border-top:1px solid var(--line);padding-top:24px;margin-top:30px;max-width:350px}.join-box h2{font-size:13px;font-weight:500;margin-bottom:14px}.join-row{display:flex;gap:8px}.join-row input{text-transform:uppercase;letter-spacing:1px}.join-row .button{white-space:nowrap;padding:12px 18px}.button{background:var(--green);color:#fffef9;border:1px solid transparent;border-radius:7px;padding:13px 20px;font-size:12px;font-weight:600;line-height:1.4}.button:hover:not(:disabled){background:#205341}.blue-button{background:#416caf}.blue-button:hover:not(:disabled){background:#31558e}.outline{background:transparent;border-color:#cdd7cd;color:var(--green)}.outline:hover:not(:disabled){background:#e9eee4}.game-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.game-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:0 8px 24px #3c4b3529,0 2px 2px #3c4b3506;position:relative}.dots-card{transform:rotate(-2deg);margin-top:-28px}.five-card{transform:rotate(2deg);margin-top:28px}.card-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.card-top .eyebrow{font-size:8px;letter-spacing:.8px}.pill{font-size:9px;background:#f0f1e9;color:#6b796f;padding:5px 7px;border-radius:20px;white-space:nowrap}.mini-board{height:196px;margin:22px -24px 24px;background-image:linear-gradient(#d7e2d780 1px,transparent 1px),linear-gradient(90deg,#d7e2d780 1px,transparent 1px);background-size:24px 24px;background-position:center;position:relative;overflow:hidden;border-top:1px solid #e7ebe0;border-bottom:1px solid #e7ebe0}.ink{position:absolute;transform:translate(-50%,-50%);font-size:38px;line-height:1;z-index:1}.mini-dots .ink{font-size:24px}.red{color:var(--red)}.blue{color:var(--blue)}.p1{left:calc(50% - 48px);top:50%}.p2{left:50%;top:calc(50% - 48px)}.p3{left:calc(50% + 48px);top:50%}.p4{left:50%;top:calc(50% + 48px)}.p5{left:50%;top:50%}.capture-demo{position:absolute;left:50%;top:50%;width:68px;height:68px;background:#c9534615;border:1.5px solid #c9534690;transform:translate(-50%,-50%) rotate(45deg)}.mini-five .p1{left:calc(50% - 48px);top:calc(50% + 24px)}.mini-five .p2{left:calc(50% - 24px);top:50%}.mini-five .p3{left:50%;top:calc(50% - 24px)}.mini-five .p4{left:calc(50% + 24px);top:50%}.mini-five .p5{left:50%;top:calc(50% + 24px)}.infinity-arrow{position:absolute;right:30px;top:24px;font-size:36px;color:#c2cdbf}.game-card h2{font-family:Literata,Georgia,serif;font-weight:500;font-size:26px;letter-spacing:-.7px;white-space:nowrap}.card-copy{font-size:12px;line-height:1.8;color:#728076;margin-top:14px;min-height:88px}.card-bottom{border-top:1px dashed var(--line);padding-top:20px;margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between}.card-meta{font-size:10px;color:#728076}.card-bottom .button{padding:10px 14px}.footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);min-height:76px;gap:15px;font-size:11px;color:#7e897e}.footer-note{font-family:Literata,Georgia,serif;font-style:italic;font-size:16px;color:#60725e}.text-button{border:0;background:transparent;padding:8px 0;font-size:12px;color:var(--green);text-align:left}.text-button:hover{color:#173e2c}.game-page{padding:30px 0 40px}.game-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.game-heading h1{font-size:38px;letter-spacing:-1.2px;margin-top:6px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px;align-items:start}.board-panel{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 4px 12px #3c4b3509}.board-top{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5e9df}.move-count{font-size:11px;color:#7a867a}.game-canvas{display:block;width:100%;height:min(64vh,700px);min-height:420px;touch-action:none;cursor:crosshair}.board-tools{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;gap:10px;border-top:1px solid #e5e9df}.board-hint{font-size:10px;color:#849080}.zoom-tools{display:flex;gap:4px}.tool-button{border:1px solid #dce2d6;color:#52684f;background:#f8f9f1;border-radius:5px;font-size:12px;padding:7px 10px;white-space:nowrap}.sidebar{display:flex;flex-direction:column;gap:20px}.status-card{background:#edf0e5;padding:24px;border-radius:10px;border:1px solid #d8e0cf}.status-card>.eyebrow{color:#708363}.status-card h2{font-family:Literata,Georgia,serif;font-size:23px;line-height:1.4;font-weight:500;margin:12px 0 26px}.player-row{display:flex;align-items:center;gap:12px;padding:13px 10px;border:1px solid transparent;border-radius:7px;margin:4px -10px}.player-row.active{background:#fffef9b0;border-color:#dce2cf}.avatar{width:29px;font-size:29px;text-align:center}.player-info{display:flex;flex-direction:column;gap:5px;min-width:0}.player-info strong{font-size:12px;word-break:break-word}.presence{font-size:10px;color:#7b8876}.score{font-size:22px;margin-left:auto}.status-card>.button{width:100%;margin-top:22px}.status-card>.text-button{display:block;margin-top:10px}.muted{color:#84917e}.danger{color:#b8473a}.rules-card{padding:24px 8px}.rules-card>.eyebrow{font-size:9px;color:#85917c}.rules-card h3{font-family:Literata,Georgia,serif;font-size:20px;font-weight:500;margin:10px 0 16px}.rules-card p{font-size:12px;line-height:1.9;color:#72806e;margin-top:12px}.rules-card .keyboard-hint{font-size:10px;border-top:1px dashed #d5ddcd;padding-top:14px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:5;border:1px solid #b6c7b0;border-radius:10px;background:#f6faef;box-shadow:0 8px 24px #243e2529;padding:16px 20px;display:flex;align-items:center;gap:24px;max-width:calc(100vw - 32px);width:max-content;font-size:13px;overflow-wrap:anywhere}.toast.error{background:#fff2ed;border-color:#e4b4a4;color:#9d483d}.toast .text-button{white-space:nowrap}
@media(min-width:1400px){.game-cards{gap:28px}.game-card{padding:28px}.mini-board{margin-left:-28px;margin-right:-28px}}
@media(max-width:1100px){.shell{padding:0 32px}.lobby{gap:35px;grid-template-columns:.8fr 1.4fr}.game-card{padding:18px}.mini-board{margin-left:-18px;margin-right:-18px;height:170px}.game-card h2{font-size:22px}.card-top .pill{display:none}.header-note{display:none}.card-copy{min-height:105px}.play-layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.board-hint{max-width:140px;line-height:1.5}}
@media(max-width:820px){.lobby{grid-template-columns:1fr;gap:50px;padding:48px 0}.intro{max-width:580px}.intro h1{font-size:52px}.lead{max-width:450px}.name-field{margin-top:22px}.join-box{margin-top:24px}.game-cards{gap:22px}.dots-card{margin:0;transform:rotate(-1deg)}.five-card{margin:20px 0 0;transform:rotate(1deg)}.game-card{padding:24px}.mini-board{margin-left:-24px;margin-right:-24px;height:180px}.card-copy{min-height:70px}.card-top .pill{display:block}.play-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr}.status-card h2{font-size:21px}.game-canvas{height:62vh;min-height:440px}.board-hint{max-width:none}.header{height:85px}.footer-note{display:none}}
@media(max-width:480px){.shell{padding:0 18px}.header{gap:20px}.brand{font-size:28px}.brand-icon{font-size:34px}.tagline{font-size:10px;max-width:140px;line-height:1.6}.lobby{padding:36px 0}.intro h1{font-size:44px}.lead{font-size:14px}.game-cards{grid-template-columns:1fr;gap:24px;padding:0 4px}.game-card,.five-card,.dots-card{margin:0;transform:none}.mini-board{height:150px;margin-top:16px;margin-bottom:20px}.card-copy{min-height:0}.card-bottom{margin-top:18px}.game-card h2{font-size:28px}.sidebar{grid-template-columns:1fr;gap:4px}.game-heading h1{font-size:32px}.game-heading>.button{font-size:10px;padding:10px}.board-top{padding:14px}.board-tools{align-items:flex-start;flex-direction:column;gap:10px}.zoom-tools{align-self:flex-end}.game-canvas{height:60vh;min-height:430px}.game-page{padding-top:18px}.status-card{padding:20px}.rules-card{padding:22px 8px}.footer{font-size:10px;min-height:64px}.toast{bottom:12px;padding:12px 16px;gap:12px}.eyebrow{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.ai-button{width:100%;margin-top:12px}.ai-badge{padding:10px 16px;font-size:11px;letter-spacing:1px}
.difficulty{display:flex;gap:6px;margin-top:16px}.difficulty button{flex:1}.difficulty [aria-pressed=true]{background:#2e6757;color:#fffef9;border-color:#2e6757}
