:root{color-scheme:light;font-family:Arial,Helvetica,sans-serif;background:#f2ecdf;color:#29251e;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;--paper: #fbf7ee;--ink: #28231c;--muted: #80786d;--line: rgba(91, 78, 60, .16);--shadow: 0 12px 32px rgba(78, 66, 48, .1);--shadow-soft: 0 6px 18px rgba(78, 66, 48, .08);--topbar-height: 52px;--note: "Bradley Hand", "Segoe Print", Arial, Helvetica, sans-serif}*{box-sizing:border-box}html{min-width:320px;height:100%;overflow:hidden;background:radial-gradient(circle at 8% 6%,rgba(255,255,255,.78),transparent 26rem),linear-gradient(135deg,#f6f0e4,#efe7d8)}body{margin:0;min-width:320px;height:100%;overflow:hidden}button,a,input{font:inherit}button{border:0;color:inherit}a{color:inherit;text-decoration:none}.app-shell{width:100%;height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;padding:0;overflow:hidden;background:linear-gradient(90deg,rgba(255,255,255,.4),transparent 28%,rgba(255,255,255,.4)),radial-gradient(circle at 50% 0%,var(--accent-soft),transparent 26rem),#f2ecdf}.app-shell--empty{justify-content:center;align-items:center;gap:18px}.manifest-status{margin:0 auto;max-width:720px;padding:12px 16px;border-radius:12px;background:#ffffffd1;color:#334155;text-align:center;box-shadow:0 8px 24px #0f172a14}.topbar{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:16px;width:100%;margin:0;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));border-bottom:1px solid var(--line);background:#fbf7eef0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand-block{display:flex;align-items:center;min-width:0;gap:10px;animation:rise-in .52s ease both}.brand-orb{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:var(--accent);background:radial-gradient(circle at 34% 34%,rgba(255,255,255,.88),transparent 30%),radial-gradient(circle at 62% 62%,var(--accent-soft),transparent 55%),linear-gradient(135deg,#ffffff8c,#ffffff1f);box-shadow:var(--shadow-soft)}.brand-orb svg{width:18px;height:18px}.brand-block h1{margin:0;font-family:var(--note);font-size:20px;font-weight:700;line-height:1.1;letter-spacing:0;white-space:nowrap}.brand-block p{display:none;color:#4a6fa5}.app-grid{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr) minmax(240px,320px);grid-template-rows:minmax(0,1fr);align-items:stretch;flex:1;gap:8px;min-height:0;overflow:hidden;width:100%;padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.left-rail,.right-rail{min-width:0}.panel,.stage-panel{border:1px solid var(--line);border-radius:6px;background:linear-gradient(180deg,#fff9,#fff3),var(--paper);box-shadow:var(--shadow-soft)}.panel{padding:10px;animation:rise-in .52s ease both;min-height:0;font-family:Arial,Helvetica,sans-serif}.panel-heading,.panel-heading span{font-family:var(--note)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(87,78,64,.14);color:#3f345f;font-size:.9rem;font-weight:700;letter-spacing:.01em;text-transform:none;flex-shrink:0}.panel-heading span{display:inline-flex;align-items:center;min-width:0;gap:8px}.stage-column{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.stage-panel{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;padding:12px;gap:8px;overflow:hidden;animation:scale-in .56s ease both;border-radius:0}.stage-title{position:relative;z-index:5;display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:8px;min-width:0}.stage-title h2{margin:0;min-width:0;flex:1 1 auto;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Arial,Helvetica,sans-serif;font-size:1.35rem;font-weight:500;line-height:1.1;letter-spacing:0}.stage-title-actions{display:flex;flex-shrink:0;align-items:center;gap:6px;min-width:0}.stage-title p{margin:2px 0 0;color:#3730289e;font-family:Arial,Helvetica,sans-serif;font-size:.82rem;font-style:normal;letter-spacing:0}.canvas-wrap{position:relative;grid-row:2;grid-column:1;min-height:0;z-index:1;border-radius:8px;overflow:hidden;touch-action:none}.building-canvas{width:100%!important;height:100%!important;cursor:grab;touch-action:none}.building-canvas:active{cursor:grabbing}.model-loader{pointer-events:none}.model-loader>div{display:grid;width:260px;gap:10px;padding:18px;border:1px solid rgba(84,74,58,.16);border-radius:8px;background:#fbf7eeeb;box-shadow:var(--shadow-soft);color:#332d24;text-align:left;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.model-loader span,.model-loader em{color:#756d61;font-size:.86rem;font-style:normal}.model-loader strong{font-family:Arial,Helvetica,sans-serif;font-size:1.24rem;line-height:1.05}.model-loader i{position:relative;display:block;height:8px;overflow:hidden;border-radius:999px;background:#5a4e3d21}.model-loader b{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .18s ease}.stage-toolbar{position:relative;z-index:6;margin:0;flex-shrink:0;display:flex;flex-wrap:nowrap;align-items:center;gap:0;overflow:hidden;border:1px solid rgba(84,74,58,.14);border-radius:8px;background:#fbf7eee0;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.locating-badge{padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--accent-soft) 80%,white);color:var(--accent);font-size:.78rem;font-weight:600}.canvas-loading-veil{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:#c5ceda8c;color:#334155;font-size:.9rem;font-weight:600;pointer-events:none}.locate-warning{margin:0 0 10px;padding:10px 12px;border-radius:8px;background:#fff4e5;color:#8a4b12;font-size:.86rem;line-height:1.35}.selected-element-label,.mesh-hover-label{pointer-events:none}.selected-element-label>span,.mesh-hover-label>span{display:inline-block;padding:6px 10px;border-radius:6px;background:#fbf7eef0;color:#2f2922;font-size:.82rem;font-weight:600;box-shadow:var(--shadow-soft);white-space:nowrap}.subtle-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(84,74,58,.35) transparent}.subtle-scrollbar::-webkit-scrollbar{width:8px;height:8px}.subtle-scrollbar::-webkit-scrollbar-thumb{border-radius:999px;background:#544a3a47}.left-rail,.right-rail{position:relative;display:flex;flex-direction:column;gap:6px;min-height:0;overflow-x:hidden;overflow-y:auto}.rail-toggle{flex-shrink:0;display:grid;place-items:center;border-radius:8px;background:#ffffffeb;box-shadow:var(--shadow-soft);cursor:pointer}.rail-toggle--inline{min-width:44px;min-height:44px;margin:0}.rail-toggle--collapsed{min-width:44px;min-height:44px;margin:0 auto;align-self:center}.left-rail.is-collapsed,.right-rail.is-collapsed{width:42px;min-width:42px;overflow:visible}.app-shell--left-collapsed .app-grid{grid-template-columns:42px minmax(0,1fr) minmax(240px,320px)}.app-shell--right-collapsed .app-grid{grid-template-columns:minmax(200px,260px) minmax(0,1fr) 42px}.app-shell--left-collapsed.app-shell--right-collapsed .app-grid{grid-template-columns:42px minmax(0,1fr) 42px}.mobile-sheet{display:none}.stage-toolbar button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;gap:6px;padding:0 12px;cursor:pointer;border-right:1px solid rgba(84,74,58,.14);background:transparent;white-space:nowrap}.stage-toolbar button:last-child{border-right:0}.stage-toolbar button:hover{color:var(--accent);background:#ffffff80}.stage-toolbar button.is-active{color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 70%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.stage-toolbar button:disabled,.element-row:disabled,.view-row:disabled{opacity:.45;cursor:not-allowed}.view-row:focus-visible,.element-row:focus-visible,.stage-toolbar button:focus-visible,.rail-toggle:focus-visible,.mobile-sheet-tabs button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 72%,white);outline-offset:2px}.view-panel{flex-shrink:0}.view-list,.element-list{display:grid;gap:4px}.view-row{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:6px;width:100%;min-height:44px;padding:4px 6px;cursor:pointer;border:1px solid transparent;border-radius:6px;background:transparent;text-align:left;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.view-row:hover,.view-row.is-active{border-color:color-mix(in srgb,var(--accent) 38%,transparent);background:var(--accent-soft)}.view-row-copy{display:grid;gap:1px;min-width:0}.view-row-copy strong{overflow:hidden;font-family:Arial,Helvetica,sans-serif;font-size:.88rem;font-weight:600;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.view-row-copy span{overflow:hidden;color:var(--muted);font-size:.76rem}.view-thumb{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;color:var(--thumb, var(--accent));background:radial-gradient(circle at 36% 22%,rgba(255,255,255,.86),transparent 35%),var(--accent-soft);box-shadow:inset 0 0 0 1px #483c2e14}.view-thumb svg{width:16px;height:16px}.element-panel{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding:6px}.clearance-toggle{display:flex;align-items:center;gap:8px;margin:0;min-height:44px;padding:8px;cursor:pointer;border:1px solid var(--line);border-radius:6px;background:#ffffff6b;color:#39332a;-webkit-user-select:none;user-select:none;flex-shrink:0}.clearance-toggle input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.clearance-toggle-track{position:relative;width:34px;height:18px;flex:0 0 auto;border-radius:999px;background:#574e402e;transition:background .18s ease;pointer-events:none}.clearance-toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #37302838;transition:transform .18s ease}.clearance-toggle input:checked+.clearance-toggle-track{background:var(--accent)}.clearance-toggle input:checked+.clearance-toggle-track .clearance-toggle-thumb{transform:translate(16px)}.clearance-toggle input:focus-visible+.clearance-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.clearance-toggle-label{font-family:Arial,Helvetica,sans-serif;font-size:.76rem;line-height:1.2;pointer-events:none}.element-panel .panel-heading{margin-bottom:3px;padding-bottom:3px;font-size:.78rem}.element-panel .panel-heading span{gap:6px}.element-panel .panel-heading span svg{width:13px;height:13px}.element-panel .element-list{display:flex;flex:1 1 auto;flex-direction:column;gap:1px;align-content:flex-start;min-height:0;overflow-y:auto}.element-panel .element-row{grid-template-columns:11px minmax(0,1fr);gap:10px;min-height:44px;padding:8px 10px;border-radius:8px;line-height:1.2}.element-panel .color-dot{width:11px;height:11px}.element-panel .element-row-copy strong{font-size:.9rem}.element-panel .element-row-copy em{font-size:.8rem}.element-row{display:grid;grid-template-columns:11px minmax(0,1fr);align-items:center;width:100%;gap:12px;min-height:44px;padding:8px 10px;cursor:pointer;border-radius:8px;background:transparent;color:#39332a;text-align:left;transition:background .18s ease;position:relative}.element-row-copy,.element-row-copy *,.view-row-copy,.view-row-copy *{pointer-events:none}.element-row:hover{background:#ffffff73}.element-row.is-active,.element-row[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);transform:none}.color-dot{width:11px;height:11px;flex:0 0 auto;border-radius:50%;box-shadow:0 0 0 5px #ffffff7a}.element-row-copy{display:grid;gap:2px;min-width:0}.element-row-copy strong{overflow:hidden;font-size:.95rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.attribute-list--stacked div{display:grid;grid-template-columns:1fr;gap:2px;align-items:start}.attribute-list--stacked dt{margin-bottom:2px}.attribute-list--stacked dd{margin-bottom:8px}.element-row-copy em{overflow:hidden;color:var(--muted);font-size:.84rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.details-panel,.notes-panel,.summary-panel,.about-panel,.expander{flex:0 0 auto;overflow:visible}.expander-trigger{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:8px 0;border:none;background:none;color:#3f345f;font-family:var(--note);font-size:.9rem;font-weight:700;letter-spacing:.01em;cursor:pointer;text-align:left}.expander.is-expanded .expander-trigger{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(87,78,64,.14)}.expander-title{min-width:0}.expander-icon{flex-shrink:0;transition:transform .18s ease}.expander.is-expanded .expander-icon{transform:rotate(180deg)}.expander-content[hidden]{display:none}.detail-hero{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:6px;flex-shrink:0}.element-orb{display:block;width:48px;height:48px;border-radius:50%;box-shadow:inset -8px -10px #3424502e,inset 6px 6px #ffffff40,0 8px 16px #463a2a1f}.detail-hero h3{margin:0;overflow-wrap:anywhere;font-family:Arial,Helvetica,sans-serif;font-size:1.1rem;line-height:1.1;letter-spacing:0}.detail-hero p{margin:2px 0 0;color:#3730289e;font-family:Arial,Helvetica,sans-serif;font-size:.82rem;font-style:normal}.attribute-list{display:grid;gap:4px;margin:0}.attribute-list div{display:grid;grid-template-columns:minmax(88px,.8fr) minmax(0,1.2fr);align-items:center;gap:6px}.attribute-list dt{color:#2d271f94;font-family:Arial,Helvetica,sans-serif;font-size:.82rem}.attribute-list dd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;color:#2c251d;font-family:Arial,Helvetica,sans-serif;font-size:.82rem}.summary-panel .attribute-list dd{justify-content:flex-start}.notes-panel p{margin:0;color:#4b4236;font-family:Arial,Helvetica,sans-serif;font-size:.78rem;line-height:1.35;font-style:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.about-panel .about-controls-help{color:#3730289e}.about-controls-help-mobile{display:none}.about-panel p{margin:0;color:#4b4236;font-family:Arial,Helvetica,sans-serif;font-size:.78rem;line-height:1.35}.about-panel p+p{margin-top:8px}.about-panel .about-disclaimer{color:#373028b8;font-style:italic}.about-panel a{color:var(--accent);text-decoration:none}.about-panel a:hover{text-decoration:underline}.toast{position:fixed;z-index:40;right:24px;bottom:24px;max-width:360px;padding:14px 18px;border:1px solid rgba(84,74,58,.14);border-radius:8px;background:#fbf7eef0;box-shadow:var(--shadow);color:#2f2922;animation:rise-in .18s ease both}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@media(max-width:1400px){.topbar{gap:12px}.app-grid{grid-template-columns:minmax(190px,230px) minmax(0,1fr) minmax(220px,280px);grid-template-rows:minmax(0,1fr)}}@media(max-width:1080px){.app-shell{height:100dvh;overflow:hidden;padding:0}.app-grid{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,36%);min-height:0;overflow:hidden;gap:6px;padding:6px max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.stage-column{grid-column:1 / -1;grid-row:1;height:auto;min-height:0}.left-rail{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:6px;min-height:0;overflow-y:auto;overflow-x:hidden}.right-rail{grid-column:2;grid-row:2;min-height:0;overflow-y:auto;overflow-x:hidden}.stage-title{flex-direction:row;align-items:center}}@media(max-width:1080px)and (max-height:720px){.app-grid{grid-template-rows:minmax(0,1fr) minmax(0,32%)}}@media(max-width:720px){.app-shell{--topbar-height: 0px;--mobile-stage-chrome: 48px;--mobile-sheet-height: min( 42dvh, max(120px, calc(100dvh - var(--topbar-height) - var(--mobile-stage-chrome) - 100vw - 12px)) )}.app-grid{display:flex;flex-direction:column;height:calc(100dvh - var(--topbar-height));overflow:hidden;padding:0 0 max(0px,env(safe-area-inset-bottom)) 0}.left-rail,.right-rail,.topbar{display:none}.stage-column{flex:1 1 auto;min-height:0;height:auto}.stage-panel{display:flex;flex-direction:column;height:100%;min-height:0;padding:max(8px,env(safe-area-inset-top)) 0 0;gap:4px;border-left:0;border-right:0;border-radius:0}.stage-title{flex:0 0 auto;margin-inline:max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-right));gap:6px}.stage-title h2{font-size:1rem}.locating-badge{padding:2px 8px;font-size:.72rem}.stage-toolbar{border-radius:6px}.stage-toolbar button{min-height:30px;min-width:30px;padding:0 6px;font-size:.76rem;gap:4px}.stage-toolbar button svg{width:15px;height:15px}.stage-toolbar-label{display:none}.canvas-wrap{flex:0 0 auto;width:100%;aspect-ratio:1 / 1;height:auto;max-height:calc(100dvh - var(--mobile-sheet-height) - var(--mobile-stage-chrome) - env(safe-area-inset-top) - 12px);margin-top:auto;align-self:stretch;border-radius:0;touch-action:none}.about-controls-help-desktop{display:none}.about-controls-help-mobile{display:inline}.mobile-sheet{display:flex;flex-direction:column;position:relative;flex:0 0 var(--mobile-sheet-height);height:var(--mobile-sheet-height);min-height:var(--mobile-sheet-height);max-height:var(--mobile-sheet-height);z-index:20;border-radius:16px 16px 0 0;border:1px solid var(--line);background:var(--paper);box-shadow:0 -12px 40px #0f172a1f;padding-bottom:max(8px,env(safe-area-inset-bottom))}.mobile-sheet-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:4px 6px;border-bottom:1px solid var(--line);flex-shrink:0}.mobile-sheet-tabs button{min-height:40px;padding:4px 6px;border-radius:6px;background:transparent;font-size:.84rem;font-weight:600;line-height:1.1;cursor:pointer}.mobile-sheet-tabs button.is-active{background:var(--accent-soft);color:var(--accent)}.mobile-sheet-panel{flex:1 1 auto;min-height:0;overflow:auto;padding:6px}.mobile-sheet-panel .panel{padding:6px}.mobile-sheet-panel .panel-heading{margin-bottom:4px;padding-bottom:3px;font-size:.82rem}.brand-block h1{font-size:.92rem}.view-row{grid-template-columns:36px minmax(0,1fr);min-height:44px}.stage-title p{font-size:.76rem}.detail-hero{grid-template-columns:40px minmax(0,1fr);gap:8px}.element-orb{width:40px;height:40px}.detail-hero h3{font-size:.98rem}.toast{right:8px;left:8px;bottom:calc(var(--mobile-sheet-height) + 12px);max-width:none}}@media(max-width:720px)and (orientation:landscape){.app-shell{--mobile-stage-chrome: 44px;--mobile-sheet-height: min( 24dvh, max(96px, calc(100dvh - var(--topbar-height) - var(--mobile-stage-chrome) - 100vw - 12px)) )}}
