@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=DM+Serif+Display:ital@0;1&display=swap");:root{--ink:#29352d;--muted:#85887c;--paper:#f8f7f2;--line:#e5e5dc;--bronze:#b47245;--bronze-light:#f3e8dc;--green:#304436;--shadow:0 8px 30px #29352d14;--font:"DM Sans",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--font);font-size:13px;background:var(--paper)}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.35}button{border:0;background:none}a{color:inherit;text-decoration:none}input,select,textarea{min-width:0;color:var(--ink)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}button{transition:background .15s,color .15s,box-shadow .15s}button:hover{background:#29352d08}img{display:block;max-width:100%}fieldset{border:0;margin:0;padding:0;min-width:0}fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea{color:#586355;background:#efefe9;opacity:1}h1,h2,h3,h4,p{margin:0}svg{flex-shrink:0}input[type=checkbox]{accent-color:var(--green);width:14px;height:14px;margin:0}input[type=range]{accent-color:var(--bronze);cursor:pointer}input::-webkit-inner-spin-button{opacity:.3}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#d4d7ca;border-radius:8px}::selection{background:#e4cfaf}.workspace{height:100dvh;min-height:540px;display:flex;flex-direction:column;overflow:hidden}.topbar{height:69px;background:#27372d;color:#fbf8ed;padding:0 23px;gap:26px;z-index:30;position:relative;box-shadow:0 2px 8px #17221a10}.brand,.topbar{flex-shrink:0;display:flex;align-items:center}.brand{gap:10px}.brand-logo{display:block;flex-shrink:0}.brand-logo img{height:51px;width:auto;max-width:none}.brand-caption strong{display:block;font-size:10px;font-weight:600;letter-spacing:1.8px;line-height:1.5}.brand-caption small{font-size:7px;letter-spacing:1.4px;color:#b7c1b4;display:block;margin-top:4px;white-space:nowrap}.header-divider{display:block;width:1px;height:26px;background:#62726177;margin-right:3px}.project-name{display:flex;align-items:center;gap:16px;font-size:12px;color:#d6ddd3}.project-name>svg{opacity:.5}.project-label{font-size:8px;letter-spacing:1.1px;border:1px solid #71816b77;border-radius:3px;padding:4px 6px;color:#b5c3ac}.topbar-right{gap:19px;margin-left:auto}.connection,.topbar-right{display:flex;align-items:center}.connection{gap:7px;font-size:10px;color:#bac9b5}.connection>span{width:5px;height:5px;background:#b3c89a;border-radius:50%}.mode-switch{display:flex;padding:3px;border:1px solid #63726099;border-radius:5px;gap:3px}.mode-switch button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;padding:6px 11px;color:#bec8b9;border-radius:3px}.mode-switch button.active{background:#f3f0e5;color:#324135;box-shadow:0 1px 4px #0002}.help-button{display:flex;color:#b5c4ae;padding:3px}.avatar{border-radius:50%;background:#819077;color:#fff8e8;width:31px;height:31px;font-size:11px;font-weight:600;display:grid;place-items:center;border:1px solid #9ba88d}.avatar:hover{background:#9ba88d}.account-menu{right:18px;top:62px;width:270px}.account-menu>strong{display:block;padding:6px 7px 2px;font-size:14px}.account-menu>small{display:block;padding:3px 7px 12px;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:6px}.main-workspace{flex:1 1;min-height:0;display:flex;position:relative}.panel{background:var(--paper);display:flex;flex-direction:column;z-index:10}.scene-panel{width:263px;flex-shrink:0;border-right:1px solid #d4d8cc}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 17px 12px;min-height:49px}.panel-heading>span{font-size:9px;font-weight:650;letter-spacing:1.5px}.panel-heading b{font-weight:500;background:#e9ebdf;color:#79816e;padding:2px 5px;margin-left:7px;letter-spacing:0;border-radius:3px}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:4px;border-radius:3px;color:#7b8275;line-height:1}.icon-button:hover{color:var(--ink);background:#e9eadf}.scene-search{padding:0 14px 10px}.search-box{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#f0f1e9;color:#a1a697}.search-box input{width:100%;border:0;background:transparent;outline:0;font-size:11px;line-height:17px}.search-box:focus-within{border-color:#a3ae99}.search-box input::placeholder{color:#909787}.scene-filter-row{display:flex;align-items:center;gap:8px;margin-top:9px}.scene-filter-row select{width:50%;font-size:10px;background:transparent;border:1px solid #e0e3d8;border-radius:3px;padding:5px 4px;color:#6a7463}.scene-filter-row>span{font-size:10px;color:var(--muted)}.scene-grouping{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 15px}.scene-grouping>span{font-size:8px;letter-spacing:1.2px;color:#929888;font-weight:600}.scene-list{flex:1 1;overflow:auto;padding:6px 0 20px}.scene-group-title{display:flex;align-items:center;gap:7px;width:100%;padding:11px 16px 7px;color:#69765f}.scene-group-title>span{font-size:10px;font-weight:650}.scene-group-title small{margin-left:auto;color:#909a86;font-size:9px}.rotated{transform:rotate(-90deg)}.scene-row{display:flex;align-items:center;position:relative;border-left:2px solid transparent;min-height:49px;padding-right:10px}.scene-row:hover{background:#eef0e6}.scene-row.selected{background:#e8ecdf;border-left-color:#607450}.scene-object{display:flex;align-items:center;text-align:left;gap:10px;padding:9px 5px 9px 24px;width:100%;min-width:0}.scene-object>svg{color:#9caa90}.scene-object>span{min-width:0}.scene-object strong{font-weight:500;display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:17px}.scene-object small{font-size:9px;display:flex;align-items:center;gap:5px;color:#9a9d8f;line-height:16px}.scene-object em{font-size:7px;text-transform:uppercase;letter-spacing:.5px;font-style:normal;padding:0 4px;background:#e3e5d9;border-radius:2px;color:#85896c}.scene-row.out-of-year .scene-object{opacity:.5}.scene-row.selected .scene-object>svg{color:#596f49}.row-eye{opacity:0;flex-shrink:0}.scene-row .row-eye:focus-visible,.scene-row.selected .row-eye,.scene-row:hover .row-eye{opacity:1}.scene-bottom{padding:12px;border-top:1px solid var(--line)}.asset-library-button{display:flex;align-items:center;gap:11px;background:#eceee3;border:1px solid #dfe4d3;border-radius:4px;width:100%;text-align:left;padding:12px 10px}.asset-library-button>svg:first-child{color:#6b7e58}.asset-library-button>svg:last-child{margin-left:auto}.asset-library-button span{font-size:11px;font-weight:600}.asset-library-button small{display:block;font-size:9px;font-weight:400;color:#8a9380;margin-top:3px}.scene-count{display:flex;align-items:center;gap:5px;margin-top:12px;color:#93998a;font-size:9px}.scene-count>span:last-child{margin-left:auto}.list-empty{padding:35px 24px;color:#8a947e;text-align:center;display:flex;align-items:center;flex-direction:column;gap:15px}.list-empty h3{font-family:"DM Serif Display",Georgia,serif;font-size:22px;font-weight:400;color:#63735a}.list-empty p{font-size:11px;line-height:1.7}.viewport{position:relative;flex:1 1;min-width:0;overflow:hidden;background:#e4e1d8}.map-root{position:absolute;inset:0;z-index:0}.map-root .maplibregl-canvas:focus{outline:0}.map-root .maplibregl-ctrl-attrib{font-size:8px;line-height:14px;background:#f8f7f2b3;color:#83877a;padding:1px 4px}.map-root .maplibregl-ctrl-scale{font-size:8px;line-height:11px;border-color:#737e69;background:#f8f7f2aa;color:#6b7662;padding:1px 4px;height:16px}.map-root .maplibregl-ctrl-bottom-left .maplibregl-ctrl{margin:0 0 7px 18px}.map-root .maplibregl-ctrl-bottom-right .maplibregl-ctrl{margin:0}.viewport-top{position:absolute;top:19px;left:23px;right:23px;justify-content:space-between;pointer-events:none}.location-label,.viewport-top{display:flex;align-items:center;gap:8px}.location-label{color:#4f5a48;text-shadow:0 1px 4px #fff}.location-marker{width:7px;height:7px;border:1px solid #8c936e;border-radius:50%;background:#a5a77c;box-shadow:0 0 0 4px #fff8}.location-label>span:last-child{font-size:11px;font-weight:600}.location-label small{display:block;font-size:7px;letter-spacing:1.6px;margin-top:4px;font-weight:400;color:#828977}.map-state{display:flex;align-items:center;gap:6px;background:#fbfaf3d9;border:1px solid #d8ddccad;border-radius:4px;padding:7px 9px;font-size:9px;color:#7e8872;box-shadow:0 2px 8px #5360430a}.map-state b{font-size:11px;color:#546448;margin-left:4px}.viewport-toolbar{position:absolute;top:79px;left:23px;display:flex;align-items:center;background:#faf9f3f5;padding:5px;border:1px solid #d7dcc9;border-radius:5px;box-shadow:0 4px 20px #40502c12;gap:2px;z-index:5}.tool-button{width:32px;height:31px;border-radius:3px;display:grid;place-items:center;color:#889178}.tool-button.active{background:#dfe6d2;color:#4a6238;box-shadow:inset 0 0 0 1px #d2dbc3}.tool-button:hover:not(:disabled){background:#e8ecdf;color:#4f6441}.toolbar-divider{height:20px;width:1px;background:#dee3d4;margin:0 4px}.add-wrapper{position:relative}.add-button{display:flex;align-items:center;gap:6px;padding:7px 8px;font-size:11px;border-radius:3px;color:#5d6e4a}.add-button>svg:last-child{margin-left:4px}.popover{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 35px #21301926;position:absolute;padding:8px;z-index:50}.add-menu{width:236px;top:43px;left:-5px}.add-menu>.eyebrow{display:block;padding:9px 8px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 9px;border-radius:3px;font-size:11px}.menu-item span{flex:1 1}.menu-item>svg{color:#829171}.menu-item:hover{background:#eaeedf}.map-navigation{position:absolute;right:21px;top:83px;display:flex;flex-direction:column;gap:9px;align-items:center}.map-navigation>button,.map-navigation>div{border:1px solid #d8deca;background:#fbfaf2ee;border-radius:4px;box-shadow:0 3px 8px #4652350d;width:35px;color:#687859}.map-navigation>button{min-height:34px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.map-navigation small{font-size:7px;line-height:10px;font-weight:600}.map-navigation>button:first-child{background:transparent;box-shadow:none;border:0;margin:0 0 9px}.map-navigation>div>button{display:grid;place-items:center;width:33px;height:30px}.map-navigation>div>button+button{border-top:1px solid #e4e7d9}.map-navigation .view-toggle{height:43px}.map-bottom-info{position:absolute;bottom:34px;left:19px;right:19px;display:flex;align-items:center;gap:8px}.reference-button{display:flex;align-items:center;gap:6px;background:#faf9f1eb;border:1px solid #d9decb;border-radius:4px;padding:7px 9px;font-size:9px;color:#7c8b6b;box-shadow:0 2px 9px #2f3e240b}.reference-button.active{color:#5c7150}.reference-button>svg:last-child{margin-left:5px}.map-coordinate{margin-left:auto;font-size:8px;letter-spacing:.7px;color:#849077;background:#fbfaf288;padding:4px 6px}.map-floating-button{background:var(--paper);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:4px;z-index:11;padding:9px}.restore-left{position:absolute;left:10px;top:12px}.restore-inspector{position:absolute;right:19px;bottom:81px}.viewport-intro{position:absolute;left:27px;bottom:103px;pointer-events:none;color:#344831;text-shadow:0 1px 10px #fff9}.eyebrow{font-size:8px;letter-spacing:1.6px;font-weight:600;color:#939c85}.viewport-intro>.eyebrow{color:#778364;font-size:8px}.viewport-intro h1{font-family:"DM Serif Display",Georgia,serif;font-weight:400;line-height:1.1;font-size:clamp(31px,3vw,45px);letter-spacing:-.9px;margin:12px 0 13px}.viewport-intro p{font-size:11px;line-height:1.8;color:#7b856d}.intro-rule{display:block;width:38px;height:1px;background:#9d9f7c;margin:17px 0 13px}.viewport-intro>small{font-size:7px;letter-spacing:1.1px;color:#879077}.gesture-hint{position:absolute;top:137px;left:23px;max-width:calc(100% - 85px);background:#304431f0;color:#e8eddd;border-radius:4px;box-shadow:var(--shadow);padding:9px 10px;z-index:3}.gesture-hint,.gesture-hint button{display:flex;align-items:center;gap:8px;font-size:10px}.gesture-hint button{white-space:nowrap;margin-left:5px;color:#d7e3c5}.gesture-hint button span{font-size:8px;border:1px solid #83936f;padding:1px 3px;border-radius:2px}.pulse-dot{height:5px;width:5px;border-radius:50%;background:#ccbd84;flex-shrink:0}.map-handle{width:12px;height:12px;border:2px solid #fff7e8;background:#bd7948;border-radius:2px;box-shadow:0 0 0 1px #a56b36,0 2px 4px #0004;cursor:grab}.map-handle.anchor{border-radius:50%;width:20px;height:20px;background:#65794e;border:4px solid #fff6e7;box-shadow:0 0 0 1px #6b804e,0 2px 6px #0003}.map-handle:active{cursor:grabbing}.map-fatal,.map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;color:#768969;font-size:13px}.map-fatal{inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);width:min(350px,calc(100% - 32px));box-sizing:border-box;margin:0;text-align:center;line-height:1.8;min-height:130px;flex-direction:column;background:var(--paper);padding:24px;border-radius:5px}.map-fatal p{margin:0}.inspector{width:315px;flex-shrink:0;border-left:1px solid #d4d8cc}.inspector .panel-heading{padding-bottom:7px;min-height:40px}.inspector-intro{display:flex;gap:11px;padding:12px 18px 9px;align-items:flex-start}.kind-icon{background:#e9ede0;color:#84976e;width:42px;height:43px;border:1px solid #e0e7d4;border-radius:5px;display:grid;place-items:center;flex-shrink:0}.kind-icon.photo{background:#efe6d9;color:#ae8052;border-color:#e9dac6}.kind-icon.overlay{background:#e7e9df;color:#8c9677}.inspector-intro>div:last-child{min-width:0}.inspector-intro .eyebrow{font-size:7px;letter-spacing:1.1px}.inspector-intro h2{font-family:"DM Serif Display",Georgia,serif;font-size:22px;font-weight:400;line-height:1.15;margin-top:5px;overflow-wrap:anywhere}.object-meta{display:flex;align-items:center;gap:6px;padding:3px 18px 17px;font-size:9px;color:#838f75}.saved-dot,.status-dot,.unsaved-dot{width:5px;height:5px;display:inline-block;border-radius:50%;flex-shrink:0}.saved-dot,.status-dot.active{background:#92a67c}.status-dot.draft,.unsaved-dot{background:#c48c56}.status-dot.archived{background:#9d9d94}.object-meta .text-button{margin-left:auto;font-size:9px}.tag{background:#ecebdf;padding:2px 4px;font-size:7px;color:#96957b;margin-left:3px;border-radius:2px}.inspector-tabs{display:flex;border-bottom:1px solid var(--line);padding:0 18px;gap:23px}.inspector-tabs button{font-size:10px;padding:0 1px 11px;color:#959b8d;display:flex;align-items:center;gap:5px;border-bottom:2px solid transparent}.inspector-tabs button.active{color:#546645;border-bottom-color:#718559;font-weight:600}.inspector-scroll{overflow:auto;flex:1 1;min-height:0}.form-section{padding:17px 18px;border-bottom:1px solid var(--line)}.form-section h3{font-size:10px;font-weight:650;display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;color:#617253}.form-section h3>span{display:flex;align-items:center;gap:6px}.form-section h3>svg{color:#9fa58f}.form-section h4{font-size:13px;font-weight:500;line-height:1.5}.field{display:block;min-width:0;margin-bottom:12px}.field:last-child{margin-bottom:0}.field>span{font-size:9px;color:#8a9480;display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;line-height:1.4;gap:5px}.field>span>b{font-weight:400;color:#6d7f5b}.field small{font-size:8px;color:#a9997b}.field>input:not([type=checkbox]):not([type=range]),.field>select,.field>textarea,.geometry-details textarea,.unit-input{background:#f0f2e9;border:1px solid #dfe4d5;border-radius:3px;width:100%;font-size:11px;min-height:33px;padding:7px 9px;line-height:1.6}.field>textarea{resize:vertical;min-height:55px}.field input::placeholder,.field textarea::placeholder{color:#a2aa96;font-size:10px}.field-row{display:flex;gap:10px;align-items:flex-start}.field-row>*{flex:1 1;min-width:0}.check-field{display:flex;align-items:center;gap:7px;font-size:10px;color:#7d8c6f;margin:10px 0}.interval-explanation{font-size:9px;color:#959d88;line-height:1.7;padding:8px 10px;background:#efefe5;border-left:2px solid #cdd5bd;margin:12px 0}.unit-input{display:flex;align-items:center;padding:0 9px}.unit-input input{width:100%;border:0;background:transparent;outline:0;padding:7px 0;font-size:11px}.unit-input>span{font-size:10px;color:#a3aa97}.field input[type=range]{width:100%;height:3px;margin:8px 0 4px}.color-field{justify-content:space-between}.color-field,.color-field>div{display:flex;align-items:center}.color-field>div{gap:8px}.color-field input{width:24px;height:24px;border:1px solid #cfd6c3;padding:2px;background:transparent;border-radius:2px}.color-field code{font-family:var(--font);font-size:10px;color:#8a977c}.text-button{display:inline-flex;align-items:center;gap:5px;padding:2px 0;color:#768c60;font-size:10px}.text-button:hover{text-decoration:underline;background:transparent}.suggestion{margin-top:-5px;margin-bottom:5px}.hint{color:#949c89;line-height:1.7;margin-top:11px}.hint,.notice{font-size:10px}.notice{display:flex;align-items:flex-start;gap:9px;background:#efeadc;color:#9c865f;padding:12px 13px;line-height:1.6;margin:13px 14px 0;border:1px solid #e5ddc8;border-radius:4px}.notice>svg{margin-top:2px}.notice .text-button{display:flex;margin-top:5px;color:#93723b}.inspector-image{margin:15px 18px 0;border:1px solid #dcd9cd;background:#ece5d4;border-radius:3px;overflow:hidden}.inspector-image a{display:block;position:relative}.inspector-image img{width:100%;max-height:190px;object-fit:cover}.inspector-image a>span{position:absolute;bottom:0;left:0;right:0;background:#2e3a29c9;color:#f6f0dd;display:flex;gap:6px;padding:7px 10px;font-size:9px}.inspector-image a>span>svg:last-child{margin-left:auto}.inspector-image>p{font-size:9px;color:#9b9075;padding:7px 9px}.geometry-details{margin-top:12px;color:#8b967c;font-size:9px}.geometry-details summary{cursor:pointer;line-height:1.7}.geometry-details textarea{font-family:monospace;font-size:10px;margin-top:9px}.geometry-details>p{font-size:8px;line-height:1.7;margin-top:5px}.inspector-footer{border-top:1px solid var(--line);padding:10px 15px 14px;background:#f3f4ea}.save-state{display:flex;align-items:center;gap:5px;font-size:9px;color:#929d84;margin-bottom:8px}.save-state>div{margin-left:auto;display:flex;gap:5px}.inspector-footer .field-row>.secondary{flex:.6 1}.source-list{display:grid;grid-template-columns:77px 1fr;gap:13px 9px;margin:19px 0;font-size:10px;line-height:1.7}.source-list dt{color:#9da78d}.source-list dd{margin:0;color:#70825d;overflow-wrap:anywhere;white-space:pre-line}.source-list dd>span{display:block}.source-list code{font-size:9px}.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:9px 12px;font-size:10px;border-radius:4px;font-weight:500;min-height:34px;white-space:nowrap}.button.primary{background:#536947;color:#f7f6e9;border:1px solid #536947;box-shadow:0 1px 2px #2837241c}.button.primary:hover{background:#425638}.button.secondary{background:#f8f8f0;border:1px solid #d6dfc9;color:#7e9268}.button.secondary:hover{background:#edf0e3}.button.full{width:100%}.error-message{font-size:11px;line-height:1.6;color:#ad5b43;padding:10px;background:#f6e7df;border-radius:3px;margin:10px 0}.inspector-scroll>.error-message{margin:12px 15px}.timeline{height:115px;align-items:center;background:#f5f5eb;border-top:1px solid #d8dfca;padding:14px 25px 12px 18px;gap:18px;z-index:15}.timeline,.timeline-year{flex-shrink:0;display:flex}.timeline-year{width:220px;padding-right:13px;border-right:1px solid #dfe4d3;align-self:stretch;flex-direction:column;justify-content:center}.timeline-year>.eyebrow{font-size:7px;letter-spacing:1.9px;display:block;text-align:center;color:#98a18b}.timeline-year>div{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.timeline-year input{font-family:"DM Serif Display",Georgia,serif;font-size:46px;letter-spacing:-1px;font-weight:400;border:0;background:transparent;padding:0;width:110px;text-align:center;color:#4e6340;appearance:textfield;outline:0;line-height:1.1}.timeline-year input::-webkit-inner-spin-button,.timeline-year input::-webkit-outer-spin-button{appearance:none}.timeline-controls{flex-shrink:0}.play-button{width:34px;height:34px;background:#eef1e3;border:1px solid #d5dec5;display:grid;place-items:center;border-radius:50%;color:#8b9e74}.play-button.active{background:#d9e2c8;color:#587345}.timeline-track{flex:1 1;min-width:100px;align-self:stretch;padding:0 8px;display:flex;flex-direction:column;justify-content:center}.timeline-track-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.timeline-track-heading>span{font-size:9px;display:flex;align-items:center;gap:6px;color:#8c9b7b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-track-heading small{font-size:8px;color:#a1ab92;white-space:nowrap}.timeline-rail{position:relative;height:29px;border-bottom:1px solid #cdd7bb;margin:0 6px}.timeline-histogram{position:absolute;inset:0 0 1px;display:flex;justify-content:space-between;align-items:flex-end;padding:0}.timeline-histogram>span{width:5px;max-width:1%;background:#a6b592;border-radius:1px 1px 0 0}.timeline-rail>input{position:absolute;inset:0 -7px 0 -7px;width:calc(100% + 14px);height:32px;z-index:2;opacity:0;margin:0;cursor:ew-resize}.timeline-rail:focus-within{outline:2px solid #b6be9e;outline-offset:4px}.selected-interval{position:absolute;bottom:0;height:5px;background:#bf976b;max-width:100%;border-radius:2px}.year-cursor{position:absolute;bottom:-5px;top:0;width:1px;background:#ad8354;pointer-events:none;transform:translateX(-.5px)}.year-cursor:after{content:"";position:absolute;bottom:0;width:7px;height:7px;border-radius:50%;background:#bd9160;left:-3px;border:1px solid #f8efdc}.year-cursor>span{position:absolute;top:-6px;left:50%;transform:translate(-50%,-50%);background:#ad8b5e;color:#fff9eb;font-size:8px;font-weight:500;padding:3px 5px;border-radius:2px;box-shadow:0 1px 3px #8068411a}.timeline-ticks{display:flex;justify-content:space-between;margin-top:9px}.timeline-ticks button{font-size:8px;color:#9ba88b;padding:0}.timeline-legend{border-left:1px solid #dfe4d3;padding-left:20px;display:flex;flex-direction:column;gap:9px;font-size:8px;color:#939f83;margin-left:8px}.timeline-legend>span{display:flex;gap:7px;align-items:center}.timeline-legend i{display:inline-block;width:7px;height:7px;border-radius:1px}.legend-scene{background:#adba9b}.legend-selected{background:#bb996e}.timeline-legend>small{font-size:7px;color:#b0b7a3;margin-top:2px}.error-toast,.toast{position:fixed;z-index:100;left:50%;transform:translateX(-50%);bottom:135px;box-shadow:0 8px 40px #28362226;border-radius:5px;max-width:min(90vw,540px);display:flex;align-items:center;gap:10px;font-size:11px;padding:13px 16px}.toast{background:#35492f;color:#e6eddc;line-height:1.5}.toast .icon-button{color:#bacaa9}.error-toast{bottom:auto;top:85px;background:#fff8ee;border:1px solid #dcbc9c;color:#aa714d;align-items:flex-start}.error-toast strong{font-size:11px}.error-toast p{margin-top:5px;font-size:10px;line-height:1.6}.error-toast>button{margin-left:10px}.modal-backdrop{position:fixed;inset:0;background:#1d2c2366;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:25px}.dialog{width:440px;background:#f8f7ee;border:1px solid #e4e6d7;border-radius:7px;box-shadow:0 25px 100px #15220f40;padding:30px;position:relative;max-height:90dvh;overflow:auto}.dialog-icon{width:48px;height:48px;border-radius:50%;background:#e9eddc;color:#879d6c;display:grid;place-items:center;margin-bottom:20px}.dialog h2{font-family:"DM Serif Display",Georgia,serif;font-weight:400;font-size:29px;color:#4e663e;margin-bottom:12px}.dialog>p{font-size:12px;line-height:1.8;color:#8b9a7c}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.dialog-close{position:absolute;top:15px;right:15px}.help-dialog{width:500px}.help-dialog>.eyebrow{display:block;margin-bottom:12px}.help-dialog ol{padding-left:18px;font-size:11px;line-height:1.8;color:#8a987a;margin:22px 0}.help-dialog li{margin:12px 0;padding-left:3px}.help-dialog b{color:#657d52;font-weight:550}.shortcuts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px 25px}.shortcuts>div{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8b9c77}kbd{font-family:var(--font);font-size:8px;border:1px solid #d4dfc3;background:#edf0e2;padding:3px 5px;border-radius:3px;color:#8ba173}.help-dialog>.button{margin-top:22px}.spinner{display:inline-block;flex-shrink:0;width:14px;height:14px;border:1.5px solid;border-right:1.5px solid transparent;border-radius:50%;animation:spin .8s linear infinite}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.asset-backdrop{position:fixed;inset:69px 0 0;background:#263a2666;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:flex-end}.asset-drawer{width:100%;height:min(680px,calc(100dvh - 100px));display:flex;flex-direction:column;background:#f8f7ee;border-radius:10px 10px 0 0;box-shadow:0 -15px 80px #26362426;overflow:hidden;animation:slide-up .2s ease-out}@keyframes slide-up{0%{transform:translateY(20px);opacity:.5}to{transform:translateY(0);opacity:1}}.asset-drawer>header{padding:24px 30px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.asset-drawer>header h2{font-family:"DM Serif Display",Georgia,serif;font-size:27px;font-weight:400;margin:7px 0;color:#576c45}.asset-drawer>header p{font-size:11px;color:#97a187}.asset-tools{padding:14px 30px;display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line)}.asset-tabs{display:flex;gap:4px}.asset-tabs>button{font-size:10px;color:#92a17e;padding:8px 11px;border-radius:4px}.asset-tabs>button.active{background:#e7ecda;color:#66814e}.asset-tools .search-box{margin-left:auto;width:230px}.asset-body{display:flex;flex:1 1;min-height:0;overflow:auto}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px;padding:22px 30px;align-content:start;flex:1 1;overflow:auto}.asset-card{text-align:left;padding:0 0 10px;border:1px solid #dfe3d3;background:#f3f2e8;border-radius:5px;overflow:hidden;min-width:0;max-width:340px;height:max-content}.asset-card:hover{border-color:#aabc91;box-shadow:0 3px 15px #3d542316}.asset-card.selected{border-color:#91a573;box-shadow:0 0 0 2px #b3c49955}.asset-preview{height:131px;background:#e9ecdf;position:relative;display:flex;align-items:center;justify-content:center;color:#94a57e;overflow:hidden}.asset-preview img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}.asset-preview.modelAssets{background-image:linear-gradient(#dfe5d633 1px,transparent 0),linear-gradient(90deg,#dfe5d633 1px,transparent 0);background-size:15px 15px;background-color:#dce2d3}.asset-preview.tilesets{background-color:#e4e1ce;color:#aca17d}.asset-preview.tileArchives{background-color:#e1e5d8;color:#98a683}.asset-preview>span{position:absolute;left:8px;bottom:8px;background:#fff9ebdb;padding:3px 5px;border:1px solid #e5e0ce8c;font-size:7px;letter-spacing:1px;border-radius:2px;color:#8b9175}.asset-card>strong{display:block;font-size:11px;color:#6b8056;font-weight:500;margin:10px 11px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-card>small{font-size:9px;color:#9ba58a;margin:0 11px;display:block}.asset-detail{width:275px;flex-shrink:0;background:#f0f1e5;border-left:1px solid #dfe4d2;padding:22px;overflow:auto}.asset-detail h3{font-family:"DM Serif Display",Georgia,serif;font-size:24px;font-weight:400;color:#677d52;line-height:1.2;margin:10px 0 18px}.asset-detail>img{width:100%;max-height:170px;object-fit:contain;background:#e7e6d5;border-radius:3px}.asset-detail .source-list{font-size:10px;grid-template-columns:55px 1fr}.asset-actions{display:flex;flex-direction:column;gap:9px;margin-top:24px}.asset-drawer>footer{padding:13px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#9caa88}.asset-drawer>footer>span:last-child{display:flex;gap:5px;align-items:center}.empty-assets{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px;grid-column:1/-1;color:#9bab85;gap:15px;min-height:220px}.empty-assets h3{font-family:"DM Serif Display",Georgia,serif;font-size:27px;font-weight:400;color:#7b9260}.empty-assets p{font-size:11px;max-width:370px;line-height:1.7}.upload-panel{display:flex;gap:22px;padding:15px 30px;border-bottom:1px solid var(--line);background:#eff1e3}.upload-fields{display:flex;flex:1 1;gap:15px;align-items:center}.upload-fields .field{flex:1 1;margin:0}.upload-drop{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;border:1px dashed #b7c69c;border-radius:4px;padding:14px 20px;min-width:310px;color:#9baa86}.upload-drop strong{font-weight:500;font-size:11px;color:#7f9864}.upload-drop span{font-size:8px}.upload-progress{font-size:10px;line-height:1.6;color:#7d9562;padding:8px 30px;background:#e8edda;max-height:80px;overflow:auto}.login-page{min-height:100dvh;display:flex;background:#f6f5ed}.login-landscape{position:relative;width:56%;overflow:hidden;min-height:100dvh;background:#2c3e30;color:#e9e4d0}.login-grid{position:absolute;inset:-20%;background-image:linear-gradient(#a5b0870d 1px,transparent 0),linear-gradient(90deg,#a5b0870d 1px,transparent 0);background-size:53px 53px;transform:rotate(-16deg) skewY(5deg)}.login-grid:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 70% 80%,#8ca3641c,transparent 65%)}.login-brand{position:absolute;top:41px;left:47px;z-index:2;flex-direction:column;align-items:flex-start;gap:12px}.login-brand .brand-logo img{width:232px;height:auto}.login-brand .brand-caption{display:flex;align-items:center;gap:12px}.login-brand .brand-caption small{margin-top:0}.login-story{position:relative;padding:0 9%;top:max(235px,27vh);z-index:2}.login-story>.eyebrow{color:#aaae89;font-size:9px;letter-spacing:2px}.login-story h1{font-family:"DM Serif Display",Georgia,serif;font-weight:400;font-size:clamp(45px,4.5vw,73px);line-height:1.04;letter-spacing:-1.8px;margin:24px 0}.login-story>p{color:#adb599;font-size:13px;line-height:1.9;font-weight:400}.login-coordinates{font-size:8px;color:#a6b091;letter-spacing:1.4px;line-height:2;margin-top:38px}.login-coordinates>span{display:block;font-size:7px;color:#7f916d;letter-spacing:2px;margin-top:3px}.login-building{position:absolute;background:#8799781c;border:1px solid #a9b4942b;box-shadow:14px 18px 0 #b9bb8110;transform:rotate(-22deg) skewY(12deg);bottom:-10%;right:-8%;width:45%;height:45%;background-image:repeating-linear-gradient(0deg,transparent 0 21px,#b6bd8e16 22px 23px),repeating-linear-gradient(90deg,transparent 0 26px,#b6bd8e16 27px 28px)}.login-building.b2{right:27%;bottom:-21%;height:40%;width:35%;opacity:.7}.login-building.b3{right:-16%;bottom:27%;height:21%;width:22%;opacity:.5}.login-form-wrap{flex:1 1;position:relative;display:flex;align-items:center;justify-content:center;padding:70px 40px}.login-form{width:310px;max-width:100%}.login-form>.eyebrow{color:#9b9c86;letter-spacing:1.4px;font-size:8px}.login-form h2{font-family:"DM Serif Display",Georgia,serif;font-size:39px;line-height:1.2;font-weight:400;letter-spacing:-.7px;color:#43593a;margin:17px 0 13px}.login-form>p{font-size:12px;color:#929c84;line-height:1.8;margin-bottom:29px}.login-form .field{margin-bottom:18px}.login-form .field>span{font-size:10px;margin-bottom:8px;color:#7f8e6f}.login-form .field>input{height:43px;background:#f0f2e8;font-size:12px;padding:12px}.login-form>.button{height:44px;font-size:11px;margin-top:7px;justify-content:space-between;padding:0 15px;background:#405536}.login-private{display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;color:#a2ab94;margin-top:20px}.login-form>.text-button{display:flex;margin:20px auto 0}.login-credit{position:absolute;bottom:34px;left:40px;right:40px;font-size:7px;letter-spacing:1.5px;color:#a7ae9a;display:flex;justify-content:space-between}.login-credit>span{font-size:9px;letter-spacing:0;color:#b0b6a3}@media(min-width:1600px){.scene-panel{width:286px}.inspector{width:340px}.timeline-year{width:243px}.viewport-toolbar{top:83px}.scene-object strong{font-size:12px}.scene-row{min-height:53px}.inspector-intro h2{font-size:25px}.viewport-intro{left:36px;bottom:115px}.viewport-intro h1{font-size:53px}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}@media(max-width:1190px){.topbar{gap:16px;padding:0 16px}.connection,.project-label{display:none}.project-name{font-size:10px;gap:10px}.topbar-right{gap:13px}.scene-panel{width:235px}.inspector{width:287px}.scene-object{padding-left:17px;gap:8px}.scene-object strong{font-size:10px}.timeline-year{width:192px}.timeline-legend{display:none}.viewport-toolbar{left:15px}.tool-button{width:28px}.viewport-top{left:17px}.location-label small{font-size:6px}.gesture-hint{left:15px;font-size:9px}.map-coordinate{display:none}.map-bottom-info{left:12px;gap:5px}.reference-button{font-size:8px;padding:6px}.reference-button>svg:last-child{margin-left:0}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.asset-tabs>button{padding:8px;font-size:9px}.asset-tools .search-box{width:180px}.upload-panel{display:block}.upload-drop{margin-top:12px;width:100%}}@media(max-width:940px){.project-name{display:none}.topbar{height:60px}.topbar .brand-logo img{height:43px}.scene-panel{width:215px}.inspector{width:270px}.main-workspace .viewport-toolbar{max-width:calc(100% - 28px);flex-wrap:wrap}.tool-button{width:26px}.toolbar-divider{margin:0 2px}.map-state{display:none}.timeline-year{width:171px}.timeline{padding-left:12px;padding-right:15px;gap:14px}.timeline-track-heading small{display:none}.map-bottom-info{flex-wrap:wrap;max-width:150px}.asset-backdrop{inset:60px 0 0}.asset-tools{gap:8px;padding:12px 18px;flex-wrap:wrap}.asset-tabs{flex:1 1}.asset-tools .search-box{order:2;width:100%}.asset-grid{padding:17px;gap:13px}.asset-detail{width:240px;padding:16px}.asset-drawer>header{padding:20px}.asset-drawer>header h2{font-size:24px}.asset-drawer>footer{padding:12px 18px}.inspector .form-section{padding:15px}.inspector-intro{padding:10px 15px}.gesture-hint{max-width:calc(100% - 28px);top:162px;line-height:1.7}.viewport-intro h1{font-size:34px}.viewport-intro{left:20px}.viewport-intro p{font-size:10px}.login-story h1{font-size:49px}.login-brand{left:30px}.login-form-wrap{padding:70px 30px}.login-credit{left:30px;right:30px}.login-credit>span{font-size:8px}}@media(max-width:720px){.workspace{min-height:580px}.topbar .brand-caption{display:none}.topbar{padding:0 12px}.topbar-right{gap:9px}.help-button{display:none}.mode-switch button{font-size:9px;padding:5px 7px}.scene-panel{left:0;box-shadow:8px 0 35px #25331e20;width:230px}.inspector,.scene-panel{position:absolute;top:0;bottom:0}.inspector{right:0;box-shadow:-8px 0 35px #25331e20;width:285px;z-index:12}.viewport-top{left:25px}.main-workspace:has(.scene-panel) .viewport-top{left:245px}.main-workspace:has(.scene-panel) .viewport-toolbar{left:245px;max-width:calc(100% - 260px)}.main-workspace:has(.scene-panel) .viewport-intro{display:none}.viewport-intro{left:25px}.timeline{height:104px;padding:11px 12px;gap:9px}.timeline-year{width:116px;padding-right:9px}.timeline-year>.eyebrow{font-size:5px;letter-spacing:1px}.timeline-year input{font-size:36px;width:67px}.timeline-year .icon-button{padding:0}.timeline-controls{display:none}.timeline-track-heading{height:13px}.timeline-ticks button,.timeline-track-heading>span{font-size:7px}.timeline-track{padding:0 2px}.timeline-histogram>span{width:3px}.asset-drawer>header h2{font-size:20px}.asset-drawer>header p{font-size:9px}.asset-tabs{gap:0}.asset-tabs>button{font-size:8px;padding:7px}.asset-detail{width:200px}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));padding:12px;gap:12px}.asset-preview{height:110px}.asset-drawer>footer>span:last-child{display:none}.upload-fields{flex-wrap:wrap}.upload-fields .field{min-width:110px}.upload-panel{padding:15px}.upload-drop{min-width:0}.login-landscape{width:43%}.login-story h1{font-size:39px}.login-story>.eyebrow{font-size:6px}.login-story>p{font-size:11px}.login-brand{left:22px;top:30px}.login-brand .brand-logo img{width:200px}.login-form-wrap{padding:70px 23px}.login-form h2{font-size:32px}.login-credit{left:23px;right:23px}.login-credit>span{display:none}.dialog{padding:25px}.help-dialog{width:440px}.shortcuts{gap:12px}.login-coordinates{font-size:7px;letter-spacing:.7px}.viewport .maplibregl-ctrl-attrib{max-width:280px;text-align:right}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.viewport .map-root{position:absolute;inset:0;width:100%;height:100%}.asset-card>small,.field>span,.hint,.scene-count,.scene-grouping>span,.scene-object small,.source-list dt{color:#7b866e}.feature-label{font-size:9px;letter-spacing:.4px;color:#6d805d;background:#f9f8edcf;border:1px solid #d5dcc6;border-radius:2px;padding:3px 6px;box-shadow:0 2px 5px #33452508}.model-error-label{font-size:10px;color:#ad643b;background:#fff6e8;border:1px solid #cb9b75;border-radius:4px;padding:6px 8px}.vertex-handle{width:26px;height:26px;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.vertex-handle.vertex:before{content:"";width:14px;height:14px;border:2px solid #fffaf0;border-radius:3px;background:#ad6538;box-shadow:0 0 0 1px #824a28,0 2px 5px #0004}.vertex-handle.vertex.selected:before{width:18px;height:18px;background:#31563c;box-shadow:0 0 0 2px #31563c,0 2px 6px #0004}.vertex-handle.midpoint{width:24px;height:24px;border:1.5px dashed #7d704d;background:#fffcf0ee;border-radius:50%;color:#6c623c;font-size:19px;line-height:1;box-shadow:0 1px 4px #0002}.vertex-handle.midpoint:hover{border-style:solid;background:#fff4cc}.vertex-handle.dragging{cursor:grabbing}.vertex-handle.invalid:before,.vertex-handle.midpoint.invalid{background:#b64132;color:#fff}.vertex-handle:focus-visible{outline:2px solid #294936;outline-offset:3px;border-radius:4px}.vertex-editor{position:absolute;bottom:82px;left:18px;max-width:calc(100% - 36px);z-index:4;border:1px solid #cbd5bb;border-radius:5px;background:#faf9f1f5;box-shadow:0 5px 24px #263b2224;padding:11px 13px;color:#536449}.vertex-editor-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.vertex-editor-actions>strong{font-size:11px;margin-right:5px}.vertex-editor-actions .button{min-height:30px;padding:6px 8px}.vertex-editor p{font-size:10px;line-height:1.6;margin-top:7px;max-width:430px}.vertex-editor .vertex-error{color:#9e382a;font-weight:500}.vertex-editor .button:disabled{opacity:.5}.button.danger{background:#fff4ed;border:1px solid #bc7b65;color:#913e2b}.button.danger:hover:not(:disabled){background:#f6e0d5}.asset-delete-actions{border-top:1px solid #d6dcca;margin-top:22px;padding-top:18px}.asset-delete-actions p{font-size:10px;line-height:1.7;color:#6d775e;margin-top:10px}.asset-delete-dialog{position:fixed;inset:0;margin:auto;max-width:calc(100vw - 32px);color:var(--ink)}.asset-delete-dialog::backdrop{background:#1d2c2380;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.asset-delete-dialog>p{color:#657653;overflow-wrap:anywhere}.asset-delete-dialog>p+p{margin-top:12px}.viewport-hint{position:absolute;left:23px;bottom:94px;pointer-events:none;color:#5f7053;background:#f8f7f2e6;border:1px solid #d9decb;border-radius:4px;padding:10px 12px;font-size:10px;line-height:1.6}.viewport-hint small{display:block;margin-top:5px;font-size:7px;letter-spacing:.8px;color:#7b866e}.transform-feedback{position:absolute;z-index:6;pointer-events:none;min-width:194px;padding:11px 14px;border:1px solid #b9c8ae;border-radius:7px;background:#243529f2;color:#fff7e8;box-shadow:0 5px 22px #1b291b30;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.transform-feedback>span{display:flex;justify-content:space-between;align-items:center;gap:22px;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#eed0b1}.transform-feedback>span small{font-size:8px;color:#bddeaf;letter-spacing:0}.transform-feedback>strong{display:block;padding:8px 0;font-size:16px;font-weight:500;letter-spacing:-.3px}.transform-feedback>small{display:block;font-size:8px;color:#c4d0bc}.object-delete-button{margin-top:9px}.object-context-menu{position:fixed;width:230px;max-width:calc(100vw - 16px);z-index:110}.object-context-menu .menu-key{margin-left:auto;font-size:9px;color:#8d9680}.menu-submenu{margin:0 0 4px 18px;border-left:2px solid var(--line)}.menu-submenu .menu-item{font-size:11px;padding:5px 9px}.scene-menu-wrapper{position:relative}.scene-menu-button{display:flex;align-items:center;gap:8px;background:none;border:0;padding:4px 6px;border-radius:4px;color:inherit;font:inherit;cursor:pointer}.scene-menu-button:hover{background:#0000000a}.scene-menu{position:absolute;left:0;top:calc(100% + 6px);min-width:250px;z-index:120;padding:6px 0}.scene-menu .eyebrow{display:block;padding:4px 12px 6px}.scene-menu .menu-item small{margin-left:auto;color:#8d9680}.scene-menu .menu-divider{display:block;height:1px;margin:5px 0;background:var(--line)}.menu-backdrop{position:fixed;inset:0;z-index:115}.scene-row.locked{opacity:.55}.scene-row.locked .scene-object{cursor:default}.group-lock{color:#8d9680}.group-lock.locked{color:#9c5a3a}.scene-toggles{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:8px}.scene-toggles .check-field{margin:0;font-size:10px}details.form-section>summary{list-style:none;cursor:pointer}details.form-section>summary::-webkit-details-marker{display:none}details.form-section>summary h3{margin-bottom:0}details.form-section[open]>summary h3{margin-bottom:15px}details.form-section:not([open])>summary h3>svg:last-child{transform:rotate(-90deg)}.more-options{margin:4px 0 8px}.more-options>summary{cursor:pointer;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:#6d775e;padding:6px 0}.more-options[open]>summary{margin-bottom:4px}.year-input{width:74px}.object-menu-title{display:block;padding:7px 9px;font-size:10px;overflow-wrap:anywhere;color:#6d775e}.object-context-menu .danger,.object-context-menu .danger>svg{color:#6d775e}.object-context-menu .danger:focus-visible,.object-context-menu .danger:hover{background:#f6e0d5;color:#913e2b}.delete-action{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:4px 0;background:transparent;border:0;border-radius:2px;color:#6d775e;font-size:10px;font-weight:400}.delete-action:hover:not(:disabled){background:transparent;color:#913e2b;text-decoration:underline;text-underline-offset:3px}.delete-action:focus-visible{outline:2px solid #8b745c;outline-offset:3px}.delete-code-field{margin-top:22px}.delete-code-field>span{justify-content:flex-start;color:#657653;font-size:12px;gap:7px}.delete-code{font-family:monospace;font-size:16px;letter-spacing:2px;color:#35492f;background:#e9eddc;border-radius:3px;padding:4px 7px}.delete-code-field>input:not([type=checkbox]):not([type=range]){font-family:monospace;font-size:16px;letter-spacing:2px;text-transform:uppercase;height:40px}.delete-code-field>input::placeholder{font-family:var(--font);letter-spacing:0;text-transform:none}@media(max-width:600px){.login-page{flex-direction:column}.login-landscape{width:100%;min-height:170px}.login-brand{position:relative;top:auto;left:auto;margin:24px;gap:9px}.login-brand .brand-logo img{width:180px}.login-story{display:none}.login-form-wrap{padding:35px 24px 65px}.login-credit{bottom:20px}.topbar{gap:12px}}.gis-import{width:370px;min-width:330px;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden}.gis-import-scroll{flex:1 1;min-height:0;overflow-y:auto;padding:18px}.gis-import-intro h2{margin:7px 0;font-size:23px;font-weight:500}.gis-import-intro p{font-size:12px;line-height:1.65;color:#77736c;margin-bottom:18px}.gis-import fieldset{border:0;margin:0;padding:0;min-width:0}.gis-import .field{margin-bottom:12px}.gis-connection{margin-bottom:14px}.gis-connection>summary{padding:8px 0;font-size:11px;cursor:pointer;color:#647457}.gis-connection[open]>summary{margin-bottom:8px}.gis-layer-choice{border-bottom:1px solid #e4dfd5;padding:16px 0;margin-bottom:12px}.gis-layer-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.gis-layer-heading h3{font-size:13px;line-height:1.5}.gis-import-footer{padding:15px 18px;border-top:1px solid #e4dfd5;background:#f8f5ef;display:grid;gap:10px}.gis-import-footer>strong{font-size:12px}.gis-feature-list{border-top:1px solid #e4dfd5}.gis-feature{display:flex;align-items:center;gap:9px;padding:8px 5px;border-bottom:1px solid #e8e3d9}.gis-feature.selected{background:#eee1d0}.gis-feature input{accent-color:#a36538;width:16px;height:16px;flex-shrink:0}.gis-feature-name{text-align:left;flex:1 1;min-width:0;border:0;padding:0;background:transparent;cursor:pointer;color:inherit}.gis-feature-name strong{display:block;font-size:12px;overflow-wrap:anywhere;font-weight:500}.gis-feature-name small{display:block;font-size:10px;line-height:1.5;margin-top:3px;color:#79736a}.gis-selection-actions{display:flex;gap:16px;padding:12px 0 0;flex-wrap:wrap}.gis-legend{display:flex;gap:16px;font-size:10px;margin:14px 0;color:#726d65}.gis-legend span{display:flex;gap:5px;align-items:center}.gis-legend i{width:9px;height:9px;background:#346f87;border-radius:2px}.gis-legend span:nth-child(2) i{background:#c47740}.gis-legend span:nth-child(3) i{background:#738775}.gis-feature-details{font-size:11px;margin-top:16px;padding:10px;background:#f1ede5}.gis-feature-details .source-list{display:block}.gis-feature-details .source-list>div{margin-top:10px;overflow-wrap:anywhere}.gis-progress{padding:10px;background:#edf1e9;font-size:12px;line-height:1.6}.gis-failures{font-size:11px;color:#934832;line-height:1.6}.gis-open-button{margin-bottom:8px}.kind-icon.parcel{color:#917946;background:#efe8d7}.gis-attribute{display:flex;align-items:flex-end;gap:5px;margin-bottom:12px}.gis-attribute .field{flex:1 1;min-width:0;margin:0}.gis-attribute .field>span{overflow-wrap:anywhere}.gis-attribute>select{width:72px;padding:8px 3px;font-size:10px}.gis-add-attribute{display:flex;gap:6px}.gis-add-attribute input{min-width:0;width:100%}.geometry-details pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}.boundary-picker{position:absolute;bottom:205px;left:20px;z-index:9;padding:10px;background:#fcfaf5;box-shadow:0 4px 18px #0002;font-size:11px;display:flex;align-items:center;gap:10px}.boundary-picker select{max-width:250px}@media (max-width:1150px){.gis-import{width:330px;min-width:300px}}.scene-grouping select{font-size:10px;max-width:85px;border:1px solid var(--line);border-radius:3px;padding:4px;background:transparent}.scene-drafts{padding:2px 0 10px}.scene-clear-actions{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.scene-clear-actions>.text-button{color:#9b5b45;font-size:10px}.scene-clear-actions .button{font-size:10px}.gis-import-scroll details>summary{font-size:11px;cursor:pointer;padding:8px 0}.scene-selection-actions{padding:10px 14px;background:#eceadd;border-bottom:1px solid var(--line);font-size:10px;display:flex;flex-direction:column;gap:9px}.scene-selection-actions>div{display:flex;align-items:center;justify-content:space-between}.scene-selection-actions .text-button{font-size:10px}.scene-selection-actions select{padding:6px;border:1px solid var(--line);border-radius:3px;background:var(--paper);font-size:10px}.scene-group-heading{display:flex;align-items:center;padding-right:10px}.scene-group-heading>.scene-group-title{flex:1 1;min-width:0}.scene-group-heading>.scene-group-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-row.selected.out-of-year .scene-object{opacity:.85}.feature-label{max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geometry-warning{background:#f5ebd6;color:#815917}.geometry-warning strong{display:block;margin-bottom:4px}.geometry-warning p{margin:0 0 6px}.scene-object em.geometry-warning-tag{background:#f5e5bf;color:#815917}.gis-feature-name small.geometry-warning-text{color:#815917}.gis-legend{flex-wrap:wrap;gap:8px 14px}.gis-legend span:nth-child(4) i{background:#ad791b}.scene-list-container{flex:1 1;min-height:0;display:flex;flex-direction:column}.scene-expand-actions{display:flex;justify-content:space-between;padding:7px 14px;border-bottom:1px solid var(--line)}.scene-expand-actions .text-button{font-size:9px}.virtual-list{min-height:0;overflow:auto;overflow-anchor:none;position:relative;scrollbar-gutter:stable}.virtual-list:focus-visible{outline:1px solid #81906f;outline-offset:-1px}.virtual-list-space{position:relative;width:100%}.virtual-list-row{position:absolute;left:0;right:0;contain:layout paint}.virtual-list.scene-list{padding:0;flex:1 1}.virtual-list .scene-row{height:53px;min-height:53px}.virtual-list .scene-group-heading{height:36px;background:var(--paper);gap:2px;padding-right:8px}.virtual-list .scene-group-title{width:auto;padding:7px 5px 7px 12px;height:36px;min-width:0}.group-eye,.scene-group-title>small,.scene-group-title>svg{flex-shrink:0}.scene-group-title:hover{background:#e9eddf}.group-eye[aria-pressed=false]{color:#a09b8e}.group-eye[aria-pressed=mixed]{color:#a36538}.virtual-list.gis-feature-list{height:360px;max-height:45vh;min-height:160px}.virtual-list .gis-feature{height:100%;box-sizing:border-box;margin:0}.virtual-list .gis-feature-name small,.virtual-list .gis-feature-name strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.scene-group-heading.drop-target{outline:2px solid #789060;outline-offset:-2px;background:#e0e9d4}.scene-object[draggable=true]{cursor:grab}.scene-panel{overflow-y:auto}.scene-list-container{min-height:120px;flex-shrink:0}@media (max-height:850px){.scene-bottom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:8px}.scene-bottom>*{grid-column:1/-1}.scene-bottom>.scene-drafts{grid-column:auto;padding:0;margin:0;min-height:24px;font-size:10px}.scene-bottom .scene-clear-actions{margin:0;padding:0}.scene-bottom .gis-open-button{margin:0}.scene-bottom .asset-library-button{padding-top:10px;padding-bottom:10px}.scene-selection-actions{gap:6px;padding-top:7px;padding-bottom:7px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.orientation{width:min(54%,960px);min-width:520px;flex-shrink:0;border-left:1px solid #d4d8cc;display:flex;flex-direction:column;min-height:0}.orientation .panel-heading b{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.orientation-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:6px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.orientation-actions .button{min-height:28px;padding:4px 8px;font-size:10px}.orientation-actions .check-field{margin:0 4px}.lens-field{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#5f7053}.lens-field input{width:56px;padding:4px}.lens-field input,.orientation-actions select{font-size:10px;border:1px solid var(--line);border-radius:3px;background:var(--paper)}.orientation-actions select{padding:5px;max-width:200px}.orientation-map{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:6px 12px;border-bottom:1px solid var(--line);background:#f7f6ee}.orientation-map .button{padding:4px 8px}.orientation-map .check-field{margin:0}.orientation-opacity{display:flex;align-items:center;gap:6px;font-size:10px;color:#5f7053}.orientation-opacity input{width:90px;accent-color:#bd7442}.orientation-stats{display:flex;gap:6px;flex-wrap:wrap;font-size:10px;padding:7px 12px;background:#f0f2e9;border-bottom:1px solid var(--line);color:#6d7f5b}.orientation-stats b{font-weight:600;color:#546645}.orientation-stats .flag,.orientation-table .flag{color:#9c5a3a}.orientation-hint{display:flex;gap:6px;align-items:flex-start;font-size:10px;line-height:1.5;padding:6px 12px;color:#5f7053;background:#faf9f1}.orientation-hint svg{margin-top:2px;flex-shrink:0}.orientation>.error-message{margin:6px 12px}.photo-viewer{position:relative;flex:1 1;min-height:240px;overflow:hidden;background:#1f2621;touch-action:none;-webkit-user-select:none;user-select:none}.photo-stage{position:absolute;left:0;top:0;transform-origin:0 0}.photo-stage img,.photo-stage svg{position:absolute;left:0;top:0;display:block;max-width:none}.photo-stage svg{overflow:visible}.photo-zoom{position:absolute;right:10px;bottom:10px;font-size:9px;color:#dfe6d4;background:#243529cc;padding:4px 7px;border-radius:3px;display:flex;gap:8px;align-items:center}.photo-zoom button{color:#f3ecd8;font-size:9px;padding:0}.orientation-side{height:42%;min-height:200px;overflow:auto;border-top:1px solid var(--line);padding:8px 12px 14px;font-size:10px}.orientation-side h4{font-size:9px;letter-spacing:1px;font-weight:650;color:#617253;margin:14px 0 6px}.orientation-table{width:100%;border-collapse:collapse;font-size:10px}.orientation-table th{text-align:left;font-size:8px;letter-spacing:.8px;color:#8a9480;padding:4px;border-bottom:1px solid var(--line)}.orientation-table td{padding:4px;border-bottom:1px solid #eceee3;vertical-align:middle}.orientation-table tr.selected td{background:#eee7d6}.orientation-table input[type=number]{width:46px;font-size:10px;padding:2px 3px;border:1px solid var(--line);border-radius:2px;background:var(--paper)}.orientation-table .text-button{margin-right:8px}.orientation-empty{color:#8a9480;padding:12px 4px}.accepted{color:#31563c;display:inline-flex;align-items:center;gap:3px}.orientation{background:#f8f8f1;overflow:hidden}.orientation>.panel-heading{padding:12px 16px;flex-shrink:0}.orientation .panel-heading>span{display:flex;align-items:center;gap:12px;min-width:0}.orientation .panel-heading b{font-weight:450;letter-spacing:0;text-transform:none;font-size:11px}.orientation .button{border-radius:9px;font-size:11px;min-height:32px;padding:6px 10px}.orientation .icon-button{border-radius:8px;min-width:28px;min-height:28px;display:inline-flex;align-items:center;justify-content:center}.orientation :is(button,input,select):focus-visible{outline:2px solid #769054;outline-offset:2px}.orientation .photo-stage [role=button]:focus-visible{outline:2px solid #ffd27a}.orientation-actions{padding:0 14px 10px;gap:8px;border:0;flex-shrink:0}.orientation-tool-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:100%}.orientation-tool-group .button{white-space:nowrap}.orientation-tool-group .primary{box-shadow:0 2px 5px #24352915}.orientation-solve-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.orientation-solve-actions select{max-width:155px}.orientation-settings{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:0 14px 10px;flex-shrink:0}.orientation-settings .check-field{font-size:11px;margin:0}.orientation :is(.orientation-settings,.orientation-actions) select{font-size:11px;padding:7px 8px;border:1px solid #d8dfcd;border-radius:8px;background:#fffef8;color:#4d6142}.orientation .lens-field,.solver-field{display:flex;align-items:center;gap:6px;font-size:11px;color:#5f7053}.orientation .lens-field input{width:62px;padding:7px;font-size:11px;border-radius:8px;background:#fffef8}.orientation-map{margin:0 14px 8px;padding:8px 10px;border:1px solid #e0e5d8;border-radius:10px;flex-shrink:0}.orientation-map .button{font-size:10px;min-height:28px}.orientation-stats{margin:0 14px 8px;border:1px solid #dbe3ce;border-radius:11px;padding:9px 11px;gap:6px 12px;align-items:center;font-size:11px;flex-shrink:0;color:#526547}.orientation-stats b{color:#314b31}.orientation-stats.needs-input{background:#f5efdf;border-color:#e8dcc2;color:#795c37}.orientation-stats.needs-input>span{flex:1 1;min-width:0}.orientation-stats svg{flex-shrink:0}.solve-method{font-weight:650;color:#314b31}.solve-flag{border-radius:20px;padding:3px 7px;background:#e7e9da;color:#655e3b;font-size:10px}.solve-explanation{flex-basis:100%;font-size:10px;line-height:1.5;color:#746042}.orientation-hint{padding:0 15px 9px;margin:0;background:transparent;flex-shrink:0;font-size:11px}.orientation .photo-viewer{margin:0 12px 10px;border-radius:13px;min-height:180px;box-shadow:inset 0 0 0 1px #142d2320;background:radial-gradient(ellipse at center,#303b32,#1e2822)}.photo-zoom{border:1px solid #9eb09644;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;font-size:11px;padding:4px 5px 4px 12px}.photo-zoom button{font-size:10px;padding:5px 9px;border-radius:15px;background:#ffffff12}.photo-zoom button:hover{background:#ffffff24}.orientation-side{height:30%;min-height:160px;flex-shrink:1;padding:10px 14px 14px;border-top:1px solid #e2e6d9;background:#fafaf4}.orientation-section-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 8px;color:#455b3b;font-size:11px}.orientation-section-title strong{font-weight:650}.orientation-section-title strong span{font-weight:400;margin-left:8px;color:#74836a}.orientation-section-title>span{display:flex;align-items:center;gap:4px;font-size:10px;color:#74836a}.control-table{border-collapse:separate;border-spacing:0 3px;font-size:11px}.control-table th{font-size:9px;letter-spacing:.2px;text-transform:none;padding:5px 6px;color:#6f7e63;border-bottom:0}.control-table td{padding:6px;border-bottom:0;background:#f0f2e9}.control-table td:first-child{border-radius:9px 0 0 9px}.control-table td:last-child{border-radius:0 9px 9px 0}.control-table tr.selected td{background:#e4ebd8}.control-table tr:hover td{background:#eaf0e0}.control-table .disabled-match .match-label,.control-table .disabled-match .match-pixels{opacity:.55}.match-number{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:#fffef8;color:#5a7048;font-size:10px}.match-label{display:flex;gap:6px;align-items:center;text-align:left;font-size:11px;color:#42543a;max-width:230px}.match-label svg{flex-shrink:0}.match-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-pixels{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#647158;font-size:10px}.match-pixels small{display:block;font-size:9px;margin-top:2px}.residual-chip{display:inline-block;white-space:nowrap;border-radius:20px;padding:3px 6px;font-size:10px;color:#77806d;background:#e8ebdf}.residual-chip.good{color:#3e6532;background:#dfebd5}.residual-chip.fair{color:#856126;background:#f4e7c7}.residual-chip.poor{color:#983e30;background:#f5e0d7}.control-table input[type=number]{width:44px;border-radius:6px;padding:5px;font-size:10px}.control-table input[type=checkbox]{accent-color:#607847}.control-table .orientation-empty{padding:22px;text-align:center;background:#f0f2e8;border:1px dashed #cdd8bc;border-radius:12px;color:#68795b}.orientation-empty>svg{margin:auto auto 8px}.orientation-empty span,.orientation-empty strong{display:block;line-height:1.6}.orientation-empty strong{color:#49613c;font-size:12px;font-weight:550}.orientation-empty span{max-width:340px;margin:5px auto 0}.control-editor{padding:10px 12px;margin-bottom:10px;border:1px solid #cddbbd;border-radius:12px;background:#edf2e5}.control-editor-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.control-editor-heading strong{display:flex;gap:6px;align-items:center;font-size:11px;color:#425d34}.control-editor-fields{display:flex;flex-wrap:wrap;gap:8px 14px}.coordinate-pair{display:flex;align-items:center;gap:6px}.coordinate-pair>span{min-width:36px;color:#5d7050;font-size:10px}.coordinate-pair label{display:flex;align-items:center;gap:4px;font-size:10px;color:#718065}.coordinate-pair input{width:76px;padding:6px 7px;font-size:11px;border-radius:7px;border:1px solid #d2ddc5;background:#fffef9}.control-editor-footer{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:8px}.control-editor-footer>span{font-size:10px;color:#6c7a61;line-height:1.5}.control-editor-footer .button{white-space:nowrap;min-height:29px;font-size:10px}@media(max-width:1190px){.orientation-solve-actions .button,.orientation-tool-group .button{padding:5px 8px;font-size:10px}.orientation-solve-actions{margin-left:auto}.orientation-section-title>span{display:none}.match-label{max-width:145px}.orientation-actions{gap:6px}.orientation-settings{gap:8px}.coordinate-pair input{width:68px}}@media(max-height:820px){.orientation-side{height:30%;min-height:130px}.orientation .photo-viewer{min-height:150px}.orientation>.panel-heading{padding-top:8px;padding-bottom:8px}.orientation-stats{padding:7px 10px}.orientation-map{padding:5px 8px}}.measure-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 10px;margin-bottom:8px;background:#f6ecd9;border:1px solid #e2c9a2;border-radius:4px}.measure-form select{font-size:10px;padding:4px;border:1px solid var(--line);border-radius:3px}.measure-form .button{min-height:26px;padding:4px 8px;font-size:10px}.orient-button{margin:10px 18px 0;width:calc(100% - 36px)}.occupant-row{display:grid;grid-template-columns:52px 52px 1fr 1fr 24px;gap:4px;margin-bottom:5px}.occupant-row input{min-width:0;font-size:10px;padding:5px;border:1px solid #dfe4d5;border-radius:3px;background:#f0f2e9}.photo-triage{margin-top:18px;padding-top:14px;border-top:1px solid #d6dcca;display:flex;flex-direction:column;gap:8px}.photo-triage>.eyebrow{margin-top:4px}.subject-row{display:flex;align-items:center;gap:6px;font-size:10px;padding:4px 0;border-bottom:1px solid #e4e7d9}.subject-row span{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subject-row small{color:#8a9480}.subject-add{display:grid;grid-template-columns:1fr 70px 44px 44px;gap:4px}.subject-add .button,.subject-add select{font-size:9px;padding:4px;min-height:26px;border:1px solid var(--line);border-radius:3px;background:var(--paper)}@media(max-width:1190px){.orientation{width:60%;min-width:420px}}.package-panel{width:400px;flex-shrink:0;border-left:1px solid #d4d8cc;min-height:0}.package-panel .form-section h3{margin-bottom:12px}.package-panel .form-section h4{font-size:9px;letter-spacing:1px;font-weight:650;color:#617253;margin:12px 0 6px}.package-panel .orientation-table td{font-size:10px}.package-panel .orientation-table code{font-size:9px}.target-chip{display:inline-flex;align-items:center;gap:4px;margin:0 6px 6px 0;padding:3px 4px 3px 8px;background:#e9ede0;border:1px solid #d5dcc6;border-radius:12px;font-size:10px;color:#4f6441}.target-chip .icon-button{padding:1px}.kind-checks{display:flex;gap:10px;flex-wrap:wrap}.kind-checks .check-field{margin:0}.package-summary{margin-top:10px;font-size:10px;line-height:1.7;color:#5f7053}.package-summary b{color:#546645}.package-summary .flag{color:#9c5a3a;margin:6px 0}.scene-drop-destinations{flex:none;margin:0 8px 6px;padding:7px;background:#f4e9d9;border:1px dashed #bf8958;border-radius:5px}.scene-drop-destinations>small{display:block;margin-bottom:4px;font-size:10px}.scene-drop-destinations .virtual-list{height:100px;min-height:0}.scene-folder-drop{width:100%;height:30px;text-align:left;padding:4px 8px;font-size:11px;border:0;background:transparent;border-radius:3px}.scene-folder-drop.drop-target{background:#e6cbaa;outline:2px solid #ba7c44;outline-offset:-2px}.shape-anchor-overlay{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}.shape-anchor{position:absolute;left:0;top:0;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#31563c;color:#fff8ec;border:2px solid #fff6e4;box-shadow:0 2px 7px #18251a40;font:11px/1 sans-serif}.shape-anchor[hidden]{display:none}.shape-anchor-snap{width:auto;height:auto;padding:7px 10px;border-radius:12px;background:#995526;white-space:nowrap}.orientation-controls{flex-shrink:0;max-height:46%;overflow-y:auto}@media(max-height:820px){.orientation .photo-viewer{min-height:130px}.orientation .orientation-side{min-height:100px}}.orientation-instruction{display:flex;align-items:flex-start;gap:8px;padding-right:15px}.orientation-instruction .orientation-hint{flex:1 1;min-width:0}.orientation-instruction>.text-button{flex-shrink:0;font-size:11px;padding:0 0 9px}