.control-editor{margin-block:24px;text-align:start}.control-editor h3{font:600 16px var(--magic-text);color:#e9d3a4;margin-block:22px 10px}.feature-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-block:12px;flex-wrap:wrap}.feature-setting input[type=range]{width:min(210px,100%);accent-color:#d5b26c}.feature-setting input[type=checkbox]{width:20px;height:20px;accent-color:#d5b26c}.layout-preview{position:relative;aspect-ratio:9/12;width:min(100%,310px);margin:auto;border:1px solid #8d9c7c66;border-radius:14px;background:radial-gradient(ellipse at 50% 35%,#425342,#101b16);overflow:hidden}.layout-preview.wide{aspect-ratio:16/9;width:100%}.layout-preview button{position:absolute;transform:translate(-50%,-50%);border:1px solid #d4ddae88;background:#607755b0;color:#fff;width:34px;height:34px;border-radius:50%;font:600 13px var(--magic-text);touch-action:none;cursor:grab}.key-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.key-grid button{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#22352c;border:1px solid #64796088;border-radius:10px;padding:10px;color:#e5e8d8;min-width:0}.key-grid span{font-size:12px;overflow-wrap:anywhere}.key-grid bdi{font:600 12px monospace;color:#ebca8a}.feature-actions{display:flex;gap:8px;margin-block:10px;flex-wrap:wrap}.feature-actions>*{flex:1;min-width:100px}.mission-objectives{display:grid;gap:8px;padding:0;list-style:none;text-align:start}.mission-objectives li{display:flex;gap:12px;align-items:center;padding:10px 12px;background:#17271ee6;border:1px solid #81907145;border-radius:9px}.mission-objectives .done{color:#9db18e}.mission-objectives .current{border-color:#dbbd7a}.mission-objectives bdi{font:600 14px monospace;color:#d9bf84}.companion-chip{position:absolute;left:3.5%;top:29%;max-width:48%;padding:8px 12px;border:1px solid #8bc7cd55;border-radius:12px;background:#132726dd;color:#c6eff2;font:500 12px var(--magic-text);pointer-events:none}.power-indicator{color:#edce84;font-size:11px;display:block;line-height:1.6}.collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.collection-card{text-align:center;padding:14px 8px;border:1px solid #79936b55;border-radius:12px;background:#17271f}.collection-card.locked{filter:grayscale(1);opacity:.4}.collection-card img{width:100%;max-width:100px;aspect-ratio:1;object-fit:contain}.collection-card small{display:block;line-height:1.4}.mission-marker{color:#e8cd88}#touchLight,#touchCompanion{position:absolute;pointer-events:auto;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;border:1px solid #c4d6ad80;border-radius:50%;background:linear-gradient(140deg,#87997099,#1c3029dd);color:#f6f0db;overflow:hidden;touch-action:none;font:600 18px var(--magic-text)}#touchLight small,#touchCompanion small{font-size:clamp(8px,1vh,11px);max-width:90%;white-space:nowrap;overflow:hidden}#touchControls{direction:ltr}.touch-controls button,.touch-controls .move-pad{z-index:2}#lookPad{z-index:0}.daily-panel{margin-block:28px;border:1px solid #cbae7066;border-radius:18px;padding:clamp(18px,3vw,30px);background:linear-gradient(130deg,#243329e8,#111c16e8)}.daily-panel h2{margin:0 0 12px;color:#e9ce94}.daily-panel p{line-height:1.6;color:#b9c9b7}.daily-panel select{background:#1e3027;color:#edf0dd;padding:10px;border:1px solid #7d906d88;border-radius:8px}.daily-records{display:grid;gap:10px;margin-block:16px}.daily-record{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;background:#203027;border-radius:10px}.daily-record bdi{flex:1}.daily-record small{color:#b1c1ab}.replay-bar{position:absolute;bottom:2%;left:10%;right:10%;z-index:35;display:flex;align-items:center;gap:10px;padding:12px;background:#111e18ee;border:1px solid #b7cc9d66;border-radius:14px;direction:ltr}.replay-bar input{min-width:40px;flex:1;accent-color:#dfc183}.replay-bar button,.replay-bar select{background:#2c4030;color:#fff;border:1px solid #7d9169;border-radius:8px;padding:8px}.replay-bar output{font:12px monospace;color:#dfcfa9}.replay-bar.hidden{display:none}@media(max-width:500px){.key-grid{grid-template-columns:1fr}.companion-chip{top:25%;font-size:10px}.replay-bar{left:3%;right:3%;padding:8px}.daily-panel{padding:16px}}

#touchControls>button,#touchControls>#movePad{z-index:2}#touchControls>#lookPad{z-index:0}#touchControls button svg{width:50%;height:50%;flex:none}#touchControls button small{line-height:1;max-width:90%;font-size:clamp(8px,1vh,12px);white-space:nowrap;overflow:hidden}#powerStatus:empty{display:none}
.alert-indicator{display:block;color:#b7c7a4;font:10px/1.45 var(--magic-text);letter-spacing:.04em;min-height:1.45em;text-transform:uppercase}.alert-indicator.hot{color:#ec8e63;text-shadow:0 0 10px #ec8e634d}
.upgrade-grid{display:grid;gap:10px;margin:16px 0}.upgrade-card{display:grid;grid-template-columns:1fr auto;gap:4px 12px;text-align:start;padding:12px;border:1px solid #8aa57a55;border-radius:12px;background:#17261de8}.upgrade-card strong{color:#efd49a}.upgrade-card small{grid-column:1/-1;color:#b9c9b7;line-height:1.45}.upgrade-card b{font:600 11px monospace;color:#d8bc7c}.upgrade-card.owned{border-color:#84c8a466;opacity:.7}
.map-tools{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-block:12px}.map-tools button{min-height:44px;min-width:44px;padding:8px 16px;background:#20333d;color:#d7e8ed;border:1px solid #859ba77a;border-radius:12px;font:600 14px var(--magic-text);cursor:pointer}.map-legend,.map-feedback{font:13px/1.6 var(--magic-text);color:#c0d1d4;text-align:start;overflow-wrap:anywhere}.map-feedback{min-height:42px;color:#a3d9c2}.weekly-panel{padding:20px;border:1px solid #a8c3ad55;border-radius:18px;background:linear-gradient(140deg,#293b34d9,#111f1dea);text-align:start}.weekly-panel h3{margin-top:0}.weekly-panel p{font:13px/1.7 var(--magic-text);color:#bbcac3}.weekly-goal{display:grid;grid-template-columns:1fr auto;gap:7px 15px;margin-block:18px;font:14px/1.5 var(--magic-text)}.weekly-goal bdi{color:#edce8c}.weekly-goal progress{grid-column:1/-1;width:100%;height:6px;accent-color:#a7c89d}.cosmetic-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cosmetic-card{display:grid;grid-template-columns:30px 1fr;gap:8px 10px;align-items:center;text-align:start;padding:14px;border:1px solid #7f9c8b60;background:#152820;border-radius:12px;color:#d4dfd4;font:13px/1.5 var(--magic-text);cursor:pointer}.cosmetic-card[aria-pressed=true]{border-color:var(--swatch);box-shadow:inset 0 0 18px #a8d0ad18}.cosmetic-card:disabled{opacity:.5;cursor:default}.cosmetic-card small{grid-column:2;font:11px var(--magic-text);color:#b3c7b6}.swatch{height:24px;width:24px;border-radius:50%;background:var(--swatch);box-shadow:0 0 18px color-mix(in srgb,var(--swatch),transparent 70%)}.collection-card:not(.earned){opacity:.45;filter:grayscale(1)}.collection-card span{display:block;font:13px/1.5 var(--magic-text)}.collection-card b{color:#e2ca8e}.collection-card.earned{border-color:#ceba7a70}#mapOverlay{max-height:94%;overflow:auto;box-sizing:border-box}#mapOverlay canvas{max-height:58vh;width:100%;object-fit:contain}#mapTools{padding-inline:12px}@media(max-width:430px){.cosmetic-grid{grid-template-columns:1fr}.collection-grid{grid-template-columns:repeat(2,1fr)}.weekly-panel{padding:14px}}
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation-duration:.18s}::view-transition-new(root){animation-duration:.22s}}

/* Completion notices replace the existing mission line and leave the view clear. */
.objective-row{position:relative;font:12px/1.35 var(--magic-text);min-height:2.7em;margin-top:5px;pointer-events:none;isolation:isolate}
.objective-row #objective{margin-top:0;transition:opacity .35s ease}
.objective-row .mission-notice{position:absolute;inset:0;display:flex;align-items:center;margin:0;color:#bee6b2;font:600 12px/1.35 var(--magic-text);opacity:0;transition:opacity .5s ease;pointer-events:none;overflow-wrap:anywhere;text-align:start;letter-spacing:0}
.objective-row.notifying #objective{opacity:0}
.objective-row.notifying .mission-notice{opacity:1;transition-duration:.18s}
#app[data-controls=touch] .interact-hint kbd,#app[data-controls=touch] .hud-keyguide,#app[data-controls=touch] .keyboard-hint,#playWrap[data-controls=touch] .keyboard-hint,#playWrap[data-controls=touch] kbd{display:none!important}
#app[data-controls=touch] .interact-hint{max-width:62%;white-space:normal;text-align:center;font:12px/1.3 var(--magic-text);pointer-events:none}
@media(prefers-reduced-motion:reduce){.objective-row #objective,.objective-row .mission-notice{transition:none}}
