:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-synthesis:none;color:#243d39;background:#f4f4ec;--cell-gap:5px;--exit-size:26px;--accent:#377b68;--soft:#e8f0e8;--tray:#d6e3d7;--frame:#aec5b2;--floor:#eaf0e8}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 10% 0%,#e7eee4,transparent 60%)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button,dialog{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #dc995d;outline-offset:4px}[hidden]{display:none!important}
.app-shell{max-width:1080px;padding:0 32px;margin:auto}.site-header{display:flex;justify-content:space-between;align-items:center;min-height:82px;border-bottom:1px solid #243d3912;gap:16px}.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#30594e;color:#f5e9bc;font-size:27px;transform:rotate(-5deg);box-shadow:0 3px 0 #1b3e32}.brand-copy{display:grid;gap:5px}.brand-copy strong{font-size:17px;letter-spacing:1px}.brand-copy>span{font-size:10px;color:#7c9180}.header-actions{display:flex;gap:8px}.header-button{padding:9px 13px;border:1px solid #d8dfd5;border-radius:10px;background:#fbfcf7;font-size:12px}.header-button:hover{background:#e9efe5}.header-button[aria-pressed="false"]{opacity:.65}
.intro{display:flex;justify-content:space-between;align-items:center;padding:24px 2px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:500;margin:0 0 9px;color:#799084}h1{font-size:30px;letter-spacing:.5px;line-height:1.5;margin:0;font-weight:600}h1 span{color:#589077}.intro-copy{font-size:12px;color:#849389;margin:8px 0 0}.intro-seal{font-size:12px;color:#769882;line-height:1.8;letter-spacing:3px;border:1px solid #b8cebb;border-radius:10px;padding:10px 14px;transform:rotate(7deg)}
.play-layout{display:grid;grid-template-columns:226px minmax(0,1fr);gap:24px;align-items:start}.side-column{display:grid;gap:26px}.shift-card{padding:23px;border-radius:18px;background:#e9f0e5;border:1px solid #d7e4d1}.card-eyebrow{font-size:10px;color:#7d937b;letter-spacing:1px}.shift-card h2{font-size:21px;margin:14px 0 12px}.shift-card p{font-size:12px;line-height:1.9;color:#6f856c;margin:0 0 24px}.progress-heading{display:flex;justify-content:space-between;font-size:11px;color:#7a9074}.progress-heading strong{color:#426445;font-variant-numeric:tabular-nums}.progress-track{height:5px;margin-top:12px;border-radius:3px;background:#ccdbc5;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .25s}
.how-to-card{padding:0 5px}.how-to-title h2{font-size:13px;margin:0 0 18px}.tip{display:flex;gap:12px;margin:16px 0;align-items:center}.tip-number{display:grid;place-items:center;width:29px;height:29px;flex-shrink:0;border-radius:8px;background:#e4ebdf;color:#5d8066;font-size:13px}.tip p{font-size:11px;line-height:1.8;color:#92a18f;margin:0}.tip strong{display:block;font-weight:500;color:#637e66}.keyboard-note{font-size:10px;line-height:1.9;color:#91a18b;border-top:1px solid #dce5d7;padding-top:16px;margin-top:24px}
.game-card{padding:23px 27px 0;border-radius:22px;border:1px solid #dce3d6;background:#fdfef9;box-shadow:0 12px 35px #254b3210}.chapter-banner{display:flex;align-items:center;gap:11px;width:100%;padding:11px 13px;border:0;border-radius:12px;background:var(--soft);color:#466b56;text-align:left;margin-bottom:17px}.chapter-banner:hover{filter:brightness(.98)}.chapter-motif{width:32px;height:32px;display:grid;place-items:center;font-size:26px}.chapter-banner-copy{display:grid;gap:4px}.chapter-banner-copy small{font-size:9px;color:#849e88;letter-spacing:1px}.chapter-banner-copy strong{font-size:14px}.chapter-banner-progress{font-size:11px;margin-left:auto;font-variant-numeric:tabular-nums}.chapter-banner>span:last-child{font-size:23px;opacity:.6}
.level-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.level-eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:10px;color:#8da08c;margin:0 0 7px}.level-header h2{font-size:24px;margin:0;font-weight:600}.level-dot{opacity:.4}.difficulty-pill{font-size:10px;padding:5px 9px;background:#eaf0e4;border-radius:6px;color:#789066;white-space:nowrap}.level-stats{display:flex;gap:18px;align-items:center;margin:19px 0 14px;font-variant-numeric:tabular-nums}.level-stats>div{display:flex;gap:6px;align-items:baseline}.level-stats span{font-size:10px;color:#91a18c}.level-stats strong{font:500 23px ui-monospace,Consolas,monospace;color:#315448}.level-stats small{font-size:10px;color:#a2ac9a}.stat-divider{height:16px;width:1px;background:#e1e7d9}.optimal-stat{margin-left:auto}.optimal-stat strong{font-size:16px;color:#839476}.trial-lesson{font-size:12px;line-height:1.8;margin:0 0 16px;color:#7a8e76}
.board-surround{border-radius:17px;padding:12px 15px 0;background:#f0f3e9;border:1px solid #e2e8d9}.board-label{display:flex;justify-content:space-between;color:#9aa98d;font-size:9px;letter-spacing:1px;margin:0 3px 10px}.trial-frame{padding:30px;max-width:450px;margin:auto;border:1px solid var(--frame);border-radius:14px;background:var(--tray);box-shadow:inset 0 2px 3px #ffffff88,0 3px 0 #a4baa650}.board{position:relative;aspect-ratio:1;isolation:isolate;touch-action:none;overflow:visible}.floor-grid{display:grid;position:absolute;inset:0;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);overflow:hidden;border:1px solid #a5ba9e66;border-radius:7px;background:var(--floor)}.floor-tile{border-right:1px solid #9aad9730;border-bottom:1px solid #9aad9730;background:var(--floor)}.floor-tile:nth-child(2n){filter:brightness(.98)}.floor-wall{display:grid;place-items:center;background:repeating-linear-gradient(135deg,#687d71,#687d71 7px,#72877c 7px,#72877c 9px);color:#d4e1d6;border:2px solid #53695d;border-radius:6px;font-size:20px;box-shadow:inset 0 2px 0 #ffffff35,0 2px 0 #4a625b}
.crate{position:absolute;display:flex;align-items:center;justify-content:center;gap:8px;padding:4px;border:1px solid #b0a481;border-radius:8px;background:linear-gradient(135deg,#e4d7b2,#ccba8b);color:#7e6b3e;box-shadow:0 4px 0 #aa956c,inset 0 2px 0 #ffffff70,0 6px 7px #344b3520;touch-action:none;user-select:none;overflow:hidden;z-index:2;transition:left var(--slide-time,.22s) cubic-bezier(.2,.8,.3,1),top var(--slide-time,.22s) cubic-bezier(.2,.8,.3,1)}.crate::before{content:"";position:absolute;inset:0 39%;background:#fff7d433;border-left:1px solid #ffffff36;border-right:1px solid #ffffff36}.crate::after{content:"";position:absolute;left:5px;top:5px;width:4px;height:4px;border:1px solid #7a714e55;border-radius:50%}.crate.tone-2{background:linear-gradient(135deg,#b4c9ae,#93b48c);border-color:#82a37c;color:#436942;box-shadow:0 4px 0 #71916a,inset 0 2px 0 #ffffff70,0 6px 7px #344b3520}.crate.tone-3{background:linear-gradient(135deg,#c5ccc0,#a3b2a0);border-color:#91a38d;color:#576c52;box-shadow:0 4px 0 #7e977d,inset 0 2px 0 #ffffff70,0 6px 7px #344b3520}.crate.inertia{background:linear-gradient(135deg,#b7e1cf,#86c7b0);border:2px solid #5eac8c;color:#27694f;box-shadow:0 4px 0 #519477,inset 0 2px 0 #eafef477,0 6px 7px #344b3520}.crate.target{background:linear-gradient(135deg,#ffc58a,#efa165);border-color:#d4884d;color:#8d4c26;box-shadow:0 4px 0 #c47c44,inset 0 2px 0 #ffead480,0 6px 7px #74401924}.crate.target-b{background:linear-gradient(135deg,#a9dce7,#78bbd1);border-color:#649eae;color:#28596c;box-shadow:0 4px 0 #5591a6,inset 0 2px 0 #e8fbff80,0 6px 7px #26435c22}.crate.target.inertia{border-color:#cb7949;border-width:2px}.crate-label,.crate-direction,.motion-badge{z-index:1;position:relative}.crate-label{font-size:13px;font-weight:600;white-space:nowrap;letter-spacing:.5px}.crate-direction{font-size:20px;line-height:1;opacity:.65}.crate.vertical,.crate.square{flex-direction:column;gap:10px}.crate.square .crate-direction{font-size:24px}.motion-badge{position:absolute;right:5px;top:5px;display:grid;place-items:center;min-width:17px;height:17px;background:#32664d18;border-radius:4px;font-size:10px;font-weight:600}.crate.inertia .crate-label{padding-top:8px}.crate.target .motion-badge{background:#b5632820}.crate.is-selected{outline:2px solid #447c69;outline-offset:2px;z-index:4}.crate.is-hinted{outline:3px solid #e09359;outline-offset:3px;z-index:5}.crate.dragging{transition:none;z-index:6;cursor:grabbing;box-shadow:0 5px 0 #739a6750,0 9px 14px #274a3233}.crate:hover{filter:brightness(1.03)}
.trial-exit{position:absolute;display:flex;align-items:center;justify-content:center;gap:3px;background:#f9d4a3;border:1px solid #d0a273;border-radius:6px;color:#89592f;font-size:13px;font-weight:600;z-index:3;box-shadow:inset 0 2px 0 #fff1dbaa,0 2px 0 #bba17066}.trial-exit[data-side="left"],.trial-exit[data-side="right"]{flex-direction:column;width:var(--exit-size)}.trial-exit[data-side="top"],.trial-exit[data-side="bottom"]{height:var(--exit-size)}.trial-exit.exit-b{background:#c4e5ed;border-color:#8eb7c2;color:#3d7184;box-shadow:inset 0 2px 0 #eafaffaa,0 2px 0 #86b0bc66}.trial-exit.delivered{opacity:.5}.trial-exit.preview-exit{outline:3px solid #e89954;outline-offset:2px}.trial-ghost{position:absolute;border:2px dashed #d89150;background:#fff4df88;border-radius:8px;color:#a96730;font-size:24px;display:grid;place-items:center;z-index:7;pointer-events:none}.flight-layer{position:absolute;inset:0;overflow:hidden;z-index:8;border-radius:7px;pointer-events:none}.delivery-flight{pointer-events:none;transition:none!important}.delivery-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 2px 0;font-size:11px}.delivery-row strong{font-weight:500;color:#51715a}.delivery-row span{color:#8ea083}.board-caption{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;min-height:42px;padding:7px 0;font-size:11px;line-height:1.7;color:#90a187}.caption-dot{height:4px;width:4px;border-radius:50%;background:#9bb38f;flex-shrink:0}.board-caption.has-hint{color:#ab7040}
.game-actions{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:10px;padding:17px 0}.action-button{border:1px solid #d6e0d2;border-radius:10px;background:#f4f8ef;padding:13px 8px;min-height:44px;font-size:12px;color:#71876a}.action-button:hover:not(:disabled){background:#e7f0e1}.action-button:disabled{opacity:.4}.hint-button{background:#3c7563;border-color:#3c7563;color:#f2f8e7;box-shadow:0 3px 0 #2c5b49}.hint-button:hover:not(:disabled){background:#4b8770}.game-footer{display:flex;justify-content:space-between;gap:10px;padding:13px 0;border-top:1px solid #e7eddf;font-size:10px;color:#9aab90}.site-footer{display:flex;justify-content:space-between;gap:12px;padding:25px 2px 30px;font-size:10px;color:#96a58d}.storage-warning{font-size:12px;line-height:1.7;background:#fff0d3;border:1px solid #e0c096;padding:12px;border-radius:10px;margin-bottom:15px}
dialog{border:1px solid #dbe4d3;background:#fcfef6;color:#315345;padding:25px;border-radius:22px;box-shadow:0 20px 70px #193e3330;max-width:calc(100% - 28px)}dialog::backdrop{background:#193a31a6;backdrop-filter:blur(5px)}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dialog-header h2{font-size:23px;line-height:1.5;margin:0}.dialog-close{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border:1px solid #d6e0cd;border-radius:50%;background:#eff5e9;font-size:23px;color:#7d9473}.dialog-description{font-size:12px;line-height:1.8;color:#8c9e80;margin:12px 0 20px}.levels-dialog{width:550px;max-height:88vh;overflow:auto}.level-group{margin-top:23px}.level-group-title{font-size:13px;line-height:1.8;margin:0 0 12px}.level-group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.level-choice{height:85px;display:grid;place-content:center;gap:5px;text-align:center;border:1px solid #d7e3ca;background:#edf3e4;color:#648054;border-radius:12px;font-size:22px;font-variant-numeric:tabular-nums}.level-choice small{font-size:10px;line-height:1.5}.level-choice.complete{background:#e6f1df;border-color:#c0d4b0}.level-choice.current{outline:2px solid #d59963;outline-offset:2px;background:#f9ead6;color:#a97642}.level-choice:hover{filter:brightness(.98)}.primary-button{display:block;width:100%;padding:13px;border:1px solid #3b725a;border-radius:11px;background:#417b61;color:#f5f8e7;font-size:13px;box-shadow:0 3px 0 #2e5c43}.text-button{display:block;width:100%;padding:13px;border:0;background:none;color:#8da47c;font-size:12px}.inline-next{margin-bottom:16px}.win-dialog{position:relative;width:355px;text-align:center;padding-top:31px}.win-dialog>.dialog-close{position:absolute;right:14px;top:14px}.win-mark{width:64px;height:64px;margin:0 auto 19px;border-radius:22px;background:#e0edda;color:#638353;font-size:36px;display:grid;place-items:center;transform:rotate(-5deg)}.win-dialog h2{font-size:25px;line-height:1.5;margin:10px 0}.win-dialog>p:not(.eyebrow){font-size:12px;line-height:1.8;color:#899d7c}.win-stars{font-size:29px;letter-spacing:8px;color:#d5a259;margin:17px 0}.win-stats{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;background:#edf3e5;padding:17px 0}.win-stats>div{display:grid;gap:8px}.win-stats>div+div{border-left:1px solid #d9e4cc}.win-stats span{font-size:11px;color:#8da57a}.win-stats strong{font:500 25px ui-monospace,Consolas,monospace;color:#577b46}.win-record{margin:16px 0 20px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);width:max-content;background:#2e554bf2;color:#f8f8e8;padding:13px 19px;font-size:12px;line-height:1.7;border:1px solid #6e917c;border-radius:12px;z-index:30;text-align:center;box-shadow:0 8px 25px #143c2e26}.noscript-warning{text-align:center;padding:30px}
.campaign-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.campaign-tab{padding:12px 16px;flex:1;border:1px solid #d6e1cb;border-radius:12px;background:#f2f7eb;text-align:left;color:#648250}.campaign-tab strong{display:block;font-size:13px}.campaign-tab small{display:block;margin-top:5px;font-size:10px;line-height:1.6}.campaign-tab[aria-pressed="true"]{background:#e1edda;border-color:#91b481}.campaign-launch{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:#385f53;color:#f6f4de;border:1px solid #335a4c;border-radius:13px;padding:13px 16px;margin-bottom:19px;text-align:left}.campaign-launch strong{display:block;font-size:13px}.campaign-launch small{display:block;font-size:10px;color:#bcd3bd;margin-top:5px}.campaign-launch>span:last-child{font-size:20px}.group-note{font-size:11px;color:#8e9d83;margin:-5px 0 12px;line-height:1.7}
body[data-theme="forest"]{--accent:#577c40;--soft:#e8efe0;--tray:#dae3c9;--frame:#b4c39f;--floor:#edf1e3}body[data-theme="harbor"]{--accent:#427b86;--soft:#e3efed;--tray:#cddfe1;--frame:#a2bbc1;--floor:#e8f1ef}body[data-theme="space"]{--accent:#6d789b;--soft:#e9ebf3;--tray:#d8ddeb;--frame:#b4bcd4;--floor:#eef0f7}body[data-theme="dispatch"]{--accent:#496f85;--soft:#e5ecee;--tray:#d2dfe3;--frame:#a8bec5;--floor:#ebf1f2}.trial-page .campaign-launch[data-kind="dispatch"]{background:#3a5a70;border-color:#2e5065}
@media(max-width:760px){.app-shell{padding:0 22px}.play-layout{grid-template-columns:190px minmax(0,1fr);gap:17px}.game-card{padding:20px 20px 0}.shift-card{padding:18px}.level-stats{gap:10px}.level-stats>div{gap:4px}.crate-label{font-size:11px}.crate-direction{font-size:17px}}
@media(max-width:680px){:root{--cell-gap:4px;--exit-size:22px}.app-shell{max-width:480px;padding:0 14px}.site-header{min-height:67px;gap:8px}.brand{gap:8px}.brand-mark{width:32px;height:32px;font-size:23px;border-radius:10px}.brand-copy strong{font-size:14px;letter-spacing:.5px}.brand-copy>span{font-size:8px}.header-actions{gap:4px}.header-button{padding:8px 9px;font-size:10px;border-radius:8px}.intro{padding:18px 2px}.intro h1{font-size:25px}.intro .eyebrow{font-size:9px;margin-bottom:6px}.intro-copy{font-size:10px;margin-top:6px}.intro-seal{display:none}.play-layout{display:flex;flex-direction:column;gap:21px}.game-card{width:100%;order:0;padding:15px 14px 0;border-radius:19px}.side-column{width:100%;order:1;gap:20px}.shift-card{padding:17px 18px}.shift-card h2{font-size:17px;margin:10px 0}.shift-card p{font-size:11px;margin-bottom:17px}.keyboard-note{font-size:10px}.chapter-banner{padding:9px 11px;margin-bottom:14px}.chapter-banner-copy strong{font-size:13px}.chapter-banner-copy small{font-size:8px}.chapter-motif{font-size:22px;width:26px;height:28px}.chapter-banner-progress{font-size:10px}.level-header h2{font-size:21px}.level-eyebrow{font-size:9px;gap:5px;line-height:1.6}.difficulty-pill{font-size:9px;padding:4px 7px}.level-stats{margin:15px 0 12px;gap:10px}.level-stats>div{gap:4px}.level-stats strong{font-size:22px}.level-stats span,.level-stats small{font-size:9px}.optimal-stat strong{font-size:15px}.trial-lesson{font-size:11px;line-height:1.7;margin-bottom:13px}.board-surround{padding:10px 10px 0;border-radius:14px}.trial-frame{padding:26px;border-radius:11px}.board-label{font-size:8px;margin-bottom:8px}.crate{border-radius:6px;gap:5px;box-shadow:0 3px 0 #aa956c,inset 0 2px 0 #ffffff70,0 4px 5px #344b3520}.crate-label{font-size:11px;letter-spacing:0}.crate.vertical .crate-label{font-size:10px}.crate-direction{font-size:16px}.crate.vertical,.crate.square{gap:8px}.crate.square .crate-direction{font-size:22px}.motion-badge{font-size:9px;min-width:14px;height:14px;right:3px;top:3px}.crate.inertia .crate-label{padding-top:9px}.trial-exit{font-size:12px;border-radius:4px}.floor-wall{font-size:18px}.delivery-row{font-size:10px;padding-top:10px}.board-caption{font-size:10px;min-height:40px}.game-actions{gap:7px;padding:14px 0}.action-button{font-size:11px;min-height:43px;padding:11px 6px}.game-footer{font-size:9px;padding:11px 0}.site-footer{font-size:9px;line-height:1.7}.campaign-launch{padding:11px 13px;margin-bottom:15px}.campaign-launch strong{font-size:12px}.campaign-tab{padding:11px 12px}.campaign-tab small{font-size:10px}.level-group-grid{gap:8px}.level-group-title{font-size:12px}.level-choice{height:82px;font-size:21px}.level-choice small{font-size:10px}.dialog-header h2{font-size:21px}dialog{padding:21px;border-radius:18px}.dialog-description{font-size:11px}.win-dialog{padding-top:30px}.win-dialog h2{font-size:23px}}
@media(max-width:370px){.app-shell{padding:0 10px}.game-card{padding:14px 12px 0}.header-button{padding:8px 7px}.brand-copy>span{font-size:7px}.brand-copy strong{font-size:13px}.intro h1{font-size:24px}.level-stats{gap:8px}.level-stats>div{gap:3px}.level-stats span{font-size:8px}.game-footer{font-size:8px}.crate-label{font-size:10px}.crate.vertical .crate-label{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
.crate.inertia:not(.square) .crate-label{padding-top:0}.crate:not(.square) .crate-direction{font-size:17px}.crate.inertia:not(.square){padding-right:20px}.crate.inertia.vertical{padding-right:4px;padding-top:19px}
@media(max-width:680px){.crate:not(.square) .crate-direction{font-size:13px}.crate.inertia:not(.square){padding-right:16px;gap:3px}.crate.inertia.vertical{padding-right:4px;padding-top:16px}.crate-label{font-size:12px}}
.crate.target-c{background:linear-gradient(135deg,#d7caef,#b3a3d5);border-color:#9c8aba;color:#514270;box-shadow:0 4px 0 #8f7dad,inset 0 2px 0 #f9efff80,0 6px 7px #44365422}.trial-exit.exit-c{background:#e0d4f2;border-color:#afa0c5;color:#62527e;box-shadow:inset 0 2px 0 #faf0ffaa,0 2px 0 #9d8fb066}
@media(max-width:680px){.intro{padding:12px 2px}.intro .eyebrow,.intro-copy{display:none}.intro h1{font-size:23px;line-height:1.4}.campaign-launch[data-kind="practice"]{padding:8px 12px;margin-bottom:12px}.campaign-launch[data-kind="practice"] small{display:none}.board-surround{padding-left:7px;padding-right:7px}.game-card{padding-left:11px;padding-right:11px}}
.trial-lesson,.board-caption{color:#61776a}.tip p,.keyboard-note{color:#73846f}.level-eyebrow,.level-stats span{color:#708568}.board-label{color:#76876f}.game-footer{color:#778970}
.motion-badge:empty{display:none}

/* Irregular pallets keep paint and pointer hit areas on occupied cells. */
.crate-content{display:contents}.crate.irregular,.trial-ghost.irregular{border:0;border-radius:0;box-shadow:none;padding:0;overflow:visible}
.crate.irregular::before{inset:0;background:repeating-linear-gradient(0deg,transparent,transparent calc(33% - 1px),#fff7d426 33%);border:0}.crate.irregular::after{display:none}
.shape-edge{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}.shape-edge path{fill:none;stroke:currentColor;stroke-opacity:.55;stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.crate.irregular .crate-content{position:absolute;display:flex;align-items:center;justify-content:center;gap:5px;left:var(--label-x);top:var(--label-y);width:var(--label-width);transform:translate(-50%,-50%);z-index:2;line-height:1}
.crate.irregular .crate-label{font-size:14px;padding:0}.crate.irregular .crate-direction{font-size:17px}.crate.irregular .motion-badge{position:static;min-width:14px;height:14px;font-size:9px}.crate.irregular.is-selected,.crate.irregular.is-hinted{outline:none}.crate.irregular.is-selected .shape-edge path,.crate.irregular:focus-visible .shape-edge path{stroke:#315e51;stroke-opacity:1;stroke-width:5}.crate.irregular.is-hinted .shape-edge path{stroke:#9c4c21;stroke-opacity:1;stroke-width:6}
.trial-ghost.irregular .ghost-arrow{position:absolute;left:var(--label-x);top:var(--label-y);transform:translate(-50%,-50%)}.trial-ghost.irregular .shape-edge path{stroke-dasharray:5 3;stroke-opacity:1;stroke-width:3}
.cutout-board .floor-grid{background:var(--tray);border-radius:0;border:0}.floor-tile.floor-void{background:var(--tray);border:0;filter:none;position:relative}.floor-void::after{content:'';position:absolute;inset:25%;border-top:1px solid #7a8b8540;transform:rotate(-45deg)}
body[data-theme="workshop"]{--accent:#946b44;--soft:#f0e8d9;--tray:#ddcfb5;--frame:#bfab8b;--floor:#f6f0e4}body[data-theme="terrace"]{--accent:#567b76;--soft:#e4efeb;--tray:#c5d8d1;--frame:#9fbeb1;--floor:#eef6ef}body[data-theme="courtyard"]{--accent:#778047;--soft:#ecefdb;--tray:#d1d6b8;--frame:#b1bb91;--floor:#f2f4e5}body[data-theme="junction"]{--accent:#79739b;--soft:#eeebf4;--tray:#d6cfe1;--frame:#b5a9c8;--floor:#f4f0f8}.campaign-launch[data-kind="shapes"]{background:#766448;border-color:#685739}
@media(max-width:680px){.crate.irregular .crate-content{gap:3px}.crate.irregular .crate-label{font-size:12px}.crate.irregular .crate-direction{font-size:13px}.level-group-grid:has(.level-choice:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}}
