:root{--ink:#e9e7da;--muted:#aab9b0;--accent:#d6bb87;--panel:#172c29;--line:rgba(228,229,208,.18);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#172c29;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{border:1px solid var(--line);color:var(--ink);background:rgba(23,44,41,.83);border-radius:4px;padding:12px 16px;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:#38504a;border-color:#b8bc9e}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{opacity:.6;cursor:wait}button.primary{color:#24312b;background:var(--accent);border-color:var(--accent);font-weight:600}button.primary:hover{background:#ead2a1}.quiet{background:transparent}kbd{font:10px Arial;border:1px solid var(--line);padding:3px 5px;border-radius:3px;white-space:nowrap}a{color:var(--accent)}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.scrim{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(13,29,27,.91),rgba(13,29,27,.58) 38%,rgba(13,29,27,.04) 76%),linear-gradient(0deg,rgba(12,27,24,.54),transparent 30%)}body.started .scrim{background:linear-gradient(0deg,rgba(10,22,20,.46),transparent 16%,transparent 84%,rgba(10,22,20,.5))}header{position:fixed;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:30px 38px;gap:20px}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;font-size:13px;letter-spacing:3px;font-weight:600}.brandmark{position:relative;font:38px Georgia,serif;border:1px solid rgba(214,187,135,.5);padding:1px 8px;color:var(--accent);letter-spacing:-5px}.brandmark span{font:12px Arial;vertical-align:super;margin-left:2px}.brand small{display:block;font-size:8px;letter-spacing:2.3px;color:var(--muted);margin-top:8px;font-weight:400}#edition{font-size:10px;letter-spacing:2px;color:#d4d8c7}.pill{border:1px solid var(--line);padding:8px;margin-left:15px}nav{display:flex;gap:8px}nav button{font-size:12px;padding:10px 13px}nav kbd{margin-left:9px}.welcome{position:absolute;left:8vw;top:25vh;max-width:680px}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:2.5px;line-height:1.7;margin:0 0 20px}h1{font:normal clamp(58px,6.8vw,116px)/.98 Georgia,'Times New Roman',serif;letter-spacing:-4px;margin:0 0 26px}h1 em{color:#c5d8bf;font-weight:normal}.intro{font-size:17px;line-height:1.7;color:#ccd4c8;max-width:410px}.welcome-actions{display:flex;gap:12px;margin:30px 0}.welcome-actions button{font-size:13px;min-height:51px}.welcome-actions .primary{min-width:210px;display:flex;justify-content:space-between;gap:24px}.welcome-meta{display:flex;gap:25px;border-top:1px solid var(--line);padding-top:23px;width:max-content;color:var(--muted);font-size:10px}.welcome-meta b{display:block;color:var(--ink);font:24px Georgia;margin-bottom:6px}#loading-status{font-size:11px;max-width:460px;line-height:1.7;color:var(--accent)}.reference{font-size:9px;line-height:1.7;max-width:430px;color:#97a69b;margin-top:18px}#location-card{position:fixed;left:38px;top:128px;max-width:390px;text-shadow:0 2px 14px #000}#location-card .eyebrow{margin:0 0 8px}#location-card h2{font:30px Georgia;margin:0 0 10px}#mode-label{font-size:9px;letter-spacing:2px;color:#d2d7c9}#crosshair{position:fixed;left:50%;top:50%;width:5px;height:5px;background:#faf3df;border-radius:50%;box-shadow:0 0 0 3px rgba(0,0,0,.22);transform:translate(-50%,-50%);pointer-events:none}#interact-prompt{position:fixed;left:50%;bottom:15vh;transform:translateX(-50%);display:flex;gap:12px;align-items:center;background:rgba(20,40,35,.9);max-width:90vw;font-size:12px}#interact-prompt kbd{font-size:13px;padding:7px}#mini-map{position:fixed;bottom:65px;right:32px;width:170px;background:rgba(20,40,35,.87);border:1px solid var(--line);border-radius:5px;padding:10px;pointer-events:none}#minimap-canvas{display:block;width:148px;height:164px}#mini-map span{font-size:8px;letter-spacing:1px;color:var(--muted);display:flex;justify-content:space-between;margin-top:5px}#coords{font-weight:400}footer{position:fixed;bottom:25px;left:38px;right:38px;display:flex;align-items:center;gap:21px;font-size:10px;color:#dce1d3}footer kbd{margin-right:6px}.muted{color:var(--muted)}#performance{margin-left:auto}#toast{position:fixed;bottom:90px;left:38px;max-width:510px;padding:15px 19px;border:1px solid var(--line);background:var(--panel);font-size:12px;line-height:1.6;z-index:12;box-shadow:0 10px 45px #0005}dialog{width:min(1000px,calc(100vw - 38px));max-height:calc(100dvh - 60px);border:1px solid #6b796a;background:#172c29;color:var(--ink);padding:0;border-radius:7px;box-shadow:0 30px 100px #0007}dialog::backdrop{background:#0d211ccc;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;padding:28px 30px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}.dialog-head .eyebrow{margin:0 0 8px;font-size:9px}.dialog-head h2{font:32px Georgia;margin:0}.close{border:0;background:transparent;font-size:30px;padding:0 8px}#dialog-body{padding:27px 30px}.map-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:30px}.large-map{width:100%;background:#1a3430;border:1px solid var(--line);border-radius:4px}.room-list{display:flex;flex-direction:column;gap:5px}.room-button{display:flex;gap:12px;text-align:left;align-items:center;width:100%;font-size:12px;padding:11px}.room-button .swatch{width:7px;height:24px;flex-shrink:0}.room-button small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.notice{font-size:12px;line-height:1.8;color:#becabb;margin:15px 0}.notice strong{color:var(--accent);font-weight:400}.description{font:20px/1.55 Georgia;color:#d6dfd2;max-width:760px}.meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;border-block:1px solid var(--line);padding:22px 0;margin:24px 0}.meta-grid small{display:block;font-size:9px;letter-spacing:1px;color:var(--muted);margin-bottom:7px}.meta-grid strong{font-weight:400;font-size:14px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}label.field{display:flex;flex-direction:column;gap:10px;font-size:12px;color:#c7d2c1}select,input[type=number]{background:#223a34;color:var(--ink);border:1px solid #50665a;border-radius:3px;padding:10px;width:100%}input[type=range]{width:100%;accent-color:var(--accent)}label.check{display:flex;gap:12px;align-items:center;font-size:13px}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}.button-row{display:flex;gap:10px;margin-top:23px;flex-wrap:wrap}.button-row button{font-size:12px}.install-top{display:grid;grid-template-columns:1fr 1fr;gap:25px}.transform-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:15px}.transform-grid label{font-size:10px}code{font-size:11px;background:#223c34;padding:3px 6px;color:#dcc396;overflow-wrap:anywhere}.badge{display:inline-block;padding:7px 10px;border:1px solid #748e70;color:#d4ddc2;font-size:9px;letter-spacing:1px}.file-input{border:1px dashed #788b75;padding:20px;font-size:11px;width:100%;color:var(--muted)}#touch-controls{position:fixed;bottom:22px;left:0;right:0;pointer-events:none}#joystick{position:absolute;bottom:12px;left:25px;width:105px;height:105px;border:1px solid #dedac766;border-radius:50%;background:#193b3266;touch-action:none;pointer-events:auto}#joystick-thumb{position:absolute;left:32px;top:32px;width:40px;height:40px;border-radius:50%;background:#dcc79877;border:1px solid #e5d3aa99;pointer-events:none}#touch-interact{position:absolute;right:25px;bottom:22px;border-radius:50%;width:68px;height:68px;pointer-events:auto}#touch-controls>span{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:9px;color:#d2dcc5;pointer-events:none}@media(pointer:fine){#touch-controls{display:none!important}}@media(pointer:coarse){footer{display:none!important}#mini-map{bottom:175px;width:122px;padding:6px;right:18px}#minimap-canvas{width:108px;height:120px}#interact-prompt{bottom:160px}}@media(max-width:800px){header{padding:20px;gap:10px}.brand{font-size:10px;letter-spacing:1.5px}.brand small{display:none}.brandmark{font-size:31px}#edition{font-size:8px;letter-spacing:1px}.welcome{left:7vw;top:23vh;max-width:85vw}h1{font-size:72px;letter-spacing:-3px}.eyebrow{font-size:9px}.intro{font-size:14px}.welcome-actions{margin:22px 0}.welcome-actions button{font-size:11px;padding:10px 12px}.welcome-actions .primary{min-width:170px}.welcome-meta{gap:20px}.reference{max-width:300px}.welcome-meta b{font-size:20px}nav{gap:5px}nav button{padding:9px;font-size:10px}nav kbd{display:none}#location-card{left:20px;top:97px}#location-card h2{font-size:25px}footer{left:20px;right:20px;gap:12px}footer span:nth-child(n+3){display:none}#mini-map{right:20px}.map-layout{grid-template-columns:1fr}.large-map{max-height:47vh;object-fit:contain}.room-list{display:grid;grid-template-columns:1fr 1fr}.dialog-head{padding:20px}.dialog-head h2{font-size:27px}#dialog-body{padding:20px}.install-top,.settings-grid{grid-template-columns:1fr}.meta-grid{grid-template-columns:1fr 1fr}.description{font-size:18px}}@media(max-width:480px){.brand>span:last-child{display:none}.welcome-actions{flex-direction:column;align-items:start}.welcome-actions .primary{width:240px}h1{font-size:59px}.welcome{top:22vh}.welcome-meta{padding-top:15px}.reference{font-size:8px}#loading-status{font-size:9px}.room-list{grid-template-columns:1fr}.transform-grid{gap:7px}.dialog-head h2{font-size:24px}.meta-grid{font-size:12px}.welcome .eyebrow{font-size:8px;letter-spacing:1.5px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Installation and map layout: constrain canvas intrinsic size inside narrow dialogs. */
#large-map{display:block;width:100%;height:auto;min-width:0;border:1px solid var(--line);border-radius:4px}.map-layout>*{min-width:0}.room-list>button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;font-size:12px;padding:11px}.room-list>button small{font-size:9px;color:var(--muted);letter-spacing:.6px}.room-list>button strong{font-size:13px;font-weight:500}.room-list>button span{font-size:10px;color:#d3b981}.document-link{display:block;margin-top:12px;font-size:12px;color:#d3b981}.meta-grid span{display:block;font-size:10px;color:var(--muted);margin-top:6px}.lead{font-size:22px;line-height:1.4}.file-input input{display:block;max-width:100%;margin-top:12px}.map-layout canvas{align-self:start}

/* Keep room identification readable against bright gallery walls. */
#location-card{padding:14px 18px;background:rgba(23,44,41,.9);border:1px solid var(--line);border-radius:4px;text-shadow:none}

/* Keep the full-width header strip from swallowing clicks intended for its controls. */
header{pointer-events:none}.brand,nav,#edition{pointer-events:auto}
.artifact-reference{margin:18px 0;border:1px solid var(--line);background:#0f211e;padding:10px}.artifact-reference img{display:block;width:100%;max-height:48vh;object-fit:contain;margin:auto}.artifact-reference figcaption{font-size:10px;line-height:1.6;color:var(--muted);margin-top:8px}
