:root{--ink:#192b32;--muted:#5b6b70;--paper:#f5f4ee;--yellow:#ffc947;--line:#d9ded9;--mint:#d7e6df;--red:#b93e31;--white:#fffefa;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,canvas:focus-visible,input:focus-visible{outline:3px solid #087d89;outline-offset:4px}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(2px)}button:hover:not(:disabled){filter:brightness(.96)}[hidden]{display:none!important}.app{max-width:1440px;margin:auto;padding:0 48px}.header{height:102px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:12px;line-height:1.35;letter-spacing:1.8px;font-weight:700}.brand strong{font-size:16px;letter-spacing:1px}.brand-mark{display:grid;place-items:center;background:var(--yellow);width:43px;height:46px;font-size:36px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.header-note,.eyebrow,.stage-tag,.section-heading>span,legend,footer,.item-caption>span,.queue>span,.label-tape,.stat>span{font-family:'Courier New',monospace;font-weight:700;font-size:12px;letter-spacing:1.1px}.header-note{color:var(--ink)}.header h1{margin:0;font-size:20px;letter-spacing:-.5px;line-height:1.2}.header-actions{display:flex;gap:10px}.icon-button{height:40px;min-width:40px;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:20px}.eyebrow{color:var(--muted)}h2{margin:0}.game-layout{margin-top:24px;display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px}.play-panel{display:grid;grid-template-rows:auto minmax(min-content,1fr) auto;border:1px solid var(--ink);border-radius:8px;overflow:hidden;background:var(--white)}.scoreboard{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;background:var(--white);gap:16px}.stat{min-width:90px}.stat>span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.stat strong{font-size:29px;font-variant-numeric:tabular-nums;letter-spacing:-1px}.stat strong small{font-size:16px;font-weight:500;letter-spacing:0}.timer-stat{text-align:center;width:130px}.time-track{height:3px;background:#e9e8df;margin-top:7px}.time-track i{display:block;width:100%;height:100%;background:var(--ink)}.timer-stat.urgent{color:var(--red)}.timer-stat.urgent .time-track i{background:var(--red)}.losses{text-align:right}.losses strong{font-size:25px;letter-spacing:3px;color:var(--red)}.stage{display:grid;position:relative;min-height:clamp(360px,52vh,590px);overflow:hidden;background:#d9e9e8}.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.stage-tag{position:absolute;top:17px;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none;font-size:10px;color:#4c666b;letter-spacing:.6px}.stage-tag span:first-child{color:var(--ink);border:1px solid #91a7a5;padding:5px 7px}.stage-tag span:last-child{padding:6px 0}.overlay{position:relative;inset:0;background:#dbe8e365;display:grid;place-items:center;padding:18px}.intro-card{width:360px;max-width:100%;background:var(--white);border:1.5px solid var(--ink);padding:30px;box-shadow:7px 7px 0 #192b3220;transform:rotate(-1deg)}.label-tape{display:inline-block;background:var(--yellow);padding:7px 10px;font-size:10px;transform:rotate(-2deg);margin-bottom:17px}.intro-card h2{font-size:44px;line-height:.99;letter-spacing:-2px}.intro-card p{font-size:14px;line-height:1.6;color:var(--muted);margin:17px 0}.intro-card b{color:var(--ink)}.intro-rules{display:flex;flex-direction:column;gap:8px;margin:18px 0;font-size:13px}.primary{width:100%;display:flex;justify-content:space-between;align-items:center;padding:15px 17px;background:var(--yellow);border:1.5px solid var(--ink);font-weight:700;border-radius:3px;box-shadow:0 3px 0 var(--ink);font-size:15px}.primary span{font-size:22px}.intro-card .fine{font-size:11px;margin:14px 0 0;text-align:center}.control-bar{display:flex;align-items:center;padding:14px 18px;gap:12px;border-top:1px solid var(--ink)}.movement{display:flex;gap:5px}.movement button,.secondary{height:42px;background:var(--white);border:1px solid var(--line);border-radius:3px;font-size:14px}.movement button{width:40px;font-size:20px;touch-action:none}.secondary{padding:0 14px;display:flex;align-items:center;gap:9px}.secondary>span{font-size:22px}kbd{font-family:'Courier New',monospace;font-size:10px;border:1px solid #192b3230;padding:3px 5px;border-radius:3px}.drop-button{margin-left:auto;background:var(--yellow);border:1px solid var(--ink);height:42px;min-width:165px;border-radius:3px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:12px}.sidebar{display:flex;flex-direction:column;gap:20px}.dispatch{background:#e9eee7;border:1px solid var(--line);border-radius:6px;padding:20px}.section-heading{display:flex;justify-content:space-between;align-items:center}.section-heading h2{font-size:15px}.section-heading>span{font-size:10px;color:var(--muted)}#next-item{display:block;width:100%;height:125px}.item-caption strong{display:block;font-size:15px;margin:0 0 8px}.item-caption>span{display:block;font-size:10px;color:var(--muted);letter-spacing:.3px}.queue{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #ccd5ca;margin-top:20px;padding-top:15px}.queue>span{font-size:9px;letter-spacing:0}.queue strong{font-size:11px}.record{padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.record .eyebrow{font-size:10px}.record>div{display:flex;gap:9px;align-items:baseline;margin-top:8px}.record strong{font-size:41px;letter-spacing:-2px;font-variant-numeric:tabular-nums}.record div>span{font-size:13px;color:var(--muted)}.record div .record-icon{margin-left:auto;font-size:34px;color:var(--ink)}.record p{margin:5px 0 0;font-size:12px;color:var(--muted)}fieldset{border:0;padding:0;margin:0}legend{font-size:10px;color:var(--muted);margin-bottom:11px}.mode-select label{display:flex;align-items:center;gap:9px;cursor:pointer;margin-bottom:15px}.mode-select input{accent-color:var(--ink);width:16px;height:16px}.mode-select span{font-size:14px;font-weight:700}.mode-select small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:5px}.tip{display:flex;gap:12px;margin-top:auto}.tip>span{font-size:30px}.tip p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.tip b{color:var(--ink)}footer{display:flex;justify-content:space-between;gap:20px;color:var(--muted);padding:23px 0;font-size:10px;letter-spacing:.3px}.mobile-hint{display:none}.toast{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);padding:11px 18px;background:var(--ink);color:white;border-radius:4px;font-size:14px;pointer-events:none;opacity:0;transition:opacity .2s;white-space:nowrap}.toast.show{opacity:1}dialog{color:var(--ink);background:var(--white);border:1px solid var(--ink);border-radius:8px;padding:35px;max-width:480px;width:calc(100% - 30px)}dialog::backdrop{background:#192b3299;backdrop-filter:blur(3px)}dialog h2{font-size:30px;letter-spacing:-1px;margin:18px 0}dialog li,dialog p{font-size:14px;line-height:1.7}dialog ol{padding-left:20px}dialog li{margin-bottom:8px}dialog p{color:var(--muted)}.close{float:right}.result-score{font-size:60px!important;color:var(--ink)!important;font-weight:800;letter-spacing:-3px;margin:15px 0!important}.result-score small{font-size:24px;letter-spacing:0}
@media(min-width:1500px){.stage{min-height:590px}}
@media(max-width:1000px){.app{padding:0 24px}.game-layout{grid-template-columns:minmax(0,1fr) 220px;gap:20px}.dispatch{padding:16px}.control-bar{gap:8px;padding:12px}.movement{display:none}.intro-card{padding:24px}.stage{min-height:480px}}
@media(max-width:720px){.app{padding:0 16px}.header{height:77px}.header-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.brand{font-size:10px}.brand strong{font-size:13px}.brand-mark{width:35px;height:38px;font-size:28px}.game-layout{margin-top:16px;grid-template-columns:1fr;gap:20px}.stage{min-height:clamp(350px,51svh,530px)}.scoreboard{padding:13px 17px}.stat{min-width:70px}.stat strong{font-size:25px}.stat>span{font-size:10px}.stat.losses strong{font-size:23px}.stage-tag{left:12px;right:12px;top:10px;font-size:9px}.stage-tag span:last-child{font-size:8px}.intro-card{width:310px;padding:23px}.intro-card h2{font-size:36px}.intro-card p{margin:12px 0;font-size:13px}.intro-rules{gap:5px;margin:12px 0;font-size:12px}.label-tape{margin-bottom:12px}.control-bar kbd{display:none}.movement{display:flex}.movement button{width:32px}.secondary{padding:0 10px;font-size:12px;gap:5px}.drop-button{min-width:94px;flex:1;gap:8px;font-size:14px}.control-bar .icon-button{min-width:34px;width:34px;height:34px}.control-bar{gap:7px;padding:10px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:15px}.dispatch{grid-row:span 2}.section-heading>span{display:none}.section-heading h2{font-size:13px}#next-item{height:85px}.item-caption strong{font-size:13px}.queue{flex-wrap:wrap;gap:8px}.queue>span:last-child{display:none}.record{padding:10px 0}.record strong{font-size:33px}.record p{font-size:11px}.record .eyebrow{font-size:9px;letter-spacing:.2px}.record div .record-icon{font-size:24px}.mode-select span{font-size:12px}.mode-select small{font-size:10px}.mode-select label{gap:5px;margin-bottom:12px}.mode-select input{margin-left:0}.tip{grid-column:1/-1;align-items:center}.tip p br{display:none}.tip p b{display:block}.tip p{font-size:12px}footer{flex-direction:column;gap:8px;padding-top:20px}.desktop-hint{display:none}.mobile-hint{display:block}}
@media(max-width:370px){.control-bar .movement{display:none}.stage-tag span:last-child{display:none}}
.auto-crane-label{font-size:12px;color:var(--muted);white-space:nowrap}
@media(max-width:1000px){.auto-crane-label{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Sharing keeps the finished height and needs no form fields. */
.share-result{width:100%;height:auto;min-height:46px;justify-content:center;margin-top:13px;padding:12px;font-weight:700}
#share-dialog{max-height:calc(100dvh - 24px);overflow-y:auto}#share-dialog h2{clear:both;padding-top:8px}#share-dialog .secondary{height:auto;min-height:46px;width:100%;justify-content:center;padding:12px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:700}
.share-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 12px}#share-copy{margin-top:12px}#share-status{min-height:40px;margin-bottom:0;font-size:13px}#share-manual{white-space:pre-wrap;overflow-wrap:anywhere;user-select:text;font-size:14px;line-height:1.5}
