:root{--bg:#fff;--surface:#fff;--surface-sunken:#f5f5f7;--hairline:#0000001a;--text:#1d1d1f;--muted:#6e6e73;--accent:#0071e3;--accent-text:#fff;--danger:#b3261e;--warn:#8a6100;--radius:18px;--radius-sm:12px;--ease:cubic-bezier(.4, 0, .2, 1)}@media (prefers-color-scheme:dark){:root{--bg:#000;--surface:#1c1c1e;--surface-sunken:#121214;--hairline:#ffffff1f;--text:#f5f5f7;--muted:#98989d;--accent:#0a84ff;--danger:#ff6961;--warn:#ffd426}}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(42% 38% at 22% 12%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%), radial-gradient(38% 34% at 82% 26%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%);opacity:.35;position:fixed;inset:-20%}body{background:var(--bg);color:var(--text);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI Variable Text,Segoe UI,Roboto,system-ui,sans-serif;font-size:17px;line-height:1.47}.topbar{z-index:20;border-bottom:1px solid var(--hairline);background:color-mix(in srgb, var(--bg) 92%, transparent);justify-content:space-between;align-items:center;gap:16px;height:52px;padding:0 22px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;color:var(--text);font-size:19px;font-weight:600;text-decoration:none}.topbar-right{align-items:center;gap:10px;display:flex}.plan-chip{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface-sunken);border:1px solid var(--hairline);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600;line-height:1.5}.plan-chip.pro{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 30%, transparent);background:color-mix(in srgb, var(--accent) 9%, transparent)}#sign-out{color:var(--muted);font-weight:400}#sign-out:hover{color:var(--text)}#user-button{align-items:center;display:inline-flex}.page{flex-direction:column;gap:28px;max-width:680px;margin:0 auto;padding:72px 22px 96px;display:flex}.hero{text-align:center}h1{letter-spacing:-.025em;margin:0;font-size:48px;font-weight:600;line-height:1.08}.sub{max-width:30em;color:var(--muted);margin:12px auto 0;font-size:19px}h2{letter-spacing:-.02em;margin:0 0 14px;font-size:21px;font-weight:600}.card{background:var(--surface);border-radius:var(--radius);padding:24px;box-shadow:0 1px 2px #0000000a,0 8px 28px #0000000f}@media (prefers-color-scheme:dark){.card{box-shadow:none;outline:1px solid var(--hairline)}}.card,.legal{animation:rise .45s var(--ease) both}.hero h1{animation:rise .6s var(--ease) both}.hero .sub{animation:rise .6s var(--ease) 70ms both}#app>.card:first-of-type{animation-delay:.14s}.topbar{animation:fade .5s var(--ease) both}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.dropzone{border-radius:var(--radius-sm);background:var(--surface-sunken);cursor:pointer;text-align:center;min-height:260px;color:var(--muted);transition:background .2s var(--ease), transform .2s var(--ease);justify-content:center;align-items:center;padding:16px;font-size:15px;display:flex}.dropzone:hover{background:color-mix(in srgb, var(--accent) 6%, var(--surface-sunken))}.dropzone.dragging{background:color-mix(in srgb, var(--accent) 10%, var(--surface-sunken));transform:scale(1.005)}.dropzone-text{max-width:22em}.pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}.small-zone{min-height:170px;font-size:14px}@media (width<=560px){.pair{grid-template-columns:1fr}}.switch{text-align:center;margin:18px 0 0}.link{color:var(--accent);background:0 0;border-radius:0;padding:0;font-size:14px;font-weight:400}.link:not(:disabled):hover{opacity:1;text-decoration:underline}.link:not(:disabled):active{transform:none}.dropzone img,.dropzone video{max-width:100%;max-height:420px;animation:settle .4s var(--ease) both;border-radius:10px;display:block}@keyframes settle{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}.wide-input,.pro-row input,.dial select{border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);font:inherit;transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:13px 15px;font-size:16px}.wide-input{margin-top:16px}.wide-input::placeholder,.pro-row input::placeholder{color:var(--muted)}.wide-input:focus,.pro-row input:focus,.dial select:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}button{font:inherit;letter-spacing:-.01em;cursor:pointer;transition:opacity .15s var(--ease), transform .1s var(--ease), background .15s var(--ease);border:none;border-radius:980px;padding:11px 22px;font-size:16px;font-weight:500}button:disabled{opacity:.36;cursor:default}button:not(:disabled):hover{opacity:.86}button:not(:disabled):active{transform:scale(.97)}.primary{background:var(--accent);color:var(--accent-text)}.secondary{color:var(--accent);background:0 0;padding-left:12px;padding-right:12px}.small{padding:7px 15px;font-size:14px}.big{width:100%;margin-top:16px;padding:15px 22px;font-size:17px;display:block}.quota,.meta,.sub-inline,.hint{color:var(--muted);margin:12px 0 0;font-size:13px}.error,.warn{border-radius:var(--radius-sm);animation:rise .3s var(--ease) both;border:1px solid;margin:14px 0 0;padding:11px 14px;font-size:14px;line-height:1.45}.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);border-color:color-mix(in srgb, var(--danger) 24%, transparent)}.warn{color:var(--warn);background:color-mix(in srgb, var(--warn) 10%, transparent);border-color:color-mix(in srgb, var(--warn) 26%, transparent)}@media (prefers-color-scheme:dark){.warn{background:color-mix(in srgb, var(--warn) 14%, transparent);border-color:color-mix(in srgb, var(--warn) 30%, transparent)}}.progress{margin-top:18px}.progress-track{background:var(--hairline);border-radius:999px;height:4px;overflow:hidden}.progress-bar{background:var(--accent);border-radius:999px;width:0;height:100%;transition:width .12s linear}.progress-label{color:var(--muted);justify-content:space-between;gap:12px;margin:8px 0 0;font-size:13px;display:flex}.mock-banner{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warn) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--warn) 26%, transparent);color:var(--text);margin:0;padding:12px 18px;font-size:14px}.paywall{text-align:center}.paywall p{margin:0 0 16px}.compare{border-radius:var(--radius-sm);background:var(--surface-sunken);line-height:0;position:relative;overflow:hidden}.compare img{width:100%;display:block}.after-wrap{width:50%;position:absolute;inset:0;overflow:hidden}.after-wrap.revealing{transition:width .9s cubic-bezier(.22,1,.36,1)}.after-wrap img{width:auto;max-width:none;height:100%;position:absolute;top:0;left:0}.compare input[type=range]{accent-color:#fff;width:100%;margin:0;padding:0 14px;position:absolute;bottom:14px;left:0}.dial{margin-top:22px;display:block}.dial-label{color:var(--muted);justify-content:space-between;margin-bottom:10px;font-size:13px;font-weight:500;display:flex}.dial input[type=range]{width:100%;accent-color:var(--accent)}.pro-row{align-items:center;gap:10px;margin-top:22px;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;display:flex}.frame-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:4px 0 18px;display:grid}.frame{flex-direction:column;gap:8px;margin:0;display:flex}.frame img{border-radius:10px;width:100%;display:block}.frame figcaption{color:var(--muted);font-size:11px;line-height:1.4}.frame-pair{grid-template-columns:1fr 1fr;gap:5px;display:grid}.frame-pair>div{line-height:0;position:relative}.frame-pair img{border-radius:8px;width:100%;display:block}.frame-tag{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;letter-spacing:.03em;text-transform:uppercase;background:#0000008c;border-radius:999px;padding:2px 7px;font-size:9px;font-weight:600;line-height:1.7;position:absolute;bottom:6px;left:6px}.frame.clickable{cursor:zoom-in}.frame.clickable img{transition:transform .25s var(--ease)}.frame.clickable:hover img{transform:scale(1.015)}.lightbox{z-index:50;-webkit-backdrop-filter:blur(24px);animation:fade .2s var(--ease) both;cursor:zoom-out;background:#000000b8;justify-content:center;align-items:center;padding:32px 22px;display:flex;position:fixed;inset:0}.lightbox-inner{cursor:default;width:min(860px,100%);max-height:100%;animation:rise .3s var(--ease) both;overflow-y:auto}.lightbox-inner .dial-label,.lightbox-inner .meta{color:#ffffffb8}.lightbox-close{color:#fff;background:#ffffff24;border-radius:50%;width:34px;height:34px;padding:0;font-size:20px;line-height:1;position:absolute;top:18px;right:20px}.result-video{border-radius:var(--radius-sm);background:#000;width:100%;display:block}.footer{border-top:1px solid var(--hairline);color:var(--muted);justify-content:center;gap:22px;padding:30px 22px 44px;font-size:12px;display:flex}.footer a{color:var(--muted);text-decoration:none}.footer a:hover{text-decoration:underline}.badge-exit{cursor:pointer}.badge-exit:hover{color:var(--text);text-decoration:underline}.legal{max-width:680px;line-height:1.6}.legal h1{margin-bottom:6px;font-size:32px}.legal h2{margin:30px 0 6px;font-size:17px}.legal h3{margin:20px 0 4px;font-size:15px}.legal p,.legal li{color:var(--muted);font-size:15px}.legal a{color:var(--accent)}.legal-note{font-size:13px}.legal-back{margin-top:36px}.admin{background:var(--surface-sunken);box-shadow:none;outline:1px dashed var(--hairline)}.admin-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:20px 0 6px;font-size:11px;font-weight:600}.admin-controls{border-top:1px solid var(--hairline);gap:2px;margin-top:20px;padding-top:16px;display:grid}.admin pre,.cdl{background:var(--bg);white-space:pre-wrap;word-break:break-word;border-radius:10px;margin:0;padding:14px;font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.55}.raw{border-radius:10px;width:100%;max-width:380px;margin:10px auto 0;display:block}.model-cost{color:var(--muted);font-weight:500}.busy{opacity:.62;pointer-events:none}@media (width<=600px){.page{padding:44px 18px 72px}h1{font-size:36px}.sub{font-size:17px}.card{padding:20px}.topbar{gap:10px;padding:0 16px}#sign-in{display:none}.small{padding:7px 13px;font-size:13px}.brand{font-size:17px}}
