@font-face{font-family:system-fallback;src:local('Segoe UI')}*{box-sizing:border-box}body{margin:0;background:#f5f2eb;color:#273c34;font:15px/1.55 system-fallback,system-ui,sans-serif}a{color:inherit;text-underline-offset:4px}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #cdd1c7;background:#fffdf7;border-radius:7px;padding:10px 14px}button:hover{background:#ebece3}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #b17b37;outline-offset:3px}[hidden]{display:none!important}header{height:76px;padding:0 30px;border-bottom:1px solid #d9dbd0;display:flex;align-items:center;gap:24px}.wordmark{font-size:14px;font-weight:750;letter-spacing:.14em;text-decoration:none}#brand{flex:1;color:#67746b;font-size:13px}main{display:grid;grid-template-columns:315px minmax(0,1fr);min-height:690px;height:calc(100svh - 76px);max-height:1100px}aside{padding:32px 26px;overflow:auto;border-right:1px solid #d9dbd0}.eyebrow{font-size:10px;letter-spacing:.15em;font-weight:750;color:#788275;margin:0 0 12px}h1{font:normal 32px/1.12 Georgia,serif;margin:0 0 18px}#summary{color:#738074;font-size:14px}.mode{display:flex;gap:6px;margin:25px 0}.mode button{padding:10px;font-size:13px;flex:1}.selected{background:#274d3d!important;color:#fff}select{width:100%;padding:11px;margin:5px 0 13px;background:#fffdf7;border:1px solid #cdd1c7;border-radius:6px}nav{display:grid;gap:5px}nav button{text-align:left;border:0;border-bottom:1px solid #e0e3d9;border-radius:0;background:transparent;font-size:14px;padding:9px 3px;display:flex;justify-content:space-between}.secondary{display:grid;gap:6px;margin:24px 0 16px}.secondary button{text-align:left;font-size:12px}.fine{font-size:11px;line-height:1.6;color:#798477}aside>a{font-size:12px}.stage{position:relative;min-width:0;background:#e7e4dc;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}.stage-top{position:absolute;left:22px;right:22px;top:20px;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}.stage-top>*{font-size:10px;letter-spacing:.09em;padding:8px 12px;border-radius:25px;background:#fffdf8e8;box-shadow:0 2px 14px #1526190d}.stage-top button{pointer-events:auto}#loading,#error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#e7e4dced;padding:28px;text-align:center;gap:15px}#loading small{color:#727e71}.spinner{height:30px;width:30px;border:2px solid #bec8bd;border-top-color:#305a43;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#hint{position:absolute;bottom:22px;left:22px;max-width:60%;font-size:11px;background:#fffdf8d9;border-radius:20px;padding:7px 12px;pointer-events:none}#room-label{position:absolute;bottom:68px;left:25px;font-size:12px;letter-spacing:.12em;text-shadow:0 1px 3px #fff;pointer-events:none}#movement{position:absolute;bottom:24px;right:24px;display:flex;flex-direction:column;align-items:center;gap:6px}#movement>div{display:flex;gap:6px}#movement button{width:48px;height:48px;font-size:20px;touch-action:none;user-select:none;background:#fffdf8ed;box-shadow:0 2px 12px #1e30241a}#movement button.pressed{background:#274d3d;color:#fff}.gallery{padding:50px 32px 36px}.gallery h2{font:normal 32px Georgia,serif;margin:0 0 25px}#stills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}#stills a{text-decoration:none}#stills img{width:100%;aspect-ratio:1.5;object-fit:cover;border-radius:4px;background:#e7e4dc}#stills span{display:block;padding:9px 0;font-size:12px}dialog{max-width:min(1000px,94vw);width:900px;max-height:92svh;border:0;padding:0;background:#fffdf7;color:#273c34;border-radius:10px}dialog::backdrop{background:#17281be0}.dialog-top{position:sticky;top:0;background:#fffdf7;display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid #d9dbd0;z-index:1}#dialog-body{padding:24px}#dialog-body img{display:block;max-width:100%;height:auto;margin:auto}#dialog-body li{margin:12px 0}footer{padding:25px 32px;border-top:1px solid #d9dbd0;font-size:11px;color:#788275}
@media(max-width:900px){header{height:60px;padding:0 16px;gap:12px}.wordmark{font-size:11px}#brand{font-size:11px}header button{font-size:11px;padding:8px}main{display:flex;flex-direction:column;height:auto;max-height:none;min-height:0}aside{padding:23px 18px 17px;overflow:visible;border:0}h1{font-size:27px;margin-bottom:8px}#summary{margin:6px 0}.mode{margin:15px 0}.eyebrow{margin-bottom:7px}nav{display:flex;gap:8px;overflow-x:auto;padding:3px 0 8px}nav button{white-space:nowrap;border:1px solid #d9dbd0;border-radius:20px;padding:7px 13px}nav button span{display:none}.secondary{display:flex;margin:12px 0 8px}.fine{margin:8px 0}.stage{height:65svh;min-height:390px;max-height:760px}.stage-top{top:14px;left:12px;right:12px}#hint{bottom:14px;left:12px;max-width:47%;font-size:10px;border-radius:7px}#room-label{bottom:81px;left:15px;max-width:48%;font-size:10px}#movement{bottom:16px;right:12px}.gallery{padding:30px 18px}#stills{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#stills span{font-size:11px}footer{padding:20px 18px}}
@media(max-width:900px) and (orientation:landscape){.stage{height:88svh;min-height:300px}#movement button{height:42px;width:42px}.stage-top{top:9px}.fine{max-width:650px}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}}

#stills{grid-template-columns:minmax(0,760px);justify-content:center}#stills img{aspect-ratio:4/3;object-fit:contain}.floor-plan-crop{display:block;width:100%;max-height:72svh;margin:auto;overflow:hidden}button,select,nav button{min-height:44px}.fine{color:#516055}.eyebrow{color:#56624f}canvas:focus-visible{outline:3px solid #b17b37;outline-offset:-4px}

#loading progress{width:min(240px,75%);height:8px;accent-color:#8a6938}#loading .loading-overview{font-size:13px;line-height:1.5;color:#172840;padding:12px;min-height:44px;text-decoration:underline;max-width:300px}#loading{gap:14px}

#loading small{color:#46544c}
