:root{font-family:var(--font-mono);color:var(--color-ink);background-color:var(--color-bg);font-synthesis:none;color-scheme:dark;--ink: var(--color-ink);--muted: var(--color-ink-dim);--line: var(--color-rule);--accent: var(--color-ember);--surface: var(--color-bg-raised)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,label{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}button:disabled,.disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,label:focus-within{outline:2px solid var(--ink);outline-offset:3px}button,a{transition:background .16s,color .16s,border-color .16s}a{color:inherit;text-decoration:none}p,h1,h2,h3{margin:0}[hidden],.control-panel[hidden],.control-panel [hidden]{display:none}fieldset{border:0;padding:0;margin:0;min-width:0}.app-shell{height:100dvh;min-height:620px;max-width:1440px;margin:auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top) max(var(--page-x),env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(var(--page-x),env(safe-area-inset-left))}.masthead{height:56px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;margin-bottom:4px}.back-button{margin-left:-12px}.masthead-actions{display:flex;align-items:center;gap:4px}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:0;background:transparent;flex-shrink:0}.icon-button:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 5%,transparent);border-color:var(--color-rule-hi)}.primary-button,.quiet-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:0;min-height:44px;padding:0 16px;font-size:var(--text-nav);font-weight:400;letter-spacing:var(--tracking-wide);text-transform:uppercase;white-space:nowrap}.primary-button{background:var(--accent);border-color:var(--accent);color:var(--color-ink-on-ember)}.primary-button:hover:not(:disabled){background:var(--color-ember-hover);border-color:var(--color-ember-hover)}.quiet-button{background:color-mix(in srgb,var(--ink) 2%,transparent);border-color:var(--color-rule-hi);color:var(--ink)}.masthead-actions>.icon-button:last-child{margin-right:-12px}.primary-icon{width:44px;padding:0}.quiet-button:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 5%,transparent);border-color:var(--color-ink-faint)}.workspace{display:flex;flex-direction:column;flex:1;min-height:0}.studio-title{display:flex;align-items:center;gap:9px;margin-right:auto;font-size:12px;font-weight:400;letter-spacing:.1em}.studio-title svg{width:22px;height:22px;flex-shrink:0}.empty-stage{border:1px dashed var(--color-ink-faint)}.empty-stage.drag-over{border-color:var(--ink);background:var(--surface)}.empty-canvas{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.empty-canvas p{font-size:11px;line-height:1.6;color:var(--muted)}.empty-photos p{display:flex;gap:12px;margin-bottom:12px;font-size:11px;color:var(--muted)}.empty-photo{aspect-ratio:1;border:1px solid var(--line);background:var(--surface)}@media(hover:none){.drop-hint{display:none}}.preview-section{flex:1;display:flex;flex-direction:column;min-height:150px;min-width:0}.preview-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-card);background:var(--color-bg-deep);container-type:size}.film-frame{position:relative;flex-shrink:0;max-width:100%;max-height:100%}.film-frame canvas{display:block;width:100%;height:100%;object-fit:contain}.preview-loading{position:absolute;inset:0;display:grid;place-content:center;color:var(--muted);pointer-events:none;animation:fade-in .2s .35s both}@keyframes fade-in{0%{opacity:0}}.preview-timeline{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--line);pointer-events:none}.preview-timeline span{display:block;height:100%;background:var(--accent)}.transport{height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.is-empty .transport{justify-content:flex-start;gap:16px}.transport>.icon-button{margin-right:-10px}.editor-tray{flex-shrink:0}.photos{position:relative}.photo-strip{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.photo-tile{position:relative;min-width:0;border-radius:0;aspect-ratio:1}.thumbnail{position:relative;height:100%;width:100%;border:2px solid transparent;border-radius:0;background:var(--surface);padding:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.thumbnail[aria-pressed=true]{border-color:var(--accent)}.thumbnail img{width:100%;height:100%;display:block;object-fit:cover;border-radius:0;pointer-events:none}.is-dragging{z-index:3;border-color:var(--accent);box-shadow:0 8px 24px #000a}.drop-target{outline:2px dashed var(--accent);outline-offset:3px}.add-tile{aspect-ratio:1}.add-tile label{position:relative;cursor:pointer;border:1px dashed var(--color-ink-faint);border-radius:0;height:100%;display:grid;place-content:center;color:var(--muted);transition:border-color .16s,color .16s}.add-tile.needs-more label{border-color:var(--accent);color:var(--ink)}.photo-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;background:var(--color-bg);margin-top:10px;padding:0 2px}.controls{display:flex;flex-direction:column}.grain-tabs{margin-top:12px}.control-panel{order:-1;margin-top:8px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:20px 16px 24px}.panel-heading{display:flex;justify-content:flex-end;margin:-12px -9px -8px 0}.format-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 12px}.format-options button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:62px;border:1px solid transparent;border-radius:0;background:transparent;font-size:var(--text-nav);color:var(--muted)}.format-options button[aria-pressed=true]{color:var(--ink);background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--color-ember-weak)}.format-icon{border:1.5px solid currentColor;border-radius:3px;display:block}.format-icon.portrait{width:13px;height:23px}.format-icon.landscape{width:23px;height:13px}.format-icon.square{width:19px;height:19px}.segment-options{display:flex;margin:4px 0 8px}.segment-options button{flex:1;border:0;min-height:44px;border-radius:0;background:transparent;color:var(--muted);font-size:12px;padding:0 4px}.segment-options button[aria-pressed=true]{color:var(--ink);background:var(--color-rule-hi)}.fit-icon{width:16px;height:24px;margin:auto;border:1.5px solid currentColor;border-radius:2px;display:grid;align-items:center;overflow:hidden}.fit-icon>span{display:block;height:9px;background:currentColor}.fit-icon.cover>span{height:100%;margin-inline:-8px}.grain-swatch{display:block;width:30px;height:22px;margin:auto;background-image:radial-gradient(circle,currentColor 32%,transparent 40%);background-position:center}.motion-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}.range-control{display:block;margin:8px 0 0}.control-line{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}.control-line output{color:var(--ink);font-size:11px;font-variant-numeric:tabular-nums}input[type=range]{appearance:none;display:block;width:100%;height:44px;margin:0;cursor:pointer;background:linear-gradient(var(--accent),var(--accent)) 0 center / 0 3px no-repeat}input[type=range]::-webkit-slider-runnable-track{height:3px;background:color-mix(in srgb,var(--ink) 10%,transparent);border-radius:3px}input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;background:var(--ink);border-radius:50%;margin-top:-7.5px;box-shadow:0 1px 4px #0006}input[type=range]::-moz-range-track{height:3px;background:color-mix(in srgb,var(--ink) 10%,transparent);border-radius:3px}input[type=range]::-moz-range-thumb{border:0;width:18px;height:18px;background:var(--ink);border-radius:50%}.film-frame video{display:block;width:100%;height:100%;object-fit:contain;background:#000}.render-progress{text-align:center;width:100%;padding:24px}.progress-ring{width:126px;height:126px;border-radius:50%;padding:3px;margin:0 auto 24px}.progress-ring>span{width:100%;height:100%;background:var(--color-bg-deep);border-radius:50%;display:flex;align-items:baseline;justify-content:center;padding-top:38px;font-size:34px;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.progress-ring small{font-size:16px;color:var(--muted);margin-left:3px}.render-progress p{font-size:12px;color:var(--muted);margin-bottom:20px}.cancel-export{border-color:var(--color-rule-hi);border-radius:50%}.toast{position:fixed;z-index:5;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:max-content;max-width:min(500px,calc(100% - 32px));background:var(--surface);color:var(--ink);border:1px solid var(--color-rule-hi);border-radius:var(--radius-card);box-shadow:var(--shadow-raised);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 6px 18px;font-size:13px;animation:fade-in .16s;line-height:1.5}.error-note{background:var(--color-ember-weak);color:var(--color-ink-on-ember)}.toast[role=status]{padding:0 4px}.text-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;border:0;background:transparent;padding:0 12px;font-size:var(--text-nav);font-weight:400;letter-spacing:var(--tracking-wide);text-transform:uppercase}.support-note{font-size:12px;line-height:1.5;color:var(--muted);padding:10px 0}.sheet{position:fixed;inset:auto 0 0;width:min(100%,440px);max-height:85dvh;overflow:auto;margin:auto auto 0;border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-panel) var(--radius-panel) 0 0;background:var(--surface);color:var(--ink);padding:16px 24px max(28px,env(safe-area-inset-bottom));box-shadow:0 -10px 70px #0005}.sheet::backdrop{background:#0008;backdrop-filter:blur(5px)}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.sheet-heading h2{font-family:var(--font-serif);font-style:italic;font-size:32px;font-weight:400;letter-spacing:-.03em}.sheet-heading .icon-button{margin-right:-10px}.help-list{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:18px;font-size:12px;line-height:1.5;color:var(--muted)}.help-list li{display:flex;align-items:center;gap:14px}.help-list svg{color:var(--accent);flex-shrink:0}.dialog-actions{display:flex;gap:10px;margin-top:8px}.dialog-actions>*{flex:1}.spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(min-width:800px){.app-shell{padding-inline:36px;padding-bottom:24px}.masthead{height:72px;margin-bottom:20px}.masthead-actions{gap:8px}.app-shell:not(.output-mode) .workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:32px}.editor-tray{padding-top:6px}.preview-stage{border-radius:var(--radius-panel)}.photos{padding:6px 0 12px}.control-panel{margin-top:16px;padding-inline:16px}.motion-controls{grid-template-columns:1fr;gap:0}.sheet{inset:0;margin:auto;height:max-content;border-radius:var(--radius-panel);border-bottom:1px solid var(--line)}}@media(max-width:799px){.app-shell:not(.output-mode){padding-bottom:calc(var(--tool-tabs-height) + 12px)}.grain-tabs{position:fixed;inset:auto 0 0;z-index:5;margin:0}.controls .control-panel{position:fixed;left:0;right:0;bottom:var(--tool-tabs-height);z-index:5;max-height:min(60dvh,calc(100dvh - var(--tool-tabs-height) - 88px));overflow:auto;margin:0;padding-inline:max(var(--page-x),env(safe-area-inset-left)) max(var(--page-x),env(safe-area-inset-right));border-bottom:0;border-radius:var(--radius-panel) var(--radius-panel) 0 0}.app-shell:not(.output-mode) .toast{top:calc(env(safe-area-inset-top) + 68px);bottom:auto}.photo-actions{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:4;margin:0;box-shadow:var(--shadow-raised)}}@media(max-width:374px){.app-shell{padding-inline:12px}.photo-strip{gap:6px}.masthead-actions{gap:0}.format-options button{gap:7px}}@media(max-height:700px)and (max-width:799px){.app-shell{min-height:620px}.photo-strip{max-width:330px;margin-inline:auto}.control-panel{margin-top:4px}}@media(prefers-reduced-motion:reduce){button,a{transition:none}.spinner,.preview-loading,.toast{animation:none}}
