@font-face{font-family:Pixel;src:url('../assets/fonts/fusion-pixel-12px-monospaced-zh_hans.ttf.woff2?v=b259134ca6558a88cce77ebf1f96042785982de5') format('woff2');font-display:swap}*{box-sizing:border-box}body{margin:0;background:#e3e0d3;color:#454b3b;font:14px Pixel,monospace}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,summary{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{background:#eeebde;border:1px solid #aaa995;padding:9px 12px;cursor:pointer;box-shadow:0 2px #c1bda9}button:hover,button[aria-pressed=true]{background:#666e50;color:#f1ebd5;border-color:#666e50}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-underline-offset:4px}input,select,textarea{background:#f2efe4;border:1px solid #b5b4a0;padding:7px;min-width:0}input[type=checkbox]{accent-color:#626c4f}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,canvas:focus-visible,summary:focus-visible{outline:2px solid #7b8459;outline-offset:3px}.topbar{height:65px;border-bottom:1px solid #babba5;display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:15px;background:#eeebdf}.topbar h1{font-size:18px;font-weight:400;margin:0;display:flex;align-items:center;gap:16px}.topbar h1 small{font-size:12px;color:#7a8069}.topbar a{text-decoration:none}.topbar .back{font-size:12px}.viewer{max-width:1060px;margin:22px auto;padding:0 24px}.scene-tabs{display:flex;gap:6px;margin-bottom:12px}.scene-tabs button{font-size:12px}.canvas-wrap{background:#bdc2c5;border:6px solid #888e79;outline:1px solid #5f6858;box-shadow:5px 6px #c3c2b0;line-height:0;overflow:hidden}canvas{display:block;width:100%;height:auto;image-rendering:pixelated;image-rendering:crisp-edges}#garden{touch-action:none}.viewer .canvas-wrap{max-width:748px;margin:auto}.scene-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;color:#77806a;margin:15px 0}.scene-footer button{font-size:12px;padding:5px 8px}.scene-footer span:first-child{letter-spacing:1px}#previewNotice{font-size:12px}h2{font-size:14px;font-weight:400;margin:0 0 12px}h2 small{color:#7e856d;font-size:12px}.editor-layout{display:grid;grid-template-columns:minmax(400px,1fr) 330px;gap:26px;padding:22px 26px;max-width:1550px;margin:auto}.workspace{min-width:0}.workspace .canvas-wrap{max-width:790px;margin:auto}.workspace-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:15px;font-size:12px}.workspace-toolbar button{padding:6px 9px}.workspace-toolbar label{display:flex;align-items:center;gap:3px}.studio{display:flex;flex-direction:column;gap:16px}.inspector{background:#ece9dc;padding:14px;border:1px solid #b8baa4}.section-title{display:flex;justify-content:space-between;gap:8px}.section-title span{font-size:12px;color:#848a72}.control-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.control-row button{font-size:12px;padding:7px 9px}.control-row label{font-size:12px;flex:1;min-width:60px}.control-row input,.control-row select{display:block;width:100%;margin-top:5px}.hint,#message{font-size:12px;line-height:1.7;color:#7c826c;margin:8px 0 0}.catalog{min-height:0}.catalog input{width:100%;margin-bottom:10px}.categories{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}.categories button{font-size:12px;padding:5px 7px}.asset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;max-height:420px;overflow:auto;padding:2px 4px 5px 2px}.asset-card{padding:5px 3px;background:#e9e6d7;display:flex;align-items:center;flex-direction:column;gap:2px;font-size:12px;min-height:92px}.asset-card canvas{width:64px;height:64px}.asset-card span{line-height:1.4}.transfer{border-top:1px solid #b3b6a0;padding-top:12px;font-size:12px}.transfer summary{cursor:pointer}.transfer p{line-height:1.6;color:#7a826d}.transfer textarea{width:100%;resize:vertical;margin:4px 0 8px}@media(min-width:1400px){.viewer{max-width:1140px}.viewer .canvas-wrap{max-width:748px}}@media(max-width:900px){.editor-layout{grid-template-columns:1fr;padding:18px;gap:20px}.studio{display:grid;grid-template-columns:1fr 2fr;align-items:start}.transfer{grid-column:1/-1}.asset-grid{max-height:300px}.topbar{padding:0 16px}.topbar h1 small{display:none}}@media(max-width:550px){.topbar{height:56px;gap:8px;padding:0 12px}.topbar h1{font-size:16px}.topbar .back{font-size:12px}.topbar button{font-size:12px;padding:7px}.viewer{padding:0 12px;margin-top:16px}.canvas-wrap{border-width:3px;box-shadow:3px 4px #c3c2b0}.scene-footer{flex-wrap:wrap;gap:10px;line-height:1.5}.scene-footer span:nth-child(2){display:none}.editor-layout{padding:14px 12px}.studio{display:flex}.asset-grid{grid-template-columns:repeat(4,1fr);max-height:360px}.asset-card{font-size:12px}.workspace-toolbar{gap:7px}.scene-tabs button{padding:7px 9px}}
/* The observation is the place itself; only two small notes float over it. */
body.observation{width:100%;height:100%;overflow:hidden;background:#bdc2ca}
.roof-world{position:fixed;inset:0;margin:0;padding:0;overflow:hidden}
.observation #garden{width:100%;height:100%;border:0;outline:0;box-shadow:none;touch-action:manipulation}
.scene-door{position:absolute;background:transparent!important;border:0!important;box-shadow:none!important;padding:0;cursor:pointer;outline-offset:-4px}
.scene-door:hover:after,.scene-door:focus-visible:after{content:none}
.scene-door:focus-visible{outline:none}
.weather-card{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));max-width:calc(100% - 32px);padding:11px 14px;color:#4f5946;background:#e6e2d0df;box-shadow:3px 3px #707b6440;font-size:12px;line-height:1.7;pointer-events:none}
.weather-card p{margin:0}.weather-card p+p{margin-top:5px;color:#72785e}
/* Dongdong's garage: brick walls, a workbench and stocked metal shelves. */
body.garage{background-color:#555b55;background-image:linear-gradient(#3e464440 2px,transparent 2px),linear-gradient(90deg,#3e464438 2px,transparent 2px);background-size:64px 24px;color:#e1dbc5}
.garage .topbar{background:#343e3b;border-bottom:4px solid #8b8064;color:#eee3c5;box-shadow:0 4px #252e2b}.garage .topbar h1{padding:7px 12px;background:#756a4f;border:2px solid #a69773;box-shadow:3px 3px #222e29}.garage .topbar h1 small{color:#d2c6a6}
.garage-cue{margin:22px 28px 0;color:#d0c7ad;font-size:12px}.garage .editor-layout{padding-top:18px}.garage .canvas-wrap{border-color:#9b8b69;outline-color:#303b32;box-shadow:6px 7px #313d35}.garage .scene-tabs button{background:#6b715f;color:#e9dfc2;border-color:#949a7b}.garage .scene-tabs button[aria-pressed=true]{background:#c1b493;color:#384637}
.garage button{background:#c4b698;border-color:#9e967b;color:#3c4739;box-shadow:0 2px #303c32}.garage button:hover,.garage button[aria-pressed=true]{background:#8f9a79;border-color:#b7bea1;color:#202f25}.garage .inspector{background:#827963;color:#f0e7cb;border:3px solid #a69875;box-shadow:4px 4px #354137}.garage .section-title span,.garage .hint,.garage #message{color:#d4ccb4}.garage .inspector .hint{color:#dfd4b8}
.garage .catalog{padding:15px 12px 10px;background:#333f3a;border:3px solid #899280;box-shadow:5px 5px #2c3630}.garage .catalog h2{color:#e5d6b1}.garage h2 small{color:#aea888}.garage .asset-grid{gap:12px 7px;padding-bottom:12px;background:repeating-linear-gradient(transparent 0 97px,#717b66 97px 102px,#26342b 102px 108px)}.garage .asset-card{border:0;box-shadow:none;background:#535e4b;color:#e4dcc4;min-height:96px}.garage .asset-card:hover{background:#788064;color:#fff0ce}.garage input,.garage select,.garage textarea{background:#d9d1b9;border-color:#a29a7c;color:#414d3b}.garage .transfer{padding:12px;background:#424e45;border:1px solid #828e77}.garage .transfer p{color:#c0c3a9}
@media(max-width:550px){.garage .topbar h1{font-size:14px;padding:5px 7px}.garage-cue{margin:18px 12px 0}.garage .editor-layout{padding-top:14px}.weather-card{left:12px;bottom:12px;padding:9px 12px}}

.corner-cards{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));max-width:calc(100% - 32px);display:flex;flex-wrap:wrap;align-items:end;gap:8px}.corner-cards .weather-card{position:static;max-width:100%}.world-card{display:block;padding:11px 14px;color:#4f5946;background:#e6e2d0df;box-shadow:3px 3px #707b6440;font-size:12px;line-height:1.7;text-decoration:none}.world-card:hover{background:#eee9d9}.world-card[hidden]{display:none}@media(max-width:550px){.corner-cards{left:12px;bottom:12px;max-width:calc(100% - 24px)}.world-card{padding:9px 12px}}

.corner-cards{flex-direction:column;flex-wrap:nowrap;align-items:flex-start}.status-card{padding:11px 14px;color:#72785e;background:#e6e2d0df;box-shadow:3px 3px #707b6440;font-size:12px;line-height:1.7;pointer-events:none}.status-card[hidden]{display:none}.observation #garden{cursor:grab}.observation #garden:active{cursor:grabbing}@media(max-width:550px){.status-card{padding:9px 12px}}

.observation #garden{touch-action:none}

.corner-cards{pointer-events:none}.world-card{pointer-events:auto}

/* Shared journal in the garage and a bounded inspection panel in the garden. */
.notebook{padding:16px;background:#d5ccb1;color:#414e3d;border:2px solid #a49977;box-shadow:4px 4px #303d33;min-width:0}.notebook h2{border-bottom:1px dashed #9da181;padding-bottom:9px}.notebook h2 small{color:#68755c}.notebook p{font-size:12px;line-height:1.8;margin:8px 0}.note-heading{display:flex;align-items:center;gap:10px;min-width:0}.note-heading canvas{width:96px;height:96px;flex:0 0 96px}.note-heading h3{font-size:16px;font-weight:400;margin:0 0 8px}.note-heading p{font-family:monospace;font-size:11px;overflow-wrap:anywhere}.notebook [hidden]{display:none}.notebook label{display:block;margin-top:14px;font-size:12px}.notebook select{width:100%;margin-top:7px}.notebook details{border-top:1px dashed #9da181;margin-top:12px;padding-top:10px;font-size:12px}.notebook li{margin:8px 0;line-height:1.6}.notebook ul{padding-left:17px}.notebook a{font-size:12px;overflow-wrap:anywhere}.garage .asset-card:focus-visible{outline-color:#ead9a5}.garage .asset-card canvas{background:transparent}@media(min-width:901px){.garage .asset-grid{min-height:210px}}@media(min-width:551px) and (max-width:900px){.notebook{grid-column:1}.catalog{grid-column:2;grid-row:1 / span 2}}

.notebook p{line-height:1.55;margin:6px 0}.note-heading canvas{width:72px;height:72px;flex-basis:72px}.notebook details{margin-top:9px;padding-top:8px}.notebook #potReason{color:#68745c}.notebook h2{margin-bottom:8px}
.garage .notebook #vesselControls{border-top:1px dashed #9da181;margin-top:9px;padding-top:8px}

/* A visible size control works for shelves, furniture and small objects alike. */
.size-control{margin:12px 0;padding:9px 10px;background:#332e22;border:1px solid #a18148}
.size-control>label{display:flex;justify-content:space-between;color:#e1d3a0;font-size:12px}
.size-control>div{display:flex;align-items:center;gap:10px;margin-top:7px}
.size-control input{flex:1;min-width:50px;accent-color:#bc914b;cursor:pointer}
.size-control button{min-width:34px;padding:6px;font-size:18px;line-height:1}

.weather-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 auto 12px;max-width:790px;font-size:12px;line-height:1.5}.weather-controls label{display:flex;align-items:center;gap:7px}.weather-controls select{padding:5px 7px;min-width:85px}.weather-controls p{margin:0;color:#d0c7ad;flex-basis:100%;font-size:11px}.weather-card{max-width:260px;overflow-wrap:anywhere}@media(max-width:550px){.weather-controls{gap:6px 10px}.weather-controls p{font-size:11px}.weather-card{max-width:230px}}


/* A single compact workbench above the roof, with references on a quiet side shelf. */
.garage{--ui-line:#8c907a;--ui-ink:#ded7c1;--ui-panel:#424d43}
.garage button,.garage summary{box-shadow:none;font-size:12px}
.garage .topbar{height:auto;min-height:58px;padding:10px 20px;justify-content:flex-start;gap:18px;flex-wrap:wrap;border-bottom:1px solid #8b8064;box-shadow:none}
.garage .topbar h1{padding:0;background:transparent;border:0;box-shadow:none;gap:12px;font-size:17px}
.garage-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.garage-actions>button,.garage-actions .transfer summary{padding:6px 10px;font-size:12px}
.garage-actions .transfer{position:relative;padding:0;border:0;background:transparent;z-index:10}
.garage-actions .transfer summary{list-style:none;background:#c4b698;color:#3c4739;border:1px solid #9e967b;cursor:pointer}
.garage-actions .transfer-body{position:absolute;top:calc(100% + 8px);left:0;width:300px;padding:14px;background:#424e45;border:1px solid #828e77;box-shadow:3px 3px #26342b}
.transfer-body p{margin:0 0 8px}.transfer-body .control-row{margin:8px 0}.garage-actions .transfer [hidden]{display:none}
.garage .editor-layout{max-width:1800px;padding:16px 20px;gap:18px;grid-template-columns:minmax(0,1fr) 340px;align-items:start}
.arrange-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.arrange-controls .scene-tabs{margin:0;gap:4px}.arrange-controls .scene-tabs button{padding:6px 10px}
.arrange-controls .weather-controls{margin:0;gap:10px;max-width:none}.arrange-controls .weather-controls select{padding:4px 7px;min-width:80px}
.garage .workspace>.inspector{display:flex;align-items:center;flex-wrap:nowrap;gap:16px;padding:7px 10px;min-height:44px;margin-bottom:12px;border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-ink);box-shadow:none;overflow-x:auto;scrollbar-width:thin}
.workspace .inspector .section-title{display:flex;align-items:center;gap:8px;flex:none;white-space:nowrap}.workspace .inspector h2{margin:0;font-size:12px}.workspace .inspector #count{color:#aeb69c;font-size:11px}
.workspace #objectControls{display:flex;align-items:center;flex-wrap:nowrap;gap:14px;flex:none}.workspace #objectControls[hidden]{display:none}
.workspace .inspector .control-row{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;margin:0;flex:none}
.workspace .inspector .control-row label{display:flex;align-items:center;gap:4px;flex:none;min-width:0;font-size:12px}
.workspace .inspector .control-row input{display:inline-block;width:58px;margin:0;padding:4px;height:28px}
.workspace .size-control{display:flex;align-items:center;gap:7px;flex:none;background:transparent;border:0;padding:0;margin:0}
.workspace .size-control>label{gap:6px;white-space:nowrap;color:var(--ui-ink)}.workspace .size-control>div{display:flex;align-items:center;gap:5px;margin:0}
.workspace .size-control input{width:76px;min-width:76px;padding:0}.workspace .size-control button{min-width:25px;height:28px;padding:3px;font-size:16px}
.workspace .inspector .control-row button{padding:5px 8px;height:28px;white-space:nowrap}.workspace .inspector .hint{display:none}
.garage .workspace .canvas-wrap{border-width:3px;box-shadow:none;outline:1px solid #303b32}
.garage .workspace-toolbar{margin-top:12px;gap:6px;font-size:12px}.garage .workspace-toolbar button{padding:5px 9px}.garage .workspace-toolbar label{margin:0 3px}
.workspace-status{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-top:8px}
.workspace-status #weatherStatus,.garage .workspace-status #message{margin:0;color:#c2c7b3;font-size:11px;line-height:1.5}
.workspace-status #message{text-align:right}
.garage .studio{gap:12px}.garage .notebook{border:1px solid #a49977;box-shadow:none;padding:14px}.garage .catalog{border:1px solid #899280;box-shadow:none;padding:14px 10px}
.garage .catalog h2,.garage .notebook h2{font-size:14px;margin-bottom:10px}.garage .catalog h2 small{display:block;margin-top:6px;font-size:11px}
.garage .categories{gap:4px;margin-bottom:10px}.garage .categories button{padding:4px 6px}.garage .asset-grid{gap:8px 5px}.garage .asset-card{min-height:92px}
@media(min-width:901px){.garage .workspace{position:sticky;top:12px}.garage .workspace .canvas-wrap{width:min(100%,calc((var(--scene-height,calc(100dvh - 250px)) - 6px)*var(--scene-ratio,.945)));max-width:none}.garage .studio{max-height:calc(100dvh - 94px);overflow-y:auto;padding:0 5px 6px 0;scrollbar-color:#92967c #343f38}.garage .asset-grid{max-height:none}.garage .notebook,.garage .catalog{flex:none}}
@media(max-width:900px){.garage .editor-layout{grid-template-columns:1fr;padding:14px 16px}.garage .studio{display:grid;grid-template-columns:1fr 1.4fr;align-items:start}.garage .workspace .canvas-wrap{max-width:790px}.garage .topbar{padding:10px 16px}.workspace .inspector{scrollbar-color:#92967c #343f38}}
@media(max-width:550px){.garage .topbar{padding:10px 12px;gap:10px}.garage .topbar h1{font-size:16px}.garage .editor-layout{padding:12px}.garage .studio{display:flex}.arrange-controls{gap:8px}.arrange-controls .weather-controls{width:100%;justify-content:flex-start}.garage .workspace>.inspector{padding:6px 8px;gap:12px;min-height:42px}.workspace-status{display:block}.workspace-status #message{text-align:left;margin-top:3px!important}.garage-actions .transfer-body{left:-100px;width:min(300px,calc(100vw - 24px))}}

/* Both maps share one stage; small status cards live inside its open sky. */
.garage .workspace .canvas-wrap{position:relative}
.garage .workspace-toolbar{border:1px solid var(--ui-line);background:var(--ui-panel);padding:8px 10px;min-height:44px;margin-top:12px}
.garage .workspace-status{position:absolute;left:12px;bottom:12px;margin:0;max-width:calc(100% - 24px);display:flex;flex-direction:column;align-items:flex-start;gap:5px;pointer-events:none}
.garage .workspace-status #weatherStatus,.garage .workspace-status #message{padding:7px 10px;margin:0!important;background:#e6e2d0ef;color:#4f5946;font-size:11px;line-height:1.6;text-align:left;box-shadow:2px 2px #707b6440}
@media(max-width:550px){.garage .workspace-status{left:7px;bottom:7px;gap:3px}.garage .workspace-status #weatherStatus,.garage .workspace-status #message{padding:5px 7px;font-size:10px}.garage .workspace-toolbar{padding:7px 8px}}

.garage .topbar #preview{margin-left:auto;padding:6px 10px}
.layout-transfer{display:flex;align-items:center;gap:6px;margin-left:auto}
.layout-transfer .transfer{position:relative;padding:0;border:0;background:transparent;z-index:10}
.layout-transfer .transfer summary{list-style:none;cursor:pointer;background:#c4b698;color:#3c4739;border:1px solid #9e967b;padding:5px 9px;font-size:12px}
.layout-transfer .transfer-body{position:absolute;bottom:calc(100% + 10px);right:0;width:300px;padding:14px;background:#424e45;border:1px solid #828e77;box-shadow:3px 3px #26342b}
.layout-transfer [hidden]{display:none}
@media(max-width:550px){.layout-transfer .transfer-body{width:min(300px,calc(100vw - 40px))}}

/* Two arrangements only: a wide studio or a stacked narrow studio. */
.garage .arrange-controls{border:1px solid var(--ui-line);background:var(--ui-panel);padding:8px 10px;min-height:44px;margin-bottom:8px}
.garage .arrange-controls .weather-controls{gap:12px}
.garage .workspace-toolbar{gap:14px;justify-content:flex-start}
.tool-group{display:flex;align-items:center;gap:6px;flex:none;white-space:nowrap}
.garage .workspace-toolbar .tool-options label{margin:0}.garage .workspace-toolbar .layout-transfer{margin-left:auto;gap:6px}
@media(max-width:900px){
 .garage .studio{display:flex;flex-direction:column;gap:12px}
 .garage .arrange-controls{display:grid;grid-template-columns:1fr;gap:10px;padding:10px}
 .garage .arrange-controls .scene-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px}
 .garage .arrange-controls .weather-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}
 .garage .arrange-controls .weather-controls label{min-width:0;gap:6px}.garage .arrange-controls select{flex:1;width:100%;min-width:0}
 .garage .workspace>.inspector{display:block;overflow:visible;padding:10px}
 .workspace .inspector .section-title{justify-content:space-between;white-space:normal;margin:0;gap:10px}
 .workspace .inspector h2{overflow-wrap:anywhere;line-height:1.5}
 .workspace #objectControls{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}
 .workspace #objectControls[hidden]{display:none}
 .workspace .inspector .control-row:first-child{display:grid;grid-template-columns:1fr 1fr;gap:12px}
 .workspace .inspector .control-row label{display:flex;width:100%}.workspace .inspector .control-row input{width:100%;flex:1}
 .workspace .size-control{width:100%;gap:10px}.workspace .size-control>div{flex:1}.workspace .size-control input{width:auto;min-width:40px;flex:1}
 .workspace .inspector .control-row:last-child{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.workspace .inspector .control-row button{width:100%;height:30px}
 .garage .workspace-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;padding:10px}
 .tool-group{min-width:0;gap:6px}.tool-history,.tool-reset{display:grid;grid-template-columns:1fr 1fr}
 .garage .workspace-toolbar .tool-options{justify-content:space-between;gap:3px}.garage .workspace-toolbar .layout-transfer{margin-left:0;justify-content:flex-end;min-width:0}
 .garage .workspace-toolbar button,.layout-transfer .transfer summary{padding:5px 7px;font-size:11px}
 .garage .workspace-toolbar .tool-options label{font-size:11px;gap:2px}
}

.upstairs-arrow{display:inline-block;width:14px;height:13px;position:relative;margin-left:5px;vertical-align:-1px}.upstairs-arrow::before{content:"";position:absolute;left:0;bottom:1px;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;border-bottom-right-radius:4px}.upstairs-arrow::after{content:"";position:absolute;right:0;top:0;width:6px;height:6px;border-top:2px solid currentColor;border-left:2px solid currentColor;transform:rotate(45deg)}
/* Shared alignment for the garage's control modules. */
.garage .workspace-toolbar{display:grid;grid-template-columns:auto 1fr auto auto;gap:0;padding:8px 0;align-items:center}
.garage .workspace-toolbar>.tool-group,.garage .workspace-toolbar>.layout-transfer{padding:0 12px;margin:0;min-height:30px;justify-content:center}
.garage .workspace-toolbar>*+*{border-left:1px solid #78826c}
.garage .workspace-toolbar .tool-options{gap:14px}
.garage .arrange-controls{padding:10px 12px;gap:16px}
.garage .arrange-controls .weather-controls{border-left:1px solid #78826c;padding-left:16px}
.garage .workspace>.inspector{justify-content:space-between;gap:12px;padding:10px 12px}
.garage .workspace #objectControls{gap:18px;flex:0 1 auto}
@media(max-width:900px){
 .garage .arrange-controls{gap:12px;padding:12px}
 .garage .arrange-controls .weather-controls{border-left:0;border-top:1px solid #78826c;padding:12px 0 0;gap:12px}
 .garage .workspace>.inspector{padding:12px}
 .garage .workspace #objectControls{gap:12px}
 .garage .workspace-toolbar{grid-template-columns:1fr 1fr;padding:0;gap:0}
 .garage .workspace-toolbar>.tool-group,.garage .workspace-toolbar>.layout-transfer{padding:10px;min-height:50px}
 .garage .workspace-toolbar>*+*{border-left:0}
 .garage .workspace-toolbar>:nth-child(even){border-left:1px solid #78826c}
 .garage .workspace-toolbar>:nth-child(n+3){border-top:1px solid #78826c}
 .garage .workspace-toolbar .tool-options{gap:4px;justify-content:space-between}
 .garage .workspace-toolbar .layout-transfer{justify-content:stretch}
 .garage .workspace-toolbar .layout-transfer>#export{flex:1}
 .garage .workspace-toolbar .tool-history,.garage .workspace-toolbar .tool-reset{gap:6px}
}
@media(min-width:901px){.garage .workspace>.inspector{height:50px;min-height:50px}}
@media(min-width:901px){
 .garage .editor-layout{max-width:2200px;grid-template-columns:240px minmax(0,1fr) 280px;gap:16px;padding:16px}
 .garage .workspace{grid-column:2;grid-row:1;container-type:inline-size}
 .garage .studio{display:contents}
 .garage .catalog{grid-column:1;grid-row:1;max-height:calc(100dvh - 94px);overflow:auto;scrollbar-color:#92967c #343f38;position:sticky;top:16px}
 .garage .notebook{grid-column:3;grid-row:1;max-height:calc(100dvh - 94px);overflow:auto;scrollbar-color:#92967c #c6bea6;position:sticky;top:16px;box-shadow:none;padding:14px}
 .garage .catalog .asset-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;min-height:0;padding:0;gap:8px}
 .garage .catalog h2 small{display:block;margin-top:6px;line-height:1.5;font-size:11px}
 .garage .catalog .categories{gap:5px}
 .garage .catalog .asset-card{min-width:0}
}
@container(max-width:780px){
 .garage .workspace>.inspector{height:142px;display:block;overflow:visible;padding:10px}
 .workspace .inspector .section-title{justify-content:space-between;margin-bottom:10px}
 .garage .workspace #objectControls{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 .garage .workspace #objectControls[hidden]{display:none}
 .workspace .inspector .control-row:first-child{display:flex}
 .workspace .inspector .control-row:first-child label{flex:1}
 .workspace .inspector .control-row input{width:100%}
 .workspace .size-control{min-width:0}
 .workspace .size-control input{width:50px;min-width:30px}
 .workspace .inspector .control-row:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}
 .garage .workspace-toolbar{grid-template-columns:1fr 1fr;padding:0}
 .garage .workspace-toolbar>.tool-group,.garage .workspace-toolbar>.layout-transfer{padding:9px;min-height:48px}
 .garage .workspace-toolbar>*+*{border-left:0}
 .garage .workspace-toolbar>:nth-child(even){border-left:1px solid #78826c}
 .garage .workspace-toolbar>:nth-child(n+3){border-top:1px solid #78826c}
 .garage .workspace-toolbar .tool-options{gap:5px}
 .garage .arrange-controls{gap:8px;padding:10px}
 .garage .arrange-controls .weather-controls{padding-left:8px;gap:6px}
 .garage .arrange-controls .weather-controls select{min-width:65px}
}
@media(max-width:900px){.garage .studio .catalog{order:0}.garage .studio .notebook{order:1}}
@media(min-width:901px){
 .garage .workspace-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px 12px;padding:8px 10px}
 .garage .workspace-toolbar>.tool-group,.garage .workspace-toolbar>.layout-transfer{padding:0;min-height:28px;justify-content:flex-start;border:0}
 .garage .workspace-toolbar .tool-options{gap:7px}
 .garage .workspace-toolbar .layout-transfer{margin-left:auto;gap:6px}
 .garage .workspace-toolbar button,.garage .workspace-toolbar .transfer summary{padding:5px 7px;font-size:11px}
 .garage .workspace-toolbar label{font-size:11px;gap:2px}
}
.workspace .inspector #count{display:none}
@media(min-width:901px){
 .garage .workspace>.inspector{height:auto;min-height:44px;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;padding:8px 10px}
 .workspace .inspector .section-title{margin:0}
 .garage .workspace #objectControls{display:flex;flex-wrap:wrap;gap:8px}
 .garage .workspace #objectControls[hidden]{display:none}
 .workspace .inspector .control-row:first-child,.workspace .inspector .control-row:last-child{display:flex;gap:5px}
 .workspace .inspector .control-row:first-child label{flex:none}
 .workspace .inspector .control-row input{width:48px}
 .workspace .size-control{gap:5px}
 .workspace .size-control input{width:52px;min-width:52px}
 .workspace .inspector .control-row button{padding:5px 6px;font-size:11px}
}

@media(min-width:901px){
 .garage .note-column{grid-column:3;grid-row:1;position:sticky;top:16px;max-height:calc(100dvh - 94px);overflow:auto;scrollbar-color:#92967c #343f38;display:flex;flex-direction:column;gap:12px}
 .garage .note-column .notebook{position:static;max-height:none;overflow:visible;flex:none}
 .garage .note-column .arrange-controls{display:grid;grid-template-columns:1fr;margin:0;padding:10px;gap:10px}
 .garage .note-column .scene-tabs{display:grid;grid-template-columns:1fr 1fr}
 .garage .note-column .weather-controls{display:grid;grid-template-columns:1fr;border-left:0;border-top:1px solid #78826c;padding:10px 0 0;gap:8px}
 .garage .note-column .weather-controls label{justify-content:space-between}
 .garage .note-column .weather-controls select{width:180px}
 .garage .workspace>.inspector{min-height:46px}
}
@media(max-width:900px){.garage .studio .note-column{order:1;min-width:0}}

#rerollPlant{margin:4px 0 2px;padding:6px 10px;font-size:12px}

#positionText{font-size:10px;color:#aeb69c;white-space:nowrap}.workspace .inspector input[type=hidden]{display:none}

.workspace #duplicate[hidden],.workspace .size-control input[type=hidden]{display:none}@media(max-width:900px){.workspace .inspector .control-row:last-child{grid-template-columns:repeat(2,1fr)}}

.garage .workspace-toolbar .tool-history[hidden]{display:none}
@media(max-width:900px){.garage .workspace-toolbar{display:flex;flex-wrap:wrap;padding:8px;gap:8px}.garage .workspace-toolbar>.tool-group,.garage .workspace-toolbar>.layout-transfer{border:0;padding:0;min-height:28px}.garage .workspace-toolbar .tool-options{width:100%;justify-content:flex-start;gap:12px}.garage .workspace-toolbar .layout-transfer{margin-left:auto}.garage .workspace-toolbar .tool-reset{display:flex}}

.garage .weather-controls .person-toggle{justify-content:flex-start;gap:5px;grid-column:1/-1}

#grid[hidden]{display:none}
/* Modules use colour and a short grounded shadow instead of outlines. */
.garage .catalog,.garage .notebook,.garage .arrange-controls,.garage .workspace>.inspector,.garage .workspace-toolbar{border-color:transparent;outline:0;box-shadow:3px 4px 0 #26332b45}
.garage .workspace .canvas-wrap{border-color:transparent;outline:0;background:#455248;box-shadow:3px 4px 0 #26332b55}
.garage .arrange-controls .weather-controls,.garage .note-column .weather-controls,.garage .workspace-toolbar>*+*{border-color:transparent}
.garage .topbar{border-bottom-color:transparent;box-shadow:0 3px 0 #26332b35}
.garage .catalog #assetCount{display:block;font-size:9px;line-height:1.5;white-space:nowrap;letter-spacing:-.2px}

.garage button,.garage button:hover,.garage button[aria-pressed=true],.garage .transfer summary{border-color:transparent;box-shadow:1px 2px 0 #26332b40}
.garage .canvas-wrap #positionText{position:absolute;top:7px;left:8px;z-index:2;font-size:9px;line-height:1.4;color:#424f43;background:#e6e2d0b8;padding:2px 4px;pointer-events:none;white-space:nowrap}
.garage #positionText[hidden],.garage #scaleValue[hidden]{display:none}
/* No bevel or outline in any garage button state. */
body.garage button,body.garage button:hover,body.garage button:active,body.garage button[aria-pressed],body.garage .transfer summary{border:0!important;box-shadow:0 2px 0 #26332b35}
.garage .catalog,.garage .note-column,.garage .notebook,.garage .asset-grid{scrollbar-width:thin}
.garage .catalog::-webkit-scrollbar,.garage .note-column::-webkit-scrollbar,.garage .notebook::-webkit-scrollbar,.garage .asset-grid::-webkit-scrollbar{width:6px;height:6px}
.garage .catalog::-webkit-scrollbar-thumb,.garage .note-column::-webkit-scrollbar-thumb,.garage .notebook::-webkit-scrollbar-thumb,.garage .asset-grid::-webkit-scrollbar-thumb{background:#92967c;border-radius:3px}
.garage .asset-grid{background:none;row-gap:10px;padding-bottom:8px}
.garage .asset-grid .asset-card{position:relative;overflow:visible;box-shadow:none}
.garage .asset-grid .asset-card::after{content:"";position:absolute;left:0;right:-8px;bottom:-6px;height:3px;background:#717b66;box-shadow:0 2px 0 #26342b;pointer-events:none}
.garage .workspace .canvas-wrap{border:0;outline:0;box-shadow:4px 4px 0 #26332b55}

.garage .canvas-wrap #positionText{background:none;padding:0;color:#424f43}
.garage .note-column>.inspector{border:0;background:var(--ui-panel);box-shadow:3px 4px 0 #26332b45;padding:10px;flex:none}
.note-column .inspector .section-title{margin:0 0 8px}.note-column .inspector h2{margin:0;font-size:12px}
.note-column #objectControls{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.note-column #objectControls[hidden]{display:none}
.note-column #objectControls .control-row:first-child,.note-column .inspector .hint{display:none}
.note-column .inspector .control-row{margin:0;flex-wrap:nowrap;gap:5px}.note-column .inspector .control-row button{padding:5px 7px;font-size:11px}
.note-column .size-control{margin:0;background:none;border:0;padding:0}.note-column .size-control>div{display:flex;gap:5px;margin:0}.note-column .size-control button{min-width:28px;height:28px;padding:4px;font-size:16px}
@media(max-width:900px){
 .garage .workspace>.inspector{padding:10px 12px}
 .garage .workspace #objectControls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}
 .garage .workspace #objectControls[hidden]{display:none}
 .workspace #objectControls .control-row:first-child{display:none}
 .workspace .size-control{width:auto;flex:none;gap:0}
 .workspace .size-control>div{flex:none;gap:5px}
 .workspace .inspector .control-row:last-child{display:flex;gap:5px}
 .workspace .inspector .control-row button{width:auto;height:28px;padding:5px 8px;font-size:11px}
 .workspace .size-control button{width:28px;height:28px;padding:4px}
}
/* The footer's compact control size is shared across the garage. */
body.garage button:not(.asset-card),body.garage .transfer summary{font-size:11px;line-height:1.5;padding:5px 7px;min-height:26px;height:auto}
body.garage .size-control button{width:28px;min-width:28px;padding:5px 7px;font-size:11px;line-height:1.5}
body.garage .categories button{font-size:11px;padding:5px 7px}
body.garage .asset-card{font-size:11px}
body.garage input,body.garage select{font-size:11px}
/* The shelf column owns scrolling; its item grid never scrolls independently. */
@media(min-width:901px){.garage .catalog .asset-grid{overflow:visible;max-height:none;padding-right:8px}}
.garage #count{display:none}
.garage .inspector,.garage .workspace>.inspector,.garage .note-column>.inspector{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 8px;min-height:32px}
.garage .inspector .section-title{margin:0;flex:none}
.garage .inspector #objectControls{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;margin:0;flex:none}
.garage .inspector #objectControls[hidden]{display:none}
.garage .inspector .control-row{gap:4px}
body.garage button:not(.asset-card),body.garage .transfer summary{padding:3px 7px;min-height:22px;height:auto;line-height:1.45}
body.garage .size-control button{padding:3px 7px;width:25px;min-width:25px;height:auto}
.garage .workspace-status #weatherStatus,.garage .workspace-status #message{padding:3px 7px;line-height:1.45}
/* The right column scrolls as a whole; none of its modules may shrink. */
.garage .note-column>*{flex-shrink:0}
.garage .note-column .arrange-controls{flex:none}
body.garage button:not(.asset-card),body.garage .transfer summary{padding:2px 7px;min-height:20px;line-height:1.35}
body.garage .size-control button{padding:2px 7px;height:auto;min-height:20px}
.garage .workspace-status #weatherStatus,.garage .workspace-status #message{padding:2px 7px;line-height:1.35}
/* One fixed control-card metric overrides older per-panel sizing rules. */
body.garage button:not(.asset-card),body.garage .transfer summary{height:20px!important;min-height:20px!important;padding:2px 7px!important;font-size:11px!important;line-height:16px!important;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}
@media(min-width:901px){
 .garage .catalog{display:flex;flex-direction:column;height:calc(100dvh - 94px);overflow:hidden}
 .garage .catalog>h2,.garage .catalog>input,.garage .catalog>.categories{flex:none}
 .garage .catalog .asset-grid{flex:1;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;padding-right:8px;align-content:start}
}
/* Pixel glyphs sit high in the font box: lower them within the shared card. */
body.garage button:not(.asset-card),body.garage .transfer summary{padding:4px 7px 0!important;line-height:16px!important}
body.garage #preview{height:30px!important;min-height:30px!important;padding:7px 14px 3px!important;background:#a7b39a;color:#303d32;gap:4px}
body.garage #preview:hover{background:#bdc6ad;color:#303d32}
body.garage button[hidden]{display:none!important}
.garage .inspector #objectControls{margin-left:auto}
.garage .inspector .section-title{min-width:0}
body.garage .size-control button{width:20px!important;min-width:20px!important;height:20px!important;flex:0 0 20px;padding:4px 0 0!important}

/* All lower-left cards share the same compact, translucent surface. */
.corner-cards{gap:4px}
:is(.corner-cards,.observation .view-controls) .world-card,.garage .workspace-status #weatherStatus,.garage .workspace-status #message{padding:3px 10px;border:0;border-radius:0;background:#b9b8a86b;color:#333e32;box-shadow:2px 2px #49554118;font:12px Pixel,monospace;line-height:1.5;text-align:left;margin:0;max-width:260px}
:is(.corner-cards,.observation .view-controls) a.world-card:hover,:is(.corner-cards,.observation .view-controls) button.world-card:hover{background:#cac8b780;color:#333e32}
:is(.corner-cards,.observation .view-controls) button.world-card[aria-pressed=true]{background:#b9b8a86b;color:#333e32}
.corner-cards .status-card[hidden]{display:none}
@media(max-width:550px){:is(.corner-cards,.observation .view-controls) .world-card,.garage .workspace-status #weatherStatus,.garage .workspace-status #message{padding:3px 9px;max-width:230px}.corner-cards{gap:4px}}

/* A single vertical shelf, without overflowing labels or shelf rails. */
.garage .catalog,.garage .asset-grid,.garage .asset-card{min-width:0}
.garage .catalog{overflow-x:hidden}
.garage .catalog .asset-grid{overflow-x:hidden;overflow-y:auto;touch-action:pan-y;overscroll-behavior-x:none;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 0 7px;gap:9px 6px}
.garage .asset-grid .asset-card{overflow:hidden;padding:5px 3px;align-items:center;justify-content:center;text-align:center;min-width:0}
.garage .asset-card span{display:block;width:100%;text-align:center;overflow-wrap:anywhere;line-height:1.5}
.garage .asset-grid .asset-card::after{right:0;box-shadow:none}
.garage .asset-card canvas{max-width:100%;flex:none}
/* Explicit line boxes avoid the old platform-dependent padding offsets. */
body.garage button:not(.asset-card),body.garage .transfer summary{height:24px!important;min-height:24px!important;padding:0 7px!important;line-height:24px!important;align-items:center;justify-content:center;text-align:center;border-radius:0}
body.garage .size-control button{width:24px!important;min-width:24px!important;flex-basis:24px;height:24px!important;padding:0!important}
body.garage select{height:26px;padding:0 23px 0 7px;line-height:normal;border-radius:0;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#59664e 50%),linear-gradient(135deg,#59664e 50%,transparent 50%);background-position:calc(100% - 11px) 11px,calc(100% - 7px) 11px;background-size:4px 4px;background-repeat:no-repeat}
body.garage #preview{display:inline-flex;align-items:center;justify-content:center;height:28px;min-height:28px;padding:0 10px;line-height:28px;font-size:11px;background:#a7b39a;color:#303d32;text-decoration:none;gap:4px}
.garage .workspace-status{gap:4px;left:16px;bottom:16px}
.garage .workspace-status #message{margin-top:0!important;text-align:left}
@media(max-width:900px){
 .garage .topbar{height:48px;padding:8px 12px}
 .garage .editor-layout{padding:10px;gap:12px}
 .garage .arrange-controls{padding:7px 8px;gap:6px;margin-bottom:6px;min-height:0}
 .garage .arrange-controls .scene-tabs{gap:5px}
 .garage .arrange-controls .weather-controls{padding:0;margin:0;gap:6px 10px;border:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center}
 .garage .arrange-controls .weather-controls label{gap:4px;white-space:nowrap;font-size:11px}
 .garage .weather-controls .person-toggle{grid-column:auto;gap:3px}
 .garage .person-toggle input{margin:0;width:14px;height:14px}
 .garage .workspace>.inspector{min-height:32px;height:auto;padding:4px 7px;gap:5px;display:flex;flex-wrap:nowrap}
 .garage .workspace .inspector h2{font-size:11px;line-height:1.5}
 .garage .workspace #objectControls{gap:4px;margin:0}
 .garage .workspace .size-control,.garage .workspace .size-control>div{gap:4px;margin:0}
 .garage .workspace .inspector .control-row:last-child{gap:4px}
 .garage .workspace-toolbar{padding:6px 7px;gap:6px;align-items:center}
 .garage .workspace-toolbar>.tool-group,.garage .workspace-toolbar>.layout-transfer{min-height:24px;padding:0;border:0}
 .garage .workspace-toolbar .tool-options{width:auto;min-height:24px}
 .garage .workspace-toolbar .tool-options label{font-size:11px;margin:0;gap:4px}
 .garage .workspace-toolbar .tool-options input{margin:0;width:14px;height:14px}
 .garage .workspace-toolbar .layout-transfer{margin-left:auto;gap:5px}
 .garage .catalog{padding:10px 8px 8px}
 .garage .catalog h2{font-size:14px;margin-bottom:7px;line-height:1.5}
 .garage .catalog #search{height:30px;padding:3px 7px;margin-bottom:7px;border-radius:0}
 .garage .categories{gap:4px;margin-bottom:8px}
 .garage .catalog .asset-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:420px}
 .garage .asset-grid .asset-card{min-height:87px;gap:3px;font-size:10px}
 .garage .notebook{padding:10px}
}
@media(max-width:550px){.garage .workspace-status{left:12px;bottom:12px}.garage .topbar h1{font-size:15px}}
@media(max-width:360px){.garage .arrange-controls .weather-controls{gap:5px}.garage .catalog .asset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.garage .workspace>.inspector{height:auto;min-height:32px}

.garage .note-column .weather-controls .person-toggle{justify-content:flex-start;gap:5px}

@media (orientation:landscape) and (min-width:700px){.observation .corner-cards,.observation .view-controls{zoom:1.1666667}}
/* Keep the established compact proportions, with a clearer paper surface. */
:is(.corner-cards,.observation .view-controls) .world-card,.garage .workspace-status .world-card{background:#d0cebae6;box-shadow:2px 3px 0 #46533b55}
:is(.corner-cards,.observation .view-controls) a.world-card:hover,:is(.corner-cards,.observation .view-controls) button.world-card:hover{background:#ddd8c2f2}
:is(.corner-cards,.observation .view-controls) button.world-card[aria-pressed=true]{background:#c5ccb5eb}
.garage .workspace-status .world-card{padding:3px 10px;font:12px Pixel,monospace;line-height:1.5;margin:0;max-width:260px}


.garage.room-edit .workspace{--scene-ratio:1.3333333}
.garage.room-edit .workspace .canvas-wrap{aspect-ratio:4/3}
.garage.room-edit .workspace #garden{height:100%;aspect-ratio:auto}
.garage .scene-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%;gap:4px!important}.garage .scene-tabs button{white-space:nowrap;min-width:0;padding:0 4px!important;font-size:11px}

/* Scale the complete compact card group, preserving its internal proportions. */
.observation .corner-cards{gap:6px}:is(.corner-cards,.observation .view-controls) .world-card{background:#d0cebac7;box-shadow:2px 3px #46533b55}:is(.corner-cards,.observation .view-controls) a.world-card,:is(.corner-cards,.observation .view-controls) button.world-card{background:#665f5099;color:#f1e6cf;cursor:pointer}:is(.corner-cards,.observation .view-controls) a.world-card:hover,:is(.corner-cards,.observation .view-controls) button.world-card:hover{background:#746a58b5;box-shadow:2px 4px #46533b66;transform:translateY(-1px)}:is(.corner-cards,.observation .view-controls) a.world-card:active,:is(.corner-cards,.observation .view-controls) button.world-card:active{transform:translateY(1px);box-shadow:1px 1px #46533b55}:is(.corner-cards,.observation .view-controls) button.world-card[aria-pressed=true]{background:#514b40b0}
@media(orientation:landscape) and (min-width:700px){.observation .corner-cards,.observation .view-controls{zoom:1.3}}
@keyframes card-arrival{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.corner-cards .card-arrival{animation:card-arrival .45s ease-out var(--card-delay,0ms) backwards}@media(prefers-reduced-motion:reduce){.corner-cards .card-arrival{animation:card-reveal .3s ease-out var(--card-delay,0ms) backwards}}@keyframes card-reveal{from{opacity:0}to{opacity:1}}

:is(.corner-cards,.observation .view-controls) .world-card{background:#cec7acb8;color:#3d4939;box-shadow:2px 3px #53604b55}:is(.corner-cards,.observation .view-controls) a.world-card,:is(.corner-cards,.observation .view-controls) button.world-card{background:#8e9279b3;color:#263b30}:is(.corner-cards,.observation .view-controls) a.world-card:hover,:is(.corner-cards,.observation .view-controls) button.world-card:hover{background:#b2b59bd6;color:#25372c}:is(.corner-cards,.observation .view-controls) button.world-card[aria-pressed=true]{background:#7e8975c9;color:#f0e5c9}:is(.corner-cards,.observation .view-controls) .world-card[hidden]{display:none!important}.corner-cards .feed-enter{animation:feed-enter .5s ease-out both}@keyframes feed-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Updated feed cards still reveal when reduced motion is enabled. */
@media(prefers-reduced-motion:reduce){.corner-cards .feed-enter{animation:card-reveal .3s ease-out both}}

/* Placement has a stable row so selection never shifts the drag canvas. */
.placement-controls{display:flex;align-items:center;gap:12px;min-height:40px;margin:0 0 8px;padding:10px 12px;background:var(--ui-panel,#454f43);border:0;box-shadow:3px 4px 0 #26332b45;font-size:11px;color:var(--ui-ink,#ddd8c1)}
.placement-controls label{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap}
.placement-controls select{min-width:0;max-width:210px;height:28px;padding:3px 6px;font-size:11px}
.placement-controls select:disabled{opacity:.65}
@media(max-width:550px){.placement-controls{gap:8px}.placement-controls label:first-child{flex:1}.placement-controls #supportParent{width:100%;max-width:none}.placement-controls #supportLevel{width:90px}}

.contents-control:not([hidden]){display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px}.contents-control select{flex:1;min-width:0;width:100%}

canvas[data-renderer="3d"]{image-rendering:auto}

.note-comment{color:#596044;padding:8px 0 3px}
.action-card{max-width:290px;pointer-events:none}.action-card p{margin:0}
.observation-notebook{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));width:252px;max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;z-index:5;background:rgba(213,204,177,.78);box-shadow:3px 3px #343b3430}
.observation-notebook[hidden]{display:none}.notebook-title{display:flex;align-items:center;gap:12px;border-bottom:1px dashed #9da181;margin-bottom:8px}.notebook-title h2{flex:1;border:0;padding:0;margin:0}.notebook-title button{padding:3px 9px;box-shadow:none;background:transparent;border:0;font-size:20px}
@media(max-width:550px){.observation-notebook{top:56px;right:10px;width:228px;max-width:calc(100% - 20px);max-height:calc(100dvh - 76px);padding:10px}.action-card{max-width:250px}}
.observation .observation-notebook{position:fixed;z-index:16;top:calc(var(--observation-overlay-bottom,76px) + 14px);max-height:calc(100vh - var(--observation-overlay-bottom,76px) - 30px);max-height:calc(100dvh - var(--observation-overlay-bottom,76px) - 30px - env(safe-area-inset-bottom))}

.observation .view-controls {
  position: fixed;
  z-index: 6;
  left: max(8px, env(safe-area-inset-left));
  top: max(8px, env(safe-area-inset-top));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 2px;
  background: #babaa9b8;
}
.observation .view-controls[hidden] {
  display: none;
}
.observation .view-controls button {
  min-height: 30px;
  min-width: 36px;
  padding: 3px 6px;
  border: 0;
  background: transparent;
  font-size: 11px;
}
.observation .view-controls button[aria-pressed="true"] {
  background: #4e5a4c;
  color: #e0dbc3;
}
.narrative-views{display:flex;align-items:center;gap:2px}
.observation .narrative-views button{font-size:12px;white-space:nowrap;box-shadow:none}
.observation .narrative-views button[data-narrative-view="neighbor"]{min-width:30px}
.narrative-views[hidden]{display:none}
.observation .corner-cards{z-index:5}
.narrative-views button[aria-pressed="true"]{background:#4e5a4c;color:#e0dbc3}
.neighbor-scope{position:fixed;z-index:4;pointer-events:none;left:50%;top:50%;width:min(88vw,82vh);width:min(88vw,82dvh);aspect-ratio:1;transform:translate(-50%,-50%);font-family:Pixel,monospace;color:#d2bc85;text-shadow:2px 2px #101711;letter-spacing:1px}
.scope-mask,.scope-engraving{position:absolute;left:0;top:0;image-rendering:pixelated;transform:none}
.scope-mask{z-index:0}.scope-engraving{z-index:1}
.scope-optics-top{position:absolute;z-index:2;top:14%;left:26%;right:26%;display:flex;align-items:center;justify-content:space-between;font-size:12px;line-height:1.4}
.scope-optics-top .scope-level{display:flex;align-items:center;gap:4px}
.scope-optics-range{position:absolute;z-index:2;bottom:12%;left:30%;right:30%;display:grid;justify-items:center;line-height:1.4}
.scope-optics-range small{font-size:10px}.scope-optics-range strong{font:24px Pixel,monospace;white-space:nowrap}
.scope-unit-label{position:absolute;z-index:2;bottom:22%;left:16%;font-size:9px;color:#29342abd;text-shadow:none}
.neighbor-scope[hidden]{display:none}
.observation .view-controls{flex-wrap:wrap;max-width:calc(100vw - 16px)}
.legacy-view-controls{display:flex;gap:2px}
.legacy-view-controls[hidden]{display:none}
.station-controls{display:flex;flex-wrap:wrap;gap:2px}
.station-controls[hidden]{display:none}
.observation .station-controls button{min-height:28px;font-size:11px;box-shadow:none;white-space:nowrap}
.notebook-browser{display:block;width:100%;margin:0 0 12px;padding:6px;background:#e1e3d5;color:#35443b;border:1px solid #9ca59a;font-size:12px}
@media(max-width:550px){.scope-optics-top{font-size:11px;left:24%;right:24%}.scope-optics-range strong{font-size:20px}}
/* Native 16-pixel observer sprites, shown at a whole two-times scale. */
.observer-icon{display:block;width:32px;height:32px;flex:none;background-image:url('./assets/observers/observer-icons-atlas.png?v=b259134ca6558a88cce77ebf1f96042785982de5');background-size:256px 256px;background-repeat:no-repeat;image-rendering:pixelated}
.observation .narrative-views button,.observation .station-controls button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;min-height:40px;padding:3px;border:1px solid #5c68524a;background:#c6c4ac80}
.observation .narrative-views button[aria-pressed=true]{background:#d3c8a8;border-color:#69705b;box-shadow:inset 2px 2px #8a907066}
.observation .view-controls{gap:5px;padding:6px;max-width:calc(100vw - 24px)}
.observation .station-controls{gap:3px}
.observer-icon[data-icon="bird"]{background-position:-4px -4px}
.observer-icon[data-icon="drone"]{background-position:-64px -4px}
.observer-icon[data-icon="question"]{background-position:-124px -4px}
.observer-icon[data-icon="left"]{background-position:-184px -4px}
.observer-icon[data-icon="up"]{background-position:-4px -64px}
.observer-icon[data-icon="right"]{background-position:-64px -64px}
.observer-icon[data-icon="down"]{background-position:-124px -64px}
.observer-icon[data-icon="near"]{background-position:-184px -64px}
.observer-icon[data-icon="far"]{background-position:-4px -124px}
.observer-icon[data-icon="in"]{background-position:-64px -124px}
.observer-icon[data-icon="out"]{background-position:-124px -124px}.garage .placement-controls{flex-wrap:wrap;gap:7px 12px;flex:none;padding:8px 10px}
.edit-camera-controls{display:flex;align-items:center;gap:4px;width:100%;flex-wrap:wrap;padding-top:5px;border-top:1px solid #d6d0b526}
body.garage .edit-camera-controls button{width:27px!important;min-width:27px!important;height:27px!important;padding:0!important;font-size:16px!important}
body.garage .edit-camera-controls button:last-child{width:auto!important;min-width:42px!important;font-size:11px!important}
.edit-camera-controls .observer-icon{width:16px;height:16px;background-size:128px 128px}
.edit-camera-controls .observer-icon[data-icon="bird"]{background-position:-2px -2px}
.edit-camera-controls .observer-icon[data-icon="drone"]{background-position:-32px -2px}
.edit-camera-controls .observer-icon[data-icon="question"]{background-position:-62px -2px}
.edit-camera-controls .observer-icon[data-icon="left"]{background-position:-92px -2px}
.edit-camera-controls .observer-icon[data-icon="up"]{background-position:-2px -32px}
.edit-camera-controls .observer-icon[data-icon="right"]{background-position:-32px -32px}
.edit-camera-controls .observer-icon[data-icon="down"]{background-position:-62px -32px}
.edit-camera-controls .observer-icon[data-icon="near"]{background-position:-92px -32px}
.edit-camera-controls .observer-icon[data-icon="far"]{background-position:-2px -62px}
.edit-camera-controls .observer-icon[data-icon="in"]{background-position:-32px -62px}
.edit-camera-controls .observer-icon[data-icon="out"]{background-position:-62px -62px}

#weatherSource{display:block;font-size:10px;line-height:1.5;color:inherit}#weatherSource[hidden]{display:none}#weatherSource a{color:inherit;pointer-events:auto;text-underline-offset:2px}.garage .workspace-status .world-card #weatherStatus{padding:0;margin:0;background:none;box-shadow:none}
