/* CRAFT visual system, inherited from PEPEPAINT (MIT, Nathan Gregg). */
@font-face{font-family:unscii;src:url('./fonts/unscii-8.otf') format('opentype');font-display:swap}
@font-face{font-family:unscii-tall;src:url('./fonts/unscii-8-tall.otf') format('opentype');font-display:swap}
:root{--green:#246e3c;--dark:#214b30;--paper:#f6f5e9;--line:#c4d0ad;--soft:#e6ecd7;--bright:#dce9a4;font-family:unscii-tall,monospace;color:var(--dark);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;height:100dvh;min-height:500px;display:flex;flex-direction:column;padding:0 24px}button,input{font:inherit}button{cursor:pointer;border:1px solid var(--green);border-bottom-width:3px;background:var(--paper);color:var(--green);padding:10px 14px;white-space:nowrap;font-size:14px;line-height:1.25;box-shadow:inset 1px 1px #fff;transition:background .12s,transform .12s}button:hover{background:#e3eacb}button:active{transform:translateY(1px);border-bottom-width:2px}button:disabled{opacity:.42;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e5a642;outline-offset:3px}button.primary{background:var(--green);color:#fffde9;border-color:#1b522c;box-shadow:inset 1px 1px #539064}button.primary:hover{background:#368247}button.square{width:40px;padding:9px 0}.text-button{padding:0;border:0;box-shadow:none;background:none;font-size:11px;text-decoration:underline;text-underline-offset:3px}.text-button:hover{background:none;color:#47964f}.topbar{height:103px;min-height:103px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--green);font-family:unscii,monospace;font-size:16px;letter-spacing:-1px;line-height:1.2}.brand img{width:57px;height:57px;image-rendering:pixelated;border:1px solid var(--green);padding:2px;background:#fff}.craft-word{display:block;font-size:32px;letter-spacing:1px}.version{font-size:11px;letter-spacing:0;vertical-align:middle;font-family:unscii-tall,monospace;opacity:.7}.world-title{margin-right:auto;border-left:1px solid var(--line);padding-left:24px;min-width:150px;max-width:270px}.world-title label,.tiny-label,.eyebrow{display:block;font-size:10px;letter-spacing:1px;line-height:1.4}.world-title input{width:100%;border:0;border-bottom:1px dashed var(--line);background:transparent;color:var(--dark);font-size:18px;padding:7px 0 4px;outline-offset:4px}.topbar nav{display:flex;gap:8px}main{display:flex;flex:1;flex-direction:column;min-height:0}.world-strip{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--green);height:34px;min-height:34px;font-size:10px;letter-spacing:.5px}.divider{margin:0 10px;opacity:.4}.live-dot{display:inline-block;width:6px;height:6px;background:var(--green);margin-right:7px}#viewport{position:relative;flex:1;min-height:260px;border:2px solid var(--green);background:#b7dcdf;overflow:hidden;isolation:isolate}#viewport>canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.scene-label{position:absolute;left:18px;top:17px;pointer-events:none;color:#386456;opacity:.8}.scene-label .tiny-label{font-size:9px}.scene-meta{position:absolute;right:14px;top:12px;display:flex;gap:15px;align-items:center;font-size:10px;color:#39634e}.scene-meta button{font-size:10px;padding:6px 8px;background:#f6f5e9d9}.tool-rail{position:absolute;left:16px;top:52px;display:flex;flex-direction:column;gap:8px}.tool-rail button{width:54px;height:52px;font-family:unscii,monospace;font-size:21px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px;background:#f6f5e9e8}.tool-rail button span{font:8px unscii-tall,monospace;margin-top:4px}.tool-rail button.active{background:var(--green);color:var(--paper)}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;font-size:24px;pointer-events:none;text-shadow:1px 1px var(--dark)}.welcome-card{position:absolute;left:100px;bottom:34px;width:354px;background:var(--paper);border:1px solid var(--green);box-shadow:5px 5px 0 #31583733;padding:23px 24px 0}.welcome-card .eyebrow{font-size:9px;letter-spacing:.7px}.welcome-card h1{font-family:unscii,monospace;font-size:24px;letter-spacing:-1px;line-height:1.5;font-weight:400;margin:15px 0 10px}.welcome-card p{font-size:14px;line-height:1.6;opacity:.8;margin:0 0 22px}.welcome-card .big{display:block;width:100%;padding:13px}.welcome-card>.text-button{display:block;margin:14px auto 20px;font-size:9px}.welcome-footer{border-top:1px solid var(--line);margin:0 -24px;display:flex;justify-content:space-between;padding:13px 15px;font-size:8px;background:#e9ecd9}.bottom-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;height:109px;min-height:109px;border-bottom:1px solid var(--line)}.selected-block{display:flex;align-items:center;gap:12px;min-width:160px;max-width:210px}.selected-image{width:53px;height:53px;border:1px solid var(--line);padding:3px;flex-shrink:0;background:#e9eedb}.selected-image img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.selected-block strong{font-size:14px;font-weight:400;display:block;margin:7px 0;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-block .tiny-label{font-size:8px;letter-spacing:.5px}#slot-label{font-size:9px;color:#79916c}#hotbar{display:flex;gap:6px}#hotbar button{position:relative;width:62px;height:62px;padding:5px;background:#edf0df;border-color:#a3b591;border-width:1px 1px 3px}#hotbar button.active{border:2px solid var(--green);border-bottom-width:4px;outline:2px solid #9bbb78;outline-offset:2px;background:#fffcea}#hotbar img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}#hotbar .swatch{display:block;width:100%;height:100%}#hotbar kbd{position:absolute;left:1px;top:1px;background:#f4f4e5;color:var(--green);font-size:9px;padding:2px 3px;line-height:1}.palette-actions{display:flex;flex-direction:column;gap:7px}.palette-actions>button{width:100%;padding:7px 12px}.palette-actions>div{display:flex;gap:5px}.palette-actions>div>button{padding:5px 11px;font-size:15px}.palette-actions #fly-button{font-size:11px}.palette-actions #fly-button[aria-pressed=true]{background:var(--bright)}kbd{font:9px unscii-tall,monospace;opacity:.7;margin-left:5px}footer{min-height:35px;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#6c8362}#save-status::before{content:'';display:inline-block;width:5px;height:5px;background:#76a66b;margin-right:7px}#save-status.error::before{background:#c46448}footer .text-button{font-size:8px;color:inherit}.loading{position:absolute;inset:0;background:#f6f5e9ef;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:18px;gap:14px}.loading span{font-size:12px;opacity:.6}#toast{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);padding:12px 18px;border:1px solid var(--green);background:var(--paper);max-width:90%;width:max-content;font-size:12px;text-align:center;box-shadow:3px 3px #20472926;z-index:4}.photo-controls{position:absolute;bottom:18px;left:18px;right:18px;display:flex;align-items:center;gap:9px;background:var(--paper);padding:12px 15px;border:1px solid var(--green)}.photo-controls>span{margin-right:auto;font-size:12px}.photo-controls small{display:block;font-size:9px;margin-top:5px;opacity:.6}.photo-controls button{font-size:10px;padding:8px}dialog{color:var(--dark);background:var(--paper);padding:26px;border:2px solid var(--green);width:min(700px,calc(100vw - 32px));max-height:85dvh;box-shadow:8px 8px #183b3438;overflow:auto}dialog::backdrop{background:#183b344f;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px}.dialog-heading h2{font-family:unscii,monospace;font-weight:400;font-size:21px;line-height:1.5;letter-spacing:-.7px;margin:9px 0 0}.dialog-heading .eyebrow{font-size:9px;color:#6c8362}.close{font-family:unscii,monospace;font-size:18px}.library-dialog{width:min(920px,calc(100vw - 32px))}.library-tabs{display:flex;gap:7px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.library-tabs button{border:0;font-size:12px;background:transparent;box-shadow:none}.library-tabs button.active{background:var(--green);color:var(--paper)}.library-tabs button span{font-size:8px;background:#dae5be;color:var(--green);padding:3px;margin-left:6px}#library-search{width:100%;border:1px solid var(--line);padding:12px;background:#fffef5;color:var(--dark);font-size:14px;margin-bottom:18px}.library-body{display:grid;grid-template-columns:1fr 200px;gap:25px}.library-results{height:360px;overflow:auto;padding:4px 7px 8px 4px;scrollbar-color:#9ab588 var(--soft);scrollbar-width:thin}.library-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.library-grid button{min-width:0;padding:5px 4px 7px;border-color:var(--line);background:#edf0df;font-size:8px;overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;gap:6px;align-items:center}.library-grid button img,.library-grid button .swatch{display:block;width:100%;aspect-ratio:1;object-fit:contain;image-rendering:pixelated}.library-grid button.active{outline:2px solid var(--green);outline-offset:0}.library-grid button span{max-width:100%;overflow:hidden;text-overflow:ellipsis}.material-detail{border-left:1px solid var(--line);padding-left:23px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}#detail-image{width:150px;height:150px;background:#e6ebd5;border:1px solid var(--line);padding:7px;margin-bottom:18px}#detail-image img,#detail-image .swatch{width:100%;height:100%;object-fit:contain;display:block;image-rendering:pixelated}.material-detail .tiny-label{font-size:8px}.material-detail h3{margin:9px 0;font-size:16px;font-weight:400;overflow-wrap:anywhere}.material-detail p{font-size:12px;line-height:1.5;margin:0 0 12px}.material-detail a{color:var(--green);font-size:9px;margin-bottom:18px}.material-detail button{font-size:11px;width:100%;margin-bottom:14px}.subtle{font-size:11px!important;color:#6c8362;line-height:1.5!important}#optional-library{text-align:center;padding:18px 30px}.optional-icon{font-size:48px;line-height:1}#optional-library h3{font-size:20px;font-weight:400}#optional-library p{font-size:13px;line-height:1.6}#connect-library{font-size:11px}#more-blocks{display:block;margin:15px auto 0;font-size:10px}.save-options{display:grid;grid-template-columns:1fr 1fr;gap:25px}.save-options section+section{border-left:1px solid var(--line);padding-left:25px}.save-options img{width:100%;aspect-ratio:1.6;object-fit:cover;border:1px solid var(--line);background:var(--soft)}.save-options h3{font-size:17px;font-weight:400;margin-bottom:8px}.save-options p{font-size:12px;line-height:1.6}.save-options .primary{font-size:11px;width:100%;margin:12px 0}.save-options .text-button{display:block;margin:7px 0}.world-file-icon{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1.6;background:#e2e9d3;border:1px dashed #a9ba91;font-size:40px;color:#66864f}.world-export small{display:block;font-size:10px}.menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-actions button{font-size:12px;padding:15px 9px}.help-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.help-columns h3{font-size:16px;font-weight:400;border-bottom:1px solid var(--line);padding-bottom:10px}dl{display:grid;grid-template-columns:1fr 1.2fr;font-size:12px;gap:12px}dt{color:var(--green);font-size:10px}dd{margin:0}.help-note{background:var(--soft);padding:16px;font-size:12px;line-height:1.6;margin:20px 0}.credits{font-size:11px;line-height:1.8;color:#6c8362}.credits a{color:var(--green)}.error{color:#ad5036!important}.fatal{padding:25px;font-size:15px;line-height:1.7}[hidden]{display:none!important}
@media(min-width:1500px){body{padding:0 36px}.welcome-card{bottom:50px;left:120px;width:385px;padding:27px 29px 0}.welcome-card h1{font-size:27px}.welcome-footer{margin:0 -29px}.topbar{height:115px;min-height:115px}#hotbar button{width:70px;height:70px}.bottom-bar{height:125px;min-height:125px}}
@media(max-width:1100px){body{padding:0 16px}.brand{font-size:12px}.craft-word{font-size:27px}.brand img{width:49px;height:49px}.topbar{gap:15px}.world-title{padding-left:15px;max-width:190px}.topbar nav button{padding:9px;font-size:12px}.selected-block{min-width:120px}.selected-image{display:none}#hotbar{gap:5px}#hotbar button{width:51px;height:55px}.palette-actions>div>button{padding:5px 9px}.welcome-card{left:88px;width:330px}.scene-label{max-width:50%}}
@media(max-width:800px){body{padding:0 10px}.topbar{height:86px;min-height:86px;gap:9px}.brand{font-size:10px;gap:7px}.craft-word{font-size:22px}.brand img{width:42px;height:42px}.world-title{display:none}.topbar nav{gap:5px}.topbar nav button{font-size:10px;padding:9px 7px}.topbar nav .square{width:30px}.world-strip{font-size:8px}.world-strip>span:last-child{display:none}.bottom-bar{height:120px;min-height:120px;flex-wrap:wrap;justify-content:center;gap:8px;padding:10px 0}.selected-block{display:none}#hotbar{order:1;width:100%;justify-content:center}#hotbar button{width:48px;height:48px}.palette-actions{order:2;flex-direction:row;gap:8px}.palette-actions>button{width:auto;font-size:10px}.palette-actions>div>button{padding:5px 14px}.welcome-card{left:80px;bottom:24px;width:300px;padding:18px 18px 0}.welcome-card h1{font-size:21px}.welcome-footer{margin:0 -18px;padding:11px 9px;font-size:7px}.scene-label{display:none}.scene-meta{font-size:8px}.scene-meta>span{display:none}.tool-rail{left:11px;top:14px}.tool-rail button{width:47px;height:47px}.welcome-card p{font-size:12px;margin-bottom:14px}.welcome-card .eyebrow{font-size:8px}.welcome-card>.text-button{font-size:8px}footer #input-hint{display:none}footer .text-button{font-size:7px}.library-body{grid-template-columns:1fr 150px;gap:12px}.material-detail{padding-left:12px}#detail-image{width:120px;height:120px}.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dialog-heading h2{font-size:18px}.photo-controls{flex-wrap:wrap;padding:10px;left:10px;right:10px}.photo-controls>span{width:100%;margin-bottom:3px}}
@media(max-width:480px){.brand img{display:none}.brand{font-size:8px}.craft-word{font-size:20px}.version{display:none}.welcome-card{left:64px;right:12px;bottom:20px;width:auto;padding:16px 13px 0}.welcome-card h1{font-size:18px}.welcome-card .eyebrow{font-size:7px}.welcome-footer{margin:0 -13px;display:none}.welcome-card>.text-button{line-height:1.8}.scene-meta{right:9px;top:11px}#hotbar button{width:calc((100vw - 65px)/8);height:43px;padding:3px}dialog{padding:17px}.library-body{grid-template-columns:1fr}.material-detail{display:grid;grid-template-columns:60px 1fr;border-left:0;border-top:1px solid var(--line);padding:13px 0 0;gap:4px 12px}.material-detail #detail-image{grid-row:1/4;width:60px;height:60px;margin:0}.material-detail .tiny-label,.material-detail a,.material-detail>.subtle{display:none}.material-detail h3{margin:0}.material-detail p{font-size:10px;margin:0}.material-detail button{grid-column:1/3;margin:5px 0 0}.library-results{height:250px}.library-tabs{gap:2px}.library-tabs button{font-size:9px;padding:8px}.save-options{grid-template-columns:1fr}.save-options section+section{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.world-file-icon{display:none}.help-columns{grid-template-columns:1fr;gap:0}.menu-actions{grid-template-columns:1fr}.scene-meta button{font-size:8px}.photo-controls small{font-size:8px}.photo-controls button{font-size:8px;padding:7px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
.selected-image .swatch{display:block;width:100%;height:100%}

.view-controls{position:absolute;left:16px;bottom:16px;padding:10px 12px;background:#f6f5e9eb;border:1px solid #246e3c66;display:flex;flex-direction:column;gap:7px;max-width:calc(100% - 32px);font-size:9px;line-height:1.5}.zoom-buttons{display:flex;align-items:center;gap:6px}.zoom-buttons>span{font-size:9px;margin-right:5px}.zoom-buttons button{font-size:14px;padding:5px 10px;min-width:34px}.zoom-buttons #zoom-reset{font-size:11px;min-width:60px}.zoom-buttons button:disabled{cursor:default}.view-controls>span{pointer-events:none;color:#42694b}@media(max-width:480px){.view-controls{left:10px;bottom:10px;padding:8px;font-size:8px;gap:5px}.zoom-buttons button{padding:5px 9px}}
.movement-controls{position:absolute;bottom:16px;right:16px;background:#f6f5e9eb;border:1px solid #246e3c66;padding:10px;display:flex;flex-direction:column;gap:7px;align-items:center;user-select:none;-webkit-user-select:none}.movement-controls>span{font-size:9px;letter-spacing:.5px}.movement-controls small{font-size:7px}.direction-pad{display:grid;grid-template-columns:repeat(3,40px);gap:5px}.direction-pad button{width:40px;height:37px;padding:4px;font:20px unscii,monospace;touch-action:none}.direction-pad [data-move=ArrowUp]{grid-column:2}.direction-pad [data-move=ArrowLeft]{grid-column:1}.direction-pad button.held{background:var(--green);color:var(--paper);transform:translateY(1px)}
@media(max-width:600px){.view-controls{left:10px;bottom:10px;padding:8px;max-width:calc(100% - 166px)}.view-controls>span,.zoom-buttons>span{display:none}.view-controls::after{content:'PINCH TO ZOOM';font-size:8px;text-align:center}.zoom-buttons{gap:4px}.zoom-buttons button{min-width:26px;padding:5px 7px}.zoom-buttons #zoom-reset{min-width:44px;padding:5px}.movement-controls{right:10px;bottom:10px;padding:8px}.direction-pad{grid-template-columns:repeat(3,38px);gap:4px}.direction-pad button{width:38px}}
.movement-controls:not([hidden])~#toast{bottom:164px}

/* Small additions to the existing controls. */
#viewport>canvas:focus-visible{outline:3px solid #e5a642;outline-offset:-4px}
.mouse-controls{position:absolute;left:16px;top:52px;padding:10px 12px;background:#f6f5e9eb;border:1px solid #246e3c66;font-size:10px;line-height:1.8;pointer-events:none}
.welcome-card>#welcome-sample{margin-top:-7px;margin-bottom:16px}
.save-name{display:flex;flex-direction:column;gap:8px;font-size:11px;margin-bottom:18px}
.save-name input{width:100%;border:1px solid var(--line);padding:10px;background:#fffef5;color:var(--dark);font-size:16px}
.recovery-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}
#recovery-dialog p,#conflict-dialog p{font-size:13px;line-height:1.6}
#library-count{margin:0 0 12px}
@media(max-height:700px){.welcome-card{top:12px;bottom:auto;max-height:calc(100% - 24px);overflow:auto}.welcome-card h1{font-size:18px;line-height:1.3;margin:8px 0}.welcome-card p{margin-bottom:10px}.welcome-card .eyebrow,.welcome-footer{display:none}.welcome-card>.text-button{margin:10px auto}.welcome-card>#welcome-sample{margin:10px auto}.welcome-card .big{padding:9px}}

.base-controls{width:100%;margin-bottom:12px}.base-controls label{display:block;font-size:9px;letter-spacing:1px;margin-bottom:8px}.base-options{display:flex;align-items:center;gap:5px;margin-bottom:8px}.base-options input{width:38px;height:32px;padding:2px;border:1px solid var(--line);background:var(--paper);cursor:pointer;flex-shrink:0}.material-detail .base-options button{width:auto;flex:1;font-size:8px;padding:7px 4px;margin:0}.material-detail .base-controls p{font-size:10px!important;margin:0}
@media(max-width:480px){.base-controls{grid-column:1/3;margin:8px 0}.base-options{max-width:260px}.material-detail .base-options button{grid-column:auto}}
@media(min-width:481px){#detail-image{width:110px;height:110px;margin-bottom:10px}.material-detail h3{margin:6px 0}.material-detail p{margin-bottom:8px}.material-detail a{margin-bottom:10px}.material-detail>#use-material{margin-bottom:8px}}
@media(max-width:480px){.library-results{height:clamp(100px,calc(100dvh - 650px),180px)}}

.library-tabs{flex-wrap:wrap}.stamps-form{margin:0 0 12px}.stamps-form label{display:block;font-size:10px;letter-spacing:1px;margin-bottom:7px}.stamps-form>div{display:flex;gap:7px}.stamps-form input{flex:1;min-width:0;width:100%;border:1px solid var(--line);background:#fffef5;color:var(--dark);padding:10px;font-size:13px}.stamps-form button{font-size:10px}.stamps-form p{margin:6px 0 0}#stamps-status:empty{display:none}#stamps-intro{padding:18px;text-align:center;font-size:13px;line-height:1.6}#stamps-intro h3{font-size:18px;font-weight:400}
@media(max-width:480px){.library-tabs button{font-size:8px;padding:8px 5px}.library-tabs button span{font-size:6px;padding:2px;margin-left:3px}.stamps-form input{font-size:11px}.stamps-form button{font-size:8px;padding:8px}.library-dialog:has(#stamps-form:not([hidden])) .library-results{height:100px}}
@media(min-width:481px) and (max-height:800px){.library-dialog:has(#stamps-form:not([hidden])){max-height:calc(100dvh - 32px)}.library-dialog:has(#stamps-form:not([hidden])) .dialog-heading{margin-bottom:12px}.library-dialog:has(#stamps-form:not([hidden])) #detail-image{width:64px;height:64px}.library-dialog:has(#stamps-form:not([hidden])) .material-detail>.subtle{display:none}}

/* The theme only changes interface chrome; the world canvas and artwork stay untouched. */
.footer-actions{display:flex;align-items:center;gap:18px}.footer-actions .text-button{font-size:8px}
:root[data-theme=dark]{color-scheme:dark;--green:#83c990;--dark:#e2eadf;--paper:#151a16;--line:#435047;--soft:#242d26;--bright:#344d38;background:#151a16}
:root[data-theme=dark] button{box-shadow:inset 1px 1px #536157}
:root[data-theme=dark] button:hover{background:#29332b}
:root[data-theme=dark] button.primary{color:#101611;border-color:#6da978;box-shadow:inset 1px 1px #b2dbb8}
:root[data-theme=dark] button.primary:hover{background:#9ad5a4}
:root[data-theme=dark] .text-button{box-shadow:none}
:root[data-theme=dark] .brand img{background:#e9eee2}
:root[data-theme=dark] .scene-meta button,
:root[data-theme=dark] .tool-rail button,
:root[data-theme=dark] .view-controls,
:root[data-theme=dark] .movement-controls,
:root[data-theme=dark] .mouse-controls{background:#151a16eb;border-color:#83c99066}
:root[data-theme=dark] .view-controls>span{color:#d2e5d4}
:root[data-theme=dark] .tool-rail button.active,
:root[data-theme=dark] .direction-pad button.held{background:var(--green);color:#101611}
:root[data-theme=dark] .welcome-card{box-shadow:5px 5px 0 #08100b73}
:root[data-theme=dark] .welcome-footer{background:#202821}
:root[data-theme=dark] .selected-image,
:root[data-theme=dark] #detail-image{background:#263128}
:root[data-theme=dark] #slot-label,
:root[data-theme=dark] footer,
:root[data-theme=dark] .dialog-heading .eyebrow,
:root[data-theme=dark] .subtle,
:root[data-theme=dark] .credits{color:#aab9a8}
:root[data-theme=dark] #hotbar button,
:root[data-theme=dark] .library-grid button{background:#222c24;border-color:var(--line)}
:root[data-theme=dark] #hotbar button.active{background:#303c31;outline-color:#6da978}
:root[data-theme=dark] #hotbar kbd{background:#18201a;color:var(--green)}
:root[data-theme=dark] .loading{background:#151a16ef}
:root[data-theme=dark] #toast{box-shadow:3px 3px #07100a66}
:root[data-theme=dark] dialog{box-shadow:8px 8px #07100a73}
:root[data-theme=dark] .library-tabs button span{background:#334735;color:#a8dbae}
:root[data-theme=dark] #library-search,
:root[data-theme=dark] .save-name input,
:root[data-theme=dark] .stamps-form input{background:#1c241e;color:var(--dark)}
:root[data-theme=dark] .world-file-icon{background:#222d25;border-color:#647668;color:#a8c4a9}
:root[data-theme=dark] .error{color:#f09a7e!important}
@media(max-width:480px){.footer-actions{gap:10px}.footer-actions .text-button{font-size:7px}#input-hint{display:none}}
/* Minting is an optional panel; keep its preview and controls out of the editor. */
.mint-backdrop{position:fixed;inset:0;background:#0008;z-index:100}
dialog.mint-panel{position:fixed;z-index:101;inset:5vh auto auto 50%;transform:translateX(-50%);margin:0;width:min(760px,94vw);max-height:90vh;overflow:auto}
.mint-panel #mint-cover{display:block;max-width:100%;max-height:240px;margin:12px auto;object-fit:contain}
.mint-panel p,.mint-panel li{line-height:1.5}
.mint-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.mint-actions button,.mint-panel #mint-clear,.mint-setup-page button{white-space:normal;max-width:100%}
.mint-panel iframe{width:100%;height:420px;border:1px solid currentColor;border-radius:8px;margin-top:12px}
.mint-panel input{display:block;width:100%;margin:8px 0}
.mint-panel #mint-receipt,.mint-panel details{border-top:1px solid currentColor;margin-top:20px;padding-top:16px}
.mint-panel #mint-receipt-text,.mint-panel #mint-account{overflow-wrap:anywhere}
.mint-panel summary{cursor:pointer;font-weight:bold}
.mint-setup-page{display:block;height:auto;overflow:auto;padding:30px;max-width:800px;margin:auto}
.mint-setup-page pre{white-space:pre-wrap;overflow-wrap:anywhere}
.mint-setup-page button{margin:8px 8px 8px 0}
.mint-setup-page{line-height:1.6;font-size:14px}
.mint-setup-page a{color:var(--green)}
.mint-setup-page h1{font:30px unscii,monospace;margin:8px 0}
.mint-setup-page h2{font:18px unscii,monospace;line-height:1.5}
.setup-heading{display:flex;gap:22px;align-items:center;margin:28px 0}
.setup-heading img{image-rendering:pixelated;background:var(--soft);border:1px solid var(--line);padding:5px}
.setup-heading p{margin:0}
.mint-setup-page pre{background:var(--soft);padding:18px;font:12px/1.8 monospace}
.setup-step{border-top:1px solid var(--line);padding:14px 0}
#setup-ipfs,#setup-next,#setup-test{overflow-wrap:anywhere}
.mint-setup-page details{font-size:12px;padding:16px 0}

/* Building strokes and the small photo studio. */
.paint-control{position:absolute;right:18px;top:56px;display:flex;align-items:center;gap:7px;padding:8px 10px;background:var(--paper);border:1px solid var(--line);border-radius:4px;font-size:10px;letter-spacing:.06em;z-index:2;cursor:pointer}.paint-control input{width:16px;height:16px;margin:0;accent-color:var(--dark)}
.mouse-controls button{pointer-events:auto;margin-top:8px;font-size:10px;padding:7px}.mouse-controls button[aria-pressed=true]{background:var(--dark);color:var(--paper)}
.photo-controls{display:flex;flex-direction:column;align-items:stretch;gap:10px;max-width:calc(100% - 28px);width:max-content}.photo-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.photo-row>span:first-child{margin-right:auto}.photo-row small{display:block}.orbit-controls{border-top:1px solid var(--line);padding-top:10px}.orbit-controls label{display:flex;flex-direction:column;gap:3px;font-size:9px;letter-spacing:.05em}.orbit-controls select{font:inherit;font-size:11px;letter-spacing:0;padding:7px 5px;border:1px solid var(--line);border-radius:3px;color:var(--dark);background:var(--paper);max-width:145px}.orbit-controls button{font-size:10px;padding:9px}.orbit-controls #orbit-status{font-size:10px;min-width:85px}.photo-row button:disabled{opacity:.45}
.lighting-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.lighting-presets button{font-size:10px;padding:12px 5px}.lighting-presets .active{background:var(--dark);color:var(--paper)}.lighting-sliders{display:grid;gap:10px;margin:24px 0}.lighting-sliders label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.08em}.lighting-sliders input{width:100%;accent-color:var(--dark)}#lighting-dialog{max-width:540px}#video-dialog{max-width:760px}#video-preview{width:100%;max-height:55vh;background:#17201b;border:1px solid var(--line);border-radius:4px}.video-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.share-video{font-size:11px;font-weight:bold;color:var(--dark)}
@media(max-width:800px){.scene-meta{gap:6px}.scene-meta button{font-size:10px;padding:7px}.photo-controls{padding:10px;bottom:10px}.photo-row{gap:6px}.photo-row>span:first-child{width:100%;font-size:11px}.photo-row small{font-size:9px}.photo-row button{font-size:9px;padding:8px}.orbit-controls label{font-size:8px}.orbit-controls select{font-size:10px;max-width:120px}.paint-control{right:12px;top:50px}.tool-rail button{min-height:40px}}
@media(max-width:480px){.paint-control{font-size:8px;right:10px}.lighting-presets{grid-template-columns:repeat(2,1fr)}.orbit-controls #orbit-status{min-width:0}.photo-controls{max-height:65%;overflow:auto}.photo-row small{max-width:270px}.scene-meta #block-count{font-size:8px}}

/* Face-aligned building brush sizes. */
.paint-control{flex-direction:column;align-items:stretch;gap:8px;cursor:default}.paint-control>label{display:flex;align-items:center;gap:7px;cursor:pointer}.brush-sizes{display:flex;align-items:center;gap:5px}.brush-sizes>span{margin-right:auto;font-size:9px}.brush-sizes button{min-width:29px;padding:4px 7px;font-size:12px}.brush-sizes button.active{background:var(--green);color:var(--paper)}.brush-sizes button:disabled{cursor:default}

/* Keep all sixteen starting blocks visible in two rows. */
#hotbar{display:grid;grid-template-columns:repeat(8,auto)}
.bottom-bar:has(#hotbar button:nth-child(9)){height:156px;min-height:156px}
@media(min-width:1500px){.bottom-bar:has(#hotbar button:nth-child(9)){height:174px;min-height:174px}}
@media(max-width:800px){.bottom-bar:has(#hotbar button:nth-child(9)){height:172px;min-height:172px}}
