*{box-sizing:border-box}body{margin:0;background:#e9edf0;color:#182c32;font-family:Inter,Microsoft YaHei,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #bd743c;outline-offset:5px}#app{height:100dvh;min-height:540px;display:flex;flex-direction:column}header{display:flex;justify-content:space-between;align-items:center;padding:28px 4vw 0;z-index:1}.eyebrow{font-size:12px;letter-spacing:.18em;color:#526873}h1{font-size:26px;font-weight:500;margin:10px 0}#reset{background:transparent;border:1px solid #b9c5cb;border-radius:30px;padding:12px 18px;font-size:14px}#scene{position:relative;flex:1;min-height:0}canvas{display:block;width:100%;height:100%;touch-action:none}footer{padding:0 4vw 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}footer p{font-size:14px;color:#526873}nav{display:flex;gap:8px}nav button{border:1px solid #c6d0d5;background:#f8fafb;padding:13px 18px;border-radius:8px;font-size:14px}nav button:hover,#reset:hover{background:#fff}#hint{position:fixed;pointer-events:none;background:#182c32;color:#fff;padding:8px 12px;border-radius:6px;font-size:14px;z-index:2}dialog{border:0;border-radius:16px;padding:40px;width:min(520px,90vw);max-height:85dvh;color:#182c32;background:#fbfcfc;box-shadow:0 24px 100px #11252e40}dialog::backdrop{background:#10252d75;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}#close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:30px;width:40px;height:40px}h2{font-size:30px;margin:14px 0 20px}#panel-content p{line-height:1.85;color:#52616a;font-size:16px}article{border-top:1px solid #dbe1e5;padding-top:10px;margin-top:22px}h3{font-size:18px;font-weight:500}a{color:#98602d}.dialog-foot{font-size:12px;color:#6a7b84;margin:28px 0 0}#error{padding:24px;text-align:center}@media(max-width:650px){header{padding:20px 20px 0}h1{font-size:23px}footer{padding:0 16px 20px;flex-direction:column;gap:4px}footer p{font-size:12px}nav{width:100%}nav button{flex:1;padding:12px 4px;font-size:13px}dialog{padding:32px 24px}}#panel-content p{white-space:pre-line}#panel-content img{display:block;width:100%;height:auto;border-radius:6px;margin:14px 0;background:#e9edf0}dialog{width:min(640px,92vw)}body{background:#e9e3d9;color:#382f27}.eyebrow{color:#85715d}#reset,nav button{border-color:#c9bbab}nav button{background:#f6f1e9}footer p{color:#796c5d}dialog{background:#fffaf3;color:#382f27}#panel-content p{color:#6d6257}article{border-color:#dfd4c6}.model-status{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:13px;color:#796c5d;pointer-events:none}.seasons{position:absolute;top:112px;left:4%;display:flex;align-items:center;gap:6px;z-index:3;background:#f6f1e9e8;padding:8px 12px;border-radius:24px;border:1px solid #c9bbab}.seasons button{border:0;border-radius:50%;width:34px;height:34px;background:transparent;color:#594635;cursor:pointer}.seasons button[aria-pressed=true]{background:#594635;color:#fff}.season-caption{font-size:12px;margin-right:8px}@media(max-width:650px){.seasons{top:130px}.season-caption{display:none}}#roof-toggle{background:#f6f1e9;border:1px solid #c9bbab;border-radius:30px;padding:12px 18px;font-size:14px;margin-left:8px}header>div{margin-right:auto}@media(max-width:650px){#reset,#roof-toggle{font-size:12px;padding:10px}header{flex-wrap:wrap}}
