html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#0d0f12;color:#f8fafc;font-family:var(--font-display)}#app{display:block;width:100%;height:100%;touch-action:none}#loader{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#0d0f12}#loader[data-hidden=true]{display:none}.loader-logo{height:28px}.loader-divider{position:relative;width:200px;height:1px;overflow:hidden;background:#ffffff24}.loader-message{color:#5b7897;font-size:12px;font-weight:600;letter-spacing:.18em;text-align:center;text-transform:uppercase}#loader[data-state=error] .loader-message{color:#f87171}#loader-progress-bar{position:absolute;inset:0;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:#d4ff3f;transition:transform .2s ease}#annotation-panel{position:fixed;left:24px;top:24px;width:240px;display:flex;flex-direction:column;gap:10px;padding:16px;background:#141414cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;z-index:9999}#annotation-panel button{padding:12px;border:none;border-radius:8px;cursor:pointer}#controls{position:fixed;left:16px;bottom:16px;display:grid;width:min(340px,calc(100vw - 32px));gap:11px;padding:12px;border:1px solid rgb(255 255 255 / 12%);border-radius:8px;background:#080a0eb8;color:#f8fafcdb;box-shadow:0 14px 46px #0000003d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.control-primary{display:flex;align-items:center;gap:12px}.key-grid{display:grid;grid-template-columns:repeat(3,30px);gap:5px}kbd{display:flex;width:30px;height:28px;align-items:center;justify-content:center;border:1px solid rgb(255 255 255 / 20%);border-bottom-color:#ffffff57;border-radius:6px;background:#ffffff1a;color:#fff;font-family:inherit;font-size:12px;font-weight:700;line-height:1;box-shadow:inset 0 -1px #00000038}.control-primary-copy{min-width:0}.control-action,.control-detail{display:block}.control-action{color:#fff;font-size:14px;font-weight:700;line-height:1.2}.control-detail{margin-top:2px;color:#f8fafc9e;font-size:12px;line-height:1.25}.control-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.control-row{display:flex;min-width:0;align-items:center;gap:7px;padding:6px 7px;border:1px solid rgb(255 255 255 / 7%);border-radius:6px;background:#ffffff0d}.control-shortcut{display:flex;flex:0 0 auto;gap:3px}.control-list kbd{width:20px;height:20px;border-radius:5px;font-size:10px}.control-token{display:inline-flex;min-height:20px;flex:0 0 auto;align-items:center;padding:0 7px;border:1px solid rgb(255 255 255 / 17%);border-radius:5px;background:#ffffff17;color:#fff;font-size:11px;font-weight:650;line-height:1;white-space:nowrap}.control-label{min-width:0;color:#f8fafcb8;font-size:12px;line-height:1.2;overflow-wrap:anywhere}@keyframes loader-spin{to{transform:rotate(360deg)}}@media(max-width:520px){#controls{right:16px;bottom:12px;width:auto}.control-list{grid-template-columns:1fr}}.marker-overlay{position:fixed;inset:0;pointer-events:none;z-index:10}.marker{position:absolute;top:0;left:0;pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none}:root{--font-display: "PP Neue Montreal", ui-sans-serif, system-ui, sans-serif;--font-mono: "PP Fraktion Mono", ui-monospace, monospace}@supports not (backdrop-filter: blur(1px)){.glass-panel{background:#1e202499}}.topbar{position:fixed;top:16px;left:16px;right:16px;z-index:20;display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 8px;border-radius:999px}.topbar__button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:#0000008c;cursor:pointer}.topbar__button img{width:16px;height:16px}.topbar__logo{height:30px}.bottom-scrim{position:fixed;left:0;right:0;bottom:0;height:45vh;z-index:14;pointer-events:none;background:linear-gradient(to bottom,transparent,rgba(0,0,0,.55) 70%,rgba(0,0,0,.7))}.info-card{position:fixed;left:20px;right:20px;bottom:24px;z-index:20;display:flex;flex-direction:column;gap:14px}.info-card__text{display:flex;flex-direction:column;gap:4px;text-align:center;transition:transform var(--flip-duration, .32s) ease}.info-card__title{color:#fff;font-size:24px;font-weight:600}.info-card__subtitle{min-height:1.4em;color:#d4ff3f;font-size:.92svh;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-mono);font-size:8px}.enter-from-bottom{transform-origin:bottom center;transform:translateY(16px) scaleY(.85);opacity:0;transition:transform var(--enter-duration, .28s) cubic-bezier(.22,1,.36,1),opacity calc(var(--enter-duration, .28s) * .7) ease}.enter-from-bottom.is-visible{transform:translateY(0) scaleY(1);opacity:1}.info-card__variants{display:flex;justify-content:center;gap:10px;padding:10px;background:rgba(255,255,255,var(--glass-bg-opacity, .12));backdrop-filter:blur(var(--glass-blur, 20px));-webkit-backdrop-filter:blur(var(--glass-blur, 20px));border-radius:16px}.info-card__variants[hidden]{display:none}.slot-buttons{display:contents}.info-card__variants button{min-width:40px;padding:0 10px;border:none;border-radius:10px;background:#ffffff26;color:#fff;cursor:pointer}.info-card__variants button.has-icon{width:56px;height:56px;min-width:56px;padding:0;overflow:hidden;border-radius:12px;transform:scale(1);box-shadow:0 0 #d4ff3f00;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease}.info-card__variants button.has-icon img{width:100%;height:100%;object-fit:cover}.info-card__variants button.has-icon.active{outline:none;transform:scale(1);box-shadow:0 0 0 2px #d4ff3f}.info-card__variants button.active{outline:2px solid #d4ff3f;outline-offset:2px}.info-card__variants button.upload-btn{border:1px dashed rgba(255,255,255,.4)}.info-card__variants button.upload-btn.active{background:#d4ff3f;color:#111;border-style:solid}.info-card__analytics{border-radius:14px;overflow:hidden;background:#0a0a0cb3;backdrop-filter:blur(var(--glass-blur, 20px));-webkit-backdrop-filter:blur(var(--glass-blur, 20px))}.info-card__analytics[hidden]{display:none}.analytics__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 16px;border:none;background:none;color:#fff;font-size:13px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;font-family:var(--font-mono);font-weight:700}.analytics__chevron{width:12px;height:12px;transition:transform .2s ease}.analytics__toggle[aria-expanded=true] .analytics__chevron{transform:rotate(180deg)}.analytics__body{max-height:0;overflow:hidden;transition:max-height var(--enter-duration, .28s) ease}.analytics__body.is-open{max-height:240px}.analytics-row{display:flex;justify-content:space-between;padding:8px 16px;font-size:12px;font-family:var(--font-mono)}.analytics-row__label{color:#ffffffb3;letter-spacing:.04em;text-transform:uppercase}.analytics-row__value{color:#d4ff3f;font-weight:600}.info-card__actions{display:flex;justify-content:center;gap:12px}.info-card__actions[hidden]{display:none}.btn{padding:16px 28px;border:none;border-radius:999px;font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;font-family:var(--font-mono)}.btn[hidden]{display:none}.btn--dark{background:#141418d9;color:#fff}.btn--lime{background:#d4ff3f;color:#111}@media(min-width:1000px){.info-card{display:grid;grid-template-columns:minmax(200px,320px) 1fr minmax(200px,320px);grid-template-areas:"text    variants analytics" "actions variants analytics";align-items:end;column-gap:24px;row-gap:12px;padding:2svh}.info-card__text{grid-area:text;align-items:flex-start;text-align:left}.info-card__variants{grid-area:variants;justify-self:center}.info-card__analytics{grid-area:analytics;justify-self:end;width:360px}.info-card__actions{grid-area:actions;justify-content:flex-start}}.info-card.is-inspecting .info-card__text,.info-card.is-inspecting .info-card__variants,.info-card.is-inspecting .info-card__analytics,.info-card.is-inspecting #explore-btn,.info-card.is-inspecting #confirm-btn{display:none}.poi-arrow{position:fixed;top:42%;z-index:20;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:#d4ff3f;cursor:pointer}.poi-arrow[hidden]{display:none}.poi-arrow--left{left:20px}.poi-arrow--right{right:20px}.poi-arrow img{width:14px;height:14px}:root{--island-marker-icon-size: 56px;--island-marker-line-height: 4svh;--island-marker-callout-title-size: 18px;--island-marker-callout-subtitle-size: 11px;--island-marker-callout-gap: 12px}@media(max-width:600px){:root{--island-marker-icon-size: 44px;--island-marker-line-height: 18px;--island-marker-callout-title-size: 15px;--island-marker-callout-subtitle-size: 10px;--island-marker-callout-gap: 8px}}.island-marker{display:flex;flex-direction:column;align-items:center}.island-marker__icon{width:var(--island-marker-icon-size);height:var(--island-marker-icon-size);overflow:hidden;border:5px solid #fff;border-radius:25%;background:#14141899;box-shadow:0 4px 10px #00000059}.island-marker__icon img{width:100%;height:100%;object-fit:cover}.island-marker__line{margin:1.2svh;width:2px;height:var(--island-marker-line-height);background:#ffffffe6}.island-marker--highlighted .island-marker__icon{width:calc(var(--island-marker-icon-size) * .7);height:calc(var(--island-marker-icon-size) * .7);outline:3px solid #d4ff3f;outline-offset:6px}.island-marker__callout{position:absolute;top:-20%;width:max-content;max-width:220px;transform:translateY(-50%);pointer-events:none}.island-marker__callout-title{color:#fff;font-size:var(--island-marker-callout-title-size);font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.6)}.island-marker__callout-subtitle{color:#d4ff3f;font-size:var(--island-marker-callout-subtitle-size);letter-spacing:.06em;text-shadow:0 1px 4px rgba(0,0,0,.6);text-transform:uppercase}.poi-marker{width:22px;height:22px;background:#ffffffe6;border:3px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:0 0 0 6px #ffffff40}.vignette-overlay{position:fixed;inset:0;z-index:30;pointer-events:none;mix-blend-mode:multiply;background:radial-gradient(ellipse at center,transparent var(--vignette-inner-radius, 55%),rgba(var(--vignette-tint, 0, 0, 0),calc(var(--vignette-tint-strength, .3) * var(--vignette-edge-darkness, .45))) 100%)}.corner-markers{position:fixed;inset:0;z-index:15;pointer-events:none}.corner-marker{position:absolute;width:22px;height:22px;border:2px solid #d4ff3f}.corner-marker--tl{top:86px;left:20px;border-right:none;border-bottom:none;border-top-left-radius:0}.corner-marker--tr{top:86px;right:20px;border-left:none;border-bottom:none;border-top-right-radius:0}.corner-marker--bl{bottom:20px;left:20px;border-right:none;border-top:none;border-bottom-left-radius:0}.corner-marker--br{bottom:20px;right:20px;border-left:none;border-top:none;border-bottom-right-radius:0}
