/* The texture is in the photographed clay artwork; lighting and live DOM sit on the same plate. */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}
.world-interaction-bar{position:fixed;top:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:95vw;padding:12px 16px;background:#f4e7ce;border:1px solid #bca17c;border-radius:18px;box-shadow:0 7px 22px #38251926;color:#55402f;z-index:50;pointer-events:auto}
.world-interaction-bar[hidden]{display:none}.world-interaction-bar strong{white-space:nowrap;font-size:13px}.world-interaction-bar span{font-size:11px;max-width:280px}.world-interaction-bar button{border:1px solid #c7a98a;border-radius:12px;background:#e7ceb0;padding:9px 12px;white-space:nowrap;color:inherit;font:600 12px system-ui;cursor:pointer}
.photo-wall-frame{position:absolute;left:43.5%;top:22%;width:4.2%;height:10.4%;background:transparent;padding:0;border:0;pointer-events:auto;cursor:copy;overflow:hidden;transform:rotate(.8deg)}
.photo-wall-frame img{width:100%;height:100%;object-fit:cover;display:block}.photo-wall-frame img[hidden]{display:none}
.photo-wall-frame.dragging{outline:3px solid #f5e5ad;outline-offset:4px}
.photo-library-steps{position:absolute;pointer-events:none;z-index:2;object-fit:fill;filter:drop-shadow(2px 3px 2px #40301c40)}
.in-world .photo-room{pointer-events:auto;cursor:crosshair}.in-world .photo-book{outline:1px solid #fff2cb55}
.photo-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:165px;width:100%;padding:15px;border:2px dashed #b59773;border-radius:18px;background:#e8d7bc;color:#59432e;cursor:copy;text-align:center}
.photo-drop-zone img{width:105px;height:100px;object-fit:cover;border:8px solid #d8b98c;border-radius:6px}.photo-drop-zone small{font-size:11px}.photo-drop-zone.dragging{background:#d8e0c3;border-color:#6e8a5e}
.compact-editor .app-shell,.compact-editor #backdrop{display:none!important}
.compact-editor #drawer{inset:0;width:100%;max-width:none;height:100%;border-radius:0;box-shadow:none;transform:none}
.compact-editor #drawer-content{padding-bottom:24px}
.photo-clay #world{visibility:hidden;pointer-events:none;height:clamp(380px,43vw,650px)}
.photo-clay .world-stage{background:#ecdbc3;border-color:#e8d2b7;box-shadow:inset 1px 2px 4px #fff4df,5px 9px 14px #8a65402e}
.photo-clay .world-stage::after{display:none}
.photo-clay .clay-world{overflow:hidden}
.photo-clay.night .world-stage{background:#9a8b76}
.photo-clay.night .scene-label{color:#f0dfc1}
.photo-clay.dusk .world-stage{background:#d5b99a}
.photo-surface{position:absolute;container-type:inline-size;isolation:isolate;pointer-events:none}
.photo-room{position:absolute;inset:0;width:100%;height:100%;user-select:none;transform:translateZ(0);transition:filter 200ms var(--ease-out)}
.photo-digital-clock{position:absolute;left:51%;top:25.7%;width:3.47%;height:3.08%;display:flex;align-items:center;justify-content:center;color:#d7e5ad;font:500 1.02cqw/1 ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.035cqw;text-shadow:0 0 .15cqw #d2ee8338;white-space:nowrap;z-index:1}
.photo-office-chair{position:absolute;left:17.3%;top:45%;width:15.55%;height:auto;pointer-events:none;user-select:none}
.photo-chair-shadow{position:absolute;left:21.5%;top:70.4%;width:9%;height:1.6%;border-radius:50%;background:#48301b40;filter:blur(3px)}
.photo-surface[data-light=dusk] .photo-office-chair{filter:brightness(.87) sepia(.12) saturate(.95)}
.photo-surface[data-light=night] .photo-office-chair{filter:brightness(.78) saturate(.8)}
.photo-surface[data-light=dusk] .photo-room,.photo-surface[data-light=dusk] .photo-plant{filter:brightness(.87) sepia(.12) saturate(.95)}
.photo-surface[data-light=night] .photo-room{filter:brightness(.64) saturate(.73)}
.photo-surface[data-light=night] .photo-plant,.photo-surface[data-light=night] .photo-avatar{filter:brightness(.78) saturate(.8)}
.photo-plant-ground{position:absolute;left:8%;top:67.8%;width:6%;height:1.2%;border-radius:50%;background:#4c382c45;filter:blur(3px)}
.photo-lamp-glow{position:absolute;left:49%;top:40%;width:17%;height:33%;border-radius:50%;background:radial-gradient(ellipse,#ffe6a345,transparent 70%);mix-blend-mode:screen;opacity:0}
.photo-surface[data-light=night] .photo-lamp-glow,.photo-surface[data-light=dusk] .photo-lamp-glow{opacity:1}
.photo-window-weather{position:absolute;left:15.5%;top:21%;width:10.5%;height:21%;border-radius:24% 25% 0 0;background:#38547955;mix-blend-mode:multiply;opacity:0}
.photo-surface[data-light=night] .photo-window-weather{opacity:1}
.photo-window-weather[data-rain=true]{opacity:1;background:repeating-linear-gradient(110deg,transparent 0 11px,#dbe9e96b 12px 13px,transparent 14px 20px);background-size:100% 200%}
.photo-steam{position:absolute;left:45.3%;top:44%;width:2%;height:4.5%;overflow:hidden}
.photo-steam i{position:absolute;bottom:0;left:15%;width:20%;height:80%;border-radius:50%;border-left:1px solid #fff6e9b0;filter:blur(.7px)}
.photo-steam i:nth-child(2){left:50%;animation-delay:-1s}.photo-steam i:nth-child(3){left:75%;animation-delay:-2s}
.photo-books{position:absolute;inset:0;pointer-events:none}
.photo-book{position:absolute;width:3%;height:8.4%;padding:0;border:0;background:#cec1a3;border-radius:1px 2px 1px 2px;box-shadow:2px 2px 2px #2d251a66;transform-origin:bottom center;transform:rotate(var(--book-tilt));pointer-events:auto;cursor:pointer}
.photo-book img{width:100%;height:100%;object-fit:fill;display:block;border-radius:inherit;filter:saturate(.85) brightness(.94)}
.photo-book:focus-visible{outline:2px solid #fff3bf;outline-offset:3px}
.photo-surface[data-light=night] .photo-book{filter:brightness(.87)}
.photo-plant{position:absolute;width:15%;height:auto;object-fit:contain;pointer-events:none;filter:drop-shadow(2px 3px 2px #48321d30)}
.photo-plant-left{left:3.3%;top:42.5%}.photo-plant-right{left:82.8%;top:43.5%;width:14.5%}
.photo-avatar{position:absolute;left:0;top:0;aspect-ratio:1;padding:0;border:0;background:none;pointer-events:auto;cursor:pointer;z-index:3;contain:layout paint style}
.photo-avatar::after{content:'';position:absolute;left:32%;right:30%;bottom:3%;height:4%;background:#42301f40;border-radius:50%;filter:blur(3px);z-index:-1}
.photo-avatar-flip{position:absolute;inset:0;display:block}
.photo-person,.photo-seat-blend,.photo-shirt-tint,.photo-hand{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;user-select:none}
.photo-shirt-tint{clip-path:polygon(39% 40%,54% 39%,61% 43%,64% 48%,59% 50%,59% 61%,38% 62%,37% 50%,34% 49%,35% 44%)}
.photo-avatar[data-pose=carry] .photo-shirt-tint,.photo-avatar[data-pose=hold] .photo-shirt-tint{clip-path:polygon(39% 39%,54% 39%,60% 44%,44% 44%,42% 49%,34% 49%,35% 43%)}
.photo-avatar[data-pose=read] .photo-shirt-tint{clip-path:polygon(38% 42%,54% 41%,60% 46%,43% 47%,38% 50%,33% 49%,34% 45%)}
.photo-carried-cover{position:absolute;object-fit:fill;border-radius:2px;box-shadow:1px 1px 2px #402a1b44;filter:saturate(.8) brightness(.93);pointer-events:none}
.photo-hand{z-index:4}.photo-carried-cover{z-index:3}
.photo-avatar[data-pose=transfer] .photo-shirt-tint{clip-path:polygon(30% 39%,49% 39%,51% 50%,34% 57%,29% 61%)}
.photo-monitor{position:absolute;top:37.7%;width:8.2%;height:9%;overflow:hidden;padding:.45cqw .48cqw;border:0;background:#173e37;color:#e7e2b5;border-radius:2px 3px 2px 3px;pointer-events:auto;text-align:left;box-shadow:inset 1px 1px 4px #091f1cd9;display:flex;flex-direction:column;gap:.18cqw;z-index:4;cursor:pointer}
.photo-monitor-one{left:22.8%;transform:rotate(.25deg)}.photo-monitor-two{left:34.3%;width:7.85%;transform:rotate(.1deg);background:#24473f}
.photo-monitor-status{font-size:.29cqw;letter-spacing:.05cqw;color:#8fbd9e;font-weight:800}
.photo-monitor strong{font-size:.47cqw;line-height:1.2;color:#e6d4aa;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.photo-headline{font-size:.53cqw;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#f5edcb;font-weight:500}
.photo-monitor:focus-visible{outline:2px solid #efd9a4;outline-offset:3px}
.photo-library-label{position:absolute;left:70%;top:24.7%;width:17%;height:2.1%;background:none;padding:0;border:0;color:#70522e;pointer-events:auto;font-size:.58cqw;letter-spacing:.02cqw;font-weight:800;text-shadow:0 1px #edce9d;cursor:pointer;z-index:4}
.photo-library-label span{font-size:.32cqw;letter-spacing:.09cqw;padding-left:.6cqw;vertical-align:middle}
.photo-still *,.photo-still *::before{animation-play-state:paused!important}
.photo-clay.wallpaper-mode #world{display:none}.photo-clay.wallpaper-mode .clay-world{inset:0}.photo-clay.wallpaper-mode .world-stage{background:#e8d2b2}
.photo-clay .stage-bottom{background:#e5d0b1;border-top-color:#c6a77e55}
.photo-clay .primary{background-color:#a55c43;background-image:repeating-linear-gradient(7deg,#ffffff04 0 1px,transparent 1px 5px);box-shadow:inset 1px 2px 2px #e5aa85,inset -2px -3px 2px #6f3b2d44,2px 4px 1px #794832,4px 7px 8px #6941222b}
.photo-clay .room-card,.photo-clay .weather-card{border-color:#dec8a9;box-shadow:inset 1px 2px 2px #fff0d7,3px 5px 4px #94714b20;background-image:repeating-linear-gradient(11deg,#94735104 0 1px,transparent 1px 5px)}
@media(hover:hover) and (pointer:fine){.photo-book:hover{transform:translateY(-3px) rotate(var(--book-tilt));outline:1px solid #fff1be}.photo-monitor:hover{filter:brightness(1.15)}}
@media(max-width:760px){.photo-clay #world{height:clamp(270px,60vw,450px)}}
@media(prefers-reduced-motion:reduce){.photo-window-weather,.photo-steam i{animation:none}.photo-book:hover{transform:rotate(var(--book-tilt))}}

/* Ambient frames are scheduled at 3-second deadlines; no continuous CSS/GIF playback. */
.photo-window-weather[data-rain=true],.photo-steam i{animation:none}.photo-steam i{opacity:.25}
.runtime-suspended *,.runtime-suspended *::before{animation-play-state:paused!important;transition:none!important}

.photo-seat-blend{z-index:1;pointer-events:none}.photo-shirt-tint{z-index:2}
.photo-avatar[data-pose=seat] .photo-shirt-tint{clip-path:polygon(38% 41%,54% 41%,59% 46%,41% 47%,35% 50%,33% 46%)}
.photo-avatar[data-pose=emotion] .photo-shirt-tint{clip-path:polygon(36% 39%,55% 39%,61% 48%,58% 61%,37% 61%,32% 49%)}

/* A photographed low-light plate: most surfaces disappear, only practical lights remain. */
.photo-room-night{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;user-select:none}
.photo-surface.night-ready[data-light=night] .photo-room{opacity:0}
.photo-surface.night-ready[data-light=night] .photo-room-night{opacity:1}
.photo-surface[data-light=night] .photo-room{filter:brightness(.12) saturate(.5)}
.photo-surface[data-light=night] .photo-office-chair{filter:brightness(.14) saturate(.5)}
.photo-surface[data-light=night] .photo-plant{filter:brightness(.10) saturate(.45)}
.photo-surface[data-light=night] .photo-wall-frame{filter:brightness(.11) saturate(.5)}
.photo-surface[data-light=night] .photo-book{filter:brightness(.12) saturate(.45);box-shadow:none}
.photo-surface[data-light=night] .photo-library-steps{filter:brightness(.17) saturate(.5)}
.photo-surface[data-light=night] .photo-monitor{background:#081a11;filter:brightness(.64) saturate(.6);box-shadow:0 0 1cqw #7bae4730,inset 0 0 .5cqw #406b2226}
.photo-surface[data-light=night] .photo-digital-clock{opacity:.55;text-shadow:0 0 .2cqw #d3e7a944}
.photo-surface[data-light=night] .photo-library-label{opacity:.13;text-shadow:none}
.photo-surface.night-ready[data-light=night] .photo-window-weather{opacity:0}
.photo-surface[data-light=night] .photo-lamp-glow{opacity:.12}
.photo-surface[data-light=night] .photo-steam{opacity:.12}
.photo-clay.wallpaper-mode.night .world-stage,.wallpaper-mode.night{background:#070a10}

/* The same miniature as an ordinary static website, including repository subpaths. */
.browser-app .topbar{height:auto;min-height:88px;flex-wrap:wrap;padding:16px 0;gap:14px}
.browser-app .top-actions{gap:10px;margin-left:auto}
.browser-app .world-interaction-bar{position:absolute;top:60px;max-width:calc(100% - 32px);padding:9px 12px;gap:8px}
.browser-app .world-interaction-bar strong{font-size:11px}
.browser-app .world-interaction-bar span{font-size:10px}
.browser-app .stage-bottom{flex-wrap:wrap}
.browser-app #web-enter-focused{display:none}
.browser-app.world-focus{overflow:hidden}
.browser-app.world-focus .topbar,.browser-app.world-focus .intro,.browser-app.world-focus .room-cards,.browser-app.world-focus footer{display:none}
.browser-app.world-focus .world-stage{position:fixed;inset:0;width:100%;height:100dvh;padding:0;border:0;border-radius:0;box-shadow:none;z-index:5}
.browser-app.world-focus #world{display:none}
.browser-app.world-focus .clay-world{inset:0}
.browser-app.world-focus #web-enter-focused{display:inline-flex}
.browser-app.world-focus .stage-top{top:16px;left:18px;right:18px;gap:12px}
.browser-app.world-focus .stage-bottom{position:absolute;bottom:12px;left:18px;right:18px;border:1px solid #c7a98b;border-radius:18px;min-height:48px;padding:10px 15px;background:#ecddc9ed;z-index:6}
.browser-app.world-focus .world-interaction-bar{top:66px}
.browser-app.world-focus .stage-hint{margin-left:auto}
.browser-app.night .world-interaction-bar{background:#22232a;color:#ded3bd;border-color:#49454a}
.browser-app.night .world-interaction-bar button{background:#393332;border-color:#55473e}
.browser-app.world-focus.night .stage-bottom{background:#22232aeb;border-color:#49454a;color:#ded3bd}
.browser-app.world-focus.night .character-status,.browser-app.world-focus.night .character-status strong{color:#ded3bd}
@media(max-width:800px){
 .browser-app .app-shell{padding:0 18px}.browser-app .brand{font-size:21px}
 .browser-app .room-nav{order:3;width:100%;justify-content:center}.browser-app .room-nav button{padding:9px 12px}
 .browser-app .intro{align-items:flex-start;flex-wrap:wrap}.browser-app .top-actions{flex-wrap:wrap}
 .browser-app .world-interaction-bar span,.browser-app .world-interaction-bar strong{display:none}
 .browser-app .world-interaction-bar{top:55px;gap:5px;white-space:nowrap}
 .browser-app .world-interaction-bar button{font-size:10px;padding:7px 9px}
 .browser-app .stage-hint{display:none}.browser-app .character-status{width:100%;font-size:10px}
 .browser-app.world-focus .stage-top{left:10px;right:10px;flex-wrap:wrap}.browser-app.world-focus .scene-label{display:none}
 .browser-app.world-focus .stage-bottom{left:10px;right:10px;bottom:10px}
}
