:root{--bg:#f7f8fa;--panel:#fff;--panel-2:#f5f6f8;--panel-body:#fff;--border:#ececf0;--border-strong:#dcdde3;--text:#1d1f26;--text-dim:#8b8f9c;--accent:#ff6900;--accent-hover:#ed5f00;--accent-soft:#fff5ef;--danger:#e5484d;--ok:#30a46c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer}.app{grid-template:"header header header""sidebar preview settings"1fr/320px 1fr 320px;height:100vh;display:grid;overflow:hidden}.app--timeline{grid-template-rows:auto 1fr 232px;grid-template-areas:"header header header""sidebar preview settings""sidebar timeline settings"}.app__header{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-area:header;justify-content:space-between;align-items:center;min-height:56px;padding:0 20px;display:flex;box-shadow:0 1px 4px #0000000f}.app__header-start{align-items:center;gap:14px;min-width:0;display:flex}.portal-nav-link{color:var(--text-dim);border:1px solid var(--border);background:var(--panel-2);white-space:nowrap;border-radius:8px;flex-shrink:0;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.portal-nav-link:hover{color:var(--accent);background:var(--accent-soft);border-color:#ff690059}.app__logo{align-items:center;gap:8px;display:flex}.app__logo-mark{border-radius:7px;flex:none;width:28px;height:28px;overflow:hidden}.app__logo-mark-img{object-fit:cover;width:100%;height:100%;display:block}.app__title{color:var(--text);letter-spacing:-.01em;align-items:baseline;gap:10px;font-size:15px;font-weight:700;display:flex}.app__mode-chip{background:var(--accent-soft);color:var(--accent);letter-spacing:.02em;border:1px solid #ff690047;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.app__version{white-space:nowrap;color:var(--text-dim);opacity:.42;letter-spacing:.03em;font-size:11px;font-weight:500}.app__header-actions{align-items:center;gap:8px;display:flex}.editing-published-banner{border-top:1px solid var(--border);background:#fff4ea;flex-wrap:wrap;flex:100%;justify-content:space-between;align-items:center;gap:10px 16px;margin:0 -20px;padding:8px 20px 10px;display:flex}.editing-published-banner__text{flex-direction:column;gap:2px;min-width:0;display:flex}.editing-published-banner__text strong{color:var(--text);font-size:13px}.editing-published-banner__text span{color:var(--text-dim);font-size:12px}.editing-published-banner__actions{flex-wrap:wrap;gap:8px;display:flex}.app__sidebar{background:var(--bg);border-right:1px solid var(--border);grid-area:sidebar;min-height:0;padding:12px;overflow-y:auto}.sidebar-stack{flex-direction:column;gap:12px;display:flex}.group{background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.group__head{border-bottom:1px solid var(--border);background:var(--panel-2);align-items:center;gap:11px;padding:13px 14px;display:flex}.group__step{background:var(--panel);border:1.5px solid var(--border-strong);width:24px;height:24px;color:var(--text-dim);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:12.5px;font-weight:700;line-height:1;display:flex}.group__step--done{background:var(--ok);border-color:var(--ok);color:#fff}.group__heading{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.group__title{color:var(--text);letter-spacing:-.01em;font-size:13.5px;font-weight:700}.group__subtitle{color:var(--text-dim);font-size:11px;font-weight:400}.group__body{flex-direction:column;gap:16px;padding:15px 14px;display:flex}.app__settings{background:var(--bg);border-left:1px solid var(--border);grid-area:settings;min-height:0;padding:12px;overflow-y:auto}.settings-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.settings-card__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;display:flex}.settings-card__title{color:var(--text);align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.settings-card__title-icon{color:var(--accent);font-size:13px}.settings-section{border-top:1px solid var(--border);padding:14px}.settings-section:first-of-type{border-top:none}.settings-section__head{align-items:center;gap:8px;margin-bottom:11px;display:flex}.settings-section__icon{color:var(--text-dim);flex:none;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex}.settings-section__heading{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.settings-section__title{color:var(--text);font-size:12.5px;font-weight:700}.settings-section__subtitle{color:var(--text-dim);font-size:11px}.settings-section__action{flex:none}.settings-section__body{flex-direction:column;gap:11px;display:flex}.chip-toggle{border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text-dim);cursor:pointer;border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:700;transition:border-color .15s,background .15s,color .15s}.chip-toggle:hover{border-color:var(--border-strong);color:var(--text)}.chip-toggle--active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.app__preview{--preview-side-panel-width:216px;background:#eef0f4;grid-area:preview;min-width:0;min-height:0;position:relative}.panel{border-bottom:1px solid var(--border)}.panel__head{width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:11px;padding:14px 16px;transition:background .15s;display:flex}.panel__head:hover{background:var(--panel-2)}.panel--open .panel__head{background:0 0}.panel__head--static{cursor:default}.panel__head--static:hover{background:0 0}.panel__step{background:var(--panel-2);border:1.5px solid var(--border-strong);width:22px;height:22px;color:var(--text-dim);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;line-height:1;display:flex}.panel__step--done{background:var(--accent);border-color:var(--accent);color:#fff}.panel__icon{width:20px;height:20px;color:var(--text-dim);flex:none;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex}.panel__action{flex:none;align-items:center;display:flex}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:11.5px;font-weight:600}.link-btn:hover{color:var(--accent-hover);text-decoration:underline}.panel__heading{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.panel__title{color:var(--text);font-size:13px;font-weight:600}.panel__subtitle{color:var(--text-dim);font-size:11px;font-weight:400}.panel__chevron{color:var(--text-dim);flex:none;font-size:10px;transition:transform .15s}.panel__chevron--open{transform:rotate(90deg)}.panel__body{background:var(--panel-body);border-top:1px solid var(--border);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field__label{color:var(--text);font-size:12px;font-weight:600}.field__hint{color:var(--text-dim);margin:-2px 0 2px;font-size:11px;line-height:1.5}.field-group{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;flex-direction:column;gap:11px;padding:12px;display:flex}.field-group__title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-size:10.5px;font-weight:700}.field-group__body{flex-direction:column;gap:11px;display:flex}.color-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field__row{align-items:center;gap:8px;display:flex}input[type=text],input[type=url],input[type=number],select,textarea{width:100%;color:var(--text);background:#fff;border:1px solid #c4c6cf;border-radius:7px;outline:none;padding:8px 10px;font-size:13px;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 1px 2px #1d1f260a}textarea{resize:vertical;min-height:56px;font-family:inherit;line-height:1.5}input[type=text]:focus,input[type=url]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #ff69001f}input[type=range]{width:100%;accent-color:var(--accent)}input[type=color]{cursor:pointer;background:#fff;border:1px solid #c4c6cf;border-radius:7px;width:40px;height:34px;padding:2px}.vec3{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.vec3 .field__label{text-align:center}.stepper-row{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.stepper{flex-direction:column;align-items:center;gap:4px;display:flex}.stepper__axis{letter-spacing:.02em;color:var(--text-dim);font-size:10.5px;font-weight:700}.stepper--x .stepper__axis{color:#e5484d}.stepper--y .stepper__axis{color:#30a46c}.stepper--z .stepper__axis{color:#3b82f6}.stepper__control{background:#fff;border:1px solid #c4c6cf;border-radius:7px;align-items:stretch;width:100%;display:flex;overflow:hidden}.stepper__control input[type=number]{width:100%;min-width:0;box-shadow:none;text-align:center;appearance:textfield;background:0 0;border:none;border-radius:0;padding:6px 2px;font-size:12px}.stepper__control input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper__control input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper__control input[type=number]:focus{box-shadow:none}.stepper__btn{background:var(--panel-2);width:22px;color:var(--text-dim);cursor:pointer;border:none;flex:none;font-size:14px;line-height:1;transition:background .15s,color .15s}.stepper__btn:hover{background:var(--accent-soft);color:var(--accent)}.stepper__control:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #ff69001f}.templates{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.medal-textures{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.medal-textures__col{flex-direction:column;gap:6px;display:flex}.medal-textures__label{color:var(--text-dim);font-size:11px;font-weight:600}.color-materials{flex-direction:column;gap:16px;display:flex}.color-material{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;flex-direction:column;gap:4px;padding:12px;display:flex}.color-material__name{color:var(--text-dim);letter-spacing:.03em;margin-bottom:4px;font-size:11px;font-weight:700}.template-card{background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:stretch;gap:0;padding:0;font-size:12px;font-weight:500;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.template-card:hover{border-color:var(--border-strong)}.template-card--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.template-card:disabled{cursor:default;opacity:.65}.template-card:disabled:hover{border-color:var(--border)}.template-card__preview{aspect-ratio:1;pointer-events:none;background:#eef0f4;width:100%;position:relative}.template-card__preview canvas{display:block;width:100%!important;height:100%!important}.template-card__preview--empty{justify-content:center;align-items:center;display:flex}.template-card__upload-icon{letter-spacing:.04em;opacity:.55;text-transform:lowercase;font-size:15px;font-weight:600;line-height:1}.template-card__label{text-align:center;word-break:break-all;padding:8px 6px;font-size:11px;font-weight:500;line-height:1.3;display:block}.template-card--active .template-card__label{background:var(--accent-soft);color:var(--accent);font-weight:600}.template-card__preview-hit{cursor:pointer;display:block;position:relative}.template-card__file{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;position:absolute;inset:0}.segmented{background:var(--panel-2);border:1px solid var(--border);border-radius:9px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.segmented__btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 10px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.segmented__btn:hover{color:var(--text)}.segmented__btn--active{background:var(--accent);color:#fff;box-shadow:0 1px 2px #ff69004d}.segmented__btn--active:hover{color:#fff}.surface-selector{grid-template-columns:1fr 1fr;gap:8px;display:grid}.surface-card{background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;font-size:12px;font-weight:500;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.surface-card:hover{border-color:var(--border-strong);background:var(--panel-2)}.surface-card--active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.surface-card__icon{font-size:22px}.btn{border:1px solid var(--border-strong);background:var(--panel);color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.btn:hover{border-color:var(--border-strong);background:var(--panel-2);color:var(--text)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn--danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn--danger:hover{filter:brightness(.94);color:#fff}.btn--full{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{background:var(--panel-2);border-color:var(--border);color:var(--text)}.file-row{border:1px solid var(--border-strong);background:var(--panel);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.file-row:hover{border-color:var(--accent);background:var(--accent-soft)}.file-row--disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.file-row__icon{background:var(--panel-2);width:30px;height:30px;color:var(--text-dim);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:16px;display:flex}.file-row__icon svg{width:16px;height:16px;display:block}.file-row__icon--preview{border:1px solid var(--border);background-color:#fff;background-image:linear-gradient(45deg,#e8eaef 25%,#0000 25%),linear-gradient(-45deg,#e8eaef 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e8eaef 75%),linear-gradient(-45deg,#0000 75%,#e8eaef 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;padding:0;overflow:hidden}.file-row__icon-img{object-fit:cover;width:100%;height:100%;display:block}.file-row__text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.file-row__title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.file-row__meta{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.file-row__btn{border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);white-space:nowrap;border-radius:7px;flex:none;padding:6px 10px;font-size:11.5px;font-weight:600}.file-row:hover .file-row__btn{border-color:var(--accent);color:var(--accent);background:#fff}.uploader{flex-direction:column;gap:8px;display:flex}.uploader__drop{border:1.5px dashed var(--border-strong);text-align:center;color:var(--text-dim);background:var(--panel-2);cursor:pointer;border-radius:10px;padding:20px;font-size:12px;transition:border-color .15s,color .15s,background .15s}.uploader__drop:hover{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.thumb{object-fit:contain;border:1px solid var(--border);background:var(--panel-2);border-radius:8px;width:100%;max-height:150px}.issues{flex-direction:column;gap:6px;display:flex}.issues__title{color:var(--danger);font-size:11.5px;font-weight:600}.issue{text-align:left;border:1px solid var(--border);background:var(--panel-2);width:100%;color:var(--danger);border-radius:8px;flex-direction:column;gap:3px;padding:8px 10px;transition:background .15s,border-color .15s;display:flex}.issue:hover{background:var(--panel);border-color:var(--border-strong)}.issue__badge{letter-spacing:.01em;opacity:.85;font-size:10.5px;font-weight:700}.issue__message{color:var(--text);font-size:11.5px;line-height:1.45}.subsection{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.subsection__title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-size:10.5px;font-weight:700}.hint{color:var(--text-dim);font-size:11.5px;line-height:1.6}.toggle{color:var(--text);cursor:pointer;align-items:center;gap:7px;font-size:12px;display:flex}.toggle--header{font-size:12.5px;font-weight:600}.checkbox{width:15px;height:15px;accent-color:var(--accent);flex:none}.value-badge{color:var(--text-dim);text-align:right;min-width:38px;font-size:11px}.preview-hud{color:var(--text-dim);border:1px solid var(--border);pointer-events:none;background:#ffffffd9;border-radius:6px;padding:6px 10px;font-size:11px;position:absolute;bottom:12px;left:12px}.preview-video-mute{z-index:6;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#fffffff5;border-radius:8px;padding:8px 12px;font-size:12px;line-height:1.2;position:absolute;bottom:48px;left:12px;box-shadow:0 2px 10px #00000014}.preview-video-mute:hover{background:#fff}.preview-video-mute--muted{color:var(--text-dim)}.toolbar{gap:6px;display:flex}.transform-toolbar{z-index:6;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;border-radius:999px;align-items:center;gap:4px;padding:5px;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 4px 16px #0000001a}.transform-toolbar__btn{color:#8b8f9c;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:background .15s,color .15s,transform .12s;display:flex}.transform-toolbar__btn:hover{color:var(--text);background:var(--panel-2)}.transform-toolbar__btn--active{color:#fff;background:#1d1f26}.transform-toolbar__btn--active:hover{color:#fff;background:#2a2d36}.transform-toolbar__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toolbar .btn{background:var(--panel);border-color:var(--border-strong);color:var(--text);padding:7px 12px;font-size:12px;box-shadow:0 1px 3px #00000014}.toolbar .btn:hover{background:var(--panel-2);border-color:var(--border-strong);color:var(--text)}.toolbar .btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.toolbar .btn--primary:hover{background:var(--accent-hover);color:#fff}.toast{background:var(--panel);border:1px solid var(--border);z-index:100;border-radius:10px;padding:10px 16px;font-size:13px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000001f}.toast--error{border-color:var(--danger)}.toast--ok{border-color:var(--ok)}.modal-backdrop{z-index:4000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-backdrop--nested{z-index:4100}.modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;width:420px;max-width:90vw;padding:24px;display:flex;box-shadow:0 16px 48px #00000026}.modal__title{font-size:15px;font-weight:700}.modal--publish{text-align:center;align-items:stretch;width:min(460px,92vw);max-height:min(90vh,820px);overflow:auto}.publish-url-preview{border:1px solid var(--border-strong);background:var(--panel-2);word-break:break-all;border-radius:9px;flex-wrap:wrap;align-items:baseline;gap:0;padding:10px 12px;font-size:13px;line-height:1.6;display:flex}.publish-url-preview__prefix,.publish-url-preview__suffix{color:var(--text-dim);font-variant-numeric:tabular-nums}.publish-url-preview__input{border:none;border-bottom:2px solid var(--accent);min-width:6ch;max-width:100%;font:inherit;color:var(--text);background:0 0;outline:none;flex:8ch;margin:0 1px;padding:0 2px;font-weight:700}.publish-url-preview__input:focus{border-bottom-color:var(--accent-hover)}.publish-slug-editor__error{color:var(--danger);margin:4px 0 0;font-size:12px}.publish-slug-editor__hint{margin:4px 0 0}.publish-state{flex-direction:column;align-items:center;gap:14px;display:flex}.publish-state--loading{padding:16px 0 8px}.publish-state__head{flex-direction:column;align-items:center;gap:8px;display:flex}.publish-badge{color:var(--ok);background:#30a46c1f;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-flex}.publish-badge:before{content:"✓";font-size:12px}.publish-badge--error{color:var(--danger);background:#e5484d1f}.publish-badge--error:before{content:"!"}.spinner{border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:46px;height:46px;animation:.8s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.publish-qr{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.publish-qr__img{border:1px solid var(--border);background:#fff;border-radius:12px;width:220px;height:220px;padding:10px;box-shadow:0 2px 10px #0000000f}.publish-qr__name{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:11px}.publish-url{text-align:left;flex-direction:column;gap:6px;width:100%;display:flex}.publish-url__row{border:1px solid var(--border-strong);background:var(--panel-2);border-radius:9px;align-items:center;gap:8px;padding:8px 10px;display:flex}.publish-url__link{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--accent);flex:1;font-size:12.5px;text-decoration:none;overflow:hidden}.publish-url__link:hover{text-decoration:underline}.publish-url__copy{flex:none;padding:6px 12px;font-size:12px}.publish-actions{gap:10px;width:100%;display:flex}.publish-actions .btn{flex:1}.modal--items{gap:0;width:min(560px,92vw);max-height:min(82vh,720px);padding:0;overflow:hidden}.modal--items__header{border-bottom:1px solid var(--border);flex-direction:column;flex:none;gap:12px;padding:18px 24px 12px;display:flex}.modal--items__title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.modal--items__close{width:28px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.modal--items__close:hover{background:var(--panel-2);color:var(--text)}.modal--items__body{flex:1;min-height:0;padding:16px 24px;overflow-y:auto}.modal--items__footer{border-top:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:12px 24px;display:flex}.modal--video-process{flex-direction:column;gap:12px;width:min(520px,100vw - 32px);max-height:calc(100vh - 48px);padding:20px 24px 16px;display:flex;overflow:auto}.video-process__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.video-process__lead{color:var(--text-dim);margin:0;font-size:13px;line-height:1.5}.video-process__preview{border:1px solid var(--border);background:#111;border-radius:10px;overflow:hidden}.video-process__preview video{background:#000;width:100%;max-height:220px;display:block}.video-process__meta{color:var(--text-dim);background:var(--panel-2);margin:0;padding:8px 10px;font-size:12px}.video-process__modes{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.video-process__mode{border:1px solid var(--border);cursor:pointer;background:var(--panel);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.video-process__mode:has(input:checked){border-color:var(--accent,#ff6900);background:color-mix(in srgb, var(--accent,#ff6900) 8%, var(--panel))}.video-process__mode span{flex-direction:column;gap:2px;display:flex}.video-process__mode strong{font-size:14px;font-weight:600}.video-process__mode em{color:var(--text-dim);font-size:12px;font-style:normal}.video-process__controls{flex-direction:column;gap:10px;display:flex}.video-process__chips{flex-flow:wrap}.video-process__slider{color:var(--text-dim);flex-direction:column;gap:4px;font-size:12px;display:flex}.video-process__slider input[type=range]{width:100%}.video-process__progress{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;height:28px;position:relative;overflow:hidden}.video-process__progress-bar{background:color-mix(in srgb, var(--accent,#ff6900) 55%, transparent);transition:width .15s linear;position:absolute;inset:0 auto 0 0}.video-process__progress span{z-index:1;justify-content:center;align-items:center;height:100%;font-size:12px;display:flex;position:relative}.video-process__error{color:#c62828;margin:0;font-size:13px}.video-process__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.video-optimize-row{flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px;display:flex}.item-search{border:1px solid var(--border-strong);background:var(--panel-2);border-radius:9px;align-items:center;gap:8px;height:38px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.item-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #ff69001f}.item-search__icon{color:var(--text-dim);flex:none}.item-search__input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13px}.item-chips{flex-wrap:wrap;gap:6px;display:flex}.item-chip{border:1px solid var(--border-strong);background:var(--panel);color:var(--text-dim);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s,background .15s}.item-chip:hover{border-color:var(--accent);color:var(--accent)}.item-chip--active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.item-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.item-card{background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:stretch;gap:0;padding:0;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.item-card:hover{border-color:var(--border-strong)}.item-card--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.item-card__thumb{aspect-ratio:1;background-color:#fff;background-image:linear-gradient(45deg,#e8eaef 25%,#0000 25%),linear-gradient(-45deg,#e8eaef 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e8eaef 75%),linear-gradient(-45deg,#0000 75%,#e8eaef 75%);background-position:0 0,0 7px,7px -7px,-7px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:14px 14px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;width:100%;position:relative}.item-card__img{object-fit:contain;width:100%;height:100%;display:block}.item-card__skeleton{background:linear-gradient(100deg,#eef0f4 30%,#f7f8fa 50%,#eef0f4 70%) 0 0/200% 100%;animation:1.1s ease-in-out infinite item-shimmer;position:absolute;inset:0}@keyframes item-shimmer{0%{background-position:180% 0}to{background-position:-20% 0}}.item-card__label{text-align:center;word-break:break-all;text-overflow:ellipsis;white-space:nowrap;padding:7px 6px;font-size:11px;font-weight:500;line-height:1.3;display:block;overflow:hidden}.item-card--active .item-card__label{background:var(--accent-soft);color:var(--accent);font-weight:600}.item-card--upload{border-style:dashed;border-color:var(--border-strong)}.item-card__thumb--upload{background:var(--panel-2);justify-content:center;align-items:center;display:flex}.item-card__upload-plus{color:var(--text-dim);font-size:30px;font-weight:300;line-height:1}.item-card__upload-icon{color:var(--text-dim);place-items:center;display:grid}.item-card__upload-icon svg{display:block}.item-card--upload .item-card__label{white-space:normal;word-break:keep-all;text-overflow:unset;overflow:visible}.item-card__file{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.item-empty{text-align:center;color:var(--text-dim);margin:24px 0 8px;font-size:13px}.item-count{color:var(--text-dim);font-size:12px}.modal--history{flex-direction:column;gap:0;width:min(680px,94vw);max-height:min(86vh,780px);padding:0;display:flex;overflow:hidden}.modal--history__header{flex:none;padding:20px 24px 0}.modal--history__body{flex:1;min-height:0;padding:12px 24px;overflow-y:auto}.modal--history__footer{flex:none;padding:0 24px 20px}.tutorial-tour{z-index:10000;pointer-events:auto;position:fixed;inset:0}.tutorial-tour__dim{background:#1d1f2661;position:fixed;inset:0}.tutorial-tour__spotlight{border:2px solid var(--accent);pointer-events:none;z-index:1;background:#ffffff0a;border-radius:10px;transition:top .28s,left .28s,width .28s,height .28s;position:fixed;box-shadow:0 0 0 9999px #1d1f2661}.tutorial-tour__popover{z-index:2;width:min(360px,100vw - 24px);max-height:calc(100vh - 24px);color:var(--text);border:1px solid var(--border-strong);background:#fff;border-radius:12px;padding:14px 16px 12px;transition:top .28s,left .28s;position:fixed;overflow:hidden;box-shadow:0 4px 24px #00000014,0 16px 48px #0000001f}.tutorial-tour__progress{gap:5px;margin-bottom:10px;display:flex}.tutorial-tour__title{color:var(--text);margin:0;font-size:16px;font-weight:700;line-height:1.3}.tutorial-tour__popover .tutorial-nav{margin-top:12px}.btn--tutorial{font-weight:600}.tutorial-steps__dot{background:var(--border-strong);border-radius:2px;flex:1;height:4px;transition:background .15s}.tutorial-steps__dot--active{background:var(--accent)}.tutorial-steps__dot--done{background:color-mix(in srgb, var(--accent) 55%, var(--border-strong))}.tutorial-step-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-size:10px;font-weight:600;display:inline-block}.tutorial-lead{color:var(--text-dim);margin:6px 0 0;font-size:13px;line-height:1.45}.tutorial-list{color:var(--text);flex-direction:column;gap:5px;margin:8px 0 0;padding-left:1.15em;font-size:13px;line-height:1.4;display:flex}.tutorial-nav{justify-content:space-between;gap:8px;display:flex}.tutorial-nav .btn--primary{flex:1}.tutorial-skip{color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin:6px auto 0;padding:2px 8px;font-size:12px;display:block}.tutorial-skip:hover{color:var(--text)}.tutorial-demo-showcase{border:1px solid var(--border);background:linear-gradient(135deg,#2a8a9214 0%,#e85d0414 100%);border-radius:10px;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:8px 0 10px;padding:8px;display:grid}.tutorial-demo-showcase__item{text-align:center;flex-direction:column;align-items:center;gap:3px;width:108px;min-width:0;display:flex}.tutorial-demo-showcase__thumb{aspect-ratio:1;background:var(--panel-2);border-radius:8px;width:100%;overflow:hidden;box-shadow:0 2px 10px #0000001a}.tutorial-demo-showcase__thumb img{object-fit:cover;width:100%;height:100%;display:block}.tutorial-demo-showcase__thumb-fallback{color:#fff;letter-spacing:.02em;background:linear-gradient(145deg,#2a8a92 0%,#e85d04 100%);justify-content:center;align-items:center;width:100%;height:100%;font-size:15px;font-weight:800;display:flex}.tutorial-demo-showcase__tag{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:9px;font-weight:700}.tutorial-demo-showcase__name{color:var(--text);word-break:break-all;font-size:11px;font-weight:700;line-height:1.2}.tutorial-demo-showcase__plus{color:var(--text-dim);flex-shrink:0;font-size:14px;font-weight:700;line-height:1}@keyframes tutorial-start-wash{0%{opacity:0}18%{opacity:1}to{opacity:0}}@keyframes tutorial-start-burst{0%{opacity:.9;transform:translate(-50%,-50%)scale(.2)}to{opacity:0;transform:translate(-50%,-50%)scale(2.8)}}@keyframes tutorial-start-ring{0%{opacity:.75;transform:translate(-50%,-50%)scale(.35)}to{opacity:0;transform:translate(-50%,-50%)scale(2.2)}}@keyframes tutorial-start-particle{0%{transform:rotate(calc(var(--particle-i) * 25.7deg)) translateY(0) scale(1);opacity:1}to{transform:rotate(calc(var(--particle-i) * 25.7deg)) translateY(-120px) scale(.2);opacity:0}}@keyframes tutorial-start-label{0%{opacity:0;transform:translate(-50%,-40%)}22%{opacity:1;transform:translate(-50%,-50%)}78%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-58%)}}.tutorial-start-effect{z-index:10001;pointer-events:none;position:fixed;inset:0;overflow:hidden}.tutorial-start-effect__wash{background:radial-gradient(circle at 50% 45%,#fffffff2 0%,#fff5eee0 35%,#2a8a9233 100%);animation:1.4s ease-out forwards tutorial-start-wash;position:absolute;inset:0}.tutorial-start-effect__burst{background:radial-gradient(circle,#e85d048c 0%,#2a8a9259 45%,#0000 70%);border-radius:50%;width:180px;height:180px;animation:1.1s cubic-bezier(.22,1,.36,1) forwards tutorial-start-burst;position:absolute;top:50%;left:50%}.tutorial-start-effect__ring{border:2px solid #ff69008c;border-radius:50%;width:120px;height:120px;animation:1.2s ease-out forwards tutorial-start-ring;position:absolute;top:50%;left:50%}.tutorial-start-effect__ring--2{border-color:#2a8a9280;animation-delay:.12s}.tutorial-start-effect__particles{width:0;height:0;position:absolute;top:50%;left:50%}.tutorial-start-effect__particle{background:var(--particle-color,#e85d04);width:8px;height:8px;animation:1s ease-out forwards tutorial-start-particle;animation-delay:calc(var(--particle-i) * 30ms);border-radius:50%;position:absolute;top:0;left:-4px}.tutorial-start-effect__particle:nth-child(odd){--particle-color:#2a8a92}.tutorial-start-effect__label{letter-spacing:.06em;color:#1d1f26;text-shadow:0 2px 24px #ffffffe6;white-space:nowrap;margin:0;font-size:clamp(22px,4vw,32px);font-weight:800;animation:1.4s ease-out forwards tutorial-start-label;position:absolute;top:50%;left:50%}@media (prefers-reduced-motion:reduce){.tutorial-start-effect__wash,.tutorial-start-effect__burst,.tutorial-start-effect__ring,.tutorial-start-effect__particle,.tutorial-start-effect__label{animation-duration:.01ms!important;animation-delay:0s!important}}.publish-history{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.publish-history__empty{margin:0}.publish-history__hint,.publish-history__error{margin:0 0 8px}.publish-history__item{border:1px solid var(--border);background:var(--panel-2);border-radius:12px;flex-direction:column;gap:10px;min-width:0;padding:12px;display:flex}.publish-history__main{align-items:flex-start;gap:12px;min-width:0;display:flex}.publish-history__meta{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.publish-history__title-row{align-items:center;gap:8px;min-width:0;display:flex}.publish-history__title{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13.5px;font-weight:700;overflow:hidden}.publish-history__kind{color:var(--accent);white-space:nowrap;background:#ff69001a;border-radius:999px;flex:none;padding:2px 8px;font-size:10px;font-weight:700}.publish-history__sub{color:var(--text-dim);margin:0;font-size:11px}.publish-history__actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.publish-history__edit,.publish-history__qr,.publish-history__replace{padding:5px 10px;font-size:11px;line-height:1.2}.publish-history__remove{color:var(--text-dim);border-color:var(--border);background:var(--panel);flex:none;padding:5px 10px;font-size:11px;line-height:1.2}.publish-history__remove:hover{color:var(--danger);background:#e5484d14;border-color:#e5484d59}.publish-history__thumb{border:1px solid var(--border);background-color:#fff;background-image:linear-gradient(45deg,#e8eaef 25%,#0000 25%),linear-gradient(-45deg,#e8eaef 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e8eaef 75%),linear-gradient(-45deg,#0000 75%,#e8eaef 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:10px;flex:none;width:96px;height:96px;overflow:hidden}.publish-history__thumb-img{object-fit:cover;width:96px;height:96px;display:block}.publish-history__thumb--fallback{color:var(--accent);text-align:center;background:#fff4ea;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.publish-history__thumb--fallback strong{font-size:28px;line-height:1}.publish-history__thumb--fallback span{font-size:10px;font-weight:700}.publish-history__thumb--plane{color:#3b7ddd;background:#eef6ff}.publish-history__thumb--gps{color:#1f9d55;background:#e9f8ef}.publish-history__thumb--rally{color:#7c5cbf;background:#f3eefe}.publish-history__thumb--photoframe{color:#d23f7d;background:#fff0f5}.publish-history__url-block{align-items:center;gap:8px;min-width:0;display:flex}.publish-history__link{min-width:0;color:var(--accent);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11.5px;line-height:1.35;text-decoration:none;display:block;overflow:hidden}.publish-history__link:hover{text-decoration:underline}.publish-history__copy{flex:none;padding:4px 10px;font-size:10.5px;line-height:1.2}.publish-history--modal .publish-history__item{gap:12px;padding:14px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.history-page{background:var(--bg);flex-direction:column;min-height:100%;display:flex}.history-page__main{flex:1;width:min(1120px,100% - 40px);margin:0 auto;padding:28px 0 64px}.history-page__intro h1{letter-spacing:-.03em;margin:0;font-size:28px}.history-page__toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:24px 0 16px;display:flex}.history-page__count{color:var(--text-dim);margin:0;font-size:13px;font-weight:700}.history-page__search{flex:220px;min-width:0}.history-page__search input{border:1px solid var(--border-strong);background:var(--panel);width:100%;height:36px;font:inherit;border-radius:8px;padding:0 12px}.history-page__filters{flex-wrap:wrap;gap:6px;display:flex}.history-page__banner{background:var(--accent-soft);color:#9a3f00;border:1px solid #ff690038;border-radius:10px;margin:0 0 16px;padding:10px 14px;font-size:13px;line-height:1.5}.history-page__empty{border:1px dashed var(--border-strong);background:var(--panel);text-align:center;border-radius:16px;padding:36px 20px}.history-page__empty p{color:var(--text-dim);margin:0 0 16px;line-height:1.6}.history-page__empty-links{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.history-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.history-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;flex-direction:column;min-width:0;display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000a}.history-card__thumb{background:#111318;height:180px}.history-card__thumb-img{object-fit:cover;width:100%;height:100%;display:block}.history-card__thumb--fallback{color:#fff;background:linear-gradient(160deg,#ff6900,#d94e00);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.history-card__thumb--fallback strong{font-size:42px;line-height:1}.history-card__thumb--fallback span{font-size:12px;font-weight:700}.history-card__thumb--plane{background:linear-gradient(160deg,#3b7ddd,#2458a8)}.history-card__thumb--gps{background:linear-gradient(160deg,#1f9d55,#147a3e)}.history-card__thumb--rally{background:linear-gradient(160deg,#7c5cbf,#5a3f96)}.history-card__thumb--photoframe{background:linear-gradient(160deg,#d23f7d,#a01e58)}.history-card__body{flex-direction:column;gap:8px;padding:14px 16px 16px;display:flex}.history-card__title-row{align-items:flex-start;gap:8px;display:flex}.history-card__title{flex:1;min-width:0;margin:0;font-size:16px;line-height:1.35}.history-card__kind{color:var(--accent);background:#ff69001a;border-radius:999px;flex:none;padding:3px 8px;font-size:10px;font-weight:700}.history-card__kind--plane{color:#2458a8;background:#3b7ddd1f}.history-card__kind--gps{color:#147a3e;background:#1f9d551f}.history-card__kind--rally{color:#5a3f96;background:#7c5cbf1f}.history-card__kind--photoframe{color:#a01e58;background:#d23f7d1f}.history-card__sub{color:var(--text-dim);margin:0;font-size:12px}.history-card__url{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:12px;text-decoration:none;overflow:hidden}.history-card__url:hover{text-decoration:underline}.history-card__actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.history-card__remove{color:var(--danger)}.modal--confirm{width:min(440px,92vw)}.publish-confirm__site{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;align-items:center;gap:12px;min-width:0;padding:10px;display:flex}.publish-confirm__thumb{object-fit:cover;border:1px solid var(--border);background:#fff;border-radius:8px;flex:none;width:72px;height:72px}.publish-confirm__thumb--empty{background-color:#fff;background-image:linear-gradient(45deg,#e8eaef 25%,#0000 25%),linear-gradient(-45deg,#e8eaef 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e8eaef 75%),linear-gradient(-45deg,#0000 75%,#e8eaef 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}.publish-confirm__meta{flex-direction:column;gap:4px;min-width:0;display:flex}.publish-confirm__meta strong{font-size:13.5px}.publish-confirm__meta span{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.preview-side-rail{z-index:8;width:var(--preview-side-panel-width);pointer-events:none;flex-direction:column;align-items:stretch;gap:10px;max-height:calc(100% - 24px);display:flex;position:absolute;top:12px;right:12px;overflow:hidden auto}.preview-side-rail>*{pointer-events:auto;flex-shrink:0}.animation-type-grid{grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;display:grid}.animation-type-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text-dim);cursor:pointer;border-radius:8px;padding:8px 6px;font-size:11px;font-weight:600;transition:border-color .15s,background .15s,color .15s}.animation-type-btn:hover{border-color:var(--border-strong);color:var(--text)}.animation-type-btn--active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.keyframe-editor{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:4px;padding-bottom:10px;display:flex}.keyframe-editor__actions{flex-direction:column;gap:6px;display:flex}.keyframe-editor__list{margin:0}.mobile-preview-dock{pointer-events:none;flex-direction:column;align-items:stretch;gap:6px;width:100%;display:flex}.mobile-preview-dock__head{pointer-events:auto;flex-direction:column;align-items:center;gap:5px;display:flex}.mobile-preview-dock__title{color:var(--text-dim);letter-spacing:.02em;border:1px solid var(--border);background:#ffffffeb;border-radius:999px;align-self:center;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:700;display:flex;box-shadow:0 2px 8px #00000014}.mobile-preview-dock__icon{color:var(--accent);flex-shrink:0}.mobile-preview-phase{border:1px solid var(--border);background:#ffffffeb;border-radius:999px;gap:2px;width:100%;padding:2px;display:flex;box-shadow:0 2px 8px #00000014}.mobile-preview-phase__btn{min-height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:5px 10px;font-size:11px;font-weight:600;line-height:1.2;transition:background .15s,color .15s,box-shadow .15s}.mobile-preview-phase__btn--active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #ff690059}.mobile-preview-phase__btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.phone__target-guide{z-index:4;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.phone__target-guide img{object-fit:contain;opacity:.32;border-radius:6px;width:auto;max-width:72%;height:auto;max-height:55%;display:block;box-shadow:0 0 0 1px #fff3}.phone__target-placeholder{aspect-ratio:3/4;background:#ffffff0f;border:2px dashed #ffffff61;border-radius:6px;width:72%;max-height:55%}.phone__scan-hint{z-index:6;text-align:center;color:#fffffff2;text-shadow:0 1px 2px #00000040;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#ffffff2e;border:1px solid #ffffff59;border-radius:20px;max-width:88%;margin:0;padding:7px 12px;font-size:9px;font-weight:700;line-height:1.35;position:absolute;bottom:36px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000001f}.mobile-preview-dock .phone{--phone-bezel:calc(var(--preview-side-panel-width) * 8 / 200);--phone-radius-outer:calc(var(--preview-side-panel-width) * 32 / 200);--phone-radius-screen:calc(var(--preview-side-panel-width) * 26 / 200);width:100%;height:calc(var(--preview-side-panel-width) * 426 / 200);border-radius:var(--phone-radius-outer);padding:var(--phone-bezel);pointer-events:auto;box-sizing:border-box;overflow:hidden;box-shadow:0 12px 40px #00000047,inset 0 0 0 2px #303036}.mobile-preview-dock .phone__screen{border-radius:var(--phone-radius-screen);clip-path:inset(0 round var(--phone-radius-screen))}.mobile-preview-dock .phone__screen-viewport{clip-path:inset(0 round var(--phone-radius-screen))}.mobile-preview-dock .phone__canvas{border-radius:var(--phone-radius-screen)}.mobile-preview-dock .phone__notch{width:calc(var(--preview-side-panel-width) * 84 / 200);height:calc(var(--preview-side-panel-width) * 18 / 200);border-radius:0 0 calc(var(--preview-side-panel-width) * 12 / 200) calc(var(--preview-side-panel-width) * 12 / 200)}.mobile-preview-dock__expand{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;pointer-events:auto;background:#ffffffeb;border-radius:999px;align-self:center;margin-top:2px;padding:4px 14px;font-size:10px;font-weight:600;transition:border-color .15s,color .15s,background .15s}.mobile-preview-dock__expand:hover{border-color:var(--border-strong);color:var(--text);background:#fff}.mobile-preview-dock__expand:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.mobile-preview-dock .ar-cta{border-radius:20px;padding:8px 16px;font-size:11px;bottom:36px}.phone__shot{z-index:8;color:#ff6900;pointer-events:none;background:#fff;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;bottom:16px;right:10px;box-shadow:0 4px 12px #0f172a38}.phone__shot svg{width:54%;height:54%}.mobile-preview-dock .phone__shot{right:calc(var(--preview-side-panel-width) * 8 / 200);bottom:calc(var(--preview-side-panel-width) * 16 / 200);width:calc(var(--preview-side-panel-width) * 26 / 200);height:calc(var(--preview-side-panel-width) * 26 / 200)}.phone--large .phone__shot{width:48px;height:48px;bottom:22px;right:14px}.preview-surface-badge{border:1px solid var(--border);color:var(--text-dim);pointer-events:none;z-index:4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffe6;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:600;position:absolute;bottom:52px;right:12px}.mobile-modal{flex-direction:column;align-items:center;gap:16px;display:flex}.mobile-modal__head{justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:340px;display:flex}.mobile-modal__close{border:1px solid var(--border);background:var(--panel-2);color:var(--text-dim);cursor:pointer;border-radius:8px;flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s}.mobile-modal__close:hover{border-color:var(--border-strong);color:var(--text)}.modal--mobile-preview{align-items:stretch;width:auto;max-width:min(420px,94vw);padding:20px 24px 24px}.modal--mobile-preview .mobile-modal{align-items:center}.modal--mobile-preview .mobile-modal__head{max-width:none;margin-bottom:4px}.phone{--phone-bezel:12px;--phone-radius-outer:46px;--phone-radius-screen:36px;border-radius:var(--phone-radius-outer);width:300px;height:640px;padding:var(--phone-bezel);background:#0b0b0e;position:relative;overflow:hidden;box-shadow:0 24px 70px #00000080,inset 0 0 0 2px #303036}.phone--large{width:300px;height:640px}.phone__screen{border-radius:var(--phone-radius-screen);isolation:isolate;width:100%;height:100%;clip-path:inset(0 round var(--phone-radius-screen));background:linear-gradient(165deg,#d7dee6 0%,#b9c2cd 45%,#97a2b0 100%);position:relative;overflow:hidden}.phone__screen--scanning{background:linear-gradient(#0000001f 0%,#00000038 100%) 0 0/cover,linear-gradient(165deg,#8a939e 0%,#6e7885 45%,#5a6470 100%) 0 0/cover,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E") 0 0/120px 120px}.phone__screen-viewport{border-radius:inherit;clip-path:inset(0 round var(--phone-radius-screen));position:absolute;inset:0;overflow:hidden}.phone__empty-state{z-index:3;text-align:center;pointer-events:none;justify-content:center;align-items:center;padding:14px;display:flex;position:absolute;inset:0}.phone__empty-state p{color:#ffffffe0;text-shadow:0 1px 3px #00000059;margin:0;font-size:10px;font-weight:600;line-height:1.45}.mobile-preview-dock .phone__empty-state p{font-size:9px}.phone--large .phone__empty-state p{font-size:13px}.phone__notch{z-index:5;background:#0b0b0e;border-radius:0 0 16px 16px;width:120px;height:24px;position:absolute;top:0;left:50%;transform:translate(-50%)}.phone__canvas{z-index:2;border-radius:var(--phone-radius-screen);position:absolute;inset:0}@keyframes cta-glow-pulse{0%,to{box-shadow:0 8px 32px var(--cta-glow,#ff690047), inset 0 1px 0 #ffffff59, 0 0 0 0 var(--cta-ring,#ff8c3c59)}50%{box-shadow:0 14px 40px var(--cta-glow-strong,#ff690075), inset 0 1px 0 #ffffff73, 0 0 0 8px #fff0}}@keyframes cta-attention{0%,to{box-shadow:0 8px 32px var(--cta-glow,#ff690047), inset 0 1px 0 #ffffff59, 0 0 0 0 var(--cta-ring,#ff8c3c59);transform:translate(-50%)translateY(0)}50%{box-shadow:0 14px 40px var(--cta-glow-strong,#ff690075), inset 0 1px 0 #ffffff73, 0 0 0 8px #fff0;transform:translate(-50%)translateY(-4px)}}@keyframes cta-ring{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.14)}}.ar-cta{z-index:6;text-align:center;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);border:1px solid var(--cta-border,#ffc8a073);max-width:80%;box-shadow:0 8px 32px var(--cta-glow,#ff690047), inset 0 1px 0 #ffffff59;-webkit-tap-highlight-color:transparent;border-radius:26px;padding:13px 26px;font-size:15px;font-weight:700;animation:2.4s ease-in-out infinite cta-attention;position:absolute;bottom:52px;left:50%;overflow:visible;transform:translate(-50%)}.ar-cta:after{content:"";border-radius:inherit;border:2px solid var(--cta-ring-border,#ffa0508c);opacity:0;pointer-events:none;animation:2.4s ease-out infinite cta-ring;position:absolute;inset:-3px}.ar-cta:hover{box-shadow:0 16px 44px var(--cta-glow-hover,#ff690080), inset 0 1px 0 #ffffff80;animation-play-state:paused;transform:translate(-50%)translateY(-2px)scale(1.04)}.ar-cta:active{box-shadow:0 4px 16px var(--cta-glow-active,#ff690059), inset 0 1px 0 #ffffff40;animation:none;transform:translate(-50%)translateY(1px)scale(.97)}.ar-cta--embed{animation:2.4s ease-in-out infinite cta-glow-pulse}.ar-cta--embed:hover{transform:scale(1.04)}.ar-cta--embed:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.ar-cta,.ar-cta:after,.ar-cta--embed{animation:none!important}}.cta-preview{background:linear-gradient(#0000000d 0%,#00000026 100%) 0 0/cover,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E") 0 0/120px 120px;border-radius:12px}.target-guide-preview{text-align:center;color:#fffffff2;text-shadow:0 1px 2px #00000040;background-color:#ffffff2e;background-image:linear-gradient(#0000001f 0%,#00000038 100%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");background-position:0 0;background-repeat:repeat;background-size:cover,120px 120px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:1px solid #ffffff59;border-radius:999px;margin:0;padding:8px 14px;font-size:12px;font-weight:600;line-height:1.45;box-shadow:0 4px 16px #00000014}.scan-hint-preview{text-align:center;color:#fffffff2;text-shadow:0 1px 2px #00000040;background:#ffffff2e;border:1px solid #ffffff59;border-radius:30px;margin:0;padding:10px 18px;font-size:13px;font-weight:700;line-height:1.45;box-shadow:0 4px 16px #00000014}hr{border:none;border-top:1px solid var(--border);margin:4px 0}.timeline{background:var(--panel);border:1px solid var(--border);-webkit-user-select:none;user-select:none;border-radius:10px;flex-direction:column;grid-area:timeline;min-width:0;margin:10px 12px 12px;display:flex;overflow:hidden;box-shadow:0 2px 10px #0000000f}.timeline:focus{outline:none}.timeline:focus-visible{box-shadow:0 0 0 2px #ff690059,0 2px 10px #0000000f}.timeline__toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 14px;display:flex}.timeline__play{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;transition:background .15s;display:flex}.timeline__play:hover{background:var(--accent-hover)}.timeline__time{font-variant-numeric:tabular-nums;color:var(--text);font-size:12.5px;font-weight:700}.timeline__time span{color:var(--text-dim);font-weight:500}.timeline__toolbar-spacer{flex:1}.timeline__loop{color:var(--text-dim);align-items:center;gap:6px;font-size:11.5px;display:flex}.timeline__loop input{width:64px;padding:5px 8px;font-size:12px}.timeline__time-field{color:var(--text-dim);align-items:center;gap:6px;font-size:11.5px;display:flex}.timeline__time-field-label{color:var(--text-dim);font-weight:700}.timeline__time-field input{font-variant-numeric:tabular-nums;width:72px;padding:5px 8px;font-size:12px}.timeline__time-field input:disabled{opacity:.65}.timeline__toolbar .btn{padding:6px 11px;font-size:12px}.timeline__nudge{align-items:center;gap:4px;display:flex}.timeline__nudge-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:700}.timeline__nudge-btn:hover{border-color:var(--border-strong);background:#fff}.timeline__hint{border-bottom:1px solid var(--border);background:var(--panel-2);color:var(--text-dim);margin:0;padding:5px 14px 6px;font-size:11px;line-height:1.45}.timeline__body{flex:1;min-height:0;display:flex;overflow:hidden}.timeline__labels{border-right:1px solid var(--border);background:var(--panel-2);flex-direction:column;flex:none;width:64px;display:flex}.timeline__labels-spacer{border-bottom:1px solid var(--border);height:22px}.timeline__label{color:var(--text-dim);border-bottom:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;flex:1;align-items:center;padding:0 10px;font-size:11px;font-weight:600;display:flex}.timeline__label:last-child{border-bottom:none}.timeline__label:hover{color:var(--text);background:var(--accent-soft)}.timeline__label--dragging{cursor:grabbing;color:var(--accent);background:var(--accent-soft)}.timeline__lanes{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.timeline__ruler{border-bottom:1px solid var(--border);background:var(--panel-2);cursor:ew-resize;-webkit-user-select:none;user-select:none;touch-action:none;height:22px;position:relative}.timeline__tick{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;padding-top:5px;font-size:9.5px;position:absolute;top:0;transform:translate(-50%)}.timeline__tick:before{content:"";background:var(--border-strong);width:1px;height:4px;position:absolute;top:0;left:50%}.timeline__tick--minor{background:var(--border-strong);width:1px;height:5px;padding:0;top:0;transform:translate(-50%)}.timeline__tick--minor:before{display:none}.timeline__tick--tenth{background:var(--border);width:1px;height:3px;padding:0;top:0;transform:translate(-50%)}.timeline__tick--tenth:before{display:none}.timeline__tracks{cursor:crosshair;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.timeline__track{border-bottom:1px solid var(--border);flex:1;position:relative}.timeline__track:last-child{border-bottom:none}.timeline__track:nth-child(odd){background:#00000003}.timeline__playhead{background:var(--accent);z-index:3;pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.timeline__playhead-handle{cursor:ew-resize;pointer-events:auto;background:0 0;border:none;width:18px;height:22px;margin:0;padding:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.timeline__copy-badge{z-index:5;background:var(--accent);color:#fff;white-space:nowrap;pointer-events:none;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700;line-height:1.4;position:absolute;top:2px;transform:translate(-50%);box-shadow:0 2px 8px #ff690059}.timeline__marquee{pointer-events:none;z-index:2;background:#ff690024;border-left:1px solid #ff690080;border-right:1px solid #ff690080;position:absolute;top:22px;bottom:0}.timeline__playhead:before{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--accent);position:absolute;top:-1px;left:50%;transform:translate(-50%)}.timeline__key{cursor:grab;z-index:2;background:0 0;border:none;width:22px;height:22px;margin:-11px 0 0 -11px;padding:0;position:absolute;top:50%}.timeline__key:before{content:"";background:var(--text-dim);border:1px solid #fff;border-radius:2px;width:12px;height:12px;margin:-6px 0 0 -6px;transition:background .12s,transform .12s;position:absolute;top:50%;left:50%;transform:rotate(45deg);box-shadow:0 1px 2px #0003}.timeline__key:hover:before{background:var(--text);transform:rotate(45deg)scale(1.12)}.timeline__key--active:before{background:var(--accent);transform:rotate(45deg)scale(1.18)}.timeline__key--selected:before{background:var(--accent);transform:rotate(45deg)scale(1.12);box-shadow:0 0 0 3px #ff69004d}.timeline__key--dragging{cursor:grabbing;z-index:4}.timeline__key--dragging:before{background:var(--accent);transition:none;transform:rotate(45deg)scale(1.28)}.timeline__key--ghost{pointer-events:none;cursor:default;z-index:4}.timeline__key--ghost:before{background:var(--accent);opacity:.5;transition:none;transform:rotate(45deg)scale(1.2)}.auth-gate{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth-gate__card{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:12px;width:100%;max-width:400px;padding:24px;box-shadow:0 4px 12px #0f172a0f}.auth-gate__title{margin:0 0 8px;font-size:15px;font-weight:700}.auth-gate__error{color:var(--text-dim);word-break:break-word;margin:0 0 16px;font-size:12px}.auth-gate__button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:700}.auth-gate__button:hover{background:var(--accent-hover)}.auth-gate__loading{color:var(--text-dim);flex-direction:column;align-items:center;gap:14px;display:flex}.auth-gate__loading p{margin:0;font-size:14px;font-weight:700}.auth-gate__logo-img{object-fit:cover;border-radius:10px;width:40px;height:40px}.auth-gate__spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite auth-gate-spin}@keyframes auth-gate-spin{to{transform:rotate(360deg)}}.login-expired{z-index:10000;background:var(--panel);border:1px solid var(--danger);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;width:min(560px,100vw - 32px);padding:14px 16px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0f172a2e}.login-expired__text{color:var(--text);flex:240px;margin:0;font-size:13px;font-weight:700}.login-expired__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.login-expired__fallback{border:1px solid var(--border-strong);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:9px 14px;font-size:13px}.login-expired .auth-gate__button:disabled{opacity:.6;cursor:default}.analytics-page{--viz-1:#2a78d6;--viz-prev:#8b8f9c;--viz-seq-1:#b7d3f6;--viz-seq-2:#86b6ef;--viz-seq-3:#5598e7;--viz-seq-4:#2a78d6;--viz-seq-5:#1c5cab;--viz-seq-6:#0d366b;--viz-good-text:#0a7a0a;--viz-critical:#d03b3b;--viz-critical-text:#b42f2f;--viz-critical-soft:#fdecec;background:var(--bg);flex-direction:column;min-height:100%;display:flex}.analytics-page__main{flex:1;width:min(1180px,100% - 40px);margin:0 auto;padding:28px 0 72px}.analytics-page__intro h1{letter-spacing:-.03em;margin:0;font-size:28px}.analytics-page__lead{color:var(--text-dim);margin:8px 0 0;font-size:14px;line-height:1.6}.analytics-page__banner{background:var(--accent-soft);color:#9a3f00;border:1px solid #ff690038;border-radius:10px;margin:0 0 16px;padding:10px 14px;font-size:13px;line-height:1.5}.analytics-page__scope{color:var(--text-dim);margin:0 0 16px;font-size:13px}.analytics-page__scope a{color:var(--accent)}.analytics-page__foot{color:var(--text-dim);margin:32px 0 0;font-size:12px;line-height:1.7}.analytics-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:24px 0 16px;display:flex}.analytics-toolbar__group{flex-wrap:wrap;gap:6px;display:flex}.analytics-toolbar__spacer{flex:auto}.analytics-toolbar__select select{border:1px solid var(--border-strong);background:var(--panel);min-width:220px;max-width:340px;height:36px;font:inherit;color:inherit;border-radius:8px;padding:0 10px}.analytics-section{margin:28px 0 0}.analytics-section__title{letter-spacing:-.01em;margin:0 0 4px;font-size:16px}.analytics-section__subtitle{color:var(--text-dim);margin:22px 0 6px;font-size:13px;font-weight:700}.analytics-section__note{color:var(--text-dim);margin:0 0 12px;font-size:12px;line-height:1.6}.analytics-card{border:1px solid var(--border);background:var(--panel);border-radius:16px;padding:20px}.analytics-columns{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:16px;display:grid}.analytics-columns .analytics-section{margin-top:16px}.analytics-empty,.analytics-empty-state{color:var(--text-dim);margin:0;font-size:13px;line-height:1.7}.analytics-empty-state{border:1px dashed var(--border-strong);background:var(--panel);text-align:center;border-radius:16px;margin-top:24px;padding:36px 20px}.analytics-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.analytics-kpi{border:1px solid var(--border);background:var(--panel);border-radius:14px;padding:16px 18px}.analytics-kpi--primary{background:var(--accent-soft);border-color:#ff690052}.analytics-kpi__label{color:var(--text-dim);margin:0;font-size:12px;font-weight:700}.analytics-kpi__value{letter-spacing:-.03em;margin:6px 0 0;font-size:30px;font-weight:700;line-height:1.1}.analytics-kpi--primary .analytics-kpi__value{color:#b34700}.analytics-kpi__hint{color:var(--text-dim);margin:6px 0 0;font-size:11px;line-height:1.5}.analytics-chart{margin:12px 0 0}.analytics-chart__plot{position:relative}.analytics-chart svg{touch-action:pan-y;outline:none;max-width:100%;display:block}.analytics-chart svg:focus-visible{outline:2px solid var(--viz-1);outline-offset:2px;border-radius:8px}.analytics-chart__grid{stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke}.analytics-chart__tick{fill:var(--text-dim);font-size:11px}.analytics-chart__line{fill:none;stroke:var(--viz-1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.analytics-chart__line--previous{stroke:var(--viz-prev);stroke-dasharray:5 4}.analytics-chart__crosshair{stroke:var(--text-dim);stroke-width:1px;vector-effect:non-scaling-stroke}.analytics-chart__dot{fill:var(--viz-1);stroke:var(--panel);stroke-width:2px}.analytics-chart__dot--previous{fill:var(--viz-prev)}.analytics-chart__legend{color:var(--text-dim);flex-wrap:wrap;gap:16px;padding:8px 4px 0;font-size:12px;display:flex}.analytics-legend:before{content:"";border-top:2px solid var(--viz-1);vertical-align:middle;width:16px;height:0;margin-right:6px;display:inline-block}.analytics-legend--previous:before{border-top:2px dashed var(--viz-prev)}.analytics-tooltip{border:1px solid var(--border-strong);background:var(--panel);pointer-events:none;z-index:2;border-radius:10px;min-width:150px;padding:8px 10px;font-size:12px;position:absolute;top:8px;transform:translate(12px);box-shadow:0 6px 18px #14161e1f}.analytics-tooltip--left{transform:translate(calc(-100% - 12px))}.analytics-tooltip__title{color:var(--text-dim);margin:0 0 4px;font-size:11px}.analytics-tooltip__row{color:var(--text-dim);white-space:nowrap;align-items:baseline;gap:6px;margin:2px 0 0;display:flex}.analytics-tooltip__row strong{color:var(--text);font-size:14px}.analytics-tooltip__key{border-top:2px solid var(--viz-1);width:12px;display:inline-block;transform:translateY(-3px)}.analytics-tooltip__key--previous{border-top:2px dashed var(--viz-prev)}.analytics-funnel{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.analytics-funnel__row{padding:2px 0}.analytics-funnel__step{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:4px 6px;margin:2px 0 8px;padding-left:2px;font-size:12px;display:flex}.analytics-funnel__step strong{color:var(--text)}.analytics-funnel__head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.analytics-funnel__label{font-size:13px;font-weight:600}.analytics-funnel__value{white-space:nowrap;font-size:15px;font-weight:700}.analytics-funnel__value small{color:var(--text-dim);margin-left:6px;font-size:11px;font-weight:500}.analytics-funnel__track{background:var(--panel-2);border-radius:4px;height:12px;overflow:hidden}.analytics-funnel__bar{background:var(--viz-1);border-radius:4px;height:100%}.analytics-badge{background:var(--viz-critical-soft);color:var(--viz-critical-text);border-radius:999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:700;display:inline-flex}.analytics-badge:before{content:"!";margin-right:4px;font-weight:800}.analytics-breakdown{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.analytics-breakdown__row{grid-template-columns:minmax(96px,34%) 1fr auto;align-items:center;gap:10px;display:grid}.analytics-breakdown__label{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.analytics-breakdown__track{background:var(--panel-2);border-radius:999px;height:8px;overflow:hidden}.analytics-breakdown__bar{background:var(--viz-1);border-radius:4px;height:100%;display:block}.analytics-breakdown__value{white-space:nowrap;font-size:12px;font-weight:700}.analytics-breakdown__value small{color:var(--text-dim);margin-left:5px;font-size:10px;font-weight:700}.analytics-table__wrap{border:1px solid var(--border);background:var(--panel);border-radius:14px;margin-top:12px;overflow-x:auto}.analytics-table{border-collapse:collapse;width:100%;font-size:13px}.analytics-table th,.analytics-table td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);padding:10px 14px}.analytics-table thead th{color:var(--text-dim);background:var(--panel-2);font-size:11px}.analytics-table tbody th{text-align:left;white-space:normal;max-width:260px;font-weight:600}.analytics-table tbody tr:last-child th,.analytics-table tbody tr:last-child td{border-bottom:0}.analytics-table__name{display:block}.analytics-table__kind,.analytics-table__owner{color:var(--text-dim);font-size:11px;font-weight:600}.analytics-table__owner{text-align:left}@media (width<=720px){.analytics-page__main{width:calc(100% - 24px)}.analytics-kpi__value{font-size:24px}.analytics-toolbar__select select{width:100%;min-width:0}}.undo-redo{gap:4px;display:inline-flex}.btn--icon{padding:6px 8px;line-height:0}.draft-status{color:var(--text-dim);white-space:nowrap;font-size:12px}.draft-status--error{color:var(--danger);font-weight:600}@media (width<=720px){.draft-status{display:none}}.live-preview-btn{gap:6px}.live-preview-btn--on{border-color:var(--accent);color:var(--accent)}.live-preview-dot{background:var(--ok);border-radius:50%;width:8px;height:8px}.live-preview-dot--building{background:var(--accent);animation:1s ease-in-out infinite live-preview-pulse}.live-preview-dot--error{background:var(--danger)}@keyframes live-preview-pulse{50%{opacity:.3}}.live-preview-status{color:var(--text-dim);margin:0;font-size:13px}.live-preview-status--error{color:var(--danger);font-weight:600}.modal--live-preview-target{width:min(620px,92vw)}.live-preview-pair{justify-content:center;align-items:flex-start;gap:16px;width:100%;display:flex}.live-preview-pair__item{color:var(--text-dim);flex-direction:column;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.live-preview-pair__target{border:1px solid var(--border);background:#fff;border-radius:12px;width:auto;max-width:260px;height:auto;max-height:260px;box-shadow:0 2px 10px #0000000f}@media (width<=560px){.live-preview-pair{flex-direction:column;align-items:center}}.analytics-page__range{color:var(--text-dim);flex-wrap:wrap;gap:4px 16px;margin:-4px 0 16px;font-size:12px;display:flex}.analytics-page__range span{color:var(--text-dim)}.analytics-page__scope{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.analytics-body.is-loading{opacity:.55;transition:opacity .15s}.btn--small{padding:5px 10px;font-size:12px}.analytics-tabs{border-bottom:1px solid var(--border);gap:4px;margin:8px 0 0;display:flex;overflow-x:auto}.analytics-tab{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:10px 14px;font-size:14px;font-weight:600}.analytics-tab:hover{color:var(--text)}.analytics-tab.is-active{color:var(--text);border-bottom-color:var(--accent)}.analytics-section__head{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:4px;display:flex}.analytics-section__head .analytics-section__title{margin:0 auto 0 0}.analytics-segmented{border:1px solid var(--border-strong);background:var(--panel-2);border-radius:8px;flex-wrap:wrap;padding:2px;display:inline-flex}.analytics-segmented button{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.analytics-segmented button.is-active{background:var(--panel);color:var(--text);box-shadow:0 1px 2px #14161e1a}.analytics-more{margin-top:14px}.analytics-columns--tight{gap:24px;margin-top:8px}.analytics-delta{color:var(--text-dim);align-items:center;gap:4px;margin:6px 0 0;font-size:12px;font-weight:700;display:inline-flex}.analytics-delta--up{color:var(--viz-good-text)}.analytics-delta--down{color:var(--viz-critical-text)}.analytics-delta__label{color:var(--text-dim);font-weight:500}.analytics-insights{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;margin:8px 0 0;padding:0;list-style:none;display:grid}.analytics-insight{border:1px solid var(--border);background:var(--panel);border-left-width:4px;border-radius:12px;gap:12px;padding:14px 16px;display:flex}.analytics-insight--warn{border-left-color:var(--viz-critical)}.analytics-insight--good{border-left-color:#0ca30c}.analytics-insight--info{border-left-color:var(--viz-1)}.analytics-insight__icon{color:#fff;background:var(--viz-1);border-radius:50%;flex:0 0 22px;place-items:center;height:22px;font-size:12px;font-weight:800;display:grid}.analytics-insight--warn .analytics-insight__icon{background:var(--viz-critical)}.analytics-insight--good .analytics-insight__icon{background:#0ca30c}.analytics-insight__title{margin:1px 0 0;font-size:14px;font-weight:700;line-height:1.5}.analytics-insight__detail{color:var(--text-dim);margin:4px 0 0;font-size:12px;line-height:1.7}.analytics-stat{margin:8px 0 12px}.analytics-stat__label{color:var(--text-dim);margin:0;font-size:12px}.analytics-stat__value{letter-spacing:-.02em;margin:4px 0 0;font-size:24px;font-weight:700}.analytics-stat__hint{color:var(--text-dim);margin:4px 0 0;font-size:12px;line-height:1.6}.analytics-heatmap{margin:8px 0 0}.analytics-heatmap__grid{grid-template-columns:20px repeat(24,13px);gap:2px;max-width:100%;display:inline-grid}.analytics-heatmap__row{display:contents}.analytics-heatmap__hour{color:var(--text-dim);text-align:left;white-space:nowrap;font-size:9px;line-height:1}.analytics-heatmap__day{color:var(--text-dim);align-items:center;font-size:11px;line-height:1;display:flex}.analytics-heatmap__cell{background:var(--panel-2);cursor:default;border:0;border-radius:2px;width:13px;height:13px;padding:0}.analytics-heatmap__cell--1{background:var(--viz-seq-1)}.analytics-heatmap__cell--2{background:var(--viz-seq-2)}.analytics-heatmap__cell--3{background:var(--viz-seq-3)}.analytics-heatmap__cell--4{background:var(--viz-seq-4)}.analytics-heatmap__cell--5{background:var(--viz-seq-5)}.analytics-heatmap__cell--6{background:var(--viz-seq-6)}.analytics-heatmap__cell.is-hover,.analytics-heatmap__cell:focus-visible{outline:2px solid var(--text);outline-offset:1px}.analytics-heatmap__caption{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:8px;font-size:11px;display:flex}.analytics-heatmap__readout strong{color:var(--text)}.analytics-heatmap__scale{align-items:center;gap:3px;display:inline-flex}.analytics-heatmap__swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.analytics-heat-layout{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:20px 40px;margin-top:4px;display:grid}.analytics-heat-layout__side{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 24px;display:grid}.analytics-heat-layout__side .analytics-section__subtitle{margin-top:4px}@media (width<=900px){.analytics-heat-layout{grid-template-columns:minmax(0,1fr)}}.analytics-actions{gap:12px;margin:8px 0 0;padding:0;list-style:none;display:grid}.analytics-actions__row--child{margin-top:-4px;padding-left:18px}.analytics-actions__row--child .analytics-funnel__label{font-weight:500}.analytics-actions__hint{color:var(--text-dim);margin:4px 0 0;font-size:11px;line-height:1.5}.analytics-rate{align-items:center;gap:8px;min-width:180px;display:inline-flex}.analytics-rate__track{background:var(--panel-2);border-radius:4px;flex:90px;height:8px;position:relative}.analytics-rate__bar{background:var(--viz-1);border-radius:4px;position:absolute;inset:0 auto 0 0}.analytics-rate__mark{background:var(--text);width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.analytics-rate__value{text-align:right;min-width:40px;font-weight:700}.analytics-flag{color:var(--viz-critical-text);white-space:nowrap;font-size:11px;font-weight:700}.analytics-table td small{color:var(--text-dim);margin-left:6px;font-size:11px}.analytics-table tr.is-few td,.analytics-table tr.is-few th{opacity:.55}.analytics-table__note{color:var(--viz-critical-text);margin-top:2px;font-size:11px;font-weight:500;display:block}.analytics-table__link{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.analytics-table__link:hover{color:var(--accent);text-decoration:underline}.analytics-sort{color:inherit;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0}@media (width<=720px){.analytics-heatmap__grid{grid-template-columns:16px repeat(24,minmax(0,1fr));gap:1px;width:100%}.analytics-heatmap__cell{aspect-ratio:1;width:100%;height:auto}.analytics-insights{grid-template-columns:1fr}.analytics-rate{min-width:130px}.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.analytics-kpi{padding:12px}.analytics-kpi__value{font-size:24px}.analytics-columns{grid-template-columns:minmax(0,1fr)}}.draft-choice{max-width:460px}.draft-choice__options{gap:10px;margin-top:14px;display:grid}.draft-choice__option{border:1px solid var(--border);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:12px;gap:4px;padding:14px 16px;text-decoration:none;display:grid}.draft-choice__option:hover{border-color:var(--accent)}.draft-choice__option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.draft-choice__option strong{font-size:15px}.draft-choice__option span{color:#6b7280;font-size:12px;line-height:1.6}.draft-choice__option--primary{border-color:var(--accent);background:#fff6ef}
