*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}html{color:#183447;background:#eaf7fb;font-family:system-ui,sans-serif}#app{touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}#game,#ui{position:absolute;inset:0}#ui{pointer-events:none}#safe-insets{visibility:hidden;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);position:absolute}#hud,#deck{position:absolute}#hud{flex-direction:column;justify-content:center;align-items:stretch;gap:6px;display:flex}.goal{background:#fff8ea;border:3px solid #d94146;border-radius:16px;padding:8px 12px;font-size:22px;box-shadow:0 4px #bfdde8}.status{text-align:right;font-size:14px;font-weight:700}#deck{direction:ltr;justify-content:center;align-items:center;gap:16px;display:flex}.router-button,.reserved{width:var(--hit);height:var(--hit);flex-shrink:0}.router-button{pointer-events:auto;color:#fff;cursor:pointer;background:0 0;border:0;padding:4px;font-size:34px;font-weight:900;position:relative}.router-button:before{content:"";background:linear-gradient(#f16c64,#c92f3c);border:4px solid #fff8ea;border-radius:50%;position:absolute;inset:4px;box-shadow:0 4px #84303c}.router-button span,.router-button small{z-index:1;position:relative}.router-button small{font-size:18px;line-height:18px;display:block}.router-button:focus-visible{border-radius:18px;outline:3px solid #183447}#loading{background:#eaf7fb;place-items:center;font-size:24px;font-weight:800;display:grid;position:absolute;inset:0}.router-button{flex-direction:column;justify-content:center;align-items:center;gap:0;line-height:1;display:flex}.router-button span{font-size:calc(var(--hit)*.37)}.router-button small{font-size:18px;line-height:18px}#hud{justify-content:flex-start}#goals{gap:4px;display:grid}.goal{padding:5px 10px;font-size:18px}#pause{color:#183447;pointer-events:auto;cursor:pointer;background:#fff8ea;border:2px solid #bfdde8;border-radius:10px;align-self:flex-end;width:48px;min-height:32px;font-size:18px}#modal{pointer-events:auto;background:#18344755;place-items:center;display:grid;position:absolute;inset:0}#modal[hidden]{display:none}.modal-card{text-align:center;background:#fff8ea;border:4px solid #d94146;border-radius:24px;max-width:calc(100% - 32px);max-height:calc(100% - 24px);padding:20px;overflow:auto}.modal-card button{color:#fff;cursor:pointer;background:#d94146;border:0;border-radius:14px;min-width:64px;min-height:48px;margin:6px;font-size:24px}.hint:before{animation:.65s infinite alternate pulse}.pressed:before{animation:70ms ease-out press}@keyframes pulse{to{box-shadow:0 0 0 5px #ffd166}}@keyframes press{0%{transform:scale(.94)}to{transform:scale(1)}}html[data-layout=portrait] #hud{grid-template-rows:auto 36px;grid-template-columns:minmax(0,1fr) 124px;gap:4px 8px;display:grid}html[data-layout=portrait] #goals{grid-area:1/2/3;align-content:start}html[data-layout=portrait] .status{text-align:left;flex-wrap:wrap;grid-area:1/1;gap:3px;font-size:12px;display:flex}html[data-layout=portrait] #pause{grid-area:2/1;justify-self:start}#ready{background:#fff8ea;border-radius:20px;padding:12px;font-size:44px;position:absolute;top:45%;left:50%}#ready[hidden]{display:none}.settings label{justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex}.settings input{width:24px;height:24px}.level-grid{grid-template-columns:repeat(5,1fr);display:grid}.level-grid button{min-width:36px;margin:3px;font-size:18px}.modal-card button{font-size:18px}.modal-card button:disabled{opacity:.4;cursor:default}.reduced-motion *{animation:none!important}.save-warning{font-size:13px}.goal.blue{color:#1b64ac}.goal.green{color:#207445}.modal-card{overscroll-behavior:contain;touch-action:pan-y;overflow-wrap:anywhere;width:min(440px,100% - 32px);padding:16px}.modal-card h2{margin:0 0 8px;font-size:24px}.modal-card p{margin:8px 0;font-size:14px}.modal-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.modal-actions button{min-height:48px;margin:0;padding:8px;font-size:16px;line-height:1.25}.modal-actions #primary{background:#238657;grid-column:1/-1}.settings{text-align:start;margin-top:12px;font-size:16px}.settings label{gap:12px}.settings input{flex-shrink:0}.language{flex-wrap:wrap}.language select{background:#fff;border:2px solid #bfdde8;border-radius:8px;max-width:100%;min-height:44px;padding:6px;font-size:16px}.level-grid{margin-top:12px}.level-grid button{min-height:48px;padding:2px;font-size:16px}#pause{height:48px;min-height:48px}html[data-layout=portrait] #hud{grid-template-rows:auto 48px}.goal{white-space:nowrap;align-items:center;gap:7px;padding:6px;font-size:16px;display:flex}.goal-icon{font-size:23px;line-height:1.1}.goal b{font-variant-numeric:tabular-nums}.settings span{flex:1}#ready{z-index:1;background:#fff8ead9;font-size:24px;transform:translate(-50%)}.router-button:disabled{cursor:default}#modal{z-index:20}.modal-card{position:relative}.menu-open>.modal-actions,.menu-open>p{display:none}.menu-open h2{justify-content:center;align-items:center;min-height:40px;padding-inline:48px;font-size:20px;display:flex}#menu-back{color:#183447;background:#e2edf0;width:40px;min-width:40px;min-height:40px;margin:0;font-size:22px;position:absolute;top:8px;left:10px}.menu-open .settings{margin-top:0}.goal{background:linear-gradient(#fffdf5,#fff8ea) padding-box padding-box,repeating-linear-gradient(45deg,#d94146 0 8px,#fff8ea 8px 16px) border-box;border:4px solid #0000;position:relative;box-shadow:0 4px #bfdde8}.goal-icon{align-items:center;display:flex}.goal-icon img{width:28px;height:28px}.router-button:before{box-shadow:0 5px #842f3c,inset 0 3px #ffa990}.router-button small{font-weight:900}.router-button:active:before{transform:translateY(3px);box-shadow:0 2px #842f3c}.status{color:#315564}#pause{background:#fffdf5;border-color:#bfdde8;box-shadow:0 2px #bfdde8}.goal{animation:.12s ease-out goal-in}@keyframes goal-in{0%{transform:scale(1.04)}to{transform:scale(1)}}#modal[data-state=LEVEL_COMPLETE] h2{color:#238657;animation:.8s ease-out celebrate}@keyframes celebrate{0%{transform:scale(.86)}35%{transform:scale(1.08)}to{transform:scale(1)}}#deck{background:0 0;border:10px solid #0000;border-image:url(../assets/art/christmas/control-panel.webp) 65 fill;gap:16px}.router-button{isolation:isolate;background:url(../assets/art/christmas/button-red.webp) 50%/contain no-repeat;padding:0}.router-button[data-router="2"]{background-image:url(../assets/art/christmas/button-purple.webp)}.router-button:before{background:var(--router-color);box-shadow:none;border:0;border-radius:50%;inset:15%}.router-button small{font-size:calc(var(--hit)*.46);color:#fff;font-family:Arial,sans-serif;font-weight:900;line-height:1;transform:translateY(-1px)}.router-button:active:before{box-shadow:none;transform:scale(.96)}.router-button.pressed small{animation:70ms ease-out press}.goal{box-shadow:none;color:#183447;background:0 0;border:8px solid #0000;border-image:url(../assets/art/christmas/panel.webp) 60 fill;gap:5px;padding:2px 4px}.goal-icon img{object-fit:contain;width:30px;height:30px}.goal.red{color:#a22630}.goal.yellow{color:#715100}.goal.black{color:#252e3d}.modal-card{background:0 0;border:18px solid #0000;border-image:url(../assets/art/christmas/panel.webp) 64 fill}.modal-card button:not(#menu-back){color:#402a15;background:#bd8b46 url(../assets/art/christmas/menu-button.webp) 50%/100% 100% no-repeat;border-radius:12px}.modal-actions #primary{background-color:#bd8b46}#goals:after{content:"";pointer-events:none;background:url(../assets/art/christmas/holly.webp) 50%/contain no-repeat;width:24px;height:24px;position:absolute;top:-8px;right:-5px}#goals{position:relative}.modal-card button:not(#menu-back){color:#402a15;background:0 0;border:8px solid #0000;border-image:url(../assets/art/christmas/menu-button.webp) 28 fill}
