@font-face{font-family:Game Chinese Display;src:url(/fonts/GameTitle-Black.woff2)format("woff2");font-style:normal;font-weight:900;font-display:swap}:root{color:#e9e5dc;font-synthesis:none;text-rendering:optimizelegibility;--ink:#e9e5dc;--muted:#9a968d;--gold:#c7a25b;--gold-bright:#e2c47f;--panel:#191917;--line:#e9e5dc21;background:#10100f;font-family:Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0;overflow-x:hidden}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}#app{min-height:100svh}.landing,.handoff-screen,.gameover-screen{background:linear-gradient(#ffffff06 1px,#0000 1px) 0 0/48px 48px,linear-gradient(90deg,#ffffff06 1px,#0000 1px) 0 0/48px 48px,radial-gradient(circle at 80% 35%,#c7a25b1a,#0000 34%),#11110f;min-height:100svh;position:relative}.topbar,.game-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:84px;padding:0 clamp(24px,5vw,72px);display:flex}.brand,.corner-brand{letter-spacing:.1em;align-items:center;gap:12px;font-family:Noto Serif SC,serif;font-weight:700;display:flex}.brand-mark{color:#111;background:var(--gold);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);place-items:center;width:34px;height:34px;font-family:Georgia,serif;font-size:21px;display:grid}.text-button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:12px 8px}.text-button:hover{color:var(--gold-bright)}.hero{grid-template-columns:1fr 1fr;align-items:center;gap:7vw;max-width:1280px;min-height:calc(100svh - 148px);margin:auto;padding:6vh clamp(28px,7vw,90px);display:grid}.eyebrow{color:var(--gold);letter-spacing:.28em;margin:0 0 16px;font-size:11px;font-weight:700}h1,h2,h3,p{margin-top:0}.hero h1,.handoff-card h1,.victory-card h1{letter-spacing:-.04em;margin:0 0 26px;font-family:Noto Serif SC,serif;font-size:clamp(48px,6.2vw,88px);line-height:1.17}em{color:var(--gold-bright);font-style:normal}.intro{max-width:530px;color:var(--muted);margin-bottom:34px;font-size:clamp(15px,1.5vw,19px);line-height:1.85}.player-form{grid-template-columns:1fr 1fr;gap:12px;max-width:570px;display:grid}.player-form label{color:var(--muted);flex-direction:column;gap:8px;font-size:12px;display:flex}.player-form input{width:100%;color:var(--ink);border:1px solid var(--line);background:#ffffff0d;border-radius:3px;padding:15px 16px}.primary-button,.secondary-button{border:1px solid var(--gold);cursor:pointer;border-radius:3px;min-height:50px;padding:12px 24px;font-weight:700}.primary-button{color:#17140e;background:var(--gold);box-shadow:0 10px 30px #c7a25b1f}.primary-button:hover{background:var(--gold-bright)}.secondary-button{color:var(--ink);background:0 0}.start-button{grid-column:1/-1;justify-content:space-between;align-items:center;margin-top:9px;display:flex}.start-button span{font-size:22px}.hero-art{place-items:center;min-height:480px;display:grid;position:relative}.cipher-ring{aspect-ratio:1;border:1px solid #c7a25b52;border-radius:50%;width:min(38vw,430px);position:absolute;box-shadow:inset 0 0 70px #c7a25b0f}.cipher-ring:before,.cipher-ring:after{content:"";border:1px dashed #e9e5dc1f;border-radius:50%;position:absolute;inset:9%}.cipher-ring:after{border-style:solid;inset:22%}.cipher-ring span{color:#c7a25b8c;font-family:Georgia,serif;position:absolute}.cipher-ring span:first-child{top:4%;left:48%}.cipher-ring span:nth-child(2){top:48%;right:4%}.cipher-ring span:nth-child(3){bottom:4%;left:48%}.cipher-ring span:nth-child(4){top:48%;left:4%}.demo-tiles{z-index:2;gap:12px;display:flex;position:relative}.demo-tile{border-radius:5px;place-items:center;width:clamp(74px,8vw,105px);height:clamp(122px,14vw,168px);font:700 clamp(34px,5vw,60px) Georgia,serif;display:grid;transform:translateY(12px)rotate(-3deg);box-shadow:0 24px 40px #0006}.demo-tile.black{color:var(--gold-bright);background:#080808;border:1px solid #34332f}.demo-tile.white{color:#1b1b19;background:#dedbd2;transform:translateY(-13px)}.demo-tile.gold{color:#18140d;background:var(--gold);transform:translateY(12px)rotate(3deg)}.hero-art>p{color:#5d5a53;letter-spacing:.32em;font-size:10px;position:absolute;bottom:25px}.landing footer{color:#66635c;border-top:1px solid var(--line);letter-spacing:.15em;align-items:center;gap:48px;height:64px;padding:0 clamp(28px,7vw,90px);font-size:11px;display:flex}.corner-brand{position:absolute;top:28px;left:5vw}.rules-position{position:absolute;top:24px;right:5vw}.handoff-screen,.gameover-screen{place-items:center;padding:100px 24px 40px;display:grid}.handoff-card,.victory-card{text-align:center;max-width:670px}.handoff-card h1,.victory-card h1{font-size:clamp(42px,6vw,72px)}.handoff-card>p:not(.eyebrow),.victory-card>p:not(.eyebrow){color:var(--muted);max-width:520px;margin:0 auto 30px;line-height:1.8}.privacy-icon{border:1px solid #c7a25b66;border-radius:50%;justify-content:center;align-items:center;gap:5px;width:100px;height:100px;margin:0 auto 28px;display:flex;position:relative}.privacy-icon:before{content:"";border:2px solid var(--gold);border-radius:70% 30%;width:72px;height:38px;position:absolute;transform:rotate(-18deg)}.privacy-icon span{background:var(--gold-bright);border-radius:50%;width:5px;height:5px}.wide-button{min-width:min(100%,360px)}.game-screen{background:#121210;min-height:100svh;padding-bottom:28px}.game-header{background:#0e0e0d;height:70px}.turn-info{text-align:center;flex-direction:column;align-items:center;gap:3px;min-width:0;max-width:min(56vw,620px);display:flex}.header-actions{align-items:center;gap:12px;display:flex}.header-actions .text-button:first-child{color:#b7b1a5;border-right:1px solid var(--line);padding-right:20px}.turn-badge{color:var(--muted);font-size:13px}.turn-badge span{background:var(--gold);width:7px;height:7px;box-shadow:0 0 10px var(--gold);border-radius:50%;margin-right:9px;display:inline-block}.turn-info small{color:#6f6b63;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;overflow:hidden}.board{max-width:1360px;margin:auto;padding:22px clamp(16px,4vw,54px)}.player-row{grid-template-columns:180px 1fr;align-items:center;gap:25px;min-height:210px;padding:24px 0;display:grid}.row-label h2{margin-bottom:7px;font:700 22px Noto Serif SC,serif}.row-label small{color:#74716a}.tile-row{scrollbar-color:#3f3d38 transparent;overscroll-behavior:contain;touch-action:pan-x;perspective:900px;perspective-origin:50% 30%;align-items:center;gap:clamp(7px,1vw,13px);height:180px;padding:18px 8px 34px;display:flex;overflow:auto hidden}.code-tile{isolation:isolate;transform-origin:bottom;border-radius:7px;flex-direction:column;flex:0 0 clamp(62px,7vw,88px);justify-content:center;align-items:center;gap:12px;height:clamp(105px,11.5vw,137px);padding:10px 5px;transition:transform .22s cubic-bezier(.2,.75,.25,1),box-shadow .22s,border-color .18s,filter .18s;display:flex;position:relative;overflow:visible;transform:rotateX(3deg)translateZ(0);box-shadow:inset 0 2px #ffffff1f,inset 0 -3px #0003,0 5px #090908,0 12px 18px #00000057}.code-tile:before{content:"";z-index:-1;pointer-events:none;border:1px solid #ffffff14;border-radius:4px;position:absolute;inset:2px}.code-tile:after{content:"";z-index:-1;pointer-events:none;filter:blur(2px);background:radial-gradient(at 0 0,#ffffff29,#0000 72%);border-radius:50%;width:46%;height:45%;position:absolute;top:3px;left:7%}.code-tile:disabled{opacity:1}.code-tile.black{color:#e6dfd1;background:linear-gradient(112deg,#ffffff0e,#0000 32%),linear-gradient(145deg,#171715,#050505 70%);border:1px solid #3f3d37;box-shadow:inset 0 1px #ffffff1c,inset 0 -3px #000,0 5px #020202,0 12px 20px #0000007a}.code-tile.white{color:#171715;background:linear-gradient(112deg,#ffffffb3,#0000 35%),linear-gradient(145deg,#eeebe3,#c4c0b7 76%);border:1px solid #f6f3eb;box-shadow:inset 0 2px #fff,inset 0 -2px #4b473f24,0 8px 16px #0000004d}.code-tile.revealed{transform:rotateX(3deg)translateZ(0);box-shadow:inset 0 2px #ffffff14,0 3px #080807,0 7px 12px #00000040}.code-tile.revealed .tile-number,.code-tile.revealed .tile-state{opacity:1}.code-tile.selectable{cursor:pointer}.code-tile.selectable:hover,.code-tile.selected{border-color:var(--gold);transform:rotateX(0)translateY(0)translateZ(0)scale(1);box-shadow:inset 0 2px #ffffff24,0 3px #17130c,0 8px 13px #0000006b,0 0 0 2px #c7a25b33}.code-tile.targeted{z-index:5;border-color:var(--gold-bright);animation:1s ease-in-out infinite alternate targetGlow}.code-tile.targeted:before{border:2px solid var(--gold);opacity:.85;border-radius:9px;inset:1px}.code-tile.target-correct{border-color:#78b889;animation:.42s ease-out both correctPop;box-shadow:0 0 0 2px #78b88933,0 8px 14px #0000006b}.code-tile.target-correct:before{border-color:#78b889}.code-tile.target-wrong{border-color:#ce786b;animation:.38s ease-in-out both wrongShake;box-shadow:0 0 0 2px #ce786b2b,0 8px 14px #0000006b}.code-tile.target-wrong:before{border-color:#ce786b}@keyframes targetGlow{0%{filter:brightness()}to{filter:brightness(1.1)}}@keyframes correctPop{0%{filter:brightness(.9)}65%{filter:brightness(1.18)}to{filter:brightness()}}@keyframes wrongShake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.code-tile.selectable:active{transform:rotateX(2deg)translateY(-2px)translateZ(4px)scale(.985);box-shadow:0 2px #080807,0 7px 12px #0006}.tile-number{z-index:1;text-shadow:0 1px #ffffff24,0 3px 5px #00000040;font:700 clamp(29px,3.7vw,44px)/1 Georgia,serif;position:relative}.code-tile.black .tile-number{color:#dfc077}.tile-state{letter-spacing:.08em;opacity:.55;font-size:8px}.tile-notes{width:max-content;max-width:138px;min-height:19px;color:var(--muted);border:1px solid var(--line);white-space:nowrap;background:#181816;border-radius:3px;flex-wrap:wrap;justify-content:center;gap:3px;padding:3px 6px;font-size:7px;line-height:1.4;display:flex;position:absolute;bottom:-25px;left:50%;transform:translate(-50%)}.mini-note{border:1px solid;border-radius:50%;place-items:center;width:16px;height:16px;font:700 7px Georgia,serif;display:inline-grid;position:relative}.mini-note.possible{color:var(--gold-bright);background:#c7a25b1f}.mini-note.no{color:#a6aaa6;background:0 0;border-style:dashed;font-style:normal}.mini-note.no:after{content:none;background:currentColor;width:90%;height:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.mini-note.tried{color:#8d8a84;background:#8d8a8421;font-style:normal}.incoming-guesses{border:1px solid var(--line);background:#181816;border-radius:10px;align-items:center;gap:3px;width:max-content;min-height:19px;padding:2px 4px;display:flex;position:absolute;bottom:-25px;left:50%;transform:translate(-50%)}.incoming-guess{color:#e7edf0;background:#e7edf014;border:1px solid #e7edf0bf;border-radius:50%;place-items:center;width:17px;height:17px;font:700 8px Georgia,serif;display:inline-grid}.incoming-guesses>b{color:var(--muted);font-size:7px}.action-zone{border:1px solid var(--line);border-left:3px solid var(--gold);background:#181816;grid-template-columns:100px 1fr 110px;align-items:center;gap:24px;min-height:132px;padding:12px 22px;display:grid}.deck-stack{width:68px;height:92px;color:var(--gold-bright);background:#0b0b0a;border:1px solid #34332f;flex-direction:column;justify-content:center;align-items:center;display:flex;box-shadow:5px 5px #22211e,9px 9px #0d0d0c}.deck-stack span{font:700 25px Georgia,serif}.deck-stack small,.drawn-wrap small{color:#77736b;letter-spacing:.15em;font-size:9px}.action-copy h3{margin:0;font:600 clamp(16px,2vw,22px) Noto Serif SC,serif}.drawn-wrap{flex-direction:column;align-items:center;gap:5px;display:flex}.drawn-wrap .code-tile{flex-basis:auto;gap:4px;width:55px;height:81px}.drawn-wrap .tile-number{font-size:25px}.drawn-wrap .tile-state{display:none}.drawn-wrap.empty span{color:#4b4842;font-size:32px}.guess-panel,.result-toast{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#141412f7;border:1px solid #c7a25b8c;width:min(92vw,980px);padding:20px 24px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 22px 70px #0000008c}.guess-panel{grid-template-columns:190px 1fr;align-items:center;gap:24px;padding-right:76px;display:grid}.guess-panel h3{margin:0;font:600 18px Noto Serif SC,serif}.guess-panel .close-button{border:1px solid #0000;border-radius:50%;position:absolute;top:10px;right:12px}.guess-panel .close-button:hover{color:var(--ink);border-color:var(--line);background:#ffffff0d}.number-grid{grid-template-columns:repeat(6,1fr);gap:7px;display:grid}.number-grid button{min-height:48px;color:var(--ink);cursor:pointer;background:#282723;border:1px solid #403e38;border-radius:3px;font:700 20px Georgia,serif}.number-grid button:hover{color:#17140e;background:var(--gold-bright)}.number-grid button:disabled{color:#625f58;cursor:not-allowed;background:#1c1c1a;border-color:#292824;text-decoration:line-through}.number-grid button:disabled:hover{color:#625f58;background:#1c1c1a}.number-grid button small{margin-top:2px;font:500 7px Noto Sans SC,sans-serif;text-decoration:none;display:block}.note-grid{align-items:start;row-gap:10px}.number-option{grid-template-rows:42px 18px;justify-items:center;gap:3px;display:grid}.number-grid .number-option button{min-height:0}.number-grid .number-option .number-pick{width:42px;height:42px;color:var(--ink);background:#24231f;border:1px solid #555149;border-radius:50%;padding:0;font:700 18px Georgia,serif;position:relative}.number-grid .number-option .number-pick:hover:not(:disabled){color:#17140e;background:var(--gold-bright)}.number-grid .number-option .note-toggle{color:#77736b;letter-spacing:.03em;background:0 0;border:0;border-radius:8px;min-width:50px;padding:1px 4px;font:600 7px Noto Sans SC,sans-serif}.number-option.possible .number-pick{color:#17140e;background:var(--gold-bright);border-color:#f0d494;box-shadow:0 0 0 3px #e2c47f24}.number-grid .number-option.possible .note-toggle{color:var(--gold-bright)}.number-option.no .number-pick{color:#a6aaa6;background:0 0;border:1px dashed;text-decoration:none}.number-option.no .number-pick:after,.number-option.auto-no .number-pick:after{content:none}.number-option.system-no .number-pick:after{content:"";background:#cf6e61;border-radius:2px;width:90%;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.number-grid .number-option.no .note-toggle{color:#a6aaa6}.number-option.auto-no{opacity:.65}.number-option.auto-no .number-pick{color:#a6aaa6;background:0 0;border:1px dashed;text-decoration:none}.number-grid .number-option.auto-no .note-toggle{color:#a6aaa6}.number-option.system-no{opacity:1}.number-option.system-no .number-pick{color:#ef897c;background:0 0;border:1px solid;text-decoration:none}.number-grid .number-option.system-no .note-toggle{color:#ef897c}.number-option.guess-selected .number-pick{color:#17140e;background:var(--gold-bright);border-color:#fff0bf;box-shadow:0 0 0 4px #e2c47f38}.guess-panel-copy small{color:var(--muted);font-size:9px;line-height:1.5}.confirm-guess{border-top-width:2px;grid-column:2;width:100%;min-height:42px}.confirm-guess:disabled{opacity:.38;cursor:not-allowed}.notes-only-hint{color:var(--muted);border:1px solid var(--line);text-align:center;background:#191917;border-radius:3px;grid-column:2;padding:11px 14px;font-size:11px}.number-grid .number-option .number-pick:disabled{cursor:not-allowed}.result-toast{align-items:center;gap:12px;display:flex}.result-toast strong{color:var(--gold-bright);font:700 20px Noto Serif SC,serif}.result-toast.failure{border-color:#9a5348a6}.result-toast.failure strong{color:#ce877a}.observer-hint{color:var(--muted);border:1px solid var(--line);border-radius:3px;flex:none;padding:10px 14px;font-size:12px}.battle-history{border:1px solid var(--line);background:#161614;border-radius:4px;margin:12px 0 0 205px}.battle-history summary{color:#bcb6aa;cursor:pointer;justify-content:space-between;padding:10px 14px;font-size:12px;list-style:none;display:flex}.battle-history summary::-webkit-details-marker{display:none}.battle-history summary span{color:var(--muted);font-size:10px}.history-list{border-top:1px solid var(--line);padding:2px 14px 10px}.history-list p{color:var(--muted);gap:9px;margin:8px 0 0;font-size:11px;display:flex}.history-list b{color:#d28b80;min-width:28px}.history-list .correct b{color:#8fc29c}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000c2;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.rules-card{width:min(100%,630px);max-height:90svh;color:var(--ink);background:#1b1b18;border:1px solid #c7a25b5c;padding:clamp(28px,5vw,54px);position:relative;overflow-y:auto}.rules-card h2{font:700 36px Noto Serif SC,serif}.rules-card ol{color:#b5b0a6;padding-left:22px;line-height:1.75}.rules-card .primary-button{width:100%;margin-top:10px}.close-button{width:42px;height:42px;color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:28px}.rules-card>.close-button{position:absolute;top:16px;right:16px}.victory-symbol{width:90px;height:90px;color:var(--gold-bright);border:1px solid var(--gold);border-radius:50%;place-items:center;margin:0 auto 25px;font-size:56px;display:grid}.final-code{justify-content:center;gap:8px;margin:25px 0 32px;padding:7px;display:flex;overflow-x:auto}.final-code .code-tile{flex-basis:58px;gap:4px;height:92px}.final-code .tile-number{font-size:27px}.final-code .tile-state{display:none}.victory-card>.text-button{margin:10px auto 0;display:block}@media (width<=800px){.hero{grid-template-columns:1fr;padding-top:55px}.hero-art{display:none}.landing footer{justify-content:space-between;gap:10px}.player-row{grid-template-columns:1fr;gap:10px;min-height:0;padding:17px 0}.row-label{align-items:baseline;gap:12px;display:flex}.row-label .eyebrow{display:none}.row-label h2{margin:0}.action-zone{margin:4px 0}.guess-panel{grid-template-columns:1fr;gap:13px}.confirm-guess,.notes-only-hint{grid-column:1}}@media (width<=560px){.topbar,.game-header{padding:0 18px}.brand{font-size:13px}.header-actions{gap:2px}.header-actions .text-button{font-size:12px}.header-actions .text-button:first-child{padding-right:9px}.player-form{grid-template-columns:1fr}.hero h1{font-size:45px}.landing footer span{font-size:9px}.action-zone{grid-template-columns:72px 1fr 60px;gap:10px;padding:10px}.deck-stack{width:51px;height:70px}.drawn-wrap .code-tile{width:46px;height:68px}.result-toast{flex-wrap:wrap}.result-toast button{flex:1;padding:9px}.number-grid{grid-template-columns:repeat(4,1fr)}.guess-panel{padding-right:54px}}@media (orientation:portrait) and (width>=700px){.hero{grid-template-columns:1fr}.hero-art{display:none}}.mode-hero{min-height:calc(100svh - 84px)}.mode-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:620px;display:grid}.mode-card,.lobby-card{color:var(--ink);border:1px solid var(--line);background:linear-gradient(145deg,#1e1e1b,#131311);border-radius:5px}.mode-card{text-align:left;cursor:pointer;flex-direction:column;justify-content:center;align-items:flex-start;gap:9px;min-height:128px;padding:25px;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.mode-card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 16px 35px #0000004d}.mode-card strong{color:var(--gold-bright);font:700 20px Noto Serif SC,serif}.mode-card span{color:var(--muted);font-size:13px}.center-panel{width:min(100% - 40px,760px);margin:0 auto;padding:clamp(60px,10vh,120px) 0}.center-panel>h1,.setup-pick>h1{margin-bottom:18px;font:700 clamp(38px,6vw,64px) Noto Serif SC,serif}.center-panel>p:not(.eyebrow),.setup-pick>p{color:var(--muted);line-height:1.8}.online-forms{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:34px;display:grid}.lobby-card{flex-direction:column;gap:13px;padding:26px;display:flex}.lobby-card h2{margin-bottom:8px;font:700 24px Noto Serif SC,serif}.lobby-card input{min-width:0;color:var(--ink);border:1px solid var(--line);background:#ffffff0b;border-radius:3px;padding:14px 15px}.notice{margin-top:20px;color:#ce877a!important}.room-code{letter-spacing:.16em;font-size:1.25em}.waiting-pulse{color:var(--muted);align-items:center;gap:10px;display:inline-flex}.waiting-pulse span{background:var(--gold);width:9px;height:9px;box-shadow:0 0 12px var(--gold);border-radius:50%;animation:1.3s infinite pulse}@keyframes pulse{50%{opacity:.3;transform:scale(.7)}}.game-screen.horizontal{overflow-x:auto}.game-screen.horizontal .game-header,.game-screen.horizontal .board{min-width:820px}.game-screen.horizontal .player-row{grid-template-columns:180px 1fr;gap:25px;min-height:210px;padding:24px 0}.game-screen.horizontal .row-label,.game-screen.horizontal .row-label .eyebrow{display:block}.game-screen.horizontal .row-label h2{margin-bottom:7px}.game-screen.vertical .board{max-width:840px}.game-screen.vertical .player-row{grid-template-columns:1fr;gap:8px;min-height:0;padding:18px 0}.game-screen.vertical .row-label{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.game-screen.vertical .row-label .eyebrow{display:none}.game-screen.vertical .row-label h2{margin:0}.game-screen.vertical .tile-row{padding-bottom:18px}.game-screen.vertical .action-zone{grid-template-columns:80px minmax(160px,1fr) 90px;margin:5px 0}.game-screen.vertical .battle-history{margin-left:0}.setup-pick{text-align:center;width:min(100% - 36px,850px);min-height:calc(100svh - 70px);margin:auto;padding:clamp(45px,8vh,90px) 0}.draw-stage{text-align:center;width:min(100% - 36px,900px);min-height:calc(100svh - 70px);margin:auto;padding:clamp(38px,6vh,72px) 0}.draw-stage>h1{margin-bottom:13px;font:700 clamp(38px,6vw,64px)/1.2 Noto Serif SC,serif}.draw-stage>p:not(.eyebrow){color:var(--muted)}.draw-wait .waiting-pulse.large{border:1px solid #c7a25b47;border-radius:50%;justify-content:center;width:86px;height:86px;margin:0 auto 24px}.draw-wait .waiting-pulse.large span{width:14px;height:14px}.color-chooser{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,590px);margin:28px auto;display:grid}.color-chooser>small{color:var(--muted);grid-column:1/-1}.draw-choice{cursor:pointer;border-radius:5px;flex-direction:column;gap:8px;min-height:105px;padding:18px;display:flex;box-shadow:0 12px 25px #00000047}.draw-choice strong{font:700 21px Noto Serif SC,serif}.draw-choice span{opacity:.65;font-size:12px}.black-choice{color:var(--gold-bright);background:#080808;border:1px solid #454138}.white-choice{color:#171715;background:#dedbd2;border:1px solid #fff}.draw-choice:hover:not(:disabled){border-color:var(--gold);transform:translateY(-2px)}.draw-choice:disabled{opacity:.35;cursor:not-allowed}.card-field-wrap{border:1px solid var(--line);background:radial-gradient(circle at 50% 45%,#c7a25b14,#0000 48%),linear-gradient(145deg,#ffffff06,#00000029);border-radius:8px;width:min(100%,760px);margin:22px auto;padding:18px 20px 12px;box-shadow:inset 0 0 45px #0000003d,0 18px 50px #0000003d}.card-field-heading{text-align:left;justify-content:space-between;align-items:center;gap:20px;display:flex}.card-field-heading .eyebrow{margin-bottom:5px}.card-field-heading strong{font:700 18px Noto Serif SC,serif}.card-field-heading>span{color:var(--muted);white-space:nowrap;font-size:12px}.card-field{background-color:#10100f;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:36px 36px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #ffffff0e;border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));height:260px;margin:12px 0 4px;display:grid;position:relative;overflow:hidden}.fan-group{min-width:0;position:relative}.fan-group+.fan-group{border-left:1px solid #ffffff0e}.fan-stack{position:absolute;inset:0 0 24px}.fan-label{color:var(--muted);letter-spacing:.12em;white-space:nowrap;font-size:9px;position:absolute;bottom:7px;left:50%;transform:translate(-50%)}.field-card{z-index:var(--card-z);width:clamp(49px,7vw,66px);height:clamp(76px,10vw,98px);transform:translateX(calc(-50% + var(--fan-offset) * clamp(12px, 2.8dvw, 23px))) translateY(var(--fan-drop)) rotate(var(--fan-angle));transform-origin:bottom;cursor:pointer;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:8px 4px;transition:transform .26s cubic-bezier(.2,.78,.2,1),opacity .25s,filter .25s,box-shadow .2s;display:flex;position:absolute;bottom:26%;left:50%;box-shadow:0 4px #0006,0 10px 18px #00000061}.field-card:before{content:"";opacity:.18;border:1px solid;border-radius:3px;position:absolute;inset:4px}.field-card.black{color:var(--gold-bright);background:linear-gradient(135deg,#1a1a18,#050505 70%);border:1px solid #4a463d}.field-card.white{color:#24221e;background:linear-gradient(135deg,#f1eee7,#bbb7ae 76%);border:1px solid #fff}.field-card-mark{font:700 clamp(20px,3vw,31px) Georgia,serif}.field-card small{letter-spacing:.14em;opacity:.58;font-size:6px}@media (hover:hover) and (pointer:fine){.field-card:hover{z-index:30;transform:translateX(calc(-50% + var(--fan-offset) * clamp(12px, 2.8dvw, 23px))) translateY(calc(var(--fan-drop) - 5px)) rotate(0deg) scale(1.025);box-shadow:0 3px #0000004d,0 8px 13px #0000006b,0 0 0 2px #c7a25b2e}}.field-card.draw-selected{z-index:40;border-color:var(--gold-bright);transform:translateX(calc(-50% + var(--fan-offset) * clamp(12px, 2.8dvw, 23px))) translateY(calc(var(--fan-drop) - 6px)) rotate(0deg) scale(1.03);box-shadow:0 3px #0000004d,0 9px 15px #00000073,0 0 0 2px #e2c47f38}.card-field.is-picking .field-card:not(.drawing){filter:brightness(.7);opacity:1}.field-card.drawing{z-index:50;pointer-events:none;transform:translateX(calc(-50% + var(--fan-offset) * clamp(12px, 2.8dvw, 23px))) translateY(-115px) rotate(0deg) scale(1.18);opacity:0;box-shadow:0 25px 45px #0000008c,0 0 30px #c7a25b42}.field-tip{color:var(--muted);letter-spacing:.04em;font-size:10px}.draw-confirm-row{justify-content:space-between;align-items:center;gap:14px;min-height:42px;padding-top:7px;display:flex}.draw-confirm-actions{align-items:center;gap:8px;display:flex}.cancel-draw{white-space:nowrap;padding-inline:10px}.confirm-draw{min-width:150px;min-height:34px;padding:6px 15px;font-size:11px}.confirm-draw:disabled{opacity:.38;cursor:not-allowed}.global-notice{z-index:100;top:max(78px, env(safe-area-inset-top));color:#e8c0ba;background:#2a1c1a;border:1px solid #ce786b8c;border-radius:4px;justify-content:space-between;align-items:center;gap:14px;width:min(100% - 28px,520px);padding:11px 12px 11px 16px;font-size:12px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.global-notice button{color:#e8c0ba;cursor:pointer;background:0 0;border:0;flex:none;width:28px;height:28px;font-size:20px}.empty-field{color:var(--muted);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.setup-tiles{justify-content:center;min-height:165px}.privacy-note{font-size:12px}.floating-action{z-index:9;background:#141412f7;border:1px solid #c7a25b8c;width:min(94vw,840px);max-height:88svh;padding:5px 14px 8px;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 22px 70px #0000008c}.floating-action .card-field-wrap{box-shadow:none;border:0;margin:0 auto}.floating-action .card-field{height:260px}.game-screen.drawing-compact{grid-template-rows:70px auto minmax(190px,30dvh);align-content:start;height:100dvh;display:grid;overflow:hidden auto}.game-screen.drawing-compact>.board{flex-direction:column;align-self:stretch;width:100%;height:auto;min-height:0;max-height:none;margin:0 auto;padding-bottom:12px;display:flex;overflow:visible}.game-screen.drawing-compact>.board .own-row{margin-top:0}.game-screen.drawing-compact .player-row,.game-screen.drawing-compact.horizontal .player-row,.game-screen.drawing-compact.vertical .player-row{min-height:128px;padding-block:5px}.game-screen.drawing-compact .tile-row{height:128px;padding-block:12px 24px}.game-screen.drawing-compact .code-tile{flex-basis:60px;gap:7px;height:92px}.game-screen.drawing-compact .tile-number{font-size:28px}.game-screen.drawing-compact .action-zone{min-height:86px}.game-screen.drawing-compact>.floating-action{border-inline:0;border-bottom:0;width:100%;height:100%;max-height:none;position:static;bottom:auto;left:auto;overflow:hidden;transform:none}.game-screen.drawing-compact>.floating-action .card-field-wrap{height:100%;padding-block:8px}.game-screen.drawing-compact>.floating-action .card-field{height:calc(100% - 88px);min-height:125px}.deck-detail{color:#77736b;margin-top:8px;font-size:11px}.handoff-screen>.game-header,.gameover-screen>.game-header{width:100%;position:absolute;inset:0 0 auto}.guess-panel .close-button{z-index:3;background:#191917}.code-tile.white{transform-origin:50%}.code-tile.white:not(.revealed){box-shadow:inset 0 2px #fff,inset 0 -1px #4b473f1a,0 8px 16px #0000004d}@media (width<=700px){.mode-cards,.online-forms{grid-template-columns:1fr}.center-panel{padding-top:45px}.layout-toggle{font-size:11px}.game-header .turn-info{max-width:48vw}.game-header .turn-badge{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;display:block;overflow:hidden}.game-header .turn-info small{font-size:7px}.game-screen.vertical .action-zone{grid-template-columns:62px 1fr 64px;gap:10px;padding:10px}.battle-history{margin-left:0}}@media (width<=800px),(height<=680px){.game-screen.guessing-compact{height:var(--app-height,100dvh);overflow:hidden}.game-screen.guessing-compact.horizontal .game-header,.game-screen.guessing-compact.horizontal .board{min-width:0}.game-screen.guessing-compact .game-header{height:50px;padding-inline:12px}.game-screen.guessing-compact .game-header .brand-mark{width:27px;height:27px;font-size:16px}.game-screen.guessing-compact .header-actions .text-button{padding:6px;font-size:10px}.game-screen.guessing-compact .board{padding:4px 10px 48svh}.game-screen.guessing-compact .player-row,.game-screen.guessing-compact.horizontal .player-row,.game-screen.guessing-compact.vertical .player-row{grid-template-columns:92px minmax(0,1fr);gap:7px;min-height:84px;padding:4px 0}.game-screen.guessing-compact .row-label{display:block}.game-screen.guessing-compact .row-label .eyebrow{display:none}.game-screen.guessing-compact .row-label h2{margin:0 0 2px;font-size:13px}.game-screen.guessing-compact .row-label small{font-size:8px}.game-screen.guessing-compact .tile-row{gap:5px;height:84px;padding:5px 3px 14px}.game-screen.guessing-compact .code-tile{border-radius:4px;flex-basis:42px;gap:4px;height:64px;padding:5px 3px;box-shadow:0 2px #080807,0 5px 9px #00000057}.game-screen.guessing-compact .tile-number{font-size:20px}.game-screen.guessing-compact .tile-state{font-size:5px}.game-screen.guessing-compact .tile-notes{gap:3px;max-width:78px;min-height:12px;padding:1px 3px;font-size:5px;bottom:-13px}.game-screen.guessing-compact .incoming-guesses{gap:2px;min-height:12px;padding:1px 2px;bottom:-13px}.game-screen.guessing-compact .incoming-guess{width:11px;height:11px;font-size:5px}.game-screen.guessing-compact .action-zone{grid-template-columns:42px minmax(0,1fr) 40px;gap:7px;min-height:62px;padding:4px 8px}.game-screen.guessing-compact .deck-stack{width:34px;height:46px;box-shadow:2px 2px #22211e}.game-screen.guessing-compact .deck-stack span{font-size:16px}.game-screen.guessing-compact .action-copy .eyebrow,.game-screen.guessing-compact .deck-detail{display:none}.game-screen.guessing-compact .action-copy h3{font-size:12px;line-height:1.4}.game-screen.guessing-compact .drawn-wrap .code-tile{width:32px;height:44px}.game-screen.guessing-compact .drawn-wrap .tile-number{font-size:16px}.game-screen.guessing-compact .battle-history{margin:4px 0}.game-screen.guessing-compact .battle-history summary{padding:5px 8px;font-size:9px}.game-screen.guessing-compact .guess-panel{grid-template-columns:104px minmax(0,1fr);gap:8px;width:100%;max-height:49svh;padding:10px 48px 10px 10px;bottom:0;overflow-y:auto}.game-screen.guessing-compact .guess-panel h3{font-size:13px}.game-screen.guessing-compact .guess-panel-copy small{font-size:7px}.game-screen.guessing-compact .guess-panel-copy .eyebrow{margin-bottom:4px;font-size:7px}.game-screen.guessing-compact .number-grid{grid-template-columns:repeat(6,minmax(25px,1fr));gap:3px}.game-screen.guessing-compact .number-option{grid-template-rows:31px 17px}.game-screen.guessing-compact .number-grid .number-option .number-pick{width:31px;height:31px;font-size:15px}.game-screen.guessing-compact .number-grid .number-option .note-toggle{font-size:6px}.game-screen.guessing-compact .confirm-guess,.game-screen.guessing-compact .notes-only-hint{grid-column:2;min-height:32px;padding:5px 8px;font-size:10px}.game-screen.guessing-compact .guess-panel .close-button{width:34px;height:34px;top:6px;right:7px}.game-screen.drawing-compact .floating-action{width:100%;height:100%;max-height:none;padding:5px 10px 7px;position:static;bottom:auto;left:auto;overflow:hidden;transform:none}.game-screen.drawing-compact{grid-template-rows:50px auto 180px}.game-screen.drawing-compact .board{padding-bottom:4px;overflow-y:auto}.game-screen.drawing-compact .player-row,.game-screen.drawing-compact.horizontal .player-row,.game-screen.drawing-compact.vertical .player-row{grid-template-columns:78px minmax(0,1fr);min-height:62px}.game-screen.drawing-compact .code-tile{flex-basis:34px;height:49px}.game-screen.drawing-compact .tile-row{height:64px}.game-screen.drawing-compact .tile-number{font-size:16px}.game-screen.drawing-compact .action-zone{min-height:48px}.game-screen.drawing-compact .battle-history summary{padding-block:3px}.game-screen.drawing-compact .floating-action .card-field-wrap{padding:7px 9px 5px}.game-screen.drawing-compact .floating-action .card-field-heading strong{font-size:12px}.game-screen.drawing-compact .floating-action .card-field-heading .eyebrow{display:none}.game-screen.drawing-compact .floating-action .card-field-heading>span{font-size:8px}.game-screen.drawing-compact .floating-action .card-field{height:78px;min-height:78px;margin-top:5px}.game-screen.drawing-compact .floating-action .field-card{border-radius:3px;gap:3px;width:34px;height:47px;padding:4px 2px}.game-screen.drawing-compact .floating-action .field-card-mark{font-size:17px}.game-screen.drawing-compact .floating-action .field-card small,.game-screen.drawing-compact .floating-action .field-tip{display:none}.game-screen.drawing-compact .draw-confirm-row{justify-content:flex-end;min-height:30px;padding-top:3px}.game-screen.drawing-compact .confirm-draw{min-width:126px;min-height:27px;padding:3px 9px;font-size:9px}.game-screen.drawing-compact .cancel-draw{padding:3px 5px;font-size:8px}}@media (prefers-reduced-motion:reduce){.field-card,.code-tile,.waiting-pulse span{transition:none!important;animation:none!important}}html[data-orientation=vertical] .game-header{height:clamp(52px,7dvh,68px);padding-inline:clamp(12px,4dvw,32px)}html[data-orientation=vertical] .game-header .brand{font-size:clamp(11px,3dvw,15px)}html[data-orientation=vertical] .turn-info{max-width:48dvw}html[data-orientation=vertical] .board{width:100%;max-width:none;padding:clamp(6px,1.2dvh,14px) clamp(10px,3dvw,28px)}html[data-orientation=vertical] .game-screen .player-row,html[data-orientation=vertical] .game-screen.horizontal .player-row,html[data-orientation=vertical] .game-screen.vertical .player-row{grid-template-columns:clamp(88px,24dvw,150px) minmax(0,1fr);gap:clamp(7px,2dvw,18px);min-height:clamp(128px,20dvh,190px);padding-block:clamp(5px,1dvh,12px)}html[data-orientation=vertical] .game-screen .row-label{display:block}html[data-orientation=vertical] .game-screen .row-label .eyebrow{margin-bottom:5px;font-size:clamp(7px,1.8dvw,10px);display:block}html[data-orientation=vertical] .game-screen .row-label h2{margin-bottom:4px;font-size:clamp(14px,4dvw,20px)}html[data-orientation=vertical] .game-screen .tile-row{gap:clamp(5px,1.5dvw,10px);height:clamp(116px,18dvh,164px);padding:clamp(12px,2dvh,20px) 3px clamp(25px,3.5dvh,36px)}html[data-orientation=vertical] .game-screen .code-tile{flex-basis:clamp(47px,13dvw,72px);height:clamp(78px,14dvh,116px)}html[data-orientation=vertical] .game-screen .tile-number{font-size:clamp(24px,8dvw,38px)}html[data-orientation=vertical] .battle-history{margin:clamp(3px,.7dvh,8px) 0}html[data-orientation=vertical] .game-screen.drawing-compact{grid-template-rows:clamp(52px,7dvh,68px) auto clamp(178px,27dvh,250px)}html[data-orientation=vertical] .game-screen.drawing-compact .player-row{min-height:clamp(88px,13dvh,130px)}html[data-orientation=vertical] .game-screen.drawing-compact .tile-row{height:clamp(82px,12dvh,118px)}html[data-orientation=vertical] .game-screen.drawing-compact .code-tile{flex-basis:clamp(39px,10dvw,58px);height:clamp(62px,9dvh,88px)}html[data-orientation=vertical] .game-screen.drawing-compact .floating-action .card-field{height:clamp(82px,13dvh,128px);min-height:0}html[data-orientation=vertical] .game-screen.guessing-compact:not(.drawing-compact) .player-row{min-height:clamp(76px,11dvh,108px)}html[data-orientation=vertical] .game-screen.guessing-compact:not(.drawing-compact) .tile-row{height:clamp(72px,10dvh,98px)}html[data-orientation=vertical] .game-screen.guessing-compact:not(.drawing-compact) .code-tile{flex-basis:clamp(34px,9dvw,48px);height:clamp(52px,7.8dvh,70px)}html[data-orientation=vertical] .game-screen.guessing-compact .guess-panel{max-height:47dvh}html[data-orientation=vertical] .setup-pick{width:min(94dvw,850px);padding-block:clamp(26px,5dvh,70px)}html[data-orientation=vertical] .setup-pick>h1{font-size:clamp(30px,8dvw,56px)}html[data-orientation=vertical] .card-field-wrap{width:min(94dvw,760px)}html[data-orientation=vertical] .setup-pick .card-field{height:clamp(210px,30dvh,300px)}html[data-orientation=horizontal] .game-header{height:clamp(46px,10dvh,70px);padding-inline:clamp(18px,4dvw,70px)}html[data-orientation=horizontal] .turn-info{max-width:52dvw}html[data-orientation=horizontal] .board{width:100%;max-width:1360px;padding:clamp(4px,1dvh,12px) clamp(16px,4dvw,54px)}html[data-orientation=horizontal] .game-screen .player-row,html[data-orientation=horizontal] .game-screen.horizontal .player-row,html[data-orientation=horizontal] .game-screen.vertical .player-row{grid-template-columns:clamp(108px,17dvw,180px) minmax(0,1fr);gap:clamp(10px,2.4dvw,28px);min-height:clamp(88px,25dvh,190px);padding-block:clamp(4px,1dvh,10px)}html[data-orientation=horizontal] .game-screen .row-label{display:block}html[data-orientation=horizontal] .game-screen .tile-row{height:clamp(82px,23dvh,170px);padding:clamp(8px,2dvh,18px) 4px clamp(20px,5dvh,34px)}html[data-orientation=horizontal] .game-screen .code-tile{flex-basis:clamp(42px,7dvw,82px);height:clamp(66px,19dvh,126px)}html[data-orientation=horizontal] .game-screen .tile-number{font-size:clamp(20px,6dvh,42px)}html[data-orientation=horizontal] .battle-history{margin:clamp(2px,.5dvh,7px) 0 0 clamp(108px,19.4dvw,205px)}html[data-orientation=horizontal] .game-screen.drawing-compact{grid-template-rows:clamp(46px,10dvh,70px) auto clamp(126px,34dvh,260px)}html[data-orientation=horizontal] .game-screen.drawing-compact .player-row{min-height:clamp(58px,17dvh,118px)}html[data-orientation=horizontal] .game-screen.drawing-compact .tile-row{height:clamp(55px,16dvh,112px)}html[data-orientation=horizontal] .game-screen.drawing-compact .code-tile{flex-basis:clamp(34px,5dvw,58px);height:clamp(48px,13dvh,88px)}html[data-orientation=horizontal] .game-screen.drawing-compact .floating-action .card-field{height:clamp(72px,22dvh,170px);min-height:0}html[data-orientation=horizontal] .game-screen.guessing-compact:not(.drawing-compact) .player-row{min-height:clamp(60px,18dvh,112px)}html[data-orientation=horizontal] .game-screen.guessing-compact:not(.drawing-compact) .tile-row{height:clamp(56px,17dvh,105px)}html[data-orientation=horizontal] .game-screen.guessing-compact:not(.drawing-compact) .code-tile{flex-basis:clamp(34px,5dvw,52px);height:clamp(48px,14dvh,76px)}html[data-orientation=horizontal] .game-screen.guessing-compact .guess-panel{max-height:46dvh}@media (orientation:landscape) and (height<=560px){.hero{min-height:calc(var(--app-height,100dvh) - clamp(46px, 10dvh, 70px));grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr);gap:4dvw;padding:clamp(12px,3dvh,26px) clamp(24px,6dvw,70px)}.hero h1{margin-bottom:10px;font-size:clamp(34px,10dvh,58px)}.hero .intro{margin-bottom:12px;font-size:clamp(12px,3.2dvh,16px);line-height:1.55}.mode-card{min-height:clamp(68px,20dvh,94px);padding:12px 16px}.hero-art{min-height:72dvh}.cipher-ring{width:min(34dvw,68dvh)}}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field-wrap{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(3px,.7dvh,7px);display:grid}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field{width:100%;height:auto;min-height:0;margin:0}html[data-orientation] .game-screen.drawing-compact>.floating-action .draw-confirm-row{min-height:0;padding-top:0}html[data-orientation] .game-screen.drawing-compact .field-card{gap:clamp(3px,1dvh,7px);width:clamp(34px,5dvw,56px);height:clamp(47px,10dvh,76px);bottom:8%}html[data-orientation] .game-screen.drawing-compact .field-card-mark{font-size:clamp(17px,4dvh,25px)}html[data-orientation] .game-screen.drawing-compact .field-card.draw-selected{transform:translateX(calc(-50% + var(--fan-offset) * clamp(12px, 2.8dvw, 23px))) translateY(calc(var(--fan-drop) - 4px)) rotate(0deg) scale(1.025)}#app,.landing,.handoff-screen,.gameover-screen,.game-screen{min-height:var(--app-height,100dvh)}.game-screen.drawing-compact{height:var(--app-height,100dvh)}@media (width<=700px){html[data-orientation] .game-screen .game-header,html[data-orientation] .game-screen .board{min-width:0}html[data-orientation] .game-header{flex-wrap:wrap;gap:8px;height:auto;min-height:56px;padding:8px 12px}html[data-orientation] .game-header .brand{gap:7px;font-size:12px}html[data-orientation] .game-header .brand-mark{width:28px;height:28px;font-size:18px}html[data-orientation] .game-header .turn-info{flex:1;max-width:100%}html[data-orientation] .game-header .turn-badge{white-space:normal;font-size:11px}html[data-orientation] .game-header .header-actions{gap:0}html[data-orientation] .game-header .text-button{min-height:40px;padding:8px;font-size:12px}html[data-orientation] .setup-pick{width:calc(100% - 24px);min-height:0;padding:20px 0 max(16px, env(safe-area-inset-bottom))}html[data-orientation] .setup-pick>.eyebrow{margin-bottom:6px;font-size:9px}html[data-orientation] .setup-pick>h1{margin-bottom:8px;font-size:26px;line-height:1.4}html[data-orientation] .setup-pick>p:not(.eyebrow){margin-bottom:12px;font-size:13px}html[data-orientation] .card-field-wrap,html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field-wrap{flex-direction:column;gap:10px;width:100%;height:auto;margin:12px 0;padding:12px;display:flex}html[data-orientation] .card-field-heading{gap:8px}html[data-orientation] .card-field-heading .eyebrow{display:none}html[data-orientation] .card-field-heading strong,html[data-orientation] .game-screen.drawing-compact .floating-action .card-field-heading strong{font-size:15px}html[data-orientation] .card-field-heading>span,html[data-orientation] .game-screen.drawing-compact .floating-action .card-field-heading>span{font-size:11px}html[data-orientation] .setup-pick .card-field,html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field{grid-template-columns:minmax(0,1fr);gap:12px;height:auto;min-height:0;margin:0;padding:10px 6px;overflow:visible}html[data-orientation] .fan-group{flex-direction:column-reverse;gap:8px;display:flex}html[data-orientation] .fan-group+.fan-group{border-left:0;border-top:1px solid var(--line);padding-top:10px}html[data-orientation] .fan-label{text-align:left;font-size:11px;position:static;transform:none}html[data-orientation] .fan-stack{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px 5px;display:grid;position:static}html[data-orientation] .field-card,html[data-orientation] .game-screen.drawing-compact .field-card{touch-action:manipulation;border-radius:4px;gap:0;width:100%;min-width:0;height:58px;padding:4px;position:relative;bottom:auto;left:auto;transform:none;box-shadow:0 2px 3px #0000004d}html[data-orientation] .field-card-mark,html[data-orientation] .game-screen.drawing-compact .field-card-mark{font-size:22px}html[data-orientation] .field-card small{display:none}html[data-orientation] .field-card.draw-selected,html[data-orientation] .game-screen.drawing-compact .field-card.draw-selected{outline:2px solid var(--gold-bright);outline-offset:1px;transform:translateY(-2px);box-shadow:0 0 12px #c7a25b40}html[data-orientation] .field-card.draw-selected:after{content:"✓";color:#17140e;background:var(--gold-bright);border-radius:50%;width:17px;height:17px;font-size:12px;position:absolute;top:-5px;right:-4px}html[data-orientation] .field-card.drawing{opacity:0;transform:translateY(-8px)}html[data-orientation] .draw-confirm-row,html[data-orientation] .game-screen.drawing-compact .draw-confirm-row{flex-direction:column;gap:8px;padding:0;display:flex}html[data-orientation] .field-tip,html[data-orientation] .game-screen.drawing-compact .floating-action .field-tip{font-size:12px;line-height:1.5;display:block}html[data-orientation] .draw-confirm-actions{width:100%}html[data-orientation] .confirm-draw,html[data-orientation] .game-screen.drawing-compact .confirm-draw{flex:1;min-width:0;min-height:46px;padding:10px;font-size:14px}html[data-orientation] .cancel-draw,html[data-orientation] .game-screen.drawing-compact .cancel-draw{min-height:44px;padding:8px;font-size:12px}html[data-orientation] .setup-pick .setup-tiles{height:auto;min-height:0;padding:10px 4px 24px}html[data-orientation] .setup-pick .setup-tiles:empty{display:none}html[data-orientation] .setup-pick .code-tile{flex-basis:52px;height:78px}html[data-orientation] .game-screen.drawing-compact{height:auto;display:block;overflow:visible}html[data-orientation] .game-screen.drawing-compact>.floating-action{height:auto;padding:0 12px;overflow:visible}html[data-orientation] .game-screen.drawing-compact>.draw-note-panel{height:auto}}@media (width<=360px){html[data-orientation] .fan-stack{grid-template-columns:repeat(5,minmax(0,1fr))}html[data-orientation] .card-field-heading{flex-wrap:wrap}}@media (width<=700px){html[data-orientation] .game-screen.guessing-compact{height:auto;overflow:visible}html[data-orientation] .game-screen.guessing-compact .board{padding-bottom:8px}html[data-orientation] .game-screen.guessing-compact .guess-panel{width:calc(100% - 24px);height:auto;max-height:none;padding:14px 10px max(14px, env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr);gap:12px;margin:8px 12px;position:relative;bottom:auto;left:auto;overflow:visible;transform:none}html[data-orientation] .guess-panel-copy{padding-right:42px}html[data-orientation] .game-screen.guessing-compact .guess-panel-copy h3{font-size:15px}html[data-orientation] .game-screen.guessing-compact .guess-panel-copy small{font-size:12px}html[data-orientation] .game-screen.guessing-compact .number-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px 2px}html[data-orientation] .game-screen.guessing-compact .number-option{grid-template-rows:44px 44px;gap:0;width:100%}html[data-orientation] .game-screen.guessing-compact .number-grid .number-option .number-pick{width:44px;height:44px;font-size:20px}html[data-orientation] .game-screen.guessing-compact .number-grid .number-option .note-toggle{width:100%;min-width:0;min-height:44px;padding:2px 0;font-size:10px}html[data-orientation] .game-screen.guessing-compact .confirm-guess,html[data-orientation] .game-screen.guessing-compact .notes-only-hint{grid-column:1;min-height:46px;font-size:14px}html[data-orientation] .game-screen.guessing-compact .guess-panel .close-button{width:44px;height:44px}}@media (width<=360px){html[data-orientation] .game-screen.guessing-compact .number-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=700px){html[data-orientation] .fan-stack{gap:12px 7px;padding:5px 2px 7px}html[data-orientation] .field-card,html[data-orientation] .game-screen.drawing-compact .field-card{--rest-angle:-1.5deg;--edge-color:#292720;height:62px;transform:perspective(650px) rotateX(13deg) rotateY(-7deg) rotateZ(var(--rest-angle));transform-origin:50% 70%;box-shadow:0 1px 0 #ffffff38 inset, 0 3px 0 var(--edge-color), 1px 5px 0 #080807, 2px 9px 9px #00000080;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background-image:linear-gradient(120deg,#ffffff21,#0000 40%),linear-gradient(145deg,#24231e,#080807 78%);transition:transform .26s cubic-bezier(.2,.8,.2,1),box-shadow .26s,filter .18s}html[data-orientation] .field-card:nth-child(3n+2){--rest-angle:1.5deg}html[data-orientation] .field-card:nth-child(3n){--rest-angle:-.5deg}html[data-orientation] .field-card.white{--edge-color:#a7a297;background-image:linear-gradient(120deg,#ffffffe6,#0000 45%),linear-gradient(145deg,#f3eee1,#bfb8aa)}html[data-orientation] .field-card:before{opacity:.27;border-width:1px;inset:4px}html[data-orientation] .field-card-mark{text-shadow:0 1px #ffffff2e,0 2px 3px #0003}html[data-orientation] .field-card.draw-selected,html[data-orientation] .game-screen.drawing-compact .field-card.draw-selected{box-shadow:0 1px 0 #ffffff59 inset, 0 3px 0 var(--edge-color), 1px 5px 0 #080807, 3px 15px 14px #0009, 0 0 18px #c7a25b33;transform:perspective(650px)translateY(-6px)rotateX(-7deg)rotateY(5deg)}html[data-orientation] .field-card:active:not(.drawing),html[data-orientation] .game-screen.drawing-compact .field-card:active:not(.drawing){box-shadow:0 1px 0 var(--edge-color), 0 4px 5px #0006}html[data-orientation] .field-card.drawing,html[data-orientation] .game-screen.drawing-compact .field-card.drawing{animation:.32s cubic-bezier(.4,0,.6,1) both touch-card-draw}}@keyframes touch-card-draw{0%{opacity:1;transform:perspective(650px)translateY(-6px)rotateX(-7deg)rotateY(5deg)}35%{opacity:1;transform:perspective(650px)translateY(-15px)rotateX(-16deg)rotateY(12deg)scale(1.06)}to{opacity:0;transform:perspective(650px)translateY(-48px)rotateX(12deg)rotateY(65deg)scale(.8)}}@media (prefers-reduced-motion:reduce){html[data-orientation] .field-card,html[data-orientation] .game-screen.drawing-compact .field-card{transition:none!important;animation:none!important}}html[data-orientation] .game-screen .board .player-row{grid-template-columns:minmax(0,1fr);gap:6px;min-height:0;padding-block:10px;display:grid}html[data-orientation] .game-screen .board .row-label{flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-width:0;display:flex}html[data-orientation] .game-screen .board .row-label .eyebrow{display:none}html[data-orientation] .game-screen .board .row-label h2{overflow-wrap:anywhere;margin:0;font-size:16px}html[data-orientation] .game-screen .board .row-label small{font-size:11px}html[data-orientation] .game-screen .board .tile-row{touch-action:pan-x pan-y;gap:8px;width:100%;min-width:0;height:auto;min-height:112px;padding:8px 5px 30px;overflow:auto hidden}html[data-orientation] .game-screen .board .code-tile{flex:0 0 52px;gap:6px;height:76px}html[data-orientation] .game-screen .board .tile-number{font-size:28px}html[data-orientation] .game-screen .board .tile-state{font-size:8px}html[data-orientation] .game-screen .battle-history{margin-left:0}@media (width>=701px){html[data-orientation] .game-screen .board .code-tile{flex-basis:64px;height:92px}html[data-orientation] .game-screen .board .tile-row{min-height:130px}}@media (width<=700px){html[data-orientation] .fan-stack{height:128px;padding:0;display:block;position:relative;container-type:inline-size}html[data-orientation] .fan-stack:empty{height:24px}html[data-orientation] .field-card,html[data-orientation] .game-screen.drawing-compact .field-card{--fan-step:min(30px, calc((100cqw - 112px) / max(1, var(--fan-count) - 1)));--fan-x:calc(-50% + var(--fan-offset) * var(--fan-step));transform-origin:bottom;width:56px;height:80px;transform:translateX(var(--fan-x)) translateY(var(--fan-drop)) perspective(650px) rotateX(10deg) rotateZ(var(--fan-angle));position:absolute;bottom:20px;left:50%}html[data-orientation] .field-card.white,html[data-orientation] .game-screen.drawing-compact .field-card.white{--edge-color:#a7a297;color:#24221e;background-image:linear-gradient(120deg,#ffffffe6,#0000 45%),linear-gradient(145deg,#f3eee1,#bfb8aa)}html[data-orientation] .field-card.draw-selected,html[data-orientation] .game-screen.drawing-compact .field-card.draw-selected{transform:translateX(var(--fan-x)) translateY(-10px) perspective(650px) rotateX(-7deg)}html[data-orientation] .field-card:active:not(.drawing),html[data-orientation] .game-screen.drawing-compact .field-card:active:not(.drawing){filter:brightness(.88)}html[data-orientation] .field-card.drawing,html[data-orientation] .game-screen.drawing-compact .field-card.drawing{animation-name:touch-fan-draw}}@keyframes touch-fan-draw{0%{transform:translateX(var(--fan-x)) translateY(-10px) perspective(650px) rotateX(-7deg);opacity:1}35%{transform:translateX(var(--fan-x)) translateY(-20px) perspective(650px) rotateY(12deg) scale(1.06);opacity:1}to{transform:translateX(var(--fan-x)) translateY(-48px) perspective(650px) rotateY(65deg) scale(.8);opacity:0}}.card-back-art{pointer-events:none;background:repeating-linear-gradient(45deg,#0000 0 7px,#c7a25b17 7px 8px);border-radius:3px;place-items:center;display:grid;position:absolute;inset:7px}.card-back-art i{filter:drop-shadow(0 2px 2px #00000040);font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:25px;font-style:normal;font-weight:400;line-height:1;position:absolute}.card-back-art i:nth-child(2){opacity:.85;font-size:12px;top:0;left:0}.card-back-art i:nth-child(3){opacity:.85;font-size:12px;bottom:0;right:0;transform:rotate(180deg)}.field-card>small{position:absolute;bottom:4px}html[data-orientation] .game-screen .board .code-tile.targeted{border-color:var(--gold-bright);animation:none;transform:perspective(700px)translateY(-9px)rotateX(-9deg)rotateY(5deg);box-shadow:inset 0 1px #ffffff40,0 4px #665438,1px 6px #201b12,3px 15px 17px #000000a6,0 0 0 2px #e2c47fa6}html[data-orientation] .game-screen .board .code-tile.targeted:before{border:1px solid #ffffff1f;border-radius:4px;inset:2px}.outgoing-guesses{background:#181816;border-radius:10px;align-items:center;gap:2px;width:max-content;padding:2px;display:flex;position:absolute;top:-24px;left:50%;transform:translate(-50%)}.outgoing-guess{color:#ed897c;background:#38231f;border:1px solid #ed897c;border-radius:50%;place-items:center;width:16px;height:16px;font:700 9px Georgia,serif;display:inline-grid}.outgoing-guesses>b{color:var(--muted);font-size:8px}html[data-orientation] .game-screen .board .tile-row{padding-top:40px}html[data-orientation] .game-screen .board .incoming-guesses{gap:2px;min-height:20px;padding:2px;bottom:-24px}html[data-orientation] .game-screen .board .incoming-guess{width:16px;height:16px;font-size:9px}.marker-legend{padding:0;list-style:none}.rules-card .marker-legend li{align-items:center;gap:12px;padding:0;font-size:13px;display:flex}.marker-legend li>:first-child{flex:0 0 22px;height:22px;font-size:11px}.marker-help{color:var(--muted);font-size:12px;line-height:1.7}.tile-emblem{pointer-events:none;filter:drop-shadow(0 1px 1px #0000002e);font:400 13px/1 Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;position:absolute;top:4px;left:4px}.tile-slot{flex-direction:column;flex:0 0 52px;align-items:center;min-width:0;display:flex}.tile-slot>.code-tile{flex:none;width:100%}html[data-orientation] .game-screen .board .tile-slot{flex-basis:52px}html[data-orientation] .game-screen .board .tile-row{align-items:flex-start;padding-top:20px;padding-bottom:10px}.tile-markers{flex-direction:column;align-items:center;gap:5px;width:100%;min-height:26px;margin-top:16px;display:flex}.tile-markers:empty{min-height:0;margin-top:0}html[data-orientation] .game-screen .tile-markers .tile-notes,html[data-orientation] .game-screen .tile-markers .incoming-guesses,html[data-orientation] .game-screen .tile-markers .outgoing-guesses{background:0 0;border:0;border-radius:0;flex-wrap:wrap;justify-content:center;gap:4px;width:100%;max-width:none;min-height:0;margin:0;padding:0;display:flex;position:static;transform:none}html[data-orientation] .game-screen .tile-markers .mini-note,html[data-orientation] .game-screen .tile-markers .incoming-guess,html[data-orientation] .game-screen .tile-markers .outgoing-guess{background:0 0;flex:0 0 23px;width:23px;height:23px;font-size:13px}@media (width>=701px){html[data-orientation] .game-screen .board .tile-slot{flex-basis:64px}}@media (width<=700px){html[data-orientation] .game-screen{padding-bottom:max(4px, env(safe-area-inset-bottom))}html[data-orientation] .game-screen .board{padding-block:2px}html[data-orientation] .game-screen .board .player-row{gap:3px;padding-block:4px}html[data-orientation] .game-screen .board .tile-row{min-height:0;padding-top:13px;padding-bottom:3px}html[data-orientation] .game-screen .board .tile-markers{min-height:0;margin-top:9px}html[data-orientation] .game-screen .board .tile-markers:empty{margin-top:0}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field-wrap{gap:6px;margin-block:4px;padding-block:8px}html[data-orientation] .game-screen.drawing-compact .card-field{gap:4px;padding-block:5px}html[data-orientation] .game-screen.drawing-compact .fan-group{gap:2px}html[data-orientation] .game-screen.drawing-compact .fan-group+.fan-group{padding-top:3px}html[data-orientation] .game-screen.drawing-compact .fan-stack{height:104px}html[data-orientation] .game-screen.drawing-compact .field-card{height:72px;bottom:12px}html[data-orientation] .game-screen.drawing-compact .draw-confirm-row{gap:3px}html[data-orientation] .game-screen.drawing-compact .field-tip{font-size:11px}html[data-orientation] .game-screen.guessing-compact .guess-panel{padding-top:8px;padding-bottom:max(8px, env(safe-area-inset-bottom));gap:6px;margin-block:4px}html[data-orientation] .game-screen.guessing-compact .guess-panel-copy .eyebrow{display:none}}@media (width<=700px) and (height<=760px){html[data-orientation] .game-screen.drawing-compact .fan-stack{height:80px}html[data-orientation] .game-screen.drawing-compact .field-card{height:56px;bottom:10px}html[data-orientation] .game-screen.drawing-compact .board .code-tile{height:64px}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field-wrap{gap:4px;padding:6px}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field{gap:2px;padding-block:3px}html[data-orientation] .game-screen.drawing-compact .draw-confirm-row .field-tip{display:none}}html[data-orientation] .game-screen .tile-markers .mini-note,html[data-orientation] .game-screen .tile-markers .incoming-guess,html[data-orientation] .game-screen .tile-markers .outgoing-guess,.marker-legend .mini-note,.marker-legend .incoming-guess,.marker-legend .outgoing-guess{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 0 1px;font-family:Arial,Noto Sans SC,sans-serif;font-style:normal;font-weight:600;line-height:1;display:inline-flex}html[data-orientation] .game-screen .board .tile-slot{flex-direction:row;flex:none;align-items:center;gap:8px}html[data-orientation] .game-screen .board .tile-slot>.code-tile{flex:0 0 52px;width:52px}html[data-orientation] .game-screen .board .tile-markers{flex:0 0 50px;gap:4px;width:50px;min-height:0;margin:0}html[data-orientation] .game-screen .board .tile-markers .tile-notes,html[data-orientation] .game-screen .board .tile-markers .incoming-guesses,html[data-orientation] .game-screen .board .tile-markers .outgoing-guesses{justify-content:flex-start}@media (width>=701px){html[data-orientation] .game-screen .board .tile-slot>.code-tile{flex-basis:64px;width:64px}}html[data-orientation] .game-screen .board .tile-markers{flex-direction:row;flex:none;width:auto}html[data-orientation] .game-screen .board .tile-markers .tile-notes,html[data-orientation] .game-screen .board .tile-markers .incoming-guesses,html[data-orientation] .game-screen .board .tile-markers .outgoing-guesses{flex-wrap:nowrap;width:auto}html[data-orientation] .game-screen .number-grid .number-option .number-pick{font-variant-numeric:lining-nums tabular-nums;font-variant-numeric:normal;padding:0 0 1px;justify-content:center;align-items:center;padding:0;font-family:Georgia,serif;font-style:normal;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}@font-face{font-family:Game Numerals;src:url(/fonts/SourceSerif4.ttf)format("truetype");font-style:normal;font-weight:200 900;font-display:swap}.tile-number,html[data-orientation] .game-screen .number-grid .number-option .number-pick{font-variant-numeric:lining-nums tabular-nums;font-optical-sizing:none;font-variation-settings:"opsz" 32;font-family:Game Numerals,Georgia,serif;font-style:normal;font-weight:800;line-height:1}@font-face{font-family:Game Display;src:url(/fonts/AbrilFatface-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}.tile-number,html[data-orientation] .game-screen .number-grid .number-option .number-pick{font-variation-settings:normal;font-synthesis:none;font-family:Game Display,Game Numerals,serif;font-weight:400}html[data-orientation] .game-screen .guess-panel .close-button{background:0 0;border:0;border-radius:4px;place-items:center;width:44px;height:44px;padding:0;line-height:1;display:grid;top:0;right:0}html[data-orientation] .game-screen .guess-panel .close-button svg{display:block}html[data-orientation] .game-screen .guess-panel .close-button:active{color:var(--gold-bright);background:#c7a25b14}html[data-orientation] .game-screen.guessing-compact .guess-panel .close-button{top:0;right:0}.rules-card{padding:22px 24px}.rules-card>.eyebrow{display:none}.rules-card h2{margin:0 40px 14px 0;font-size:25px}.rules-card ol{margin:0 0 14px;padding-left:19px;font-size:13px;line-height:1.6}.rules-card li{margin-bottom:6px;padding-left:2px}.rules-card h3{margin:0 0 8px;font-size:14px}.rules-card .marker-legend{margin:0 0 10px}.rules-card .marker-legend li{gap:9px;margin-bottom:5px;font-size:12px;line-height:1.5}.rules-card .marker-help{margin-bottom:10px;font-size:11px;line-height:1.5}.rules-card .primary-button{min-height:44px;margin-top:0;padding-block:8px}.rules-card>.close-button{top:10px;right:10px}@media (width<=400px){.rules-card{padding:18px}}html[data-orientation] .game-screen .board .tile-markers{flex:none;grid-template-rows:repeat(3,23px);grid-auto-columns:23px;grid-auto-flow:column;align-content:center;gap:3px;width:max-content;display:grid}html[data-orientation] .game-screen .board .tile-markers:empty{display:none}html[data-orientation] .game-screen .board .tile-markers .tile-notes,html[data-orientation] .game-screen .board .tile-markers .incoming-guesses,html[data-orientation] .game-screen .board .tile-markers .outgoing-guesses{display:contents}html[data-orientation] .game-screen .board .tile-markers b:not(.mini-note){width:23px;height:23px;color:var(--muted);place-items:center;font:600 10px/1 Arial,sans-serif;display:grid}.number-option>span.note-toggle{text-align:center;pointer-events:none;justify-content:center;align-items:flex-start;display:flex}@media (width<=700px){html[data-orientation] .game-screen .game-header,html[data-orientation] .game-screen.guessing-compact .game-header{flex-wrap:nowrap;height:56px;min-height:56px;padding:8px 12px}html[data-orientation] .game-screen .game-header .brand-mark,html[data-orientation] .game-screen.guessing-compact .game-header .brand-mark{width:28px;height:28px;font-size:18px}html[data-orientation] .game-screen .board,html[data-orientation] .game-screen.guessing-compact .board{padding:2px 12px}html[data-orientation] .game-screen .board .tile-slot>.code-tile,html[data-orientation] .game-screen.guessing-compact .board .tile-slot>.code-tile{border-radius:7px;height:76px;padding:8px 4px;box-shadow:inset 0 2px #ffffff1f,0 4px #0006,0 8px 12px #0000004d}html[data-orientation] .game-screen .board .tile-slot>.code-tile.targeted{box-shadow:inset 0 1px #ffffff40,0 4px #665438,1px 6px #201b12,3px 15px 17px #000000a6,0 0 0 2px #e2c47fa6}}@media (width<=700px) and (height<=760px){html[data-orientation] .game-screen .board .tile-slot>.code-tile,html[data-orientation] .game-screen.guessing-compact .board .tile-slot>.code-tile{height:64px}}@media (width<=700px){html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .player-row,html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .player-row .tile-row{height:auto;min-height:0}}.own-hand{align-items:flex-start;min-width:0;display:flex}.own-hand>.tile-row{flex:1;min-width:0}.current-draw{border-right:1px solid #c7a25b59;flex-direction:column;flex:0 0 70px;align-items:center;gap:7px;margin-right:7px;padding:13px 9px 3px 0;display:flex}.current-draw small{color:var(--gold-bright);font-size:10px;line-height:1}html[data-orientation] .game-screen .board .current-draw .code-tile{border-color:var(--gold-bright)}@media (width>=701px){.current-draw{flex-basis:82px;padding-top:20px}}.current-draw{flex-basis:70px;margin-right:4px;padding-inline:5px 12px}html[data-orientation] .game-screen .board .current-draw>.tile-slot{align-self:flex-start;width:max-content}.current-draw>small{text-align:center;align-self:stretch}@media (width>=701px){.current-draw{flex-basis:82px}}html[data-orientation] .game-screen .board .tile-slot>.code-tile.revealed{border-color:#82b393;transform:rotateX(3deg)translateZ(0);box-shadow:inset 0 1px #fff3,0 3px #0006,0 6px 10px #0000004d,0 0 0 1px #82b3934d}.public-eye{color:#b6e0c3;pointer-events:none;background:#244332;border-radius:50%;place-items:center;width:17px;height:17px;display:inline-grid;position:absolute;top:3px;right:3px}.public-eye svg{display:block}.public-eye.legend-eye{position:static}.game-home{background:radial-gradient(at 72% 36%,#c7a25b1c,#0000 48%),#10110f}.game-home .topbar{border-bottom-color:#c7a25b1f;height:64px}.game-home .mode-hero{gap:60px;max-width:1180px;min-height:calc(100svh - 64px);padding:48px 48px 64px}.game-home .hero h1{letter-spacing:.08em;margin:0 0 16px;font-size:clamp(48px,5.5vw,72px);line-height:1.35}.game-home .hero h1 span{color:var(--gold-bright);display:block}.game-home .intro{color:#a5a195;margin-bottom:30px;font-size:14px;line-height:1.8}.game-home .mode-cards{grid-template-columns:1fr;gap:12px}.game-home .mode-card{background:linear-gradient(115deg,#23221b,#151613);border-color:#c7a25b33;border-radius:8px;flex-direction:row;align-items:center;gap:16px;min-height:88px;padding:16px 20px;display:flex}.game-home .mode-card>div{flex:1}.game-home .mode-card strong{margin-bottom:5px;font-family:Noto Serif SC,serif;font-size:18px;display:block}.game-home .mode-card div>span{color:#a09b8c;font-size:11px;display:block}.game-home .mode-card .mode-icon{color:var(--gold);font-size:28px}.game-home .mode-card>b{color:var(--gold);font-size:21px;font-weight:400}.home-details{color:#79776e;letter-spacing:.1em;align-items:center;gap:12px;margin-top:22px;font-size:10px;display:flex}.home-details i{background:#827351;border-radius:50%;width:2px;height:2px}.game-home .hero-art{min-height:420px;display:grid}.game-home .cipher-ring{border-color:#c7a25b2e;width:380px;max-width:100%}.game-home .demo-tiles{gap:0;transform:rotate(-6deg)}.game-home .demo-tile{border-radius:9px;width:105px;height:165px;font-family:Game Display,serif;font-size:64px;font-weight:400;position:relative}.game-home .demo-tile:before{content:"";opacity:.2;border:1px solid;border-radius:4px;position:absolute;inset:7px}.game-home .demo-tile.black{background:linear-gradient(135deg,#333128,#060705);transform:translate(10px,20px)rotate(-17deg);box-shadow:0 5px #030303,0 22px 32px #0008}.game-home .demo-tile.white{z-index:3;background:linear-gradient(125deg,#faf5e9,#c8c0ad);transform:translateY(-15px)rotate(3deg);box-shadow:0 5px #938b7c,0 22px 32px #0008}.game-home .demo-tile.gold{background:linear-gradient(125deg,#ddc790,#a27e3d);transform:translate(-10px,18px)rotate(19deg);box-shadow:0 5px #6c5227,0 22px 32px #0008}@media (width<=800px){.game-home .mode-hero{flex-direction:column;gap:10px;padding:18px 24px 28px;display:flex}.game-home .hero-art{order:-1;width:100%;min-height:215px}.game-home .cipher-ring{width:220px}.game-home .hero-copy{width:100%;max-width:430px}.game-home .hero h1{text-align:center;letter-spacing:.07em;margin-bottom:10px;font-size:38px}.game-home .hero h1 span{margin-left:.1em;display:inline}.game-home .intro{text-align:center;margin-bottom:23px;font-size:12px}.game-home .demo-tile{width:74px;height:116px;font-size:43px}.game-home .mode-card{min-height:77px;padding:13px 16px}.game-home .home-details{justify-content:center;margin-top:20px}}@media (width<=800px) and (height<=700px){.game-home .hero-art{min-height:175px}.game-home .cipher-ring{width:180px}.game-home .mode-hero{padding-top:10px}}.game-home .mode-hero{min-height:100svh}.game-home .home-rules{color:var(--gold);min-height:44px;margin-top:10px;padding:10px 0;font-size:12px}@media (width<=800px){.game-home .mode-hero{justify-content:center}.game-home .home-rules{margin:8px auto 0;padding-inline:16px;display:block}}.game-header .turn-info{text-align:left;align-items:flex-start;margin-right:auto}.game-header .header-actions{flex-shrink:0;margin-left:auto}@media (width<=700px) and (height>=761px){html[data-orientation] .game-screen.drawing-compact{min-height:var(--app-height,100dvh);flex-direction:column;display:flex}html[data-orientation] .game-screen.drawing-compact>.game-header,html[data-orientation] .game-screen.drawing-compact>.board{flex:none}html[data-orientation] .game-screen.drawing-compact>.floating-action{min-height:380px;padding-bottom:max(10px, env(safe-area-inset-bottom));flex:1 0 auto;display:flex}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field-wrap{flex-direction:column;flex:1;margin:4px 0 0;display:flex}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field{flex:1;grid-template-rows:repeat(2,minmax(125px,1fr));display:grid}html[data-orientation] .game-screen.drawing-compact .fan-group{min-height:0}html[data-orientation] .game-screen.drawing-compact .fan-stack{flex:1;min-height:104px}html[data-orientation] .game-screen.drawing-compact .field-card{bottom:calc(50% - 36px)}html[data-orientation] .game-screen.drawing-compact .draw-confirm-row{padding-top:8px}}html[data-orientation] .game-screen .draw-confirm-row .field-tip:empty{display:none}@media (width<=700px){html[data-orientation] .game-screen.guessing-compact{min-height:var(--app-height,100dvh);flex-direction:column;display:flex}html[data-orientation] .game-screen.guessing-compact>.game-header,html[data-orientation] .game-screen.guessing-compact>.board{flex:none}html[data-orientation] .game-screen.guessing-compact>.guess-panel{height:auto;margin:8px 12px max(8px, env(safe-area-inset-bottom));flex-direction:column;flex:1 0 auto;align-items:stretch;gap:10px;display:flex}html[data-orientation] .game-screen.guessing-compact>.guess-panel .number-grid{flex:1 0 auto;align-content:space-evenly;row-gap:6px}html[data-orientation] .game-screen.guessing-compact>.guess-panel .confirm-guess{flex:none;margin-top:auto}}@media (width<=700px) and (height>=700px){html[data-orientation] .game-screen.guessing-compact>.board,html[data-orientation] .game-screen>.board{flex-direction:column;justify-content:space-evenly;min-height:clamp(290px,41dvh,410px);display:flex}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .tile-slot>.code-tile,html[data-orientation] .game-screen.guessing-compact .board .tile-slot>.code-tile{flex-basis:60px;width:60px;height:86px}html[data-orientation] .game-screen .board .tile-number{font-size:32px}.current-draw{flex-basis:78px}html[data-orientation] .game-screen.guessing-compact>.guess-panel .number-grid{align-content:center;row-gap:8px}}@media (width>=701px){html[data-orientation] .game-screen,html[data-orientation] .game-screen.guessing-compact,html[data-orientation] .game-screen.drawing-compact{flex-direction:column;width:100%;max-width:1120px;height:auto;min-height:min(100dvh,1000px);margin:0 auto;padding-bottom:16px;display:flex;overflow:visible}html[data-orientation] .game-screen>.game-header{flex:none;width:100%;min-width:0;height:64px;min-height:64px;padding:8px 28px}html[data-orientation] .game-screen>.board{flex-direction:column;flex:none;justify-content:space-evenly;width:100%;min-width:0;max-width:none;min-height:clamp(290px,38dvh,400px);margin:0;padding:8px 28px;display:flex}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .player-row{grid-template-columns:minmax(0,1fr);gap:6px;min-height:0;padding:8px 0}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .player-row .tile-row{gap:12px;height:auto;min-height:0;padding:16px 5px 10px}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .tile-slot>.code-tile{flex:0 0 72px;width:72px;height:102px;padding:8px 5px}html[data-orientation] .game-screen .board .tile-number{font-size:38px}html[data-orientation] .game-screen .current-draw{flex-basis:90px;padding-top:16px}html[data-orientation] .game-screen>.floating-action,html[data-orientation] .game-screen>.guess-panel{border:1px solid var(--line);border-radius:8px;flex:1 0 auto;width:calc(100% - 56px);height:auto;min-height:310px;max-height:none;margin:8px 28px 0;padding:18px;position:relative;inset:auto;overflow:visible;transform:none}html[data-orientation] .game-screen>.guess-panel{flex-direction:column;gap:12px;display:flex}html[data-orientation] .game-screen .guess-panel-copy{padding-right:40px}html[data-orientation] .game-screen .guess-panel-copy h3{font-size:18px}html[data-orientation] .game-screen .guess-panel-copy small{font-size:12px}html[data-orientation] .game-screen .guess-panel-copy .eyebrow{display:none}html[data-orientation] .game-screen .guess-panel .number-grid{flex:1;grid-template-columns:repeat(6,minmax(0,1fr));align-content:center;gap:10px;width:min(100%,680px);margin:auto}html[data-orientation] .game-screen .number-option{grid-template-rows:48px 24px;gap:4px}html[data-orientation] .game-screen .number-option .number-pick{width:48px;height:48px;font-size:24px}html[data-orientation] .game-screen .number-option .note-toggle{min-height:0;font-size:11px}html[data-orientation] .game-screen .confirm-guess,html[data-orientation] .game-screen .confirm-draw{min-height:46px;font-size:14px}html[data-orientation] .game-screen>.floating-action{display:flex}html[data-orientation] .game-screen>.floating-action .card-field-wrap{flex-direction:column;flex:1;gap:12px;width:100%;max-width:none;height:auto;margin:0;padding:0;display:flex}html[data-orientation] .game-screen>.floating-action .card-field{flex:1;height:auto;min-height:180px}html[data-orientation] .game-screen .card-field-heading strong{font-size:18px}html[data-orientation] .game-screen .card-field-heading .eyebrow{display:none}html[data-orientation] .game-screen .fan-stack{container-type:inline-size}html[data-orientation] .game-screen .field-card{--fan-step:min(28px, calc((100cqw - 112px) / max(1, var(--fan-count) - 1)));width:62px;height:88px;transform:translateX(calc(-50% + var(--fan-offset) * var(--fan-step))) translateY(var(--fan-drop)) rotate(var(--fan-angle));bottom:calc(50% - 44px)}html[data-orientation] .game-screen .field-card.draw-selected{transform:translateX(calc(-50% + var(--fan-offset) * var(--fan-step))) translateY(-10px) rotate(0deg)}html[data-orientation] .game-screen .field-card.drawing{transform:translateX(calc(-50% + var(--fan-offset) * var(--fan-step))) translateY(-70px) rotate(15deg)}html[data-orientation] .game-screen .setup-pick{width:calc(100% - 56px);min-height:0;padding-block:28px}html[data-orientation] .game-screen .setup-pick .card-field-wrap{width:100%;max-width:900px}html[data-orientation] .game-screen .setup-pick .card-field{height:260px}html[data-orientation] .game-screen .result-toast{width:calc(100% - 56px);margin:auto 28px 0;position:relative;inset:auto;transform:none}}@media (width>=701px) and (height<=700px){html[data-orientation] .game-screen>.board{min-height:240px}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .tile-slot>.code-tile{flex-basis:60px;width:60px;height:76px}html[data-orientation] .game-screen>.guess-panel,html[data-orientation] .game-screen>.floating-action{min-height:260px}}@media (width>=701px){html[data-orientation] .game-screen.drawing-compact .field-card{width:68px;height:96px;transform:translateX(calc(-50% + var(--fan-offset) * var(--fan-step))) translateY(var(--fan-drop)) rotate(var(--fan-angle));bottom:calc(50% - 48px)}html[data-orientation] .game-screen.drawing-compact .field-card.draw-selected{transform:translateX(calc(-50% + var(--fan-offset) * var(--fan-step))) translateY(-10px)}html[data-orientation] .game-screen.drawing-compact .field-card.drawing{transform:translateX(calc(-50% + var(--fan-offset) * var(--fan-step))) translateY(-70px)}html[data-orientation] .game-screen .field-card small{display:none}html[data-orientation] .game-screen .draw-confirm-row{flex-direction:column;gap:6px;display:flex}html[data-orientation] .game-screen .draw-confirm-actions{width:100%}html[data-orientation] .game-screen .confirm-draw{flex:1}html[data-orientation] .game-screen .guess-panel-copy{align-self:stretch;width:100%}}@media (width>=701px) and (width<=1366px){html[data-orientation] .game-screen,html[data-orientation] .game-screen.guessing-compact,html[data-orientation] .game-screen.drawing-compact{min-height:100dvh}}html,body{overscroll-behavior:none;height:100%;overflow:hidden}#app{height:var(--app-height,100dvh);min-height:0;overflow:hidden}html[data-orientation] .game-screen,html[data-orientation] .game-screen.guessing-compact,html[data-orientation] .game-screen.drawing-compact{height:var(--app-height,100dvh);flex-direction:column;min-height:0;max-height:100%;display:flex;overflow:hidden}html[data-orientation] .game-screen>.game-header{flex:none}html[data-orientation] .game-screen>.board,html[data-orientation] .game-screen.guessing-compact>.board{flex:0 auto;justify-content:flex-start;min-height:0;max-height:47%;overflow:hidden auto}html[data-orientation] .game-screen>.board>.player-row{flex-shrink:0}html[data-orientation] .game-screen>.floating-action,html[data-orientation] .game-screen>.guess-panel{flex:1 1 0;height:auto;min-height:0;max-height:none;overflow:hidden auto}html[data-orientation] .game-screen>.setup-pick{flex:1 1 0;min-height:0;overflow-y:auto}.landing,.handoff-screen,.gameover-screen{height:var(--app-height,100dvh);min-height:0;max-height:100%;overflow:hidden}.landing:not(.game-home){flex-direction:column;display:flex}.landing>.game-header{flex-shrink:0}.landing>.center-panel{min-height:0;overflow-y:auto}.game-home>.mode-hero{height:100%;min-height:0;overflow-y:auto}.handoff-screen>.handoff-card,.gameover-screen>.victory-card{max-height:100%;overflow-y:auto}html[data-orientation] .game-screen:is(.guessing-compact,.drawing-compact)>.floating-action,html[data-orientation] .game-screen:is(.guessing-compact,.drawing-compact)>.guess-panel{flex:1 1 0;height:auto;min-height:0;max-height:none;overflow-y:auto}html[data-orientation] .game-screen>.floating-action,html[data-orientation] .game-screen>.guess-panel,html[data-orientation] .game-screen:is(.drawing-compact,.guessing-compact)>.floating-action,html[data-orientation] .game-screen:is(.drawing-compact,.guessing-compact)>.guess-panel{background:#161713;border:1px solid #c7a25b47;border-radius:8px;box-shadow:0 8px 24px #0000002e}html[data-orientation] .game-screen>.floating-action .card-field-wrap,html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field-wrap{box-shadow:none;background:0 0;border:0;border-radius:0}html[data-orientation] .game-screen .card-field{border:1px solid #ffffff12;border-radius:6px}@media (width<=700px){html[data-orientation] .game-screen.drawing-compact>.floating-action{width:calc(100% - 24px);margin:8px 12px max(8px, env(safe-area-inset-bottom));padding:8px 10px}}@media (orientation:landscape) and (height<=600px){.landing>.center-panel{padding:8px 0}.landing>.center-panel>.eyebrow{display:none}.landing>.center-panel>h1{margin-bottom:6px;font-size:24px}.landing>.center-panel>p{margin-bottom:10px;font-size:12px;line-height:1.5}.landing .player-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.landing .player-form input{min-height:44px;padding:10px 12px}.landing .player-form .start-button{grid-column:1/-1;min-height:44px;padding:8px 12px}html[data-orientation] .game-screen,html[data-orientation] .game-screen.guessing-compact,html[data-orientation] .game-screen.drawing-compact{grid-template-rows:46px minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(320px,1fr);gap:0 10px;max-width:none;padding:0 10px 8px;display:grid}html[data-orientation] .game-screen>.game-header{grid-column:1/-1;height:46px;min-height:46px;padding:4px 8px}html[data-orientation] .game-screen>.board,html[data-orientation] .game-screen.guessing-compact>.board{flex-direction:column;grid-area:2/1;justify-content:space-evenly;width:100%;height:100%;min-height:0;max-height:none;margin:0;padding:4px 2px;display:flex;overflow-y:auto}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .player-row{gap:2px;min-height:0;padding:3px 0}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .player-row .tile-row{gap:7px;height:auto;min-height:0;padding:12px 4px 8px}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .tile-slot>.code-tile,html[data-orientation] .game-screen.guessing-compact .board .tile-slot>.code-tile{flex-basis:48px;width:48px;height:64px;padding:6px 3px}html[data-orientation] .game-screen .board .tile-number{font-size:28px}html[data-orientation] .game-screen .board .row-label h2{font-size:14px}html[data-orientation] .game-screen .board .row-label small{font-size:10px}html[data-orientation] .game-screen .current-draw{flex-basis:66px;gap:3px;padding-top:12px}html[data-orientation] .game-screen>.guess-panel,html[data-orientation] .game-screen>.floating-action,html[data-orientation] .game-screen:is(.guessing-compact,.drawing-compact)>.guess-panel,html[data-orientation] .game-screen:is(.guessing-compact,.drawing-compact)>.floating-action{grid-area:2/2;gap:6px;width:100%;height:100%;min-height:0;max-height:none;margin:0;padding:10px;overflow-y:auto}html[data-orientation] .game-screen .guess-panel-copy{padding-right:32px}html[data-orientation] .game-screen .guess-panel-copy h3{font-size:14px}html[data-orientation] .game-screen .guess-panel-copy small{display:none}html[data-orientation] .game-screen .guess-panel .number-grid{flex:1;grid-template-columns:repeat(6,minmax(0,1fr));align-content:center;gap:4px;width:100%;margin:0}html[data-orientation] .game-screen .guess-panel .number-option{grid-template-rows:44px 17px;gap:2px}html[data-orientation] .game-screen .guess-panel .number-option .number-pick{width:44px;height:44px;font-size:22px}html[data-orientation] .game-screen .guess-panel .number-option .note-toggle{min-height:0;padding:0;font-size:9px}html[data-orientation] .game-screen .confirm-guess,html[data-orientation] .game-screen .confirm-draw{min-height:44px;padding:8px;font-size:13px}html[data-orientation] .game-screen>.floating-action .card-field-wrap{gap:5px;height:100%;margin:0;padding:0}html[data-orientation] .game-screen>.floating-action .card-field{grid-template-rows:1fr;grid-template-columns:1fr 1fr;gap:0;min-height:130px;padding:0}html[data-orientation] .game-screen .fan-group{padding:0;display:block}html[data-orientation] .game-screen .fan-stack{height:auto;min-height:0;position:absolute;inset:0 0 20px;container-type:inline-size}html[data-orientation] .game-screen .fan-label{font-size:9px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}html[data-orientation] .game-screen .field-card,html[data-orientation] .game-screen.drawing-compact .field-card{--fan-step:min(18px, calc((100cqw - 84px) / max(1,var(--fan-count) - 1)));width:46px;height:66px;bottom:calc(50% - 33px)}html[data-orientation] .game-screen .card-field-heading strong{font-size:14px}html[data-orientation] .game-screen .card-field-heading>span{font-size:10px}html[data-orientation] .game-screen .field-tip{display:none}html[data-orientation] .game-screen .draw-confirm-row{padding:0}html[data-orientation] .game-screen>.setup-pick{grid-column:1/-1;height:100%;min-height:0;overflow-y:auto}}.corner-nav{top:max(4px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));z-index:12;align-items:center;gap:2px;display:flex;position:fixed}.corner-nav .text-button{min-width:44px;min-height:40px;padding:8px;font-size:12px}html[data-orientation] .game-screen,html[data-orientation] .game-screen.guessing-compact,html[data-orientation] .game-screen.drawing-compact{padding-top:max(44px, calc(env(safe-area-inset-top) + 44px))}.landing:not(.game-home),.game-home{padding-top:44px}@media (orientation:landscape) and (height<=600px){html[data-orientation] .game-screen,html[data-orientation] .game-screen.guessing-compact,html[data-orientation] .game-screen.drawing-compact{grid-template-rows:minmax(0,1fr)}html[data-orientation] .game-screen>.board,html[data-orientation] .game-screen.guessing-compact>.board,html[data-orientation] .game-screen>.guess-panel,html[data-orientation] .game-screen>.floating-action,html[data-orientation] .game-screen:is(.guessing-compact,.drawing-compact)>.guess-panel,html[data-orientation] .game-screen:is(.guessing-compact,.drawing-compact)>.floating-action{grid-row:1}}html[data-orientation] .game-screen.guessing-compact>.board{flex:0 0 min(41dvh,400px);min-height:0;max-height:none}html[data-orientation] .game-screen>.idle-controls{color:var(--muted);justify-content:center;align-items:center;font-size:14px}@media (orientation:landscape) and (height<=600px){html[data-orientation] .game-screen.guessing-compact>.board{height:100%}}@media (orientation:landscape) and (height<=700px){.game-home>.mode-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(18px,4vw,48px);height:100%;min-height:0;padding:10px clamp(18px,4vw,48px) 16px;display:grid;overflow:hidden}.game-home .hero-copy{width:100%;max-width:none}.game-home .hero h1{text-align:left;margin-bottom:10px;font-size:clamp(28px,7dvh,45px);line-height:1.25}.game-home .hero h1 span{margin-left:.12em;display:inline}.game-home .intro{text-align:left;margin-bottom:14px;font-size:12px;line-height:1.5}.game-home .mode-cards{gap:8px}.game-home .mode-card{gap:10px;min-height:64px;padding:10px 14px}.game-home .mode-card strong{margin-bottom:3px;font-size:16px}.game-home .mode-card div>span{font-size:10px}.game-home .home-details{justify-content:flex-start;gap:8px;margin-top:12px;font-size:9px}.game-home .hero-art{order:0;height:100%;min-height:0}.game-home .cipher-ring{width:min(30vw,65dvh)}.game-home .demo-tile{width:clamp(52px,9vw,90px);height:clamp(84px,29dvh,145px);font-size:clamp(32px,10dvh,54px)}}@media (orientation:landscape) and (height<=600px){html[data-orientation] .game-screen.drawing-compact>.floating-action{display:flex}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field-wrap{flex-direction:column;flex:1;min-width:0;height:100%;margin:0;padding:0;display:flex}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field{flex:1 1 0;height:auto;min-height:110px;margin:0;padding:0}html[data-orientation] .game-screen.drawing-compact>.floating-action .draw-confirm-row{flex:none}html[data-orientation] .game-screen>.setup-pick{grid-area:1/1/auto/-1;grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px 16px;width:100%;min-height:0;margin:0;padding:8px;display:grid;overflow:hidden}html[data-orientation] .game-screen .setup-pick>.eyebrow{display:none}html[data-orientation] .game-screen .setup-pick>h1{text-align:left;grid-area:1/1;margin:0;font-size:24px}html[data-orientation] .game-screen .setup-pick>p:not(.eyebrow){text-align:left;grid-area:2/1;margin:0;font-size:12px}html[data-orientation] .game-screen .setup-pick>.setup-tiles{grid-area:3/1;justify-content:flex-start;height:auto;min-height:0;padding:8px 4px}html[data-orientation] .game-screen .setup-pick>.privacy-note{grid-row:4}html[data-orientation] .game-screen .setup-pick>.card-field-wrap{flex-direction:column;grid-area:1/2/-1;gap:6px;width:100%;height:100%;min-height:0;margin:0;padding:10px;display:flex}html[data-orientation] .game-screen .setup-pick .card-field{flex:1 1 0;grid-template-rows:1fr;grid-template-columns:repeat(2,minmax(0,1fr));height:auto;min-height:110px;margin:0;padding:0}html[data-orientation] .game-screen .setup-pick .card-field-heading strong{font-size:12px}html[data-orientation] .game-screen .setup-pick .card-field-heading .eyebrow{display:none}html[data-orientation] .game-screen .setup-pick .draw-confirm-row{flex:none;padding:0}}@media (width>=701px) and (height>=601px) and (height<=900px){html[data-orientation] .game-screen.guessing-compact>.board{flex-basis:46dvh}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .player-row{padding-block:4px}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .tile-slot>.code-tile{height:86px}}@media (orientation:portrait) and (width<=700px) and (height<=700px){html[data-orientation] .game-screen.guessing-compact>.board{flex-basis:48%}html[data-orientation] .game-screen .board .row-label{flex-wrap:nowrap;min-width:0}html[data-orientation] .game-screen .board .row-label h2{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}html[data-orientation] .game-screen .board .row-label small{flex-shrink:0}html[data-orientation] .game-screen.guessing-compact>.guess-panel .guess-panel-copy small{display:none}html[data-orientation] .game-screen.guessing-compact>.guess-panel .number-grid{flex:1 1 0;grid-template-columns:repeat(6,minmax(0,1fr));align-content:center;gap:4px 2px;min-height:128px;margin:0}html[data-orientation] .game-screen.guessing-compact .number-grid .number-option{grid-template-rows:44px 16px;gap:2px}html[data-orientation] .game-screen.guessing-compact .number-grid .number-option .number-pick{width:44px;height:44px;font-size:22px}html[data-orientation] .game-screen.guessing-compact .number-grid .number-option .note-toggle{min-height:0;padding:0;font-size:8px}html[data-orientation] .game-screen>.setup-pick{flex-direction:column;gap:6px;padding:8px 0;display:flex}html[data-orientation] .game-screen .setup-pick>.eyebrow,html[data-orientation] .game-screen .setup-pick>.privacy-note{display:none}html[data-orientation] .game-screen .setup-pick>h1{margin:0;font-size:18px;line-height:1.4}html[data-orientation] .game-screen .setup-pick>.card-field-wrap{flex-direction:column;flex:1;gap:6px;min-height:0;margin:0;padding:10px;display:flex}html[data-orientation] .game-screen .setup-pick .card-field{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));height:auto;min-height:190px}html[data-orientation] .game-screen .setup-pick .fan-group{flex-direction:column;min-height:0;padding:4px;display:flex}html[data-orientation] .game-screen .setup-pick .fan-stack{flex:1;height:auto;min-height:0}html[data-orientation] .game-screen .setup-pick .field-card{width:52px;height:74px;bottom:calc(50% - 37px)}html[data-orientation] .game-screen .setup-pick .setup-tiles{flex:none;padding:4px}html[data-orientation] .game-screen .setup-pick .draw-confirm-row{flex:none;padding:0}}@media (width>=701px) and (height>=901px){html[data-orientation] .game-screen>.board,html[data-orientation] .game-screen.guessing-compact>.board{flex:0 0 52%;justify-content:space-evenly;max-height:none}html[data-orientation] .game-screen:is(.horizontal,.vertical) .board .tile-slot>.code-tile{flex-basis:clamp(84px,8dvh,104px);width:clamp(84px,8dvh,104px);height:clamp(118px,11.3dvh,146px)}html[data-orientation] .game-screen .board .tile-number{font-size:clamp(42px,4.5dvh,56px)}html[data-orientation] .game-screen .current-draw{flex-basis:clamp(102px,10dvh,122px)}}@media (orientation:landscape) and (height<=600px){html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field{grid-template-rows:minmax(0,1fr);grid-template-columns:repeat(2,minmax(0,1fr))}html[data-orientation] .game-screen .card-field .fan-group+.fan-group{border-top:0;border-left:1px solid #ffffff0e;padding-top:0}}.landing>.center-panel{flex:0 auto;padding:clamp(8px,3dvh,32px) 0}.landing>.center-panel>.eyebrow{display:none}.landing>.center-panel>h1{margin-bottom:8px;font-size:clamp(24px,3vw,36px);line-height:1.3}.landing>.center-panel>p{margin-bottom:0;font-size:13px;line-height:1.5}.landing .online-forms{align-items:start;gap:12px;margin-top:16px}.landing .lobby-card{gap:10px;padding:16px}.landing .lobby-card h2{margin:0;font-size:20px;line-height:1.3}.landing .lobby-card input,.landing .lobby-card .primary-button{height:44px;min-height:44px;padding:10px 12px;font-size:15px}.landing>.center-panel>.notice{margin-top:10px;font-size:12px}@media (width<=700px){.landing .lobby-card{gap:8px;padding:12px}.landing .lobby-card h2{font-size:18px}.landing .online-forms{gap:10px;margin-top:12px}}@media (orientation:landscape) and (height<=600px){.landing>.center-panel{padding:6px 0}.landing>.center-panel>h1{margin-bottom:4px;font-size:24px}.landing>.center-panel>p{font-size:12px}.landing .online-forms{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}.landing .lobby-card{gap:6px;padding:10px}.landing .lobby-card h2{font-size:18px}}@media (orientation:landscape) and (height<=400px){.landing #join-form{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.landing #join-form h2,.landing #join-form button{grid-column:1/-1}}.rules-card{max-height:calc(var(--app-height,100dvh) - 24px);flex-direction:column;display:flex;overflow:hidden}.rules-card h2,.rules-card>.primary-button{flex:none}.rules-body{overscroll-behavior:contain;min-height:0;margin-bottom:10px;overflow-y:auto}.rules-card>.primary-button{width:100%}@media (orientation:portrait) and (width<=700px) and (height<=700px){html[data-orientation] .game-screen.drawing-compact>.floating-action{min-height:0;display:flex}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field-wrap{flex-direction:column;flex:1;gap:5px;height:100%;min-height:0;margin:0;padding:0;display:flex}html[data-orientation] .game-screen.drawing-compact>.floating-action .card-field{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));height:auto;min-height:0;margin:0;padding:0}html[data-orientation] .game-screen.drawing-compact .fan-group{flex-direction:column;gap:0;min-height:0;padding:2px;display:flex}html[data-orientation] .game-screen.drawing-compact .fan-stack{flex:1;height:auto;min-height:0}html[data-orientation] .game-screen.drawing-compact .field-card{height:56px;bottom:calc(50% - 28px)}html[data-orientation] .game-screen.drawing-compact .draw-confirm-row{flex:none;padding:0}}@media (height<=700px){.handoff-screen{padding:44px 18px 10px}.handoff-card .privacy-icon{width:56px;height:56px;margin-bottom:12px}.handoff-card .privacy-icon:before{width:36px;height:20px}.handoff-card>.eyebrow{display:none}.handoff-card h1{overflow-wrap:anywhere;margin-bottom:12px;font-size:32px;line-height:1.3}.handoff-card>p:not(.eyebrow){margin-bottom:12px;font-size:13px;line-height:1.5}.handoff-card .primary-button{min-height:44px;padding:10px 14px;font-size:14px}}@media (orientation:landscape) and (height<=600px){.handoff-screen{padding:44px 18px 10px}.handoff-card .privacy-icon{display:none}.handoff-card h1{margin-bottom:10px;font-size:28px}.handoff-card h1 br{display:none}}html[data-orientation] .game-screen.guessing-compact>.board{margin-block:0}html[data-orientation] .game-screen.guessing-compact>.result-toast{border-radius:8px;flex-direction:column;flex:1;justify-content:center;gap:14px;width:calc(100% - 24px);min-height:0;margin:8px 12px;padding:16px;display:flex;position:relative;inset:auto;overflow-y:auto;transform:none}html[data-orientation] .game-screen .board .battle-history{top:max(4px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));z-index:15;width:auto;max-width:calc(100vw - 120px);margin:0;padding:0;position:fixed}html[data-orientation] .game-screen .board .battle-history summary{align-items:center;gap:8px;min-height:40px;padding:8px 0;font-size:12px;display:flex}html[data-orientation] .game-screen .board .history-list{width:min(420px,100vw - 24px);max-height:calc(var(--app-height,100dvh) - 64px);border:1px solid var(--line);background:#161713;border-radius:8px;padding:12px;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 8px 24px #0008}@media (width>=701px){html[data-orientation] .game-screen.guessing-compact>.result-toast{width:calc(100% - 56px);margin:8px 28px 0}}@media (orientation:landscape) and (height<=600px){html[data-orientation] .game-screen.guessing-compact>.result-toast{grid-area:1/2;width:100%;height:100%;margin:0;padding:12px}html[data-orientation] .game-screen .guess-panel .number-grid .number-option{grid-template-rows:44px 16px;gap:2px}html[data-orientation] .game-screen .guess-panel .number-grid .number-option .note-toggle{height:16px;min-height:0;padding:0;font-size:8px;line-height:16px}.handoff-card.room-wait h1{font-size:28px;line-height:1.3}.handoff-card.room-wait h1 .room-code{margin-left:12px;font-size:1.25em}}html[data-orientation] .game-screen.guessing-compact>.result-toast>button{flex:none;align-self:stretch;width:100%;min-height:44px;padding:10px 14px;font-size:14px}@media (orientation:landscape) and (height<=600px){html[data-orientation] .game-screen,html[data-orientation] .game-screen.guessing-compact,html[data-orientation] .game-screen.drawing-compact{grid-template-columns:minmax(0,1fr) clamp(240px,34vw,360px)}html[data-orientation] .game-screen>.setup-pick{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}html[data-orientation] .game-screen .setup-pick>h1{grid-area:1/1;align-self:center;font-size:18px;line-height:1.4}html[data-orientation] .game-screen .setup-pick>.privacy-note{display:none}html[data-orientation] .game-screen .setup-pick>.setup-tiles{grid-area:1/2;align-self:center;gap:6px;padding:2px}html[data-orientation] .game-screen .setup-pick .setup-tiles .code-tile{flex-basis:38px;width:38px;height:54px;padding:3px}html[data-orientation] .game-screen .setup-pick .setup-tiles .tile-number{font-size:25px}html[data-orientation] .game-screen .setup-pick>.card-field-wrap{grid-area:2/1/auto/-1}html[data-orientation] .game-screen .setup-pick .card-field-heading{display:none}html[data-orientation] .game-screen .setup-pick .card-field{min-height:90px}html[data-orientation] .game-screen .guess-panel .number-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-content:center;gap:4px 6px}}@media (orientation:landscape) and (height<=350px){html[data-orientation] .game-screen .guess-panel .number-grid .number-option{grid-template-rows:44px;gap:0}html[data-orientation] .game-screen .guess-panel .number-grid .note-toggle{display:none}}.gameover-screen{padding:44px max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.gameover-screen>.victory-card{flex-direction:column;align-items:center;gap:clamp(8px,2dvh,16px);width:min(1120px,100%);max-width:1120px;height:100%;min-height:0;padding:clamp(8px,2dvh,24px) 0;display:flex;overflow:hidden}.victory-card>.victory-symbol,.victory-card>.eyebrow{display:none}.gameover-screen .victory-card h1{overflow-wrap:anywhere;flex:none;margin:0;font-size:clamp(24px,5dvh,44px);line-height:1.3}.gameover-screen .victory-card h1 br{display:none}.gameover-screen .victory-card h1 em{margin-left:.3em}.gameover-screen .victory-card>p{flex:none;margin:0;font-size:13px;line-height:1.5}.gameover-screen .victory-card .final-code{overscroll-behavior-x:none;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:#625e50 transparent;flex:1 1 0;justify-content:flex-start;align-items:center;gap:10px;width:100%;min-height:0;margin:0;padding:12px 4px;display:flex;overflow:auto hidden}.gameover-screen .final-code .tile-slot{flex:none}.gameover-screen .final-code .tile-slot:first-child{margin-left:auto}.gameover-screen .final-code .tile-slot:last-child{margin-right:auto}.gameover-screen .final-code .code-tile{flex:none;width:clamp(48px,10dvh,90px);height:clamp(68px,14dvh,128px)}.gameover-screen .final-code .tile-number{font-size:clamp(28px,6dvh,48px)}.victory-actions{flex:none;grid-template-columns:1fr 1fr;gap:12px;width:min(520px,100%);display:grid}.victory-actions>button{min-width:0;min-height:44px;margin:0;padding:10px 12px;font-size:14px}.final-hands{flex:1 1 0;grid-template-rows:repeat(2,minmax(0,1fr));gap:12px;width:100%;min-height:0;display:grid}.final-hand{flex-direction:column;min-width:0;min-height:0;display:flex}.final-hand h2{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:none;margin:0;font-size:14px;line-height:1.5;overflow:hidden}.gameover-screen>.victory-card{max-height:760px;margin-block:auto}.final-hand{justify-content:center;gap:8px}.gameover-screen .victory-card .final-code{flex:0 auto;height:clamp(92px,14dvh + 24px,152px)}@media (orientation:landscape) and (height<=600px){.final-hands{grid-template-rows:minmax(0,1fr);grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}.gameover-screen .final-code{cursor:grab;-webkit-user-select:none;user-select:none}.gameover-screen .final-code.dragging{cursor:grabbing}.gameover-screen .final-code .code-tile{pointer-events:none}.gameover-screen .final-code:focus-visible{outline:1px solid var(--gold);outline-offset:-2px}.gameover-screen .final-code::-webkit-scrollbar{height:6px}.gameover-screen .final-code::-webkit-scrollbar-thumb{background:#625e50;border-radius:6px}.gameover-screen .final-code::-webkit-scrollbar-track{background:0 0}.landing>.local-setup-panel{width:min(100% - 40px,640px)}.local-setup-panel .player-form{width:100%;max-width:none;margin-top:18px}@media (width>=701px) and (height>=701px){.landing:not(.game-home){justify-content:center;padding-bottom:44px}.landing>.center-panel{margin-block:0;padding-block:0}}@media (orientation:landscape) and (height<=600px){.local-setup-panel .player-form{margin-top:10px}}html[data-orientation] .game-screen>.setup-pick{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;width:calc(100% - 32px);max-width:1120px;height:100%;min-height:0;max-height:700px;margin:auto;padding:10px 0;display:grid;overflow:hidden}html[data-orientation] .game-screen .setup-heading{text-align:left;grid-area:1/1;align-self:center;min-width:0}html[data-orientation] .game-screen .setup-heading h1{margin:0;font-size:clamp(18px,2.5vw,30px);line-height:1.4}html[data-orientation] .game-screen .setup-heading .setup-progress{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.5}html[data-orientation] .game-screen .setup-pick>.privacy-note{display:none}html[data-orientation] .game-screen .setup-pick>.setup-tiles{grid-area:1/2;gap:8px;height:auto;min-height:0;padding:4px}html[data-orientation] .game-screen .setup-pick .setup-tiles .code-tile{flex:0 0 44px;width:44px;height:62px;min-height:62px;padding:4px}html[data-orientation] .game-screen .setup-pick .setup-tiles .tile-number{font-size:28px}html[data-orientation] .game-screen .setup-pick>.card-field-wrap{flex-direction:column;grid-area:2/1/auto/-1;gap:8px;width:100%;max-width:none;height:100%;min-height:0;margin:0;padding:10px;display:flex}html[data-orientation] .game-screen .setup-pick .card-field-heading{display:none}html[data-orientation] .game-screen .setup-pick .card-field{flex:1;height:auto;min-height:0;margin:0}html[data-orientation] .game-screen .setup-pick .draw-confirm-row{flex:none;padding:0}html[data-orientation] .game-screen .setup-waiting{grid-area:2/1/auto/-1;justify-content:center;align-self:center}@media (orientation:portrait) and (width>=701px){html[data-orientation] .game-screen .setup-pick .card-field{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:1fr}}@media (orientation:portrait) and (height<=600px){.game-home>.mode-hero{padding-bottom:16px}.game-home .home-details{margin-top:12px}}@media (orientation:portrait) and (width<=700px){html[data-orientation] .game-screen>.setup-pick{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:6px}html[data-orientation] .game-screen .setup-heading{grid-area:1/1}html[data-orientation] .game-screen .setup-pick>.setup-tiles{grid-area:2/1;justify-content:flex-start}html[data-orientation] .game-screen .setup-pick>.card-field-wrap,html[data-orientation] .game-screen .setup-waiting{grid-area:3/1}}.game-home .hero h1,.landing .center-panel>h1,.game-screen .handoff-card h1,.gameover-screen .victory-card h1{font-synthesis:none;font-family:Game Chinese Display,Noto Serif SC,serif;font-weight:900}.game-home .hero h1{letter-spacing:.04em;text-shadow:0 2px 8px #0005}.online-forms .open-room-list{scrollbar-width:thin;flex-direction:column;gap:8px;min-height:0;max-height:230px;display:flex;overflow-y:auto}.online-forms .open-room{min-height:48px;color:var(--gold-bright);text-align:left;background:#c7a25b0d;border:1px solid #c7a25b55;border-radius:6px;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.open-room span{overflow-wrap:anywhere;min-width:0}.open-room b{white-space:nowrap;font-size:13px}.empty-rooms{color:var(--muted);margin:0;padding:12px 0;font-size:13px;line-height:1.6}@media (height<=600px){.online-forms .open-room-list{max-height:110px}}@media (orientation:portrait) and (width<=700px){.online-forms .open-room-list{max-height:clamp(52px,100dvh - 450px,230px)}}html[data-orientation] .game-screen>.draw-note-panel{min-width:0;position:relative}.draw-stage-label{color:var(--gold-bright);margin:0 0 4px;font-size:12px;line-height:1.4}@media (height<=400px){.draw-stage-label{margin-bottom:2px;font-size:10px}}html[data-orientation] .game-screen.guessing-compact>.state-panel{text-align:center;background:radial-gradient(at 50% 35%,#c7a25b0b,#0000 65%),#131410;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;overflow:hidden}.state-panel .state-copy{max-width:100%;display:block}.state-panel .state-copy h3{color:#e9e5dc;margin:0;font:700 22px/1.4 Noto Serif SC,serif}.state-panel .state-copy p{color:#969386;margin:7px 0 0;font:12px/1.6 sans-serif}.state-art{color:#cfaf69;flex:none;width:90px;height:82px;position:relative}.state-art i{background:#1b1c16;border:1px solid #c7a25b66;border-radius:5px;width:45px;height:62px;position:absolute;top:10px;box-shadow:0 4px #080907}.state-art i:first-child{left:10px;transform:rotate(-14deg)}.state-art i:nth-child(2){background:linear-gradient(135deg,#2d2b20,#171913);left:34px;transform:rotate(9deg)}.state-art svg{width:24px;height:24px;position:absolute;top:30px;left:45px}.state-caption{color:#b6a270;font-size:11px}.waiting-dots{justify-content:center;align-items:center;gap:7px;height:12px;display:flex}.waiting-dots i{background:#c7a25b;border-radius:50%;width:4px;height:4px;animation:2s ease-in-out infinite status-breathe}.waiting-dots i:nth-child(2){animation-delay:.25s}.waiting-dots i:nth-child(3){animation-delay:.5s}@keyframes status-breathe{0%,to{opacity:.25}50%{opacity:1}}.result-visual{flex:none;width:66px;height:88px;position:relative}.result-card{color:#d8bb73;background:linear-gradient(145deg,#24251d,#090a08);border:1px solid #c7a25b77;border-radius:6px;place-items:center;width:58px;height:80px;font:400 38px/1 Game Display,serif;display:grid;box-shadow:0 4px #080907,0 8px 20px #0004}.result-card.white{color:#171815;background:linear-gradient(145deg,#f3f0e7,#bab8ad);border-color:#e8e5d9}.result-seal{color:#b4d9be;background:#314b38;border:3px solid #131410;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;bottom:0;right:-4px}.failure .result-seal{color:#ec9e8b;background:#51332c}.result-seal svg{width:18px;height:18px}html[data-orientation] .game-screen .state-panel .state-actions{flex-direction:row;justify-content:center;align-items:center;gap:10px;width:min(100%,420px);margin-top:4px;display:flex}.state-actions button{flex:1;min-width:0;min-height:44px;padding:10px 12px;font-size:14px}.state-actions .observer-hint{color:#969386;font-size:12px;line-height:1.6}@media (height<=600px){html[data-orientation] .game-screen>.state-panel{gap:9px;padding:12px}.state-panel .state-copy h3{font-size:18px}.state-panel .state-copy p{margin-top:4px;font-size:11px}.result-visual{width:52px;height:69px}.result-card{width:46px;height:62px;font-size:30px}.result-seal{width:24px;height:24px}.state-art{height:72px}.state-actions button{padding:8px;font-size:12px}}@media (prefers-reduced-motion:reduce){.waiting-dots i{opacity:.6;animation:none}}html[data-orientation] .game-screen .board .battle-history{background:0 0;border:0;border-radius:0}html[data-orientation] .game-screen .board .battle-history summary{color:#bca779;box-sizing:border-box;background:#191a15;border:1px solid #c7a25b2e;border-radius:20px;justify-content:flex-start;gap:8px;min-height:40px;padding:6px 10px}.battle-history summary .history-icon{flex:none;width:16px;height:16px}.battle-history summary .history-label{color:#d4c9ad;font-size:12px}.battle-history summary .history-count{box-sizing:border-box;color:#cdb270;font-variant-numeric:tabular-nums;background:#c7a25b16;border-radius:11px;place-items:center;min-width:22px;height:22px;padding:0 4px;font:600 11px/1 sans-serif;display:grid}.history-chevron{color:#8c8678;width:12px;height:12px;transition:transform .18s}.battle-history[open] .history-chevron{transform:rotate(180deg)}.battle-history summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}html[data-orientation] .game-screen .board .history-list{max-height:calc(var(--app-height,100dvh) - 72px);scrollbar-width:thin;background:#181914;border:1px solid #c7a25b3d;border-radius:12px;padding:0;top:calc(100% + 8px);box-shadow:0 14px 40px #0008}.history-heading{border-bottom:1px solid #ffffff0b;align-items:center;gap:10px;padding:10px 12px;display:flex}.history-heading strong{color:#e1d8c3;font-size:13px}.history-heading>span{color:#858174;flex:1;font-size:10px}.history-heading button{color:#aaa492;background:0 0;border:0;width:32px;height:32px;min-height:32px;padding:0;font:22px/1 sans-serif}.history-entries{padding:0 12px}.history-entry{border-bottom:1px solid #ffffff08;align-items:center;gap:10px;padding:12px 0;display:flex}.history-entry:last-child{border-bottom:0}.history-number{color:#dbbd70;background:#0c0d0a;border:1px solid #b6a47245;border-radius:4px;flex:0 0 32px;place-items:center;width:32px;height:42px;font:24px/1 Game Display,serif;display:grid}.history-number.white{color:#20221b;background:#dcd8cb;border-color:#eae7dd}.history-description{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.history-description strong{color:#c8c4b7;overflow-wrap:anywhere;font-size:12px;font-weight:500;line-height:1.5}.history-description strong span{color:#746f61}.history-description>span{color:#868273;font-size:10px}.history-outcome{color:#c18b7c;background:#b86e5c12;border-radius:4px;flex:none;padding:4px 6px;font-size:10px}.correct .history-outcome{color:#9bc4a4;background:#87b49212}@media (prefers-reduced-motion:reduce){.history-chevron{transition:none}}html[data-orientation] .game-screen .board .history-list{flex-direction:column;display:flex;overflow:hidden}.history-heading{flex:none}.history-entries{scrollbar-width:thin;min-height:0;overflow-y:auto}.failed-guess,html[data-orientation] .game-screen .tile-markers .failed-guess{color:#ef897c;box-shadow:none;background:0 0;border:1px solid;position:relative}.failed-guess:after{content:"";pointer-events:none;background:currentColor;border-radius:1px;width:76%;height:1.5px;position:absolute;top:50%;left:12%;transform:translateY(-50%)rotate(-45deg)}html[data-orientation] .code-tile,html[data-orientation] .game-screen .board .tile-slot>.code-tile:is(.revealed,.target-correct,.target-wrong){transform:none}html[data-orientation] .game-screen .board .tile-slot>.code-tile:is(.target-correct,.target-wrong){animation:none}html[data-orientation] .game-screen .board .code-tile.selectable:active{transform:none}.rematch-invitation{background:#c7a25b0a;border:1px solid #c7a25b44;border-radius:8px;width:100%;min-width:0;padding:8px 12px}.rematch-invitation p{color:#d8bb73;overflow-wrap:anywhere;margin:0 0 6px;font-size:13px;line-height:1.4}.rematch-buttons{justify-content:center;align-items:center;gap:8px;display:flex}.rematch-buttons .primary-button{flex:1;min-width:0}.rematch-buttons .text-button{flex:none}.victory-actions:has(.rematch-invitation){grid-template-columns:1fr;gap:4px}.rematch-buttons .primary-button,.rematch-buttons .text-button{min-height:40px;margin:0;padding:8px 10px;font-size:13px}@media (height<=500px){.rematch-invitation{padding:4px 8px}.rematch-invitation p{margin-bottom:2px;font-size:12px}}.lobby-seats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;margin:16px 0;display:grid}.lobby-seat{color:#827d71;border:1px dashed #c7a25b33;border-radius:8px;align-items:center;gap:8px;min-width:0;padding:12px;display:flex}.lobby-seat.occupied{color:#e2d8bd;background:#c7a25b0a;border-style:solid}.lobby-seat b{color:#c7a25b}.lobby-seat span{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.lobby-seat small{font-size:10px}.room-wait h1 small{color:#c7a25b;font:14px sans-serif}.room-wait .lobby-hint{margin:8px 0 0;font-size:12px}.opponent-tabs{flex:none;gap:6px;width:100%;display:flex}.opponent-tabs button{color:#aaa596;background:#191a15;border:1px solid #c7a25b33;border-radius:6px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;min-height:42px;padding:5px 7px;display:flex}.opponent-tabs button[aria-pressed=true]{color:#e0c37d;background:#c7a25b14;border-color:#c7a25b}.opponent-tabs span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.opponent-tabs small{font-size:10px}.final-hands.multiplayer-finals{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.multiplayer-finals .final-hand{gap:3px;overflow:hidden}.gameover-screen .multiplayer-finals .final-code{flex:1;height:auto;padding:5px 3px}.gameover-screen .multiplayer-finals .code-tile{width:46px;height:64px}.gameover-screen .multiplayer-finals .tile-number{font-size:28px}@media (height<=500px){.lobby-seats{gap:6px;margin:8px 0}.lobby-seat{padding:6px 10px}.room-wait:has(.lobby-seats){padding:10px}.room-wait:has(.lobby-seats) h1{margin:0;font-size:24px}.room-wait:has(.lobby-seats)>p{margin:6px 0;font-size:12px}.room-wait:has(.lobby-seats) .primary-button{min-height:40px;padding:8px}}@media (height<=450px){html[data-orientation] .game-screen .board:has(.opponent-tabs) .tile-slot>.code-tile{flex-basis:42px;width:42px;height:54px}html[data-orientation] .game-screen .board:has(.opponent-tabs) .code-tile .tile-number{font-size:28px}html[data-orientation] .game-screen .board:has(.opponent-tabs) .tile-row{padding-block:10px 4px}}html[data-orientation] .game-screen.drawer-table{height:var(--app-height,100dvh);padding:48px 12px 54px;display:block;position:relative;overflow:hidden}html[data-orientation] .game-screen.drawer-table>.board{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(var(--player-count),minmax(0,1fr));gap:6px;width:100%;height:100%;margin:0;padding:0;display:grid;overflow:hidden}html[data-orientation] .game-screen.drawer-table .board .player-row{border:1px solid #c7a25b20;border-radius:8px;flex-direction:column;justify-content:flex-start;gap:2px;min-width:0;min-height:0;padding:3px 6px;display:flex;overflow:hidden}html[data-orientation] .game-screen.drawer-table .board .active-player{background:#c7a25b06;border-color:#c7a25b70}html[data-orientation] .game-screen.drawer-table .board .row-label{flex:none;align-items:center;gap:8px;margin:0;display:flex}html[data-orientation] .game-screen.drawer-table .board .row-label h2{margin:0;font-size:14px}html[data-orientation] .game-screen.drawer-table .board .row-label small{font-size:10px}html[data-orientation] .game-screen.drawer-table .board .tile-row{flex:1;align-items:center;gap:8px;height:auto;min-height:0;padding:10px 4px 5px;overflow:auto hidden}html[data-orientation] .game-screen.drawer-table .board .own-hand{flex:1;min-height:0}html[data-orientation] .game-screen.drawer-table .board .tile-slot>.code-tile{flex-basis:46px;width:46px;height:64px}html[data-orientation] .game-screen.drawer-table .board .tile-number{font-size:28px}html[data-orientation] .game-screen.drawer-table .board .current-draw{flex-basis:58px;justify-content:center;gap:1px;padding:0 8px 0 2px}html[data-orientation] .game-screen.drawer-table .board .current-draw small{font-size:9px}.action-drawer{z-index:20;background:#171813;border:1px solid #c7a25b66;border-radius:16px 16px 0 0;flex-direction:column;height:min(64dvh,480px);transition:transform .22s;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -10px 36px #0008}.action-drawer.collapsed{transform:translateY(calc(100% - 44px))}.drawer-handle{color:#dcc38b;touch-action:none;cursor:ns-resize;background:0 0;border:0;flex:0 0 44px;align-items:center;gap:10px;width:100%;height:44px;min-height:44px;padding:10px 16px;display:flex}.drawer-handle i{background:#96815b;border-radius:3px;width:30px;height:4px}.drawer-handle span{text-align:left;flex:1;font-size:13px}.drawer-handle b{font-size:11px;font-weight:400}.drawer-content{min-height:0;padding:0 10px max(8px,env(safe-area-inset-bottom));flex:1;overflow:auto}html[data-orientation] .game-screen.drawer-table .drawer-content>:is(.guess-panel,.floating-action,.result-toast){width:100%;max-width:none;height:auto;min-height:100%;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:8px;position:static;transform:none}html[data-orientation] .game-screen.drawer-table .drawer-content .guess-panel{flex-direction:column;justify-content:center;gap:8px;display:flex}html[data-orientation] .game-screen.drawer-table .drawer-content .number-grid{flex:none;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px 4px;margin:0;display:grid}html[data-orientation] .game-screen.drawer-table .drawer-content .number-option{gap:2px}html[data-orientation] .game-screen.drawer-table .drawer-content .number-pick{width:36px;height:36px;min-height:36px;font-size:23px}html[data-orientation] .game-screen.drawer-table .drawer-content .note-toggle{font-size:9px}html[data-orientation] .game-screen.drawer-table .drawer-content .confirm-guess{min-height:42px;margin:0;padding:8px;font-size:14px}html[data-orientation] .game-screen.drawer-table .drawer-content .guess-panel-copy{padding-right:24px}html[data-orientation] .game-screen.drawer-table .drawer-content .guess-panel-copy small{display:none}html[data-orientation] .game-screen.drawer-table .drawer-content .guess-panel h3{margin:0;font-size:17px}html[data-orientation] .game-screen.drawer-table .drawer-content .close-button{top:48px;right:12px}@media (orientation:landscape) and (width>=600px){html[data-orientation] .game-screen.drawer-table>.board{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.action-drawer{max-width:520px;height:min(85dvh,480px);margin-left:auto}}@media (width>=1400px) and (height>=700px){html[data-orientation] .game-screen.drawer-table{padding-bottom:16px;padding-right:440px}.drawer-table .action-drawer{width:412px;height:auto;box-shadow:none;border-radius:12px;inset:48px 12px 16px auto;transform:none}.drawer-table .drawer-handle{pointer-events:none;cursor:default}.drawer-table .drawer-handle b{display:none}.drawer-table .drawer-content[inert]{display:block}html[data-orientation] .game-screen.drawer-table .board .tile-slot>.code-tile{flex-basis:72px;width:72px;height:102px}html[data-orientation] .game-screen.drawer-table .board .tile-number{font-size:42px}}@media (height<=450px){html[data-orientation] .game-screen.drawer-table .board .tile-slot>.code-tile{flex-basis:40px;width:40px;height:52px}html[data-orientation] .game-screen.drawer-table .board .tile-row{padding-block:4px}}@media (prefers-reduced-motion:reduce){.action-drawer{transition:none}}html[data-orientation] .game-screen.drawer-table{width:100%;max-width:none;margin:0}html[data-orientation] .game-screen.drawer-table .board .row-label{justify-content:flex-start;align-self:stretch}html[data-orientation] .game-screen.drawer-table .board .own-hand{align-items:center;height:100%;display:flex}html[data-orientation] .game-screen.drawer-table .board .own-hand>.tile-row{height:100%}html[data-orientation] .game-screen.drawer-table .drawer-content>.guess-panel{justify-content:flex-start;height:auto;min-height:0;padding:12px 8px;position:relative}html[data-orientation] .game-screen.drawer-table .drawer-content .guess-panel-copy{text-align:left;align-self:stretch}html[data-orientation] .game-screen.drawer-table .drawer-content .guess-panel>.close-button{width:32px;height:32px;min-height:32px;margin:0;position:absolute;top:8px;right:4px;transform:none}html[data-orientation] .game-screen.drawer-table .drawer-content .number-pick{width:40px;height:40px;min-height:40px}@media (orientation:landscape) and (width>=480px){html[data-orientation] .game-screen.drawer-table>.board{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.action-drawer{max-width:520px;height:min(85dvh,480px);margin-left:auto}}@media (width>=1400px) and (height>=700px){html[data-orientation] .game-screen.drawer-table .drawer-content .number-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 8px}html[data-orientation] .game-screen.drawer-table .drawer-content>.guess-panel{gap:24px;padding-top:24px}}html[data-orientation] .game-screen.drawer-table .drawer-content>:is(.guess-panel,.floating-action,.result-toast){box-sizing:border-box;align-self:stretch;width:100%;min-width:0;max-width:100%;inset:auto}html[data-orientation] .game-screen.drawer-table .drawer-content .number-grid{align-self:stretch;width:100%;min-width:0;max-width:100%}html[data-orientation] .game-screen.drawer-table .board .own-hand{justify-content:flex-start;width:100%;margin:0;position:static;transform:none}html[data-orientation] .game-screen.drawer-table .board .own-hand>.tile-row{justify-content:flex-start;margin:0}html[data-orientation] .game-screen.drawer-table .board .current-draw{flex-grow:0;margin:0}html[data-orientation] .game-screen.drawer-table .drawer-content .card-field-wrap{width:100%;height:auto;min-height:0;box-shadow:none;background:0 0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}html[data-orientation] .game-screen.drawer-table .drawer-content .card-field{flex:none;grid-template-columns:minmax(0,1fr);gap:4px;min-height:0;padding:4px;display:grid}html[data-orientation] .game-screen.drawer-table .drawer-content .fan-group{border:0;height:100px;padding:0;display:block;position:relative}html[data-orientation] .game-screen.drawer-table .drawer-content .fan-stack{width:100%;height:100px}html[data-orientation] .game-screen.drawer-table .drawer-content .field-card{width:52px;height:70px;bottom:10px}html[data-orientation] .game-screen.drawer-table .drawer-content .fan-label{font-size:10px;position:absolute;top:0;left:2px}html[data-orientation] .game-screen.drawer-table .drawer-content .card-field-heading strong{font-size:14px}html[data-orientation] .game-screen.drawer-table .drawer-content .confirm-draw{min-height:42px;padding:8px;font-size:14px}@media (orientation:landscape) and (height<=600px){html[data-orientation] .game-screen.drawer-table .drawer-content .card-field{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (orientation:landscape) and (width>=480px){html[data-orientation] .game-screen.drawer-table>.board[data-player-count="2"]{grid-template-rows:minmax(0,1fr)}html[data-orientation] .game-screen.drawer-table>.board[data-player-count="3"] .own-row{grid-column:1/-1}}html[data-orientation] .game-screen.drawer-table>.board[data-player-count="2"]{grid-template-rows:repeat(2,minmax(0,min(230px,48%)));grid-template-columns:minmax(0,1fr);align-content:center;gap:14px}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .player-row{justify-content:center;gap:8px;padding:12px 16px}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .tile-row{flex:0 auto;height:auto;min-height:88px;padding-block:12px 8px}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .own-hand{flex:0 auto;height:auto;min-height:0}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .own-hand>.tile-row{flex:1;height:auto}@media (height>=700px){html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .tile-slot>.code-tile{flex-basis:64px;width:64px;height:90px}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .tile-number{font-size:36px}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .tile-row{min-height:116px}}@media (orientation:landscape) and (height<=500px){html[data-orientation] .game-screen.drawer-table>.board[data-player-count="2"]{grid-template-rows:minmax(0,100%);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .player-row{gap:4px;padding:6px}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .tile-row{min-height:74px}}html[data-orientation] .game-screen.drawer-table .action-drawer{max-width:none;margin-left:0}html[data-orientation] .game-screen.drawer-table .drawer-content .card-field{grid-template-rows:repeat(2,100px);grid-auto-rows:100px;height:auto;min-height:0;max-height:none;overflow:visible}html[data-orientation] .game-screen.drawer-table .drawer-content .fan-group{grid-area:auto;min-width:0;min-height:100px;max-height:none;overflow:visible}html[data-orientation] .game-screen.drawer-table .drawer-content .fan-stack{flex:none;min-height:100px;max-height:none;position:relative;inset:auto}@media (orientation:landscape) and (height<=600px){html[data-orientation] .game-screen.drawer-table .drawer-content .card-field{grid-template-rows:100px}}@media (width>=1400px) and (height>=700px){html[data-orientation] .game-screen.drawer-table{padding-right:calc(32% + 24px)}html[data-orientation] .game-screen.drawer-table .action-drawer{width:32%}}html[data-orientation] .game-screen.drawer-table .board[data-player-count="2"] .row-label h2{font-size:17px}.drawer-deck{box-sizing:border-box;flex-direction:column;gap:12px;width:100%;min-width:0;padding:12px 8px;display:flex;container-type:inline-size}.drawer-deck-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.drawer-deck-heading strong{font-size:15px;line-height:1.4}.drawer-deck-heading>span{color:#a49b85;flex:none;font-size:12px}.drawer-deck-fans{background:#10110f;border:1px solid #c7a25b25;border-radius:8px;grid-template-columns:minmax(0,1fr);gap:8px;padding:8px;display:grid}.drawer-deck-group{flex-direction:column;min-width:0;display:flex}.drawer-deck-label{color:#a49b85;flex:none;padding:0 4px;font-size:11px;line-height:18px}.drawer-deck-stack{min-width:0;height:106px;position:relative;container-type:inline-size}.drawer-deck-card{--fan-step:min(32px, calc((100cqw - 96px) / max(1, var(--fan-count) - 1)));color:#d7ba76;width:58px;height:78px;min-height:0;z-index:var(--card-z);transform:translateX(calc(-50% + var(--fan-offset) * var(--fan-step))) translateY(var(--fan-drop)) rotate(var(--fan-angle));transform-origin:bottom;cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#28261d,#0c0d0b);border:1px solid #756440;border-radius:5px;margin:0;padding:0;transition:transform .18s,border-color .18s;position:absolute;bottom:16px;left:50%;box-shadow:0 3px #090a07,0 5px 8px #0008}.drawer-deck-card.white{color:#292921;background:linear-gradient(135deg,#fffdf2,#cfcabd);border-color:#e8e3d7;box-shadow:0 3px #a7a292,0 5px 8px #0008}.drawer-deck-card>small{display:none}.drawer-deck-card .card-back-art{border:1px solid #99835155;inset:5px}.drawer-deck-card.draw-selected{transform:translateX(calc(-50% + var(--fan-offset) * var(--fan-step))) translateY(-5px);z-index:30;border-color:#e5c879;box-shadow:0 0 0 2px #c7a25b,0 6px 14px #0008}.drawer-deck-empty{color:#827e70;place-items:center;height:100%;font-size:12px;display:grid}.drawer-deck-actions{align-items:center;gap:8px;display:flex}.drawer-deck-actions>.primary-button{flex:1;width:auto;min-width:0;min-height:44px;margin:0;padding:10px;font-size:14px}.drawer-deck-actions>.text-button{flex:none;min-height:44px;margin:0;padding:10px;font-size:12px}@container (width>=600px){.drawer-deck-fans{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (orientation:landscape) and (height<=500px){.drawer-deck{gap:6px;padding-block:4px}.drawer-deck-fans{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px}.drawer-deck-stack{height:98px}}@media (prefers-reduced-motion:reduce){.drawer-deck-card{transition:none}}@media (width<=1399px),(height<=699px){.drawer-table .action-drawer:has(.drawer-deck){height:auto;max-height:calc(100dvh - 56px)}.drawer-table .action-drawer:has(.drawer-deck) .drawer-content{flex:0 auto}}@media (width>=1400px) and (height>=700px){.drawer-table .action-drawer:has(.drawer-deck){height:auto;max-height:calc(100dvh - 80px);top:50%;bottom:auto;transform:translateY(-50%)}.drawer-table .action-drawer:has(.drawer-deck) .drawer-content{flex:0 auto}}
