:root{--bg:#05070d;--panel:#0d1220e0;--panel-solid:#0d1220;--line:#a0b4e629;--text:#e9eefc;--muted:#95a0bd;--accent:#ffd36e;--accent-ink:#1d1606;--guide:#7dffb2;--warn:#ffb36b;--radius:16px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--toolbar-h:64px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}button{font:inherit;color:inherit}.hidden{display:none!important}#camera,#sky-gl,#sky{width:100vw;height:100vh;height:100dvh;position:fixed;inset:0}#camera,#sky-gl{pointer-events:none}#camera{object-fit:cover;background:#000;display:none}body.mode-ar #camera{display:block}body.dim-camera #camera{filter:brightness(.55)contrast(1.1)}#sky{touch-action:none;cursor:grab}#sky:active{cursor:grabbing}#night{pointer-events:none;mix-blend-mode:multiply;z-index:50;background:#f20;display:none;position:fixed;inset:0}body.night #night{display:block}body.night{--accent:#ff5040;--guide:#ff5040;--warn:#ff5040;--text:#c8463a;--muted:#8a3a30;--line:#ff504038}body.night .toggle i{background:#ffffff1a}body.night .toggle i:after{background:#8a8a8a}body.night .toggle input:checked+i:after{background:#1a0604}body.night .btn.active,body.night .chip.guide,body.night .chip.warn{border-color:var(--accent);background:#ff504029}body.night .tool.active{background:#ff504033}#hud{top:calc(var(--safe-top) + 10px);pointer-events:none;z-index:10;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:fixed;left:12px;right:12px}.hud-dir{-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);background:#0508108c;border-radius:12px;min-width:96px;padding:6px 12px}#hud-heading{letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}#hud-sub{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.hud-chips{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.chip{pointer-events:auto;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#050810a6;border-radius:999px;max-width:62vw;padding:5px 12px;font-size:13px;overflow:hidden}.chip.warn{color:var(--warn);border-color:#ffb36b66}.chip.guide{color:var(--guide);border-color:#7dffb266}span.chip{cursor:default}#center-label{pointer-events:none;text-shadow:0 1px 3px #000,0 0 8px #000;white-space:nowrap;z-index:5;font-size:15px;font-weight:600;position:fixed;top:calc(50% + 38px);left:50%;transform:translate(-50%)}#center-label .cl-name,#center-label .cl-detail{text-align:center;display:block}#center-label .cl-detail{color:#e3e8f6;margin-top:1px;font-size:12.5px;font-weight:500}body.mode-manual #center-label{display:none}#resume-camera{z-index:25;width:auto;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 30px #00000080}#calib-banner,#align-banner{left:12px;right:12px;bottom:calc(var(--safe-bottom) + var(--toolbar-h) + 22px);background:var(--panel);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);z-index:20;border:1px solid #ffd36e66;align-items:center;gap:12px;max-width:460px;margin:0 auto;padding:10px 12px 10px 16px;font-size:14px;display:flex;position:fixed}#calib-banner span,#align-banner span{flex:1}#toolbar{left:50%;bottom:calc(var(--safe-bottom) + 12px);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);z-index:20;border-radius:20px;gap:2px;width:max-content;max-width:calc(100vw - 24px);padding:4px;display:flex;position:fixed;transform:translate(-50%)}.tool{appearance:none;width:74px;min-width:56px;height:56px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:16px;flex-direction:column;flex:0 auto;justify-content:center;align-items:center;gap:3px;font-size:11px;display:flex}.tool svg{width:24px;height:24px}.tool:hover{color:var(--text);background:#ffffff0d}.tool.active{color:var(--accent);background:#ffd36e1a}body.mode-manual .ar-only{display:none}.tool span{white-space:nowrap}@media (max-width:380px){.tool{font-size:10px}}.tonight-title{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:14px 0 2px;font-size:13px}.tonight-verdict{margin:2px 0 4px;font-size:16px;font-weight:600;line-height:1.4}.credits a,.credits-list a{color:var(--accent);text-decoration:none}.credits-list{gap:5px;margin:4px 0 8px;padding-left:18px;line-height:1.45;display:grid}.credits-list b{color:var(--text);font-weight:600}.cloud-chart{align-items:flex-end;gap:3px;height:74px;margin-top:6px;display:flex}.cc-col{flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;display:flex}.cc-bar{background:#7dffb214;border-radius:4px;align-items:flex-end;width:100%;height:56px;display:flex;overflow:hidden}.cc-bar i{background:linear-gradient(#c6cede,#8a93a8);border-radius:4px 4px 0 0;width:100%;display:block}.cc-col span{color:var(--muted);font-variant-numeric:tabular-nums;height:12px;font-size:10px}#btn-snap{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);width:50px;height:50px;color:var(--text);cursor:pointer;z-index:20;border-radius:50%;place-items:center;display:grid;position:fixed;top:50%;right:12px;transform:translateY(-50%)}#snap-dialog{z-index:66;background:#03050acc;place-items:center;padding:14px;display:grid;position:fixed;inset:0}.snap-card{background:var(--panel-solid);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:8px;width:100%;max-width:460px;max-height:calc(100dvh - 28px);padding:12px;display:flex}#snap-preview{object-fit:contain;background:#000;border-radius:10px;flex:auto;width:100%;min-height:0}.snap-card>:not(#snap-preview){flex:none}.snap-layers{gap:2px;max-height:40vh;padding-top:2px;display:grid;overflow-y:auto}.snap-layers:empty{display:none}.snap-layer{color:var(--muted);grid-template-columns:minmax(0,9.5em) 1fr 2.8em;align-items:center;gap:10px;min-height:34px;font-size:13px;display:grid}.snap-layer span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.snap-layer input[type=range]{margin:0}.snap-layer output{text-align:right;color:var(--accent);font-variant-numeric:tabular-nums}.snap-card .btn-row{justify-content:flex-end}#survey-credit{left:50%;bottom:calc(var(--safe-bottom) + 76px);color:#e1e8fab3;text-shadow:0 1px 2px #000;white-space:nowrap;pointer-events:none;z-index:15;font-size:10.5px;position:fixed;transform:translate(-50%)}.sheet{left:0;right:0;bottom:var(--keyboard,0px);max-height:62vh;max-height:min(62dvh, calc(var(--visible-height,100dvh) - 12px));overscroll-behavior:contain;background:var(--panel);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:6px 18px calc(var(--safe-bottom) + 20px);z-index:30;border-radius:20px 20px 0 0;animation:.22s ease-out sheet-in;position:fixed;overflow-y:auto}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}body.keyboard-open .sheet{max-height:calc(var(--visible-height) - 8px);padding-bottom:12px}.sheet.search-sheet{height:62vh;height:min(62dvh, calc(var(--visible-height,100dvh) - 12px));flex-direction:column;display:flex;overflow:hidden}body.keyboard-open .sheet.search-sheet{height:calc(var(--visible-height) - 8px)}.search-sheet .results{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}@media (min-width:820px){.sheet{top:14px;left:auto;right:14px;bottom:calc(14px + var(--keyboard,0px));border:1px solid var(--line);border-radius:20px;width:400px;max-height:none;padding-bottom:20px}.sheet-grip{display:none}body.keyboard-open .sheet{max-height:none}.sheet.search-sheet,body.keyboard-open .sheet.search-sheet{height:auto}body.sheet-open #toolbar{left:calc(50vw - 207px)}body.sheet-open #hud{right:428px}}.sheet-grip{background:#ffffff38;border-radius:2px;width:40px;height:4px;margin:4px auto 6px}.sheet-head{background:linear-gradient(var(--panel-solid) 70%, transparent);z-index:1;justify-content:space-between;align-items:flex-start;gap:12px;padding:6px 0 8px;display:flex;position:sticky;top:-6px}.sheet-title h2{margin:0;font-size:22px;line-height:1.2}.sheet-title .kind{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:12px;font-weight:600}.sheet-title .sub{color:var(--muted);margin-top:2px;font-size:14px}.icon-btn{appearance:none;cursor:pointer;background:#ffffff12;border:0;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;display:grid}.sheet-actions{margin:4px 0 12px}.btn{appearance:none;border:1px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:12px;padding:9px 14px;font-size:14px;font-weight:600}.btn:hover{background:#ffffff1a}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.primary:hover{background:#ffdc8a}.btn.active{color:var(--guide);border-color:#7dffb280}.btn.big{border-radius:14px;width:100%;padding:14px 18px;font-size:16px}.btn-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.facts{gap:0;margin:0;display:grid}.facts>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(110px,38%) 1fr;gap:10px;padding:8px 0;display:grid}.facts dt{color:var(--muted);font-size:13px}.facts dd{font-variant-numeric:tabular-nums;margin:0;font-size:14px}.note{color:#ffc2a8;background:#ff78501f;border:1px solid #ff785059;border-radius:10px;margin:0 0 8px;padding:8px 12px;font-size:13.5px}.extra h3,.group h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 4px;font-size:13px}.extra .photo{border-radius:12px;width:100%;margin-top:14px;display:block}.wiki{margin-top:14px}.wiki img{float:right;object-fit:cover;border-radius:10px;width:96px;max-height:120px;margin:2px 0 8px 12px}.wiki p{color:#cfd6ea;margin:0 0 8px;font-size:14px}.wiki a{color:var(--accent);font-size:14px;font-weight:600;text-decoration:none}.muted{color:var(--muted)}.small{font-size:12.5px}input.search,.loc-inputs input{border:1px solid var(--line);width:100%;color:var(--text);font:inherit;background:#00000059;border-radius:12px;outline:none;padding:11px 14px;font-size:16px}input.search:focus,.loc-inputs input:focus{border-color:#ffd36e99}.results{margin-top:8px}.result{appearance:none;border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:1fr auto;grid-template-areas:"name pos""kind pos";width:100%;padding:9px 2px;display:grid}.result:hover{background:#ffffff0a}.r-name{grid-area:name;font-weight:600}.r-kind{color:var(--muted);grid-area:kind;font-size:12.5px}.r-pos{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:pos;align-self:center;font-size:13px}.r-pos.up{color:var(--guide)}.toggles{display:grid}.toggle{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.toggle>span{flex-direction:column;display:flex}.t-status{color:var(--muted);font-size:12.5px}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle i{background:#ffffff29;border-radius:13px;flex:none;width:44px;height:26px;transition:background .15s;position:relative}.toggle i:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle input:checked+i{background:var(--accent)}.toggle input:checked+i:after{transform:translate(18px)}.toggle input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}.slider{border-bottom:1px solid var(--line);padding:10px 0;display:block}.slider>span{justify-content:space-between;font-size:14px;display:flex}.slider output{color:var(--accent);font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent);margin:8px 0 2px}.group>.row{font-size:14px}.loc-inputs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.loc-inputs label{color:var(--muted);gap:4px;font-size:12.5px;display:grid}.about p{line-height:1.5}#intro{z-index:60;-webkit-backdrop-filter:blur(4px);background:radial-gradient(circle at 50% 30%,#1e32648c,#05070deb 70%);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.intro-card{text-align:center;gap:12px;width:100%;max-width:380px;display:grid}.intro-card .logo{width:76px;height:76px;margin:0 auto}.intro-card h1{letter-spacing:.01em;margin:0;font-size:30px}.intro-card p{color:#c3cbe2;margin:0 0 6px}#intro-note{margin-top:6px}#intro-note.warn{color:var(--warn)}#calib-guide{z-index:65;-webkit-backdrop-filter:blur(3px);background:#03050ab8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.guide-card{background:var(--panel-solid);border:1px solid var(--line);border-radius:20px;width:100%;max-width:420px;max-height:calc(100dvh - 36px);padding:20px 18px 18px;overflow-y:auto;box-shadow:0 10px 40px #00000080}.guide-card h2{margin:0 0 4px;font-size:22px}.guide-card>p{margin:0 0 12px;font-size:14px}.guide-steps{gap:14px;margin:0 0 16px;padding:0;list-style:none;display:grid}.guide-steps li{color:#d3daec;grid-template-columns:76px 1fr;align-items:center;gap:12px;font-size:14px;display:grid}.guide-steps b{color:var(--text);margin-bottom:2px;font-size:15px;display:block}.guide-art{width:76px;height:50px;color:var(--muted);place-items:center;display:grid;position:relative}.guide-art svg{width:100%;height:100%}.guide-art:not(.fig8) svg{width:46px;height:46px}.fig8-phone{background:var(--accent);offset-path:path("M 38.0 25.0 C 47.5 9.8 68.4 9.8 68.4 25.0 C 68.4 40.2 47.5 40.2 38.0 25.0 C 28.5 9.8 7.6 9.8 7.6 25.0 C 7.6 40.2 28.5 40.2 38.0 25.0 Z");offset-rotate:auto 90deg;border-radius:2.5px;width:9px;height:15px;animation:2.6s linear infinite fig8;position:absolute;top:0;left:0;box-shadow:0 0 8px #ffd36e99}@keyframes fig8{0%{offset-distance:0%}to{offset-distance:100%}}@media (prefers-reduced-motion:reduce){.fig8-phone{offset-distance:12%;animation:none}}#toast{left:50%;top:calc(var(--safe-top) + 72px);background:var(--panel-solid);border:1px solid var(--line);opacity:0;pointer-events:none;z-index:70;border-radius:12px;max-width:min(92vw,440px);padding:10px 14px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%)translateY(-8px)}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}
