@font-face{font-family:Rye;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rye-latin-ext-400-normal-DyMtpZmi.woff2) format("woff2"),url(/assets/rye-latin-ext-400-normal-JdoikPsj.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rye;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rye-latin-400-normal-CnIDrDaJ.woff2) format("woff2"),url(/assets/rye-latin-400-normal-CPBiwIfN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Architects Daughter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/architects-daughter-latin-ext-400-normal-BsHeVfRr.woff2) format("woff2"),url(/assets/architects-daughter-latin-ext-400-normal-FqHtA13I.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Architects Daughter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/architects-daughter-latin-400-normal-DOGE_9Aw.woff2) format("woff2"),url(/assets/architects-daughter-latin-400-normal-Ze4cbGW2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-ext-400-normal-B-EsvyE4.woff2) format("woff2"),url(/assets/courier-prime-latin-ext-400-normal-CKOCNFvK.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-400-normal-BbyBr73r.woff2) format("woff2"),url(/assets/courier-prime-latin-400-normal-BAlbUm6l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-ext-700-normal-ByMJlNdM.woff2) format("woff2"),url(/assets/courier-prime-latin-ext-700-normal-BIFoAzHx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-700-normal-D1YCjmaD.woff2) format("woff2"),url(/assets/courier-prime-latin-700-normal-CVvp4Sof.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #c9d2d4;--paper-hi: #d7dee0;--paper-lo: #b7c1c4;--ink: #34302a;--ink-soft: #5b554b;--rule: rgba(52, 48, 42, .18);--gold: #f2c230;--gold-deep: #b98a12;--red: #b0413e;--hand: "Architects Daughter", "Comic Neue", cursive;--title: "Rye", "Georgia", serif;--mono: "Courier Prime", "Courier New", monospace;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{font-family:var(--hand);color:var(--ink);background:radial-gradient(ellipse at 50% 45%,transparent 55%,rgba(60,70,74,.22) 100%),linear-gradient(var(--rule) 1px,transparent 1px) 0 0 / 100% 48px,linear-gradient(90deg,var(--rule) 1px,transparent 1px) 0 0 / 48px 100%,linear-gradient(rgba(52,48,42,.07) 1px,transparent 1px) 0 0 / 100% 12px,linear-gradient(90deg,rgba(52,48,42,.07) 1px,transparent 1px) 0 0 / 12px 100%,var(--paper);-webkit-font-smoothing:antialiased}body:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .19 0 0 0 0 .16 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");z-index:50}button,input{font:inherit;color:inherit}button{cursor:pointer}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}[hidden]{display:none!important}#stage{position:fixed;inset:0}#stage canvas{display:block;touch-action:none}.labels{position:fixed!important;inset:0;pointer-events:none}.title-block{position:fixed;top:calc(18px + var(--safe-t));left:22px;z-index:10;pointer-events:none;animation:rise .9s cubic-bezier(.2,.7,.2,1) both}.tb-main{display:flex;align-items:baseline;gap:.45em;flex-wrap:wrap;line-height:.9}.tb-coffre{font-family:var(--title);font-size:clamp(38px,5.4vw,72px);letter-spacing:.01em;transform:skew(-8deg);display:inline-block;text-shadow:3px 3px 0 var(--paper-lo)}.tb-pour{font-size:18px;color:var(--ink-soft)}.tb-name{font-family:var(--title);font-size:clamp(17px,2vw,26px);letter-spacing:.04em}.tb-sub{margin-top:8px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);border-top:1.5px solid var(--ink);padding-top:5px;display:inline-block}.section{position:fixed;left:22px;top:50%;transform:translateY(-44%);z-index:10;animation:rise .9s .12s cubic-bezier(.2,.7,.2,1) both}.section-cap{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px;color:var(--ink-soft)}.section-body{display:flex;align-items:stretch;gap:0}.levels{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.lv{display:flex;align-items:baseline;gap:8px;width:128px;height:27px;padding:0 8px;border:1.5px solid var(--ink);border-top-width:0;background:var(--paper-hi);text-align:left;transition:background .15s,transform .15s}.levels li:first-child .lv{border-top-width:1.5px}.lv span{font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.06em;min-width:48px}.lv em{font-style:normal;font-size:11px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lv.roof{background:transparent;border-style:dashed;height:22px}.lv:hover{background:#fff8e0;transform:translate(3px)}.lv.on{background:var(--ink);color:var(--paper-hi)}.lv.on em{color:var(--gold)}.lv.ground{box-shadow:0 1.5px 0 var(--ink)}.bin-btn{position:relative;width:64px;margin-top:22px;border:1.5px solid var(--ink);border-left-width:0;background:var(--paper-hi);overflow:hidden;padding:0}.bin-fill{position:absolute;left:0;right:0;bottom:0;background:radial-gradient(circle at 30% 40%,#fbe27a 0 3px,transparent 4px) 0 0 / 11px 9px,radial-gradient(circle at 70% 70%,#e0ad24 0 3px,transparent 4px) 0 0 / 13px 11px,var(--gold);border-top:1.5px solid var(--gold-deep);transition:height .3s}.bin-label{position:relative;font-size:12px;line-height:1.15;display:block;padding:0 4px;text-shadow:0 0 4px var(--paper-hi),0 0 2px var(--paper-hi)}.bin-btn:hover,.bin-btn.on{outline:2.5px solid var(--red);outline-offset:-4px}.section-ground{margin-top:-27px;margin-left:-14px;width:220px;border-top:1.5px solid var(--ink);font-size:11px;color:var(--ink-soft);padding-top:1px;pointer-events:none;transform:translateY(27px)}.toolbar{position:fixed;top:calc(18px + var(--safe-t));right:22px;z-index:12;display:flex;flex-direction:column;align-items:flex-end;gap:10px;animation:rise .9s .2s cubic-bezier(.2,.7,.2,1) both}.views{display:flex;border:1.5px solid var(--ink);background:var(--paper-hi);box-shadow:4px 4px 0 var(--paper-lo)}.views button{border:0;border-right:1.5px solid var(--ink);background:transparent;padding:7px 14px;font-size:15px}.views button:last-child{border-right:0}.views button:hover{background:#fff8e0}.views button[aria-selected=true]{background:var(--ink);color:var(--paper-hi)}.search{position:relative}.search input{width:300px;padding:7px 10px 7px 30px;border:1.5px solid var(--ink);background:var(--paper-hi) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2334302a' stroke-width='1.6'%3E%3Ccircle cx='6.5' cy='6.5' r='4.5'/%3E%3Cpath d='M10 10l4.5 4.5'/%3E%3C/svg%3E") no-repeat 9px 50%;font-family:var(--hand);font-size:15px;outline:none}.search input:focus{box-shadow:4px 4px 0 var(--gold)}#results{position:absolute;right:0;top:calc(100% + 4px);width:340px;margin:0;padding:4px 0;list-style:none;background:#f4f1e6;border:1.5px solid var(--ink);box-shadow:6px 6px #34302a40}#results li{padding:6px 12px;cursor:pointer;display:flex;flex-direction:column}#results li b{font-weight:400;font-size:16px}#results li span{font-family:var(--mono);font-size:11px;color:var(--ink-soft)}#results li[aria-selected=true],#results li:hover{background:var(--gold)}.dock{position:fixed;left:50%;bottom:calc(22px + var(--safe-b));transform:translate(-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:8px;animation:rise .9s .28s cubic-bezier(.2,.7,.2,1) both}.dock-row{display:flex;align-items:center;gap:10px;padding:6px 12px;background:#d7dee0eb;border:1.5px solid var(--ink);font-size:14px}.dock-row label{white-space:nowrap}.dock-row output{font-family:var(--mono);font-size:13px;min-width:52px}.dock-row input[type=range]{width:220px;accent-color:var(--red)}.dock-row button{border:1.5px solid var(--ink);background:var(--paper-hi);padding:3px 10px}.dock-row button:hover{background:var(--gold)}.dock-row .ghost{border-style:dashed}#floorName{font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.04em;min-width:250px;text-align:center}.toggles input{accent-color:var(--ink)}.scenes .sc-cap{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.scenes button{font-family:var(--title);font-size:13px;letter-spacing:.02em}.scenes button.on{background:var(--gold);box-shadow:3px 3px 0 var(--ink)}.inspector{position:fixed;right:22px;top:calc(168px + var(--safe-t));width:min(400px,calc(100vw - 44px));max-height:calc(100vh - 300px);overflow-y:auto;z-index:11;padding:16px 18px 14px;background:#f4f1e6;border:1.5px solid var(--ink);box-shadow:8px 8px #34302a38;animation:slide .35s cubic-bezier(.2,.8,.2,1) both}.inspector:before{content:"";position:absolute;inset:4px;border:1px solid rgba(52,48,42,.35);pointer-events:none}.close{position:absolute;top:6px;right:10px;border:0;background:none;font-size:26px;line-height:1}.ins-floor{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}.inspector h2{font-family:var(--title);font-weight:400;font-size:25px;line-height:1.05;margin:4px 0 10px;padding-right:20px}.ins-dims{display:flex;gap:20px;margin:0 0 10px}.ins-dims dt{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.ins-dims dd{margin:0;font-family:var(--mono);font-weight:700;font-size:15px}.ins-note{font-size:15px;line-height:1.4;margin:0 0 12px}.ins-plan{margin:0}.plan-wrap{position:relative;border:1px solid var(--ink-soft);background:var(--paper)}.plan-wrap img{display:block;width:100%;height:auto;filter:contrast(1.08) saturate(.6)}.plan-hl{position:absolute;border:2px solid var(--red);background:#f2c23059;mix-blend-mode:multiply;animation:blink 1.6s ease-in-out infinite}.ins-plan figcaption{font-family:var(--mono);font-size:11px;color:var(--ink-soft);margin-top:5px}.tag{font-family:var(--hand);font-size:13px;line-height:1.1;text-transform:uppercase;color:var(--ink);text-align:center;max-width:150px;white-space:normal;text-shadow:0 0 3px #f4f1e6,0 0 3px #f4f1e6,0 0 6px #f4f1e6;pointer-events:none;user-select:none}.tag.clickable{pointer-events:auto;cursor:pointer}.tag.room{font-size:14px;font-weight:400;letter-spacing:.02em}.tag.room:hover,.tag.room.sel{color:var(--red)}.tag.prop{font-size:11px;color:var(--ink-soft);text-transform:none;font-style:italic;max-width:130px}.tag.prop.struct{font-size:13px;color:var(--ink);text-transform:uppercase;font-style:normal}.tag.level{font-family:var(--mono);font-weight:700;font-size:12px;letter-spacing:.08em;text-shadow:none;background:var(--paper-hi);border:1.5px solid var(--ink);padding:2px 7px;white-space:nowrap;max-width:none}.tag.level:hover{background:var(--gold)}.tip{position:fixed;left:0;top:0;z-index:30;pointer-events:none;background:var(--ink);color:var(--paper-hi);padding:5px 9px;display:flex;flex-direction:column;font-size:15px}.tip span{font-family:var(--mono);font-size:10px;color:var(--gold);letter-spacing:.08em}.cartouche{position:fixed;right:22px;bottom:calc(22px + var(--safe-b));z-index:9;width:380px;border:1.5px solid var(--ink);background:#d7dee0e6;font-size:11px;animation:rise .9s .34s cubic-bezier(.2,.7,.2,1) both}.c-notes{padding:5px 8px;border-bottom:1.5px solid var(--ink);line-height:1.25}.c-grid{display:grid;grid-template-columns:1.5fr 1.2fr .6fr .8fr 1.3fr}.c-grid>div{padding:3px 7px 5px;border-right:1.5px solid var(--ink);font-family:var(--mono);font-weight:700;font-size:13px}.c-grid>div:last-child{border-right:0}.c-grid small{display:block;font-family:var(--hand);font-weight:400;font-size:10px;text-transform:uppercase;color:var(--ink-soft)}.c-scale{font-family:var(--hand)!important;font-weight:400!important;font-size:11px!important;line-height:1.1}.loader{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:var(--paper);font-family:var(--title);font-size:22px;transition:opacity .6s}.loader.gone{opacity:0;pointer-events:none}body.nomenu .title-block,body.nomenu .section,body.nomenu .toolbar,body.nomenu .dock,body.nomenu .cartouche,body.nomenu .inspector{display:none!important}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.section{animation-name:rise-section}@keyframes rise-section{0%{opacity:0;transform:translateY(-40%)}}@keyframes slide{0%{opacity:0;transform:translate(24px)}}@keyframes blink{50%{background:#f2c2301f}}.tool-row{display:flex;gap:8px}.tour-btn,.blue-btn{border:1.5px solid var(--ink);background:var(--gold);padding:6px 12px;font-family:var(--title);font-size:14px;box-shadow:3px 3px 0 var(--ink)}.blue-btn{background:#2f5e8f;color:#eaf2f8}.blue-btn[aria-pressed=true]{background:var(--paper-hi);color:var(--ink)}.tour-btn:hover,.blue-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.tour{position:fixed;left:50%;bottom:calc(22px + var(--safe-b));transform:translate(-50%);z-index:20;width:min(620px,calc(100vw - 24px));padding:14px 18px 12px;background:#f4f1e6;border:1.5px solid var(--ink);box-shadow:8px 8px #34302a40;animation:rise .4s both}.tour:before{content:"";position:absolute;inset:4px;border:1px solid rgba(52,48,42,.35);pointer-events:none}.tour-step{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}.tour h3{font-family:var(--title);font-weight:400;font-size:24px;margin:2px 0 6px}.tour p{margin:0 0 10px;font-size:16px;line-height:1.4}.tour-bar{height:4px;background:#34302a26;margin-bottom:10px}.tour-bar span{display:block;height:100%;width:0;background:var(--gold-deep)}.tour-ctl{display:flex;gap:8px;align-items:center}.tour-ctl button{border:1.5px solid var(--ink);background:var(--paper-hi);padding:3px 12px}.tour-ctl button:hover{background:var(--gold)}.tour-ctl .ghost{margin-left:auto;border-style:dashed}body.touring .dock,body.touring .inspector,body.touring .cartouche{display:none!important}body.blueprint{--paper: #1f4f7f;--paper-hi: #2a5f93;--paper-lo: #173c61;--ink: #eaf2f8;--ink-soft: #b9d0e2;--rule: rgba(234, 242, 248, .22);color:var(--ink)}body.blueprint #stage canvas{filter:grayscale(1) invert(1) contrast(1.5) brightness(.95) sepia(1) hue-rotate(172deg) saturate(2.6)}body.blueprint .tag{color:#f4f8fb;text-shadow:0 0 3px #1f4f7f,0 0 3px #1f4f7f,0 0 6px #1f4f7f}body.blueprint .inspector,body.blueprint .tour,body.blueprint #results{background:#244f7a}body.blueprint .tip{background:#0f2a45}body.blueprint .dock-row,body.blueprint .cartouche,body.blueprint .views,body.blueprint .search input,body.blueprint .lv,body.blueprint .bin-btn{background:#1f4f7ff0}body.blueprint .dock-row button,body.blueprint .tour-ctl button{background:#2a5f93;color:var(--ink)}body.blueprint .lv.on{background:var(--ink);color:#1f4f7f}body.blueprint .loader{background:var(--paper)}@media(max-width:820px){.title-block{left:14px;top:calc(10px + var(--safe-t))}.tb-coffre{font-size:38px}.tb-sub,.cartouche{display:none}.toolbar{top:auto;bottom:calc(10px + var(--safe-b));right:50%;transform:translate(50%);align-items:center;width:calc(100vw - 20px)}.views{width:100%}.views button{flex:1;padding:8px 4px;font-size:14px}.search input{width:calc(100vw - 20px)}#results{width:100%;top:auto;bottom:calc(100% + 4px)}.toolbar{flex-direction:column-reverse}.section{left:8px;top:calc(92px + var(--safe-t));transform:none;animation-name:rise}.lv{width:58px;height:22px;padding:0 5px}.lv em{display:none}.lv span{font-size:11px;min-width:0}.bin-btn{width:30px}.bin-label,.section-cap,.section-ground{display:none}.dock{bottom:calc(108px + var(--safe-b));width:calc(100vw - 20px)}.dock-row{width:100%;justify-content:center;flex-wrap:wrap}.dock-row input[type=range]{width:150px}#floorName{min-width:0;flex:1;font-size:11px}.inspector{top:auto;bottom:calc(148px + var(--safe-b));right:10px;width:calc(100vw - 20px);max-height:42vh;z-index:13}.dock{gap:4px;bottom:calc(148px + var(--safe-b))}.dock-row{padding:3px 8px;font-size:12px;gap:6px}.dock-row.toggles{display:none}.tour{bottom:calc(10px + var(--safe-b));padding:10px 12px}.tour h3{font-size:19px}.tour p{font-size:14px}.tool-row{width:100%}.tool-row button{flex:1;font-size:12px;padding:5px 6px}.scenes{flex-wrap:nowrap!important;overflow-x:auto;justify-content:flex-start!important}.scenes .sc-cap{display:none}.scenes button{font-size:12px;white-space:nowrap;padding:3px 8px}.lv{width:46px;height:19px;padding:0 4px}.lv span{font-size:10px}.lv.roof{height:17px}.bin-btn{width:26px;margin-top:17px}.tag.level{display:none!important}.tag.room{font-size:11px;max-width:90px}.tag.prop{display:none!important}}
