*{box-sizing:border-box}body{margin:0;background:#102d29;color:#e4e6cf;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:13px}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}button:hover,a:hover{color:#fff6d8}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #dfc58d;outline-offset:5px}header{position:absolute;top:0;left:0;width:100%;padding:30px 4%;display:flex;align-items:center;justify-content:space-between;z-index:3}.brand{color:inherit;text-decoration:none;font-family:Songti SC,serif;font-size:28px;letter-spacing:5px}.brand span{font-family:sans-serif;font-size:11px;letter-spacing:3px;margin-left:20px;color:#a6b9a8}.edition,.eyebrow{font-size:10px;letter-spacing:3px;color:#b3bea8}header>button{font-size:11px}main{height:100svh;min-height:650px;position:relative;overflow:hidden}#world{position:absolute;top:60px;right:0;bottom:40px;left:0}#world canvas{display:block;width:100%;height:100%}.intro{position:absolute;left:4%;top:21%;z-index:1;pointer-events:none}h1{font-family:Songti SC,"Noto Serif CJK SC",serif;font-weight:400;font-size:clamp(36px,4.5vw,70px);line-height:1.3;letter-spacing:4px;margin:22px 0}p{line-height:1.9;color:#adbeae}.room-note{display:block;color:#829f8e;font-size:10px;margin-top:30px;letter-spacing:2px}.controls{position:absolute;right:4%;top:25%;width:200px;z-index:2;padding:20px 0;background:linear-gradient(90deg,transparent,#102d29dd 30%)}.controls>.eyebrow{margin-bottom:25px}label{display:block;color:#b9c7b7;font-size:12px;margin:18px 0}output{float:right;font-size:10px;color:#decba6}input[type=range]{display:block;width:100%;margin:15px 0 0;accent-color:#d3c194;height:3px;cursor:pointer}.control-row{display:flex;justify-content:space-between;align-items:center;margin-top:25px}.control-row>span{color:#b9c7b7}.control-row button{color:#e3cfa5}.screen-label{margin-bottom:8px}select{width:100%;background:#1b3932;border:1px solid #70847766;padding:10px;border-radius:3px}.release{width:100%;text-align:left;border-bottom:1px solid #829a7655;padding:20px 0 12px;color:#e8d7ab}.release span{float:right}.hint{font-size:10px;min-height:40px;line-height:1.8}.bottom{position:absolute;bottom:78px;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;z-index:2}.views,.modes{display:flex;gap:25px}.views button{padding:14px 0;color:#88a598;border-bottom:1px solid transparent}.views button[aria-pressed=true]{color:#f0dfba;border-color:#f0dfba}.modes button{font-size:11px;padding:10px 0}.modes button[aria-pressed=true]{color:#e7bf72}.legend{position:absolute;bottom:130px;left:50%;transform:translate(-50%);display:none;align-items:center;gap:10px;font-size:10px}.legend i{width:100px;height:3px;background:linear-gradient(90deg,#5eddd2,#e0d85c,#edab61)}.legend small{color:#9cb19c;margin-left:8px}.show-heat .legend{display:flex}footer{position:absolute;bottom:0;width:100%;padding:22px 4%;display:flex;justify-content:space-between;color:#849f8e;font-size:10px;letter-spacing:1px}footer button{font-size:10px}dialog{border:1px solid #6e897077;border-radius:8px;background:#17372f;color:#e3e5cc;width:min(520px,90vw);padding:40px;max-height:85svh}dialog::backdrop{background:#061b16bb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}dialog h2{font-family:Songti SC,serif;font-weight:400;font-size:26px}dialog a{color:#d9c593;font-size:12px}#close{position:absolute;right:15px;top:10px;font-size:28px}#error{position:absolute;top:50%;width:100%;text-align:center;color:#efc78c}@media(max-width:900px){.intro h1{font-size:40px}.controls{width:165px;right:3%}.intro{left:3%}}@media(max-width:650px){header{padding:20px 5%}.brand{font-size:23px}.brand span{display:none}.edition{font-size:8px;letter-spacing:1px}main{min-height:800px}#world{top:130px;right:-70px;bottom:270px;left:-70px}.intro{top:92px;left:5%}.intro h1{font-size:28px;margin:10px 0;line-height:1.3}.intro h1 br,.intro p,.room-note{display:none}.eyebrow{font-size:8px}.controls{top:auto;bottom:125px;left:5%;right:5%;width:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;background:#102d29e8;padding:10px 0}.controls>.eyebrow{display:none}label,.control-row{margin:8px 0}.screen-label{display:none}select{grid-column:2;grid-row:2}.release{padding:9px 0}.hint{margin:0;font-size:9px;min-height:0}.bottom{bottom:65px;left:5%;right:5%;gap:10px}.views,.modes{gap:14px}.views button{font-size:11px}.modes button{font-size:10px}.legend{bottom:325px;width:max-content}footer{padding:18px 5%;font-size:8px}footer>span{display:none}footer button{font-size:9px}dialog{padding:28px}}body{background:#142c29}#world{top:65px;right:-9%;bottom:60px;left:14%}.intro{top:20%;left:4.5%}.intro .eyebrow{font-size:9px;letter-spacing:2px}.intro .eyebrow span{margin-left:18px;color:#7d988b}h1{font-size:clamp(38px,4.1vw,60px);line-height:1.42;margin:22px 0 18px}h1 em{font-style:normal;color:#c9d3b9}.intro p{font-size:12px;line-height:2.1;color:#90aa9b}.room-note{margin-top:25px;border-top:1px solid #9bb09030;padding-top:16px;width:225px;letter-spacing:1px}.room-note small{display:block;margin-top:8px;font-size:9px;color:#779385}.field-note{position:absolute;left:4.5%;bottom:208px;pointer-events:none}.field-note h2{font-family:Songti SC,serif;font-size:23px;font-weight:400;color:#d0d9c2;margin:14px 0 6px}.field-note .hint{font-size:10px;color:#88a494;min-height:0}.controls{left:4.5%;right:auto;top:auto;bottom:148px;width:235px;padding:0;background:none;z-index:4}.controls summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid #94ae853d;color:#dbcfaa;font-size:12px}.controls summary::-webkit-details-marker{display:none}.controls summary span{font-size:18px}.controls[open] summary span{transform:rotate(45deg)}.control-body{position:absolute;bottom:53px;left:0;width:260px;padding:8px 22px 15px;background:#18362fed;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid #71897450;border-radius:5px;box-shadow:0 12px 40px #081e1855}.control-body label,.control-body .control-row{font-size:11px}.control-body select{font-size:11px;background:#203c32}.release{font-size:11px}.bottom{left:4.5%;right:4.5%;bottom:78px}.views{gap:35px}.views button{font-size:12px}.legend{left:61%;bottom:132px}footer{color:#748e7e}.edition{color:#819b8b;font-size:9px}.brand span{color:#8ba08f}@media(min-width:651px)and (max-height:740px){.intro{top:17%}h1{font-size:43px}.field-note{bottom:195px}.room-note{margin-top:16px}.intro p{font-size:11px}}@media(max-width:900px)and (min-width:651px){#world{left:20%;right:-18%}.intro h1{font-size:39px}.intro p{font-size:10px}.field-note h2{font-size:20px}.controls{width:205px}}@media(max-width:650px){main{min-height:740px}#world{top:160px;right:-14%;bottom:155px;left:-14%}.intro{top:100px;left:6%}.intro .eyebrow{font-size:8px}.intro .eyebrow span{margin-left:12px}.intro h1{font-size:31px;margin-top:12px;letter-spacing:2px}.intro h1 br{display:none}.intro h1 em{margin-left:8px}.intro p,.room-note{display:none}.field-note{left:6%;bottom:158px}.field-note .eyebrow{display:none}.field-note h2{font-size:18px;margin:0 0 5px}.field-note .hint{font-size:9px;margin:0}.controls{display:block;bottom:105px;left:6%;right:6%;width:auto;padding:0;background:none}.controls summary{font-size:11px;padding:12px 0}.control-body{bottom:48px;left:0;width:100%;padding:14px 20px;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.control-body .control-row{margin:8px 0}.control-body .screen-label{display:none}.control-body select{grid-column:2;grid-row:2}.control-body .release{grid-column:1 / -1}.bottom{bottom:49px;left:6%;right:6%}.views{gap:16px}.views button{font-size:10px}.modes{gap:12px}.modes button{font-size:10px}.legend{left:50%;bottom:224px}footer{padding:14px 6%;font-size:8px}}.window-switch{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 0;color:#c7d2bf;font-size:12px;text-align:left}.switch-state{margin-left:auto;color:#95aa9b;font-size:11px}.window-switch i{position:relative;display:block;flex-shrink:0;width:36px;height:22px;border-radius:20px;background:#42594f;border:1px solid #82977d66}.window-switch i:after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#b0bbab}.window-switch[aria-checked=true] i{background:#aabb94;border-color:#aabb94}.window-switch[aria-checked=true] i:after{left:17px;background:#203c32}.window-switch[aria-checked=true] .switch-state{color:#e1d1aa}.model-tooltip{position:fixed;z-index:8;pointer-events:none;padding:7px 11px;border:1px solid #839b7555;border-radius:4px;background:#18362ff0;color:#e4d9b9;font-size:12px;box-shadow:0 3px 14px #071e1944}.model-tooltip[hidden]{display:none}@media(max-width:650px){.control-body .door-switch{grid-column:1;grid-row:2}.control-body .control-row{grid-column:2;grid-row:2}.control-body select{grid-column:1 / -1;grid-row:3}}.furniture-stem{position:fixed;z-index:6;width:0;height:52px;transform:translateY(-100%);transform-origin:bottom center;pointer-events:none;color:#d6e4bb;border-left:1px solid currentColor}.furniture-stem[hidden]{display:none}.furniture-rotate{position:absolute;left:-22px;top:-22px;width:44px;height:44px;padding:0;display:grid;place-items:center;pointer-events:auto;touch-action:none;cursor:grab;color:inherit}.furniture-rotate span{display:grid;place-items:center;width:25px;height:25px;border:1px solid currentColor;border-radius:50%;background:#18362f;font-size:21px;line-height:1}.furniture-rotate:active{cursor:grabbing}.furniture-rotate:focus-visible{outline:1px solid currentColor;border-radius:50%}.furniture-status{position:absolute;top:10px;left:14px;font-size:11px;white-space:nowrap;text-shadow:0 1px 4px #122b29;pointer-events:none}#world canvas:focus-visible{outline:none}@media(max-width:650px){.control-body #screen{grid-column:1 / -1;grid-row:3}}.furniture-stem:after{content:"";position:absolute;left:-12px;top:0;width:24px;height:100%;pointer-events:auto;touch-action:none;cursor:grab}.furniture-rotate{z-index:1}.furniture-stem:has(.furniture-rotate:hover),.furniture-stem:hover{color:#edf4d7}.furniture-stem.blocked{color:#efad78}#workbench-launch{color:#e0d0a7;font-size:12px;border-bottom:1px solid #a3b39470;padding:9px 0}header{gap:22px}header .edition{margin-left:auto}.workbench{position:absolute;z-index:5;top:96px;bottom:100px;left:3%;width:310px;background:#18352ff5;border:1px solid #758e7040;border-radius:8px;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 50px #061b1640}.workbench[hidden]{display:none}.bench-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 15px}.bench-heading small{color:#97ae98;font-size:9px;letter-spacing:2px}.bench-heading h2{font-family:Songti SC,serif;font-size:24px;font-weight:400;margin:7px 0 0}.bench-heading button{font-size:26px;min-width:40px;min-height:40px}.workbench nav{display:flex;padding:0 22px;gap:25px;border-bottom:1px solid #79916c35}.workbench nav button{padding:12px 0;color:#9cb39f;border-bottom:2px solid transparent}.workbench nav button[aria-pressed=true]{color:#ebdcb6;border-color:#c4c79c}.bench-content{padding:0 22px 16px;overflow:auto;overscroll-behavior:contain;flex:1;min-height:0}.bench-content p{font-size:12px}.bench-content label{margin:14px 0;font-size:11px}.bench-content input{display:block;width:100%;margin-top:8px;border:1px solid #79916c66;border-radius:4px;background:#102c26;color:#e7e6ce;padding:11px 9px;font:inherit;font-size:14px;min-height:44px}.bench-content select{margin-top:8px;min-height:44px}.bench-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.bench-grid label{min-width:0}.bench-primary,.bench-secondary{width:100%;padding:12px 9px;min-height:44px;text-align:center;border:1px solid #879d7566;border-radius:4px;margin:8px 0}.bench-primary{background:#b9c5a1;color:#18352c}.bench-primary:hover{background:#d0d7b7;color:#18352c}.bench-secondary{color:#c5ccb1;background:transparent}.bench-help{font-size:11px!important;line-height:1.8;color:#92ad98}.bench-facts{display:grid;grid-template-columns:1fr auto;gap:14px;padding:20px 0;color:#9fb29b;border-top:1px solid #78966d33}.bench-facts strong{font-weight:400;color:#e4dcc0}.bench-actions{display:flex;justify-content:space-between;gap:12px}.bench-actions button{min-height:44px;padding:10px 0}.bench-footer{padding:10px 22px 16px;border-top:1px solid #79916c35}.bench-footer p{font-size:11px;color:#dfc898;margin:0 0 6px;line-height:1.6}.bench-footer>div{display:flex;align-items:center;justify-content:space-between}.bench-footer button{padding:8px 0}.bench-footer button:disabled{opacity:.35;cursor:default}.bench-footer small{font-size:10px;color:#8fa891}.workbench-open .intro,.workbench-open .field-note,.workbench-open .controls{display:none}.workbench-open #world{left:20%;right:-6%}#opening-controls{max-height:220px;overflow:auto}#opening-controls .window-switch{border-bottom:1px solid #77926822}.control-body:has(#opening-controls){display:block}@media(max-width:650px){header .edition{display:none}header{gap:15px;flex-wrap:wrap}#workbench-launch{font-size:11px}.workbench{left:0;right:0;top:auto;bottom:0;width:100%;height:48svh;min-height:280px;border-radius:14px 14px 0 0}.bench-heading{padding:12px 20px 6px}.bench-heading h2{font-size:21px;margin-top:2px}.bench-heading small{display:none}.workbench nav{padding:0 20px}.bench-content{padding:0 20px 12px}.bench-footer{padding:6px 20px 10px}.workbench-open #world{top:95px;right:-12%;bottom:48svh;left:-12%}.workbench-open .bottom,.workbench-open footer{display:none}.workbench-open main{min-height:100svh}}body .orientation-cue{top:110px;right:4.5%}.orientation-cue .orientation-button{display:flex;align-items:center;justify-content:center;flex-direction:column;width:44px;min-height:44px;padding:4px;opacity:.7;background:transparent;border:0;cursor:pointer}.orientation-cue .orientation-button:hover,.orientation-cue .orientation-button:focus-visible{opacity:1}@media(max-width:650px){body .orientation-cue{top:81px;right:6%}.orientation-cue .orientation-button{width:40px;min-height:40px;padding:2px}}.orientation-cue{position:fixed;top:106px;right:calc(4% + 163px);z-index:6;--north-angle:0deg;color:#b8c4ae}.landscape-app .orientation-button{display:flex;align-items:center;justify-content:center;flex-direction:column;width:44px;min-height:44px;padding:4px;opacity:.7;background:transparent;border:0;cursor:pointer}.orientation-button:hover,.orientation-button:focus-visible{opacity:1}.orientation-ring{position:relative;display:block;width:30px;height:30px;border:1px solid #b9c5ad35;border-radius:50%}.orientation-ring:before,.orientation-ring:after{content:"";position:absolute;background:#b9c5ad50;width:3px;height:1px;top:14px;left:0}.orientation-ring:after{left:auto;right:0}.orientation-needle{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(var(--north-angle))}.orientation-north{position:absolute;top:-9px;left:9px;width:10px;text-align:center;font:8px PingFang SC,sans-serif;transform:rotate(calc(-1 * var(--north-angle)));color:#d5c294}.orientation-needle i{position:absolute;top:7px;left:11px;width:6px;height:15px;background:linear-gradient(#d5c294 50%,#829985 50%);clip-path:polygon(50% 0,100% 100%,50% 72%,0 100%)}.orientation-button small{font-size:7px;letter-spacing:1px;line-height:12px;color:#98ac9b}.orientation-note{position:absolute;right:0;top:54px;width:208px;padding:12px 14px;background:#132c29f5;border:1px solid #a9ba9d26;color:#b9c7b1;font-size:10px;line-height:1.8;box-shadow:0 8px 30px #06181422}.orientation-note[hidden]{display:none}@media(max-width:700px){.orientation-cue{top:73px;right:calc(5% - 4px)}.landscape-app .orientation-button{width:40px;min-height:35px;padding:2px}.orientation-ring{width:23px;height:23px}.orientation-ring:before,.orientation-ring:after{top:10px}.orientation-north{left:6px;top:-7px;font-size:7px}.orientation-needle i{left:8px;top:5px;height:13px}.orientation-button small{line-height:9px;font-size:6px}.orientation-note{top:36px;right:40px;width:185px}}
