:root{font-family:Inter,"Noto Sans SC","PingFang SC",system-ui,sans-serif;color:#283b39;background:#e8e6de;font-synthesis:none;--paper:#f6f4eb;--ink:#263a37;--muted:#7a827b;--accent:#b68428}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid #cad0c4;border-radius:7px;padding:10px 16px;background:#f4f4eb;color:var(--ink)}button:hover{background:#fffdf5}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--ink);border-color:var(--ink);color:#faf5e5}button.primary:hover{background:#38564d}a{color:inherit}input{min-width:0;max-width:100%;padding:12px;border:1px solid #cbd0c6;border-radius:7px;background:#fffdf5;color:inherit}label{display:grid;gap:7px;font-size:13px}h1,h2,h3,p{margin-top:0}h1{font-weight:600;letter-spacing:-.045em}p{line-height:1.85}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #b5892e;outline-offset:3px}header{height:80px;display:flex;align-items:center;justify-content:space-between;gap:15px;max-width:1500px;margin:auto;padding:16px 36px;border-bottom:1px solid #cdd2c5}.brand{text-decoration:none;display:flex;flex-direction:column;align-items:flex-start;gap:0}.brand strong{font-family:Georgia,serif;letter-spacing:.09em;font-size:32px}.brand span{font-size:11px;letter-spacing:.1em;color:var(--muted)}nav{display:flex;align-items:center;gap:12px;font-size:12px}nav button{padding:7px 11px}.connection{font-size:11px;color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:.2em;color:#7e8b7b;font-weight:600}.entry{max-width:1320px;min-height:710px;margin:auto;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:7vw;padding:48px 6vw}.entry-art img{width:100%;border-radius:50%;max-width:610px;mix-blend-mode:multiply}.entry-copy h1{font-size:60px;line-height:1.15;margin-bottom:24px}.entry-copy>p{color:#7c8278}.entry form{display:grid;gap:16px;max-width:360px}.entry-tabs{display:flex;gap:18px;margin:30px 0 20px}.entry-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:8px 0;color:var(--muted)}.entry-tabs button[aria-pressed=true]{border-color:var(--ink);color:var(--ink)}.facts{display:flex;gap:28px;color:#7c8278;font-size:11px}.facts b{font-size:20px;display:block;color:var(--ink);font-weight:500;margin-bottom:3px}.credit{font-size:11px;color:#8b8f81;margin:22px 0 0}.lobby{max-width:1130px;margin:45px auto;padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.lobby img{width:100%}.lobby h1{font-size:44px}.seats{display:grid;gap:10px;margin:25px 0}.seat{background:#f4f2e9;border:1px solid #cbd0c5;border-radius:9px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;font-size:13px}.seat b{font-weight:600}.seat span{font-size:12px;color:var(--muted)}.options{padding:18px 0;margin:10px 0;border-top:1px solid #cbd0c5}.expansions{display:flex;gap:8px;flex-wrap:wrap}.expansions button{display:flex;align-items:center;gap:7px}.expansions button[aria-pressed=true]{background:#354b42;color:#fff}.expansions svg{width:26px;height:30px}.buttons{display:flex;gap:10px;flex-wrap:wrap}.game{max-width:1500px;margin:auto;padding:20px 36px}.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:24px}.board-column{min-width:0}.rack{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:110px}.rack-label{width:112px;flex-shrink:0;font-size:12px;line-height:1.8}.rack-label b{display:block;font-size:14px;max-width:110px;overflow:hidden;text-overflow:ellipsis}.color-mark{display:inline-block;width:8px;height:8px;border-radius:50%;background:#eee6d0;box-shadow:0 0 0 1px #859085;margin-right:6px}.color-mark.black{background:#273537}.reserve{display:flex;gap:4px;flex:1;flex-wrap:wrap;justify-content:flex-end}.reserve-button{position:relative;background:none;border:0;padding:0;width:57px;flex:0 0 57px}.reserve-button:hover{background:none;transform:translateY(-2px)}.reserve-button svg{display:block;width:100%;height:65px}.reserve-button .remaining{position:absolute;right:0;bottom:0;font-size:10px;background:#d7ddd1;border:1px solid #c4ccb9;min-width:18px;height:18px;border-radius:50%;line-height:16px}.reserve-button.unavailable{opacity:.65}.board-wrap{position:relative;overflow:hidden;border-top:1px solid #ccd2c5;border-bottom:1px solid #ccd2c5;background:radial-gradient(ellipse at center,#f4f2e6 0,#e8e8de 68%,#e0e3d9);border-radius:14px;isolation:isolate}.board-svg{display:block;width:100%;height:540px;touch-action:none;cursor:grab;user-select:none}.board-svg:active{cursor:grabbing}.board-svg [role=button]{cursor:pointer}.board-svg .target{fill:#78988418;stroke:#718776;stroke-width:1.6;stroke-dasharray:3 4}.board-svg .target.pending{fill:#d4ab3c26;stroke:#bb8e22;stroke-width:2;stroke-dasharray:none}.board-svg .available-ring{fill:none;stroke:#687f62;stroke-width:1.2;opacity:.8}.board-svg .move-line{stroke:#ae842e;stroke-width:2.2;fill:none;stroke-dasharray:4 4;pointer-events:none}.board-svg text{pointer-events:none}.stack-count{fill:#fff5d5;font-size:10px;font-weight:bold}.board-tools{position:absolute;bottom:12px;left:14px;display:flex;align-items:center;gap:4px}.board-tools button{background:#f6f4ecda;border-color:#d1d6c9;font-size:13px;width:35px;height:33px;padding:0}.board-tools button.recenter{width:auto;padding:0 12px;font-size:11px}.board-caption{position:absolute;right:17px;bottom:18px;color:#919a8b;font-size:10px;pointer-events:none}.board-empty{fill:#8c9986;font-size:12px;letter-spacing:.08em}.action-panel{background:#f5f3e9;border:1px solid #cdd3c5;border-radius:13px;padding:24px;align-self:start;margin-top:14px}.action-panel h2{font-size:24px;margin-bottom:7px;line-height:1.5}.turn-note{font-size:12px;color:#798575}.turn-chip{font-size:10px;display:inline-block;background:#e7e9dd;padding:5px 8px;border-radius:4px;letter-spacing:.07em;margin-bottom:18px}.piece-info{margin-top:24px;border-top:1px solid #d5d8c9;padding-top:20px}.piece-info .insect-preview{width:74px;float:right;margin-top:-5px}.piece-info h3{font-size:17px;margin:0 0 3px}.piece-info .latin{font-family:Georgia,serif;font-size:12px;font-style:italic;color:#859080}.piece-info p{font-size:12px;line-height:1.9;margin:12px 0;color:#76826f}.piece-modes{display:flex;gap:6px;margin:16px 0}.piece-modes button{font-size:12px;padding:8px 10px}.piece-modes button[aria-pressed=true]{background:#dce5d4;border-color:#8ba080}.action-panel .confirm{width:100%;margin:8px 0}.action-panel small{display:block;color:#88927f;font-size:11px;line-height:1.7;margin-top:10px}.status-block{padding:12px;background:#e9ebdf;border-radius:7px;font-size:12px;margin:12px 0}.results{border-left:3px solid #a9893f;padding:18px 22px;background:#f4f1e1;margin:0 0 20px}.results h1{font-size:29px;margin-bottom:7px}.results p{font-size:12px;margin-bottom:10px}.log{margin:20px 0;font-size:12px;border-top:1px solid #cbd1c2;padding-top:15px}.log summary{cursor:pointer;color:#75816e}.log ol{padding-left:28px;line-height:2.1;color:#778271;max-height:280px;overflow:auto}.secondary-actions{margin-top:24px;border-top:1px solid #d3d9ca;padding-top:18px;display:grid;gap:8px}.secondary-actions button{font-size:11px;background:transparent}.draw-response{background:#f2e7c8;border-radius:8px;padding:13px;font-size:12px;margin:15px 0}.draw-response .buttons{margin-top:10px}.draw-response button{font-size:11px;padding:7px 10px}footer{text-align:center;font-size:10px;color:#8c9585;margin:20px 0}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#283f36;color:#fff;padding:13px 20px;border-radius:9px;z-index:40;width:max-content;max-width:90vw;font-size:13px;box-shadow:0 4px 25px #11211730}dialog{width:min(760px,94vw);max-height:85vh;border:1px solid #d6d9ce;border-radius:15px;padding:30px;color:var(--ink);background:#f7f4e9;box-shadow:0 20px 90px #182d3260}dialog::backdrop{background:#21332977;backdrop-filter:blur(4px)}dialog .close{float:right;font-size:12px;margin:0 0 15px 15px}dialog p{font-size:13px}dialog input{width:100%;margin-bottom:12px}#creature-rules{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:25px 0}.rule-piece{border-bottom:1px solid #d7dcce;padding:12px 0;display:grid;grid-template-columns:58px 1fr;gap:10px}.rule-piece svg{width:58px}.rule-piece b{font-size:13px}.rule-piece p{font-size:11px;line-height:1.75;margin:6px 0}.board-bottom{font-size:11px;color:#858e7d;margin:12px 0}
@media(max-width:980px){header{padding:14px 22px}.entry{gap:4vw;padding:40px 5vw;min-height:620px}.entry-copy h1{font-size:48px}.game{padding:12px 20px}.game-grid{grid-template-columns:minmax(0,1fr) 240px;gap:15px}.action-panel{padding:18px}.rack-label{width:86px}.reserve-button{width:44px;flex-basis:44px}.reserve-button svg{height:52px}.board-svg{height:490px}.board-caption{display:none}.lobby{gap:30px}}
@media(max-width:680px){header{height:64px;padding:11px 16px}.brand strong{font-size:25px}nav{gap:7px}nav .connection{display:none}nav button{font-size:11px;padding:7px 8px}.entry{display:flex;flex-direction:column;gap:0;padding:14px 26px 40px}.entry-art{max-width:260px;height:230px}.entry-copy{width:100%}.entry-copy h1{font-size:39px;line-height:1.15;margin:8px 0 20px}.entry-copy h1 br{display:none}.entry-copy>p{font-size:13px}.entry .eyebrow{text-align:center;font-size:9px}.facts{gap:26px}.entry-tabs{margin-top:25px}.entry form{max-width:none}.lobby{display:block;padding:20px;margin:10px auto}.lobby h1{font-size:34px}.lobby>img{display:none}.game{padding:9px 12px}.game-grid{display:flex;flex-direction:column;gap:0}.rack{min-height:91px;gap:7px}.rack-label{width:63px;font-size:9px}.rack-label b{font-size:11px;max-width:63px}.reserve{gap:0;justify-content:flex-end}.reserve-button{width:35px;flex-basis:35px}.reserve-button svg{height:43px}.reserve-button .remaining{width:14px;min-width:14px;height:14px;line-height:13px;font-size:8px;right:-1px}.board-svg{height:400px}.board-wrap{border-radius:11px}.board-tools{bottom:9px;left:9px}.board-tools button{height:31px;width:32px}.board-bottom{font-size:10px;margin:8px 0}.action-panel{width:100%;margin-top:8px;padding:17px}.action-panel h2{font-size:21px}.turn-chip{margin-bottom:8px}.piece-info{margin-top:16px;padding-top:15px}.piece-info .insect-preview{width:65px}.secondary-actions{margin-top:15px;padding-top:12px;display:flex;flex-wrap:wrap}.results{padding:14px;margin-top:9px}.results h1{font-size:25px}.results .buttons button{font-size:12px}#creature-rules{grid-template-columns:1fr}dialog{padding:22px}.rule-piece{padding:6px 0}.log{margin:14px 0}.expansions{gap:6px}.expansions button{padding:8px 10px;font-size:12px}}
@media(prefers-reduced-motion:no-preference){.reserve-button{transition:transform .15s}.tile-art{filter:drop-shadow(0 3px 2px #21302616)}}
.mobile-actions{display:none}
@media(max-width:680px){
 .board-svg{height:clamp(240px,42dvh,400px)}
 .rack{min-height:72px}
 .game.has-mobile-actions{padding-bottom:calc(155px + env(safe-area-inset-bottom,0px))}
 .mobile-actions{display:block;position:fixed;z-index:30;left:0;right:0;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:#f6f4eb;border-top:1px solid #bac5b5;box-shadow:0 -4px 20px #263a3718}
 .mobile-actions p{font-size:12px;line-height:1.5;margin:0 0 7px}
 .mobile-action-buttons{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px}
 .mobile-action-buttons button{min-height:44px;font-size:14px}
 .mobile-actions .piece-modes{margin:0 0 8px}
 .mobile-actions .piece-modes button{min-height:40px;flex:1}
 .has-mobile-actions .action-panel [data-ui="confirm"],.has-mobile-actions .action-panel [data-ui="cancel"],.has-mobile-actions .action-panel .piece-modes{display:none}
 body:has(.mobile-actions) #notice{bottom:calc(160px + env(safe-area-inset-bottom,0px))}
}
