:root{--paper:#f5f0e5;--panel:#fffdf6;--ink:#39433e;--muted:#74786b;--accent:#ba5f44;--track:#e6decc;--line:#c7c1b1;--success:#507862;--hand:"Bradley Hand","Segoe Print","Comic Sans MS",cursive;font-family:"Avenir Next",Avenir,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background-image:radial-gradient(var(--line) .5px,transparent .7px);background-size:9px 9px}button,select,input{font:inherit}button,select,.upload-button{color:var(--ink);background:var(--panel);border:1.5px solid var(--ink);border-radius:5px 8px 4px 7px;cursor:pointer}button{min-height:44px;padding:9px 14px;font-size:12px;font-weight:600;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}button:hover:not(:disabled),.upload-button:hover{background:var(--track)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible,.upload-button:focus-within{outline:3px solid var(--accent);outline-offset:3px}input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}h1,h2,p{margin:0}h1,h2{font-family:var(--hand);font-weight:600}h1{font-size:76px;letter-spacing:-3px;line-height:1.1}h2{font-size:26px}.eyebrow{font:10px monospace;letter-spacing:2px;color:var(--muted)}[hidden]{display:none!important}.check{font-size:12px;display:flex;align-items:center;gap:8px;min-height:44px}.tiny{font-size:10px;line-height:1.5;color:var(--muted);text-align:center}.start-button{background:var(--accent);border-color:var(--accent);color:var(--panel);min-height:58px;font:24px var(--hand);box-shadow:3px 4px 0 color-mix(in srgb,var(--ink) 14%,transparent)}.start-button:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.quiet-button{background:transparent;border-color:transparent;min-width:62px}
#intro-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:.65;z-index:-1}.setup-screen{max-width:1000px;min-height:100dvh;margin:0 auto;padding:32px 35px 22px}.title-screen{text-align:center}.title-screen h1{margin:13px 0 5px;text-shadow:0 3px 0 var(--paper)}.title-screen p{font:21px var(--hand);color:var(--muted)}.title-doodle{width:230px;height:30px;margin:4px 0 16px;fill:none;stroke:var(--accent);stroke-width:1.6}.setup-sheet{display:grid;grid-template-columns:1fr 1.12fr;gap:55px;align-items:center;padding:26px 40px 30px;background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid var(--line);border-radius:8px 4px 13px 6px;box-shadow:5px 7px 0 #00000008}.picture-picker{text-align:center}.reference-image{margin:20px 0 13px;position:relative;transform:rotate(-2deg);padding:8px;background:var(--paper);border:1px solid var(--line);box-shadow:2px 3px 0 #0001}.reference-image canvas{display:block;width:100%;height:auto;max-height:220px;object-fit:contain}.tape{position:absolute;top:-10px;left:34%;width:33%;height:21px;background:#d8c79e88;transform:rotate(5deg)}.picture-picker h2{font-size:23px}.upload-button{display:block;font-size:11px;padding:12px;margin:15px 0 8px;position:relative;min-height:44px}.upload-button input{position:absolute;opacity:0;width:100%;height:100%;inset:0;cursor:pointer}.round-settings h2{font-size:31px;margin-bottom:20px}.setting{display:flex;flex-direction:column;gap:7px;font-size:11px;color:var(--muted);margin-bottom:12px}.setting select{min-height:44px;padding:8px 10px;font-size:12px;width:100%}.round-settings>.check{margin-bottom:12px}.audio-controls{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0 20px}.audio-controls button{font-size:10px;padding:7px 9px;border-color:var(--line);flex:1}.audio-controls button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.round-settings .start-button{width:100%;display:flex;justify-content:space-between;align-items:center}.setup-note{font-size:10px;color:var(--muted);line-height:1.6;margin-top:12px}.setup-instructions{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:23px 25px 16px;padding:12px;background:color-mix(in srgb,var(--paper) 85%,transparent);border-radius:8px}.setup-instructions strong{font:24px var(--hand);color:var(--accent)}.setup-instructions p{font-size:11px;line-height:1.65;margin-top:5px;color:var(--muted)}.setup-footer{text-align:center;font-size:10px;color:var(--muted)}.setup-message{font-size:12px;text-align:center;color:var(--accent);margin-top:12px;min-height:18px}
body[data-playing=true]{overflow:hidden}.game-screen{height:100dvh;display:grid;grid-template-rows:52px minmax(140px,1fr) 30px 178px 90px;padding:0 max(18px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(18px,env(safe-area-inset-left));overflow:hidden}.game-hud{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.game-wordmark{font:27px var(--hand);letter-spacing:-.8px}.round-readout{display:flex;align-items:baseline;gap:12px;margin-left:auto}.round-readout>span{font-size:11px;color:var(--muted)}.round-readout strong{font:29px var(--hand);min-width:60px;text-align:right}.round-readout small{font-size:8px;letter-spacing:1px;color:var(--muted)}.canvas-wrap{position:relative;min-height:0;min-width:0;overflow:hidden}#board{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;touch-action:manipulation;border-radius:8px}.play-feedback{display:flex;align-items:center;justify-content:center;padding:0 10px}.play-feedback p{font-size:11px;line-height:1.4;color:var(--accent);max-width:900px;text-align:center}.piece-rack{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:45px;max-width:1000px;width:100%;margin:0 auto;padding:5px 22px 7px;border-top:1px dashed var(--line)}.rack-heading{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3px}.rack-heading h2{font-size:21px}.rack-heading>span{font-size:10px;color:var(--muted)}.columns{display:grid;grid-template-columns:repeat(var(--column-count,4),1fr);gap:16px;height:142px;overflow-y:auto;padding:2px 4px 3px}.column{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.column-label{display:none}.piece-tile{width:64px;height:46px;min-height:46px;padding:1px;position:relative;border-color:var(--line);border-radius:5px 3px 7px 4px;flex-shrink:0}.piece-tile canvas{width:100%;height:100%;display:block;object-fit:contain}.piece-tile.front{border-color:var(--accent);border-width:2px;box-shadow:0 2px 0 color-mix(in srgb,var(--accent) 25%,transparent)}.piece-tile.queued{opacity:.7;border:1px dashed var(--line);height:21px;min-height:21px;width:56px}.piece-number{position:absolute;bottom:1px;right:1px;font:700 13px monospace;background:var(--panel);padding:1px 3px;border:1px solid var(--line);border-radius:3px}.empty-column{font:24px var(--hand);color:var(--line);padding:12px}.overflow-slots{display:flex;gap:14px;padding-top:4px;justify-content:space-between}.overflow-slot{width:72px;height:64px;min-height:44px;padding:3px;border:1.5px dashed var(--line);font:30px var(--hand);color:var(--line);position:relative}.overflow-slot canvas{width:100%;height:100%;object-fit:contain}.overflow-slot.occupied{border:2px solid var(--accent);color:var(--ink)}.overflow-slot.reserved{font:11px system-ui;line-height:1.5;color:var(--muted);white-space:pre-line}.play-controls{display:grid;grid-template-columns:minmax(170px,250px) 1fr minmax(170px,250px);gap:20px;align-items:center;border-top:1px solid var(--line);padding:6px 0 8px}.action-button{height:76px;display:flex;align-items:center;justify-content:center;gap:17px;text-align:left;border-width:2px}.action-icon{font-size:40px;font-weight:400;line-height:1}.action-button strong{font-size:25px;font-family:var(--hand);display:block}.action-button small{font-size:10px;display:block;font-weight:400;margin-top:5px}.place-button{border-color:var(--accent);color:var(--accent)}.place-button.ready{background:var(--success);border-color:var(--success);color:var(--panel)}.place-button.ready:hover:not(:disabled){background:var(--success)}.control-center{text-align:center;min-width:0}.travelers{display:flex;gap:6px;justify-content:flex-start;flex-wrap:wrap;min-height:30px;margin-top:10px}.travelers button{min-height:36px;padding:5px 8px;font:13px monospace;min-width:36px}.travelers button[aria-pressed=true]{background:var(--accent);color:var(--panel);border-color:var(--accent)}#number-entry{font:10px monospace;color:var(--muted);margin-top:6px}.keyboard-hint{font-size:9px;color:var(--muted);display:block;margin-top:5px}.result{position:absolute;inset:8% max(10%,calc((100% - 480px)/2));background:var(--panel);border:2px solid var(--ink);border-radius:8px 3px 10px 4px;padding:22px;box-shadow:6px 7px 0 #0002;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:2}.result h2{font-size:38px}.result p{font-size:12px;line-height:1.6;max-width:330px}.result .start-button{font-size:20px;min-height:48px}.picture-overlay{position:absolute;inset:0;background:color-mix(in srgb,var(--paper) 94%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;z-index:3}.picture-overlay canvas{max-width:70%;max-height:75%;object-fit:contain}.picture-overlay button{min-height:44px}[data-layout=columns-right] .dealt-rack{order:2}[data-layout=columns-right] .holding-rack{order:1}
@media(min-width:1400px){.game-screen{padding-left:30px;padding-right:30px}.piece-rack{max-width:1100px}}
@media(max-width:850px){.setup-screen{padding:28px 24px}.setup-sheet{gap:30px;padding:25px}.title-screen h1{font-size:61px}.round-settings h2{font-size:27px}.game-screen{grid-template-rows:50px minmax(140px,1fr) 34px 174px 90px;padding-left:12px;padding-right:12px}.game-hud{gap:7px}.game-wordmark{font-size:23px}.round-readout{gap:6px}.round-readout small{display:none}.round-readout>span{font-size:9px}.piece-rack{gap:25px;padding-left:8px;padding-right:8px}.columns{gap:8px}.overflow-slots{gap:8px}.overflow-slot{width:66px;height:60px}.play-controls{grid-template-columns:180px 1fr 180px;gap:12px}.action-button{gap:10px;padding:8px}.action-button strong{font-size:23px}.control-center .keyboard-hint{display:none}#number-entry{font-size:9px}.travelers button{font-size:11px}.game-hud .quiet-button{font-size:11px;min-width:55px;padding:7px}.play-feedback p{font-size:10px}.result h2{font-size:30px}}
@media(max-width:600px){.setup-screen{padding:25px 18px}.title-screen h1{font-size:52px}.title-screen .eyebrow{font-size:8px}.setup-sheet{grid-template-columns:1fr;padding:22px;gap:25px}.picture-picker{max-width:290px;margin:0 auto;width:100%}.reference-image{margin-top:17px}.reference-image canvas{max-height:150px}.setup-instructions{gap:15px;margin:20px 0}.setup-instructions strong{font-size:21px}.setup-instructions p{font-size:10px}.game-screen{grid-template-rows:46px minmax(120px,1fr) 36px 174px 86px;padding-left:8px;padding-right:8px}.game-wordmark{font-size:20px;flex:1}.round-readout>span{display:none}.round-readout strong{font-size:24px;min-width:40px}.game-hud{gap:2px}.game-hud .quiet-button{padding:6px;min-width:46px;font-size:10px}.piece-rack{gap:15px;padding:4px 3px;grid-template-columns:1.08fr 1fr}.rack-heading h2{font-size:20px}.rack-heading>span{font-size:8px}.columns{gap:4px;padding-left:0;padding-right:0;grid-template-columns:repeat(var(--column-count),minmax(40px,1fr))}.piece-tile{width:44px}.piece-tile.queued{width:40px}.piece-number{font-size:12px}.overflow-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;padding-top:2px}.overflow-slot{width:100%;height:45px;min-height:45px;padding:1px}.play-controls{grid-template-columns:1fr 1fr;gap:18px;padding:5px 0}.action-button{height:76px;gap:12px}.action-button strong{font-size:23px}.action-button small{font-size:9px}.action-icon{font-size:33px}.control-center{display:none}.play-feedback p{font-size:9px}.result{inset:3% 4%;padding:12px;gap:8px}.result h2{font-size:25px}.result p{font-size:10px}.result .start-button{font-size:18px;min-height:40px}.result .quiet-button{min-height:30px}.result .eyebrow{font-size:8px}.picture-overlay canvas{max-width:85%}.travelers{gap:3px;margin-top:5px}.travelers button{min-width:26px;min-height:30px;padding:3px 5px;font-size:11px}}
@media(pointer:coarse){.travelers button{min-height:44px;min-width:44px}.keyboard-hint{display:none}}
.overflow-slot.empty{opacity:1;background:color-mix(in srgb,var(--panel) 45%,transparent);border:2px dashed var(--muted)}
.gallery-picker{margin:14px 0 8px;text-align:left}.generate-button{width:100%;font:18px var(--hand);border-color:var(--accent);color:var(--accent)}#image-credit a{color:var(--muted);text-underline-offset:2px}.picture-picker .upload-button{margin-top:8px}
#transit-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}
.game-screen{grid-template-rows:52px minmax(140px,1fr) 28px 218px 90px}.piece-rack{display:flex;flex-direction:column;gap:5px;max-width:680px;padding:4px 12px}.holding-rack,[data-layout=columns-right] .holding-rack{order:0;display:grid;grid-template-columns:100px 1fr;gap:15px;align-items:center}.dealt-rack,[data-layout=columns-right] .dealt-rack{order:1}.holding-rack .rack-heading{display:flex;flex-direction:column;gap:3px;margin:0}.overflow-slots{display:flex;gap:15px;padding:0;justify-content:flex-start}.overflow-slot{width:72px;height:48px;min-height:44px}.columns{height:142px}.travelers{justify-content:center;margin-top:0}
@media(max-width:600px){.game-screen{grid-template-rows:46px minmax(100px,1fr) 34px 208px 86px}.piece-rack{padding:3px 6px;gap:4px}.holding-rack{grid-template-columns:80px 1fr;gap:12px}.overflow-slots{gap:7px}.overflow-slot{width:48px;height:44px}.columns{height:142px}.piece-tile{width:60px}.piece-tile.queued{width:50px}.rack-heading>span{font-size:9px}}
@media(max-height:600px) and (orientation:landscape){.game-screen{grid-template-rows:42px minmax(100px,1fr) 24px 190px 74px}.columns{height:120px}.piece-rack{gap:4px}.holding-rack .rack-heading h2{font-size:18px}.overflow-slot{height:44px}.action-button{height:64px}}
@media(max-height:600px) and (orientation:landscape){.game-screen{grid-template-rows:42px minmax(100px,1fr) 26px 150px 74px}.columns{height:120px}.piece-tile.queued{height:17px;min-height:17px}.action-button{height:64px}.piece-rack{padding-top:2px}.rack-heading h2{font-size:18px}.play-controls{padding:4px 0}.travelers{margin-top:4px}.game-wordmark{font-size:24px}.overflow-slot{height:50px;width:60px}}

/* Attract mode: a real, silent round under a neutral directional veil. */
#intro-canvas{z-index:0;opacity:1;filter:saturate(.7)}
body:not([data-playing=true])::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#eeede8fa 0%,#eeede8f2 30%,#e6e5e0c9 48%,#b6b8b34d 76%,#aeb2ad33 100%)}
.setup-screen{position:relative;z-index:2;width:min(640px,52%);max-width:none;margin:0;padding:26px 28px 24px}
.title-screen{text-align:left}.title-screen h1{font-size:clamp(40px,4.5vw,64px);letter-spacing:-2px}.title-screen p{font-size:19px}.title-doodle{height:20px;margin-bottom:8px}
.setup-sheet{gap:22px;padding:18px 0;background:transparent;border:0;border-radius:0;box-shadow:none;align-items:start}
.round-settings h2{font-size:25px;margin-bottom:15px}.picture-picker h2{font-size:22px}.reference-image{margin-top:10px}.round-settings .start-button{font-size:21px}
.setup-instructions{gap:15px;margin:10px 0 16px;padding:0;background:transparent}.setup-instructions strong{font-size:21px}.setup-footer{text-align:left}.setup-message{text-align:left}
@media(max-width:1050px){.setup-screen{width:53%;padding:24px}.setup-sheet{grid-template-columns:1fr;gap:20px}.picture-picker{display:grid;grid-template-columns:130px 1fr;gap:7px 14px;text-align:left;max-width:none;width:100%}.picture-picker>.eyebrow{grid-column:1/-1}.picture-picker .reference-image{grid-column:1;grid-row:2/6;margin:10px 0;align-self:start}.picture-picker h2,.picture-picker .gallery-picker,.picture-picker .generate-button,.picture-picker .upload-button{grid-column:2;margin:0}.picture-picker .tiny{grid-column:1/-1}.picture-picker h2{font-size:20px}.picture-picker .gallery-picker{font-size:10px}.setup-instructions{grid-template-columns:1fr;gap:8px}.setup-instructions strong{font-size:18px}.setup-instructions p{display:inline;margin-left:5px}}
@media(max-width:650px){.setup-screen{width:78%;padding:20px 16px}.title-screen h1{font-size:42px}.title-screen p{font-size:16px}.picture-picker{grid-template-columns:80px 1fr;gap:8px}.setup-sheet{padding-top:8px}.picture-picker .reference-image{padding:3px}.round-settings h2{font-size:23px}.setting select{font-size:11px}.setup-instructions{display:none}body:not([data-playing=true])::before{background:linear-gradient(90deg,#eeede8fa 0%,#eeede8ed 60%,#d0d2cd85 82%,#aeb2ad44 100%)}}
