@font-face{font-family:Caveat;src:url(/fonts/caveat-bold.ttf) format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Patrick Hand;src:url(/fonts/patrick-hand.ttf) format("truetype");font-weight:400;font-display:swap}:root{--ink:#294d74;--red:#ac493f;--paper:#f6f0df;--accent:#294d74;--accent-soft:#dbe5ed;font-family:Patrick Hand,Segoe Print,cursive;color:var(--ink);background:#e4d6b9;font-synthesis:none}html[data-team="1"]{--accent:#ac493f;--accent-soft:#f0dcd2}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}[hidden]{display:none!important}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.43;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px dashed var(--red);outline-offset:4px}button:not(:disabled):active{transform:translateY(1px)}.doodle{display:inline-block;width:25px;height:25px;vertical-align:middle;flex:none}.game-shell{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;background:#ded2b8}#scene{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none;outline:none}.game-top{position:absolute;z-index:3;top:max(14px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;pointer-events:none}.hud-button{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;min-height:45px;min-width:45px;color:var(--ink);background:#faf3e0ef;border:1.6px solid var(--ink);border-radius:4px 8px 3px 6px;box-shadow:2px 3px #294d7424;font-size:18px;pointer-events:auto}.hud-button:last-child{transform:rotate(1deg)}.score-strip{justify-self:center;width:min(280px,100%);display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:55px;padding:7px 15px;background:#fff3cfef;border:1.5px solid #9c9676;border-radius:3px 7px 3px 5px;box-shadow:2px 3px #796d4e22;transform:rotate(-.5deg)}.score-strip>span{display:flex;gap:10px;align-items:center;white-space:nowrap;font-size:19px}.score-strip b{font:700 34px/.9 Caveat,cursive}.blue{color:var(--ink)}.red{color:var(--red)}.score-strip>.score-target{display:block;text-align:center;font-size:13px;line-height:1;color:#7c7866}.score-target>b{display:block;font-size:24px;color:#7c7866;margin-top:3px}.game-status{position:absolute;z-index:2;top:88px;left:50%;transform:translate(-50%) rotate(-.5deg);width:max-content;max-width:calc(100% - 32px);padding:5px 14px;background:#faf3e0e8;border:1px solid #8c8a735c;border-radius:3px 6px 2px 4px;font-size:17px;color:var(--accent);pointer-events:none;text-align:center}.phase-panel{position:absolute;z-index:3;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));width:360px;max-width:calc(100% - 36px);background:#fbf6e8f2;border:1.8px solid var(--accent);border-radius:4px 11px 3px 7px;box-shadow:4px 4px #294d7420;padding:17px 20px}.setup-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}h1{font:700 36px/1 Caveat,cursive;color:var(--accent);margin:10px 0 12px}.setup-heading h1{font-size:29px;margin:0}.player-count{font:700 28px/1 Caveat,cursive;color:var(--accent);white-space:nowrap}p{color:#5b665f;font-size:18px;line-height:1.35;margin:0}.setup-note{font-size:16px;margin:7px 0 12px}.setup-actions{display:flex;gap:9px;align-items:center}.setup-actions button{width:auto;min-height:42px;margin:0;padding:8px 10px}.setup-actions .primary{flex:1}.setup-actions .secondary .doodle{width:21px;height:21px}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:11px 14px;min-height:44px;border:1.7px solid var(--accent);border-radius:4px 9px 3px 7px/7px 3px 9px 4px;font-size:19px;line-height:1.15;color:var(--accent)}.primary{background:var(--accent-soft);box-shadow:2px 3px 0 var(--accent);margin-top:18px}.secondary{background:#f8f3e4bf;border-width:1.3px;border-style:dashed;margin-top:11px;font-size:18px}.centre-panel{top:50%;left:50%;bottom:auto;transform:translate(-50%,-50%) rotate(-1deg);width:370px;text-align:center;padding:23px 27px;max-height:calc(100dvh - 150px);overflow:auto}.eyebrow{font:700 23px/1.1 Caveat,cursive;color:#7c7d6d}.coin{margin:17px auto;color:#9c7c2e;transform:rotate(12deg)}.coin>.doodle{width:85px;height:85px;stroke-width:.8}.toss-actions{display:grid;grid-template-columns:1fr 1fr;gap:15px;align-items:end}.toss-actions .primary,.toss-actions .secondary{margin-top:20px}.winner-doodle{color:#a0802e;transform:rotate(-7deg);margin-top:12px}.winner-doodle>.doodle{width:69px;height:69px;stroke-width:1}.board-bottom{position:absolute;z-index:2;bottom:max(17px,env(safe-area-inset-bottom));left:20px;right:20px;text-align:center;pointer-events:none}.board-bottom span{display:inline-block;background:#faf3e0e8;border:1px solid #8c8a7350;border-radius:3px 7px 2px 5px;padding:6px 14px;font-size:17px;line-height:1.25}.game-shell[data-phase=setup] .board-bottom{display:none}.gesture-hud{position:absolute;z-index:4;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%) rotate(-.5deg);width:min(430px,calc(100% - 28px));padding:12px 15px 10px 10px;display:flex;align-items:center;gap:10px;color:var(--accent);background:#fbf6e8f5;border:1.8px solid var(--accent);border-radius:3px 10px 3px 6px;box-shadow:3px 4px #294d742a;pointer-events:none}.gesture-drawing{width:63px;flex:none}.pen-meter{display:block;width:63px;height:72px;overflow:visible}.meter-arc{opacity:.45}.steer-pen{transform-origin:36px 66px;transform:rotate(var(--pen-angle,0deg)) scaleY(var(--pen-scale,1));transition:transform .05s linear}.eraser-doodle{display:none}.gesture-copy{flex:1;min-width:0}.gesture-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;line-height:1.1}.gesture-heading b{font:700 24px Caveat,cursive}.gesture-heading>span{font:700 25px Caveat,cursive}.drag-track{height:11px;position:relative;overflow:hidden;margin-top:8px;background:repeating-linear-gradient(90deg,transparent 0 18px,#294d7450 18px 19px);border:1.6px solid var(--accent);border-radius:3px 5px 3px 2px;transform:rotate(-.5deg)}.drag-track i{display:block;height:100%;width:0;background:repeating-linear-gradient(115deg,transparent 0 2px,var(--accent) 2px 4px);background-color:color-mix(in srgb,var(--accent) 25%,transparent);transition:width .04s linear}.gesture-hud p{font-size:15px;line-height:1.2;margin-top:7px}.cancel-rail{position:absolute;z-index:3;left:15px;right:15px;border-top:2px dashed var(--red);pointer-events:none;text-align:center;transform:rotate(-.15deg)}.cancel-rail span{position:relative;top:-30px;display:inline-block;background:#fbecddf5;color:var(--red);border:1.3px solid var(--red);border-radius:4px 2px 5px;padding:3px 12px;font-size:16px;transform:rotate(1deg)}.gesture-hud.cancel-ready{color:var(--red);border-color:var(--red);background:#f9eadff7}.cancel-ready .pen-meter{display:none}.cancel-ready .eraser-doodle{display:block;text-align:center;transform:rotate(-13deg)}.eraser-doodle>.doodle{width:49px;height:49px}.is-dragging .board-bottom{display:none}.toast{position:absolute;z-index:5;left:50%;top:35%;transform:translate(-50%,-50%) rotate(-2deg);width:max-content;max-width:calc(100% - 32px);padding:14px 24px;background:#fff5ca;border:1.7px solid var(--ink);border-radius:3px 7px 4px 2px;box-shadow:4px 4px #294d7428;text-align:center;pointer-events:none;font:700 30px/1.05 Caveat,cursive;opacity:0;transition:opacity .15s}.toast.show{opacity:1}.menu-overlay{position:absolute;z-index:10;inset:0;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;background:#524c3b70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:20px max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom))}.menu-paper{position:relative;width:min(460px,100%);min-width:0;max-width:100%;max-height:calc(100dvh - 40px);overflow:auto;padding:21px 26px 24px;background:var(--paper);background-image:repeating-linear-gradient(0deg,transparent 0 30px,#728fa51a 30px 31px);border:1.8px solid var(--ink);border-radius:5px 3px 10px 2px;box-shadow:6px 6px #294d7438;scrollbar-width:thin;scrollbar-color:#b6b39e transparent}.menu-head{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px dashed #8c8a735c;margin-bottom:19px;padding-bottom:12px}.brand{display:flex;align-items:center;gap:8px;font:700 34px/1 Caveat,cursive;transform:rotate(-2deg)}.brand>.doodle{width:29px;height:29px}.close-button{width:39px;height:39px;color:var(--ink);background:transparent;border:1.3px solid var(--ink);border-radius:45% 52% 46% 55%;font:700 33px/1 Caveat,cursive}.menu-paper h1{font-size:38px}.menu-options .primary{margin-top:10px}.menu-options .secondary{margin-top:9px;min-height:41px}.menu-footnote{margin-top:18px;font-size:15px;color:#7c7d6d;line-height:1.4}.text-button{border:0;background:transparent;color:var(--ink);padding:3px 0 6px;font-size:18px;text-decoration:underline;text-decoration-style:wavy;text-decoration-thickness:1px;text-underline-offset:3px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.settings-grid label{display:flex;flex-direction:column;gap:7px;color:var(--accent);font-size:19px}input[type=number],select{border:1.5px solid var(--ink);border-radius:3px 6px 3px 4px;background:#fff9e9;color:var(--ink);padding:8px 11px;min-height:44px;font-size:20px;max-width:100%}.settings-grid input{width:100%;font:700 29px Caveat,cursive}.settings-grid small{font-size:14px;color:#7c7d6d}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:18px;margin-bottom:19px}.check-setting{display:flex;align-items:center;gap:10px;font-size:18px;line-height:1.25;margin:17px 0}.check-setting small{font-size:14px;color:#7c7d6d}.check-setting input{width:21px;height:21px;accent-color:var(--accent);flex:none}.settings-warning{font-size:16px;color:var(--red);padding:9px 0;border-top:1px dashed #8c8a735c}.help-notes section{margin:19px 0}.help-notes h2{font:700 26px/1.1 Caveat,cursive;color:var(--accent);margin:0 0 7px}.help-notes p{font-size:18px}.stats-table{border-collapse:collapse;width:100%;margin:20px 0}.stats-table th,.stats-table td{text-align:center;padding:12px 7px;border-bottom:1px dashed #8c8a735c;font-size:23px;font-weight:400}.stats-table th:first-child{text-align:left;font-size:18px}.stats-table thead th{font:700 29px Caveat,cursive}.last-event{margin:18px 0;color:#7c7d6d;font-size:17px}@media(max-width:600px){.game-top{top:max(11px,env(safe-area-inset-top));left:max(11px,env(safe-area-inset-left));right:max(11px,env(safe-area-inset-right));gap:10px}.hud-button{min-width:43px;min-height:43px;padding:9px}.hud-button>span{display:none}.hud-button .doodle{width:24px;height:24px}.score-strip{padding:8px 12px;min-height:49px;gap:8px}.score-strip>span{font-size:17px;gap:7px}.score-strip b{font-size:30px}.score-strip>.score-target{font-size:12px}.score-target>b{font-size:22px}.game-status{top:max(75px,calc(env(safe-area-inset-top) + 63px));font-size:15px;padding:5px 11px}.phase-panel{left:12px;bottom:max(13px,env(safe-area-inset-bottom));width:calc(100% - 24px);max-width:none;padding:12px 15px}.setup-heading h1,.player-count{font-size:26px}.setup-note{font-size:15px;margin:6px 0 10px}.setup-actions{gap:8px}.setup-actions button{padding:8px;min-height:42px;font-size:17px}.setup-actions .primary .doodle{width:19px}.centre-panel{left:50%;bottom:auto;max-width:calc(100% - 32px);width:350px;padding:21px}.centre-panel h1{font-size:33px}.coin>.doodle{width:64px;height:64px}.board-bottom{bottom:max(13px,env(safe-area-inset-bottom));left:14px;right:14px}.board-bottom span{font-size:15px;padding:6px 10px}.gesture-hud{bottom:max(13px,env(safe-area-inset-bottom));padding:9px 11px 8px 6px;gap:7px}.gesture-drawing{width:49px}.pen-meter{width:49px;height:62px}.gesture-heading b{font-size:21px}.gesture-heading>span{font-size:23px}.gesture-hud p{font-size:14px}.cancel-rail span{font-size:14px;top:-27px}.toast{font-size:27px;padding:12px 18px}.menu-overlay{padding:12px}.menu-paper{padding:17px 21px 22px;max-height:calc(100dvh - 24px)}.menu-paper h1{font-size:34px}.menu-head{margin-bottom:15px}.menu-footnote{font-size:14px}.check-setting{font-size:17px;gap:9px}.check-setting small{font-size:12px}}@media(max-height:520px)and (min-width:601px){.phase-panel{padding:11px 15px}.game-status{top:78px}.centre-panel{max-height:calc(100dvh - 105px)}.menu-paper{max-height:calc(100dvh - 24px);padding:15px 24px}.menu-overlay{padding:12px}}@media(prefers-reduced-motion:reduce){.steer-pen,.drag-track i,.toast{transition:none}}.shot-clock{position:absolute;z-index:3;top:122px;left:50%;transform:translate(-50%) rotate(-3deg);background:var(--paper);color:var(--ink);border:1.5px dashed currentColor;border-radius:48% 45% 50% 42%;padding:4px 12px;font:700 25px Caveat,cursive;pointer-events:none}.shot-clock.urgent{color:var(--red);border-style:solid}.event-note{position:absolute;z-index:3;top:171px;left:50%;transform:translate(-50%);max-width:90%;font-size:17px;color:var(--ink);text-align:center;pointer-events:none}.toast strong,.toast small{display:block}.toast strong{font-size:58px}.toast small{font:23px Patrick Hand,cursive;margin-top:9px}.goal-stars{display:block;letter-spacing:18px;color:var(--red)}.toast.show{animation:goal-pop 2.4s ease-out both}@keyframes goal-pop{0%{opacity:0;transform:translate(-50%,-50%) rotate(-14deg) scale(.4)}12%{opacity:1;transform:translate(-50%,-50%) rotate(4deg) scale(1.12)}23%,85%{opacity:1;transform:translate(-50%,-50%) rotate(-2deg) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(3deg) scale(.95)}}@media(max-width:600px){.shot-clock{top:112px;font-size:22px}.event-note{top:155px;font-size:15px}.setting-row input[type=number]{width:95px}.toast strong{font-size:45px}}@media(prefers-reduced-motion:reduce){.toast.show{animation:none}}button{transition:translate .12s ease,box-shadow .12s ease,background-color .15s ease}@media(hover:hover){button:not(:disabled):hover{translate:0 -2px}}button:not(:disabled):active{translate:0 2px}.menu-overlay:not([hidden]) .menu-paper{animation:paper-in .23s cubic-bezier(.2,.8,.2,1)}.menu-options button{animation:ink-in .2s ease-out both}.menu-options button:nth-child(2){animation-delay:25ms}.menu-options button:nth-child(3){animation-delay:.05s}.menu-options button:nth-child(4){animation-delay:75ms}.phase-panel:not([hidden]),.gesture-hud:not([hidden]){animation:paper-in .2s ease-out}.coin{animation:coin-wobble 1.6s ease-in-out infinite}.shot-clock.urgent{animation:clock-beat 1s ease-in-out infinite}#score-blue,#score-red{display:inline-block}input[type=range]{width:145px;max-width:48%;accent-color:var(--accent)}@keyframes paper-in{0%{opacity:0;translate:0 10px;scale:.98}to{opacity:1;translate:0 0;scale:1}}@keyframes ink-in{0%{opacity:0;translate:-5px 0}to{opacity:1;translate:0 0}}@keyframes coin-wobble{0%,to{rotate:-5deg}50%{rotate:7deg}}@keyframes clock-beat{0%,to{scale:1}18%{scale:1.09}}@media(prefers-reduced-motion:reduce){button{transition:none}.menu-overlay:not([hidden]) .menu-paper,.menu-options button,.phase-panel:not([hidden]),.gesture-hud:not([hidden]),.coin,.shot-clock.urgent{animation:none}}.start-title{font-size:48px!important;transform:rotate(-1.5deg)}.advanced-settings{margin-top:18px;border-top:1px dashed #8c8a735c;padding-top:10px}.advanced-settings summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:19px;color:var(--accent);min-height:40px}.advanced-settings summary::-webkit-details-marker{display:none}.advanced-settings summary .doodle{width:22px;height:22px}.advanced-settings summary:after{content:"+";margin-left:auto;font:700 28px/1 Caveat,cursive}.advanced-settings[open] summary:after{content:"–"}.advanced-settings .settings-grid{margin-top:12px}.advanced-settings[open] form{animation:ink-in .2s ease-out both}@media(max-width:600px){.start-title{font-size:40px!important}}.room-badge{position:absolute;z-index:4;bottom:17px;left:16px;padding:7px 11px;background:var(--paper);border:1.4px dashed var(--accent);border-radius:5px 3px 7px 2px;color:var(--accent);font-size:16px}.room-form{margin:20px 0}.room-form label,.invite-label{display:block;font-size:18px;margin-top:16px}.join-row{display:flex;gap:10px;align-items:center;margin-top:8px}.join-row input{width:55%;min-width:0;letter-spacing:4px;text-transform:uppercase;font:700 29px Caveat,cursive;padding:9px;border:1.5px solid var(--ink);background:#fff9e9;color:var(--ink);border-radius:4px}.join-row .primary{width:auto;margin:0;flex:1}.room-error{min-height:20px;color:var(--red);font-size:16px;margin:10px 0}.invite-label input{width:100%;padding:9px;border:1.4px solid var(--ink);border-radius:4px;background:#fff9e9;color:var(--ink);font-size:15px;margin-top:8px}.invite-tools{display:flex;gap:10px}.invite-tools button{flex:1}#invite-qr{display:block;margin:15px auto;border:1px dashed var(--ink)}.game-shell[data-online=true] .event-note{top:171px}@media(max-width:600px){.room-badge{bottom:60px;left:12px;font-size:14px;padding:5px 9px}.game-shell[data-online=true] .event-note{top:155px}.game-shell[data-online=true][data-phase=setup] .room-badge{bottom:auto;top:117px;left:50%;transform:translate(-50%);white-space:nowrap}.join-row input{font-size:26px}.invite-tools button{font-size:16px}}.game-shell[data-online=true][data-phase=setup] .room-badge{bottom:auto;top:130px;left:50%;transform:translate(-50%);white-space:nowrap}@media(max-width:600px){.game-shell[data-online=true][data-phase=setup] .room-badge{top:117px}}
