/* Shared visual hierarchy with Ant Bead Trail: board + docks, then four queues. */
:root{--ink:#345b3d;--muted:#7b865b;--green:#537e3c;--paper:#edf0ce;font-family:"Segoe UI","Microsoft YaHei",system-ui,sans-serif}
body{background:radial-gradient(ellipse at 12% 15%,#81b89d80 0,transparent 36%),radial-gradient(ellipse at 88% 85%,#b9ca7580 0,transparent 40%),linear-gradient(160deg,#c4e1c2,#e7edc4 52%,#b8d1a5);background-attachment:fixed;color:var(--ink)}
.flow-app{max-width:640px;margin:auto;padding:0 20px}.flow-app .topbar{max-width:none;height:45px;padding:0 7px;gap:12px}.brand{display:flex;align-items:center;gap:8px;color:#345e43;font-size:14px;letter-spacing:-.35px;font-weight:850}.brand img{border-radius:8px}.brand small{display:block;color:#6e855f;font-size:9px;font-weight:500;letter-spacing:0;margin-top:2px}.top-actions{display:flex;gap:8px;align-items:center}.top-actions button,.top-actions #language{width:33px;height:33px;display:grid;place-items:center;padding:0;border:2px solid #faffdf;border-radius:50%;background:linear-gradient(#fffce6,#e8e9c3);box-shadow:0 3px 0 #89a174,0 4px 7px #48633420;color:#416741;font-weight:750;font-size:17px}.top-actions #language{font-size:10px}
.flow-app main{max-width:none;padding:0;margin:0}.game{height:calc(100dvh - 57px);max-height:1100px;min-height:0;background:none;border:0;box-shadow:none;padding:0;gap:8px;border-radius:0;overflow:visible}.stage-panel{display:flex;flex-direction:column;flex:1;min-height:0;padding:8px 15px 2px;border:3px solid #fffbe5;border-radius:27px;background:linear-gradient(160deg,#fcf5d9,#f1f5d9 60%,#e7efcd);box-shadow:0 5px 0 #98a57a,0 10px 25px #3e633a1b;overflow:hidden}.heading{gap:10px}.game-title{display:flex;align-items:center;gap:8px;min-width:0}.title-emblem{display:grid;place-items:center;width:34px;height:36px;flex:none;border:2px solid #fff9d4;border-radius:12px 12px 15px 15px;background:linear-gradient(#e0ecaa,#a4c987);box-shadow:0 3px 0 #90aa69;transform:rotate(-8deg)}.title-emblem svg{width:28px;height:28px}#flow-title{font-size:26px;white-space:nowrap;letter-spacing:-1px;line-height:1.2;font-weight:900;margin:0;text-shadow:0 2px #fffef1}.level-button{display:flex;align-items:center;gap:6px;flex:none;max-width:47%;padding:5px 8px 5px 5px;background:linear-gradient(#fff5c7,#f4dca1);border:2px solid #fff9dd;box-shadow:0 3px 0 #ccb277,0 4px 8px #9d8b5620;border-radius:13px;color:#775d35;font-size:11px}#level-number{height:27px;min-width:27px;display:grid;place-items:center;border:1px solid #d7bc79;border-radius:8px;background:#fff8da;font-size:13px;font-weight:850}.level-label{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left}#name{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px;font-weight:750}#dimensions{font-size:9px;color:#8b7d52;white-space:nowrap;margin:0}.progress-row{display:flex;align-items:center;justify-content:space-between;color:#7b855a;font-size:10px;margin:6px 0 4px;font-variant-numeric:tabular-nums}#percent{font-size:10px;color:#527b3d;font-weight:850}.track{height:8px;margin:0;border:2px solid #d3ddac;background:#cbd6ac;box-shadow:inset 0 2px 2px #70865230;border-radius:6px}.track i{background:repeating-linear-gradient(120deg,#87b454 0 8px,#99c461 8px 16px);box-shadow:inset 0 2px 0 #c3e48b}
.canvas-zone{display:flex;flex-direction:column;flex:1;min-height:0;margin:3px -4px 0}.scene{min-height:0;flex:1}.scene>canvas{position:absolute;inset:0;width:100%;height:100%}.belt-info{padding:1px 5px 5px;font-size:9px;min-height:17px;color:#8a926b}.belt-info #belt-count{color:#7b875b;font-weight:650}#belt-slots{gap:3px}#belt-slots i{height:7px;width:7px;background:#d4ddb8;border-color:#bccaa2;border-radius:2px}#belt-slots i.occupied{background:#e3b95d;border-color:#bf9d4c}#direction{font-size:8px;color:#9b9d75}
.dock-area{flex:none;padding:5px 5px 0;border-radius:14px 14px 10px 10px;background:linear-gradient(#e3cf95,#e9d9aa);box-shadow:inset 0 2px 0 #fff2c2,inset 0 -2px 0 #d2be87}.dock-area .section-label{margin:3px 1px 4px;gap:5px;color:#8b774b;font-size:9px}.dock-area .section-label #wait-note{color:#a09267;font-size:8px}.dock-area #wait-capacity{font-size:8px;color:#8b774b}.waiting{gap:5px;border:0;border-radius:0;background:none;padding:0;box-shadow:none}.waiting button{height:61px;min-height:44px;border:1px solid #cbb680;border-radius:10px;background:linear-gradient(#cabb8e,#e4d4a6);box-shadow:inset 0 3px 5px #76633a19,0 1px 0 #fff0c6;color:#b4a16b}.empty-marker{font-size:0;display:block;width:27px;height:34px;border:2px dashed #ac9c6966;border-radius:8px;position:relative}.empty-number{position:absolute;bottom:auto;top:50%;left:0;right:0;font-size:11px;transform:translateY(-50%);color:#a8966366;font-weight:800}.waiting .piece{background:linear-gradient(#dfd19e,#f3e5be);border:1px solid #bba66d;box-shadow:inset 0 2px #fff2c2}.waiting .piece::after{font-size:10px;bottom:2px;left:5px;color:#7f8e5b}.waiting .unit-art{width:35px;height:36px;margin-top:2px;transform:none}.waiting .ammo{font-size:15px;min-width:24px;width:auto;height:23px;left:calc(50% - 12px);right:auto;top:28px;border-radius:5px;border:1px solid #36523844;background:var(--color);color:var(--text);box-shadow:inset 0 2px #ffffff50;text-shadow:0 1px #0001}.waiting .color-code{display:none}.waiting .unit-eyes{top:10px}.waiting .unit-art::after{top:8px}.waiting .unit-art::before{left:11px}.game.wait-warning .waiting{background:none;border-color:transparent}.game.wait-warning .dock-area{background:linear-gradient(#e1bd7b,#f0d69e)}.game.wait-critical .waiting{border-color:transparent;box-shadow:none}.game.wait-critical .dock-area{box-shadow:inset 0 0 0 2px #bb9460}.stage-foot{display:flex;align-items:center;justify-content:center;gap:6px;min-height:22px;flex:none;text-align:center;color:#7c8b5c}.live-dot{height:5px;width:5px;background:#81a84c;box-shadow:0 0 0 3px #bed29555;border-radius:50%;flex:none}#message{display:block;background:none!important;min-height:0;height:auto;padding:0;margin:0;font-size:9px;color:#7b8b5e;line-height:1.5}.message-preview{color:#4c7c3e!important}
.control-panel{height:clamp(160px,22dvh,230px);display:flex;flex-direction:column;flex:none;min-height:0;position:relative;padding:8px 15px 7px;border:3px solid #fff4ce;border-radius:23px;background:linear-gradient(#f1dfaa,#e5cd95);box-shadow:0 5px 0 #b79960,0 8px 16px #54653414}.control-panel .section-label{min-height:15px;margin:0 0 5px;flex:none;font-size:12px;color:#877044}.control-panel #queue-note{font-size:9px;color:#a58d5d;margin-left:auto;margin-right:0}.control-panel #queue-top{padding:1px 5px;min-height:18px;font-size:9px;background:#fff4cf;border:0;border-radius:6px;color:#7a7044;margin-left:auto}.queues{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;flex:1;height:auto;min-height:0;align-items:start;padding:4px 2px 14px;overflow:auto;overflow-x:hidden;overflow-anchor:none;scrollbar-width:thin;scrollbar-color:#baa97d transparent;scrollbar-gutter:stable;touch-action:pan-y;overscroll-behavior:contain;mask-image:linear-gradient(#000 calc(100% - 9px),transparent)}.column{display:flex;flex-direction:column;gap:9px;min-width:0;overflow-anchor:none}.column::before,.column::after{display:none}.column button{height:74px;min-height:74px;flex:none;width:100%;margin:0;padding:0;background:color-mix(in srgb,var(--color) 14%,#fff6d2);border:1px solid color-mix(in srgb,var(--color) 50%,#c4ad73);box-shadow:inset 0 2px #fff9d4,0 2px #cbb986;border-radius:12px;position:relative;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.column .piece.ready{outline:2px solid #fff5d8;outline-offset:1px;z-index:1}.column .unit-art{width:46px;height:45px;margin:2px 0 0;transform:none;border-radius:12px;box-shadow:inset 0 3px #ffffff70,inset 0 -5px #0002,0 3px 3px #62482718}.column .unit-art::before{width:17px;left:15px;top:-7px}.column .unit-art::after{top:9px;left:8px;right:8px}.column .unit-eyes{top:11px;left:14px}.column .ammo{top:37px;left:calc(50% - 20px);right:auto;min-width:40px;height:26px;font-size:22px;border:1px solid #31482e35;border-radius:5px;background:var(--color);color:var(--text);text-shadow:0 1px #0001;box-shadow:inset 0 2px #ffffff55,0 1px #fff9}.column .color-code{font-size:7px;bottom:3px;right:4px;color:#9d906a}.column .shortcut{font-size:8px;top:4px;color:#9e8c60}.column .launch-label{display:none}.column .piece.locked{height:56px;min-height:56px;opacity:1;outline:0;box-shadow:inset 0 2px #fff7ce,0 1px #cbb986}.column .locked .unit-art{width:35px;height:32px;opacity:.9}.column .locked .unit-art::before{left:10px;height:9px;top:-5px}.column .locked .unit-art::after{top:5px}.column .locked .unit-eyes{top:7px;left:11px}.column .locked .ammo{top:26px;height:21px;min-width:30px;left:calc(50% - 15px);font-size:17px}.column .piece[aria-disabled=true]{background:color-mix(in srgb,var(--color) 12%,#eee7c6)}.piece.previewed{outline:3px solid #78924d!important;outline-offset:0!important;filter:brightness(1.05);box-shadow:0 3px #c2d18a}.piece[aria-disabled=false]:hover{border-color:color-mix(in srgb,var(--color) 70%,#a79461);box-shadow:0 3px #bda773;transform:translateY(-1px)}.stack-end{height:50px;display:grid;place-items:center;color:#acaa75;font-size:20px}.queue-depth{display:none}
.control-panel footer{padding:5px 0 0;margin:3px 0 0;min-height:29px;border-top:1px solid #c5af744d;display:flex;align-items:center;justify-content:space-between;gap:8px}.play-tools{display:flex;gap:6px;margin:0 auto}.control-panel footer button{min-height:26px;padding:5px 8px;font-size:10px;border:1px solid #d4c895;border-radius:10px;background:linear-gradient(#fffce8,#e9dfb3);box-shadow:0 2px 0 #bcaa74;color:#6f794a}.control-panel footer #pause{min-width:31px;background:linear-gradient(#fffce8,#e5e8bd);border-color:#ccd0a0;color:#64824a;box-shadow:0 2px 0 #a4ae78}.control-panel footer #speed{min-width:31px}#keyboard-tip{font-size:8px;color:#a99463;min-width:50px;text-align:right}#reset{white-space:nowrap}dialog{background:#fff7da;border:2px solid #fffbe7;box-shadow:0 20px 70px #23432640;color:#405b37}dialog::backdrop{background:#29442570}.dialog-heading button{background:#ebe5c5;color:#869063}.primary,.dialog-actions .primary,#resume{background:linear-gradient(#6b944e,#50763b);border-color:#709156;box-shadow:0 3px #3b5f31;color:#fff9dc}.setting-row{display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid #c1bd8f55}.setting-row>span{flex:1;min-width:0}.setting-row strong{display:block;font-size:13px;color:#48623d}.setting-row small{display:block;font-size:11px;line-height:1.65;color:#8a8b61;margin-top:5px}.setting-row input{appearance:none;-webkit-appearance:none;width:42px;height:25px;flex:none;position:relative;padding:0;border-radius:20px;background:#c5c7a9;border:1px solid #a6aa85}.setting-row input::after{content:'';position:absolute;width:19px;height:19px;border-radius:50%;left:2px;top:2px;background:#fffbe9;box-shadow:0 1px 3px #50603d40}.setting-row input:checked{background:#628d45;border-color:#587d40}.setting-row input:checked::after{transform:translateX(17px)}.setting-row #sound{font-size:11px;border:1px solid #c8ca9e;background:#edeecf;border-radius:10px;color:#7a8054;padding:8px;flex:none}#settings-note{font-size:11px;line-height:1.7;color:#8d9069}#settings-done{width:100%;margin-top:10px}#paused-overlay,#result{background:#f8f7dfed;border:2px solid #fff5d6;box-shadow:0 8px 20px #5b6e3618}#result #next{background:#668b46;border-color:#668b46;box-shadow:0 3px #456731}#result-icon{color:#d3a04a}.guide{padding-top:30px}.guide h1,.guide h2{color:#496943}
@media(max-width:740px){.flow-app{padding:0 10px}.flow-app .topbar{height:42px}.game{height:calc(100dvh - 52px - env(safe-area-inset-bottom));gap:8px}.stage-panel{padding:8px 12px 2px}.title-emblem{width:29px;height:31px}.title-emblem svg{width:25px;height:25px}#flow-title{font-size:24px}.level-button{padding:4px 6px 4px 4px;gap:4px;font-size:9px}#level-number{height:24px;min-width:24px;font-size:12px}#name{font-size:9px;max-width:95px}#dimensions{font-size:8px}.progress-row{margin:5px 0 3px;font-size:9px}.control-panel{padding:8px 11px 7px;height:clamp(160px,22dvh,210px)}.control-panel .section-label{font-size:11px}.control-panel #queue-note{font-size:8px}.queues{gap:9px;padding:3px 2px 10px}.dock-area .section-label #wait-note{font-size:7px}.stage-foot{min-height:21px}#message{font-size:8px}.waiting button{height:59px}html[lang=en] #flow-title{font-size:21px;letter-spacing:-1px}html[lang=en] .game-title{gap:5px}html[lang=en] .title-emblem{display:none}.top-actions button,.top-actions #language{width:31px;height:31px}.control-panel footer button{font-size:9px;padding:5px 8px}.control-panel footer{gap:6px}.brand small{font-size:8px}}
@media(max-width:360px){.brand small{display:none}.flow-app{padding:0 8px}.stage-panel{padding-left:10px;padding-right:10px}.heading{gap:5px}.game-title{gap:5px}.title-emblem{width:25px;height:28px}.title-emblem svg{width:22px;height:22px}#flow-title{font-size:22px}#name{max-width:82px;font-size:8px}.level-button{max-width:47%;gap:3px}#level-number{height:22px;min-width:22px;font-size:11px}.waiting .unit-art{width:31px}.waiting .ammo{top:27px;font-size:14px}.dock-area #wait-note{display:none}.queues{gap:7px}.column .unit-art{width:40px}.column .unit-art::before{left:12px}.column .ammo{min-width:34px;left:calc(50% - 17px)}html[lang=en] #flow-title{font-size:19px}}
@media(max-height:700px){.flow-app .topbar{height:37px}.game{height:calc(100dvh - 47px - env(safe-area-inset-bottom));gap:7px}.stage-panel{padding-top:6px}.heading{min-height:29px}.title-emblem{height:27px;width:25px}.title-emblem svg{height:22px;width:22px}#flow-title{font-size:22px}.heading .level-label #dimensions{display:block}.level-button{padding-top:3px;padding-bottom:3px}#level-number{height:22px;min-width:22px}.progress-row{margin:4px 0 3px;font-size:8px}#percent{font-size:8px}.track{height:7px}.scene{min-height:0}.control-panel{height:146px;padding:7px 10px 6px}.control-panel .section-label{margin-bottom:3px;font-size:10px;min-height:14px}.control-panel #queue-note{font-size:7px}.column button{height:63px;min-height:63px}.column .unit-art{width:38px;height:37px}.column .ammo{top:29px;height:24px;min-width:34px;left:calc(50% - 17px);font-size:20px}.column .unit-art::before{left:12px;height:10px}.column .unit-eyes{top:10px;left:12px}.column .unit-art::after{top:8px}.column .piece.locked{height:47px;min-height:47px}.column .locked .unit-art{height:28px;width:30px}.column .locked .ammo{top:21px;height:20px;min-width:28px;left:calc(50% - 14px);font-size:15px}.column .locked .unit-eyes{top:6px;left:9px}.column .locked .unit-art::after{top:4px}.column .locked .unit-art::before{left:8px}.waiting button{height:53px}.waiting .unit-art{width:31px;height:31px}.waiting .ammo{top:24px;height:20px;font-size:14px}.waiting .unit-art::before{left:9px;height:9px;top:-5px}.dock-area{padding-top:4px}.dock-area .section-label{margin:3px 0;font-size:8px}.dock-area #wait-capacity{font-size:7px}.belt-info{min-height:14px;padding-bottom:3px;font-size:8px}.stage-foot{min-height:20px}#message{font-size:8px;margin:0;padding:0;min-height:0;height:auto}.control-panel footer{padding-top:4px;min-height:25px}.control-panel footer button{min-height:24px;font-size:9px;padding:4px 7px}.control-panel footer #pause,.control-panel footer #speed{min-width:28px}#keyboard-tip{font-size:7px;min-width:42px}.queues{height:auto;padding-bottom:10px}.progress-row #progress{font-size:8px}}

.waiting button:disabled{display:grid;place-items:center}.dock-area #wait-capacity{margin-left:auto}

/* A returning shooter lands visibly before its dock portrait appears. */
[hidden]{display:none!important}.return-flight{position:fixed;top:0;left:0;width:36px;height:44px;z-index:40;pointer-events:none;display:grid;place-items:center;will-change:transform}.return-flight .unit-art{height:33px;width:32px;transform:none}.return-flight .ammo{position:absolute;left:6px;right:6px;top:26px;min-width:0;height:21px;border:1px solid #31482e35;border-radius:5px;background:var(--color);color:var(--text);font-size:14px;box-shadow:inset 0 2px #ffffff55}.return-incoming .unit-art,.return-incoming .ammo,.return-incoming .color-code{visibility:hidden}.waiting .return-incoming{background:linear-gradient(#e3d4a7,#f1e3b8)}
#show-result{border:0;border-radius:5px;background:#dce8bd;color:#5e7c41;padding:2px 6px;font-size:8px;white-space:nowrap}.stage-foot:has(#show-result:not([hidden])) #message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
#result.result-modal{position:fixed;inset:0;margin:auto;width:min(420px,calc(100% - 32px));height:fit-content;max-height:90dvh;overflow:auto;border:2px solid #fff9dc;border-radius:23px;padding:24px;background:#fff7da;box-shadow:0 20px 70px #23432640;text-align:center;backdrop-filter:none;align-content:normal}#result.result-modal:not([open]){display:none}#result-dismiss{position:absolute;top:9px;right:10px;width:32px;height:32px;border:0;border-radius:9px;background:#ede8c9;color:#8a9367;font-size:22px;z-index:7}#result #result-art{position:static;width:112px;height:112px;display:block;margin:2px auto 12px;border-radius:12px;box-sizing:content-box;padding:8px;border:1px solid #dfdcb5;background:#fffbed;image-rendering:pixelated}#result #result-icon{font-size:35px;line-height:1.1;margin:2px 0 9px}#result #result-title{font-size:24px;line-height:1.25}#result #result-copy{font-size:12px;line-height:1.8;margin:12px 0 18px;color:#849063}#result .result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px}#result button,#result a{font-size:12px}#result-dismiss{padding:0!important}#loss-analysis{padding:12px 14px;border:1px solid #e2d6aa;border-radius:12px;background:#f2ebcb;text-align:left;margin-bottom:20px}#edge-title{font-size:11px;color:#8b8156;margin:0 0 9px}#edge-colors{display:flex;flex-wrap:wrap;gap:6px}#edge-colors span{display:inline-flex;align-items:center;gap:5px;border:1px solid #dbd1a8;border-radius:7px;padding:5px 7px;background:#fff9e6;color:#687949;font-size:10px;font-weight:700}#edge-colors i{display:block;width:14px;height:14px;border-radius:4px;border:1px solid #48623c44;box-shadow:inset 0 2px #fff5}#loss-tip{font-size:11px!important;line-height:1.7;color:#8c8c62!important;margin:10px 0 0!important}#picture-filters{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px}#picture-filters button{border:1px solid #c8c89d;border-radius:16px;background:#eee9cb;color:#87905d;padding:7px 10px;font-size:11px}#picture-filters button[aria-pressed=true]{background:#6a8c4a;color:#fffbe4;border-color:#6a8c4a}#pictures button{position:relative}#pictures .finished-mark{position:absolute;top:7px;right:7px;display:grid;place-items:center;height:21px;width:21px;border-radius:50%;background:#dbe9b6;color:#608341;font-weight:800;font-size:12px}.picture-empty{grid-column:1/-1;padding:20px 8px;font-size:12px;line-height:1.8;color:#8d966e;text-align:center}.control-panel footer button:disabled{opacity:.45;cursor:default;box-shadow:none}
@media(max-width:360px){#picture-filters{gap:5px}#picture-filters button{font-size:10px;padding:7px 8px}#result.result-modal{padding:20px}#result #result-title{font-size:21px}#result #result-art{width:98px;height:98px}#result #result-copy{font-size:11px}#result .result-actions button,#result .result-actions a{font-size:11px;padding:10px}#result #result-icon{font-size:29px}}
/* A single, readable cannon-cart silhouette in the queue, docks and return flight. */
.unit-art,.column .unit-art,.column .locked .unit-art,.waiting .unit-art,.return-flight .unit-art{background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0;transform:none;filter:drop-shadow(0 2px 1px #4b563a22);color:var(--color);display:block}
.unit-art::before,.unit-art::after{content:none!important}.unit-art svg{display:block;width:100%;height:100%;overflow:visible}.column .unit-art{width:49px;height:49px;margin:3px 0 0}.column .locked .unit-art{width:39px;height:39px;margin:0}.waiting .unit-art{width:39px;height:39px;margin-top:1px}.column .ammo{left:auto;right:4px;top:4px;min-width:27px;height:24px;font-size:18px;border:1px solid #c4ad73;background:#fff8d9;color:#49683e;box-shadow:inset 0 2px #fffdf0,0 2px #b39e6720;border-radius:7px}.column .locked .ammo{left:auto;right:4px;top:3px;min-width:23px;height:20px;font-size:14px;border-radius:6px}.waiting .ammo{left:auto;right:2px;top:2px;min-width:21px;height:18px;font-size:12px;background:#fff8d9;color:#49683e;border:1px solid #c4ad73;border-radius:5px;box-shadow:0 1px #b39e6720}.return-flight .unit-art{width:36px;height:40px}.return-flight .ammo{left:auto;right:-4px;top:-2px;min-width:20px;height:18px;background:#fff8d9;color:#49683e;font-size:11px;border:1px solid #c4ad73;border-radius:5px}
@media(max-height:700px){.column .unit-art{width:43px;height:43px}.column .locked .unit-art{width:33px;height:33px}.column .ammo{top:3px;right:3px;height:23px;min-width:25px;font-size:17px}.column .locked .ammo{top:2px;right:3px;height:18px;min-width:22px;font-size:13px}.waiting .unit-art{width:35px;height:35px}.waiting .ammo{top:2px;height:18px;min-width:20px;font-size:11px}}

.title-emblem{color:#7da65c}

/* The story appears in the help and below the playable booth. */
#workshop-story{padding:12px 14px;border:1px solid #ded4a5;border-radius:11px;background:#f1ebcb;font-size:12px;line-height:1.85;color:#7c8057;margin:4px 0 12px}.world-note{display:flex;align-items:flex-start;gap:12px;padding:15px 17px;margin:0 0 22px;border:1px solid #d3d9ad;border-radius:13px;background:#f9f3d9;box-shadow:0 2px #c2cd9d33}.world-stamp{display:grid;place-items:center;width:31px;height:36px;border:1px solid #b6c38d;border-radius:8px;background:#e4ebbf;color:#7c9b54;font-size:20px;flex:none;transform:rotate(-7deg)}.world-note strong{display:block;font-size:13px;color:#65834a}.world-note p{font-size:12px;color:#8b9068;line-height:1.85;margin:4px 0 0}

/* Bead Carnival: a small striped target booth, with a teal toy track. */
:root{--ink:#466769;--muted:#899281;--green:#548e88}
body{background:radial-gradient(ellipse at 16% 9%,#ffffffa6 0,transparent 34%),radial-gradient(ellipse at 88% 27%,#fff4c085 0,transparent 36%),linear-gradient(165deg,#bcdedb,#ecedce 63%,#d7e0be);background-attachment:fixed}
.stage-panel{position:relative;border-color:#fff9e6;background:linear-gradient(155deg,#fff8e5,#f7f4dc 62%,#eef0d7);box-shadow:0 5px 0 #a2b4a0,0 10px 25px #466b6420}
.stage-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:repeating-linear-gradient(110deg,#e89c8b 0 18px,#fff4d5 18px 36px,#73aaa2 36px 54px,#fff4d5 54px 72px);pointer-events:none}
.title-emblem{color:#e29b79;background:linear-gradient(#ffe4ac,#f0bd83);box-shadow:0 3px 0 #c59d70;border-color:#fff5d5}
#flow-title{color:#477875}.brand small{color:#74928a}.top-actions button,.top-actions #language{color:#618780;background:linear-gradient(#fff9e7,#f2e9c8);border-color:#fff8dd;box-shadow:0 3px #adb89a}
.track{border-color:#c6d6b7;background:#d5debf}.track i{background:repeating-linear-gradient(120deg,#65a89d 0 8px,#81b9a6 8px 16px);box-shadow:inset 0 2px #afd5bb}#percent{color:#548a80}
.dock-area{background:linear-gradient(#e6ca98,#f0ddba);box-shadow:inset 0 2px #fff2d1,inset 0 -2px #d3b98c}.waiting button{border-color:#cdb78c;background:linear-gradient(#d4c09a,#ead8b5)}.waiting .piece{background:linear-gradient(#efe2bd,#fff0d1)}
.control-panel{background:linear-gradient(#f4dfb7,#e8cfa0);border-color:#fff4d9;box-shadow:0 5px #bda17c,0 9px 20px #6176631a}.piece.previewed{outline-color:#68a39a!important;box-shadow:0 3px #9fbfb1}.live-dot{background:#72aaa0;box-shadow:0 0 0 3px #b5d6be55}
.primary,.dialog-actions .primary,#resume,#result #next{background:linear-gradient(#71a69a,#568c84);border-color:#709b8d;box-shadow:0 3px #46736c;color:#fff9e7}.setting-row input:checked{background:#6b9e92;border-color:#628e80}#picture-filters button[aria-pressed=true]{background:#6f9e91;border-color:#6f9e91}
#result.result-modal{background:linear-gradient(155deg,#fff9e7,#f8ebcb);border-color:#fff9e6}#result #result-art{padding:12px 12px 24px;background:#fffdf2;border:1px solid #e0cda7;border-radius:5px;box-shadow:0 4px 0 #d5bd8f,0 8px 16px #765b3820;transform:rotate(-4deg);margin-bottom:22px}#result #result-title{color:#557e75}#result #result-copy{color:#8d8d6d}#result-icon{color:#e0ac59}
.world-note{border:1px dashed #c1ba8d;background:#fff5da;box-shadow:0 3px #b5bb9533}.world-stamp{color:#d19a58;background:#ffe5aa;border-color:#e2c587}.world-note strong,.guide h1,.guide h2{color:#628a7b}#workshop-story{background:#f3ebcf;color:#7a856d;border-color:#dfd3ab}

/* A small, transient hit counter sits above the target, without shifting it. */
#combo-feedback{position:absolute;top:5px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;z-index:2;pointer-events:none;white-space:nowrap;padding:4px 10px 5px;border:1px solid #fff9d7;border-radius:20px;background:linear-gradient(#fff4c9f5,#f4d58af2);color:#97652f;box-shadow:0 2px #c5ab7780,0 3px 10px #8b6d3820;line-height:1.1}#combo-count{font-size:22px;font-weight:950;font-variant-numeric:tabular-nums}#combo-label{font-size:10px;font-weight:800}.combo-star{font-size:20px;color:#d8943b}.combo-pop{animation:combo-pop .18s ease-out}.hit-pop{animation:hit-pop .16s ease-out}@keyframes combo-pop{0%{transform:translateX(-50%) scale(.87)}45%{transform:translateX(-50%) scale(1.13)}100%{transform:translateX(-50%) scale(1)}}@keyframes hit-pop{45%{filter:brightness(1.35)}}
@media(max-height:700px){#combo-feedback{top:1px;padding:3px 8px;gap:4px}#combo-count{font-size:18px}#combo-label{font-size:8px}.combo-star{font-size:16px}}
@media(prefers-reduced-motion:reduce){#combo-feedback{animation:none}.track.hit-pop{animation:none}}

.game-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;padding:20px 8px 24px;color:#788b7a;font-size:11px;line-height:1.7}.game-summary p{margin:0}.game-summary a{color:#527f75;text-decoration:none;white-space:nowrap}.game-summary a:hover{text-decoration:underline}

/* True-color plates stay readable independently of the cart lighting. */
.column .color-code,.waiting .color-code,.return-flight .color-code{position:absolute;display:flex;align-items:center;justify-content:center;left:5px;right:5px;bottom:4px;height:17px;border-radius:5px;background:var(--color);color:var(--text);font-size:10px;font-weight:800;letter-spacing:.3px;border:1px solid #41454a40;box-shadow:0 1px 0 #fff9;text-shadow:none}.column .unit-art{margin-top:-10px}.column .locked .unit-art{margin-top:-9px}.column .locked .color-code{height:14px;font-size:9px;bottom:3px}.waiting .unit-art{margin-top:-9px}.waiting .color-code{height:14px;bottom:3px;left:3px;right:3px;font-size:8px}.return-flight .color-code{bottom:-6px;left:-4px;right:-4px;height:13px;font-size:8px}.return-incoming .color-code{visibility:hidden}.column button,.waiting .piece{background:#fff7e5}.column .piece[aria-disabled=true]{background:#eee8d8}.column .locked .unit-art{opacity:1}.control-panel #queue-note{font-size:8px}
#color-clear{position:absolute;top:5px;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:7px;pointer-events:none;white-space:nowrap;padding:7px 12px;border:1px solid #fffdf1;border-radius:18px;background:#fff8e7f5;box-shadow:0 3px 10px #536f5030;color:#527e6e;font-size:12px}#color-clear i{width:16px;height:16px;border-radius:4px;background:var(--clear-color);border:1px solid #0003}#color-clear>span{color:#70a16e;font-weight:900}
@media(max-height:700px){.column .color-code{height:14px;font-size:9px}.column .locked .color-code{height:12px;font-size:8px}.waiting .color-code{height:12px;font-size:8px}.column .unit-art{margin-top:-8px}#color-clear{top:1px;padding:5px 9px;font-size:10px}}

/* A broad toy body carries the color; the base stripe is only a small accent. */
.column .unit-art{width:56px;height:56px;margin-top:-3px}.column .locked .unit-art{width:44px;height:44px;margin-top:-2px}.waiting .unit-art{width:46px;height:46px;margin-top:-3px}.return-flight .unit-art{width:39px;height:43px}.column .color-code,.column .locked .color-code,.waiting .color-code{height:5px;bottom:4px;border-radius:3px;border:0;box-shadow:none}.return-flight .color-code{height:4px;bottom:-2px;border:0}.unit-art{filter:drop-shadow(0 2px 1px #4b563a18)}
@media(max-height:700px){.column .unit-art{width:49px;height:49px;margin-top:-2px}.column .locked .unit-art{width:38px;height:38px;margin-top:-2px}.waiting .unit-art{width:40px;height:40px;margin-top:-3px}.column .color-code,.column .locked .color-code,.waiting .color-code{height:4px;bottom:3px}}

.return-flight.teleport-flash{width:32px;height:32px;display:block;transform-origin:50% 50%;border-radius:50%;background:radial-gradient(circle,#fff8dc 0 12%,var(--color) 35%,transparent 68%);box-shadow:0 0 0 2px color-mix(in srgb,var(--color) 60%,transparent);pointer-events:none}
