@font-face{font-family:Montserrat;src:url('/fonts/Montserrat.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:Caveat;src:url('/fonts/Caveat.ttf') format('truetype');font-weight:400 700;font-display:swap}
#caption{white-space:pre-wrap;line-height:1.12;touch-action:none;max-height:none}
.line-row{flex-wrap:wrap}
.line-row textarea{flex:1;min-width:0;resize:vertical;background:#1c2030;color:#fff;border:1px solid #5c537c;border-radius:10px;padding:10px;font:inherit;line-height:1.4}
.line-appearance-badge{display:inline-flex;align-items:center;margin:0 0 6px;padding:4px 8px;border:1px solid #bc9aff75;border-radius:99px;background:#6d47aa2e;color:#e4d2ff;font-size:11px;font-weight:700}
.caption-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;margin:10px 0 4px;border:1px solid #ffffff20;border-radius:14px;background:#10121e}
.caption-scope button{min-width:0;min-height:44px;padding:8px 6px;border:1px solid transparent;border-radius:10px;background:transparent;color:#bbb9cb;font:inherit;font-size:12px;font-weight:700;cursor:pointer;touch-action:manipulation;transition-property:background-color,color,border-color,transform;transition-duration:140ms}
.caption-scope button[aria-pressed=true]{background:#6945ac;border-color:#ab8ee0;color:#fff;box-shadow:0 2px 8px #0005}
.caption-scope button:active{transform:scale(.97)}
.caption-scope button:focus-visible{outline:2px solid #e4d4ff;outline-offset:2px}
.caption-scope-hint{min-height:18px;margin:4px 0 12px;text-wrap:pretty}
.word-tools{flex:0 0 100%;min-width:0;font-size:12px;padding:8px 0}
.word-tools small{display:block;margin:8px 0;color:#c5c7db;line-height:1.4}
.word-tools button{display:inline-block;margin:3px;padding:7px;border:1px solid #666078;border-radius:9px;background:#222433;color:white}
.word-tools button[aria-pressed=true]{border-color:#f7ad50;background:#684116}
#accent-color{width:100%;height:36px}
.preview-workspace{min-height:0;padding:0;border:0;background:none}
.preview-workspace #frame{position:relative;overflow:hidden;border-radius:14px}
.preview-workspace #frame .tabs{position:absolute;inset:auto 5px 0;display:flex;justify-content:flex-start;align-items:center;gap:3px;padding:4px;margin:0;overflow-x:auto;pointer-events:auto;border-radius:12px;background:#101019b8;backdrop-filter:blur(12px);scrollbar-width:none;z-index:6}
.preview-workspace #frame .tabs button{flex:0 0 56px;width:56px;min-height:44px;padding:3px 1px;font-size:9px;border:0;border-radius:8px;background:transparent;white-space:nowrap}
.preview-workspace #frame .tabs button span{font-size:15px}
.preview-workspace #frame .tabs button.active{background:#7653bdc9;box-shadow:none}
.player-top{position:absolute;top:7px;left:7px;right:7px;display:flex;justify-content:space-between;pointer-events:none;z-index:7}
.player-top button{pointer-events:auto;border:1px solid #ffffff30;border-radius:20px;background:#13141bc9;color:#fff;font-size:11px;padding:7px 11px;min-height:36px}
#frame.tools-hidden .tabs{visibility:hidden;pointer-events:none}
.timeline-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#bcb8d2;margin:12px 0 6px;font-variant-numeric:tabular-nums}
.timeline-heading output{font-size:13px;color:#fff}
.filmstrip-shell{position:relative;height:54px;background:#161823;border-radius:8px;overflow:hidden;border:1px solid #514966}
#filmstrip{height:54px;width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain;cursor:grab}
#filmstrip::-webkit-scrollbar{display:none}
#filmstrip:active{cursor:grabbing}
#filmstrip:focus-visible{outline:2px solid #b79aff;outline-offset:-3px}
#filmstrip-track{position:relative;height:48px;margin:2px 0;background:repeating-linear-gradient(90deg,transparent 0 71px,#ffffff12 71px 72px)}
.filmstrip-start-zone{position:absolute;top:0;left:0;height:48px;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-end;padding-right:18px;background:linear-gradient(90deg,#171824,#2a2338);border-right:1px solid #aa8acf5c;color:#b9aecb;font-size:9px;font-weight:750;letter-spacing:.14em;pointer-events:none;user-select:none}
#filmstrip-track canvas{position:absolute;top:0;width:72px;height:48px;pointer-events:none;background-size:cover;background-position:center}
.filmstrip-playhead{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;box-shadow:0 0 0 1px #0005;pointer-events:none}
.timeline-zoom{display:flex!important;align-items:center;gap:9px;font-size:11px!important;color:#bcb8d2;margin:9px 0!important}
.timeline-zoom input{flex:1;min-width:0}
#timeline-detail{font-size:10px;margin:3px 0}
.timeline-heading,.filmstrip-shell,.timeline-zoom{width:100%;min-width:0;box-sizing:border-box}
.preview-workspace #frame .tabs button{min-width:56px}
.filmstrip-selection{position:absolute;top:0;height:48px;box-sizing:border-box;border-top:3px solid #bb91ff;border-bottom:3px solid #bb91ff;pointer-events:none;z-index:2}
#filmstrip-track .filmstrip-handle{position:absolute;top:0;transform:translateX(-50%);width:24px;height:48px;min-width:24px;padding:0;border:0;border-radius:5px;background:#b990ff;color:#171022;font-size:24px;touch-action:none;z-index:3;cursor:ew-resize}
.filmstrip-handle:focus-visible{outline:2px solid #fff;outline-offset:-3px}

/* The creation modes belong to the library, not to an open editing canvas. */
body.editor #studio-nav,body.asset-project #studio-nav{display:none}
body.editor header,body.asset-project header{margin-bottom:9px}
body.editor .stage-heading{display:none}
body.editor .edit-navigation{margin-bottom:3px}
body.editor .editor-help{font-size:11px;text-align:left;color:#989bad;margin:1px 0 5px}
body.start .start-hero,body.asset-mode:not(.asset-project) .start-hero{padding:11px 2px 9px}
body.start .start-icon,body.asset-mode:not(.asset-project) .start-icon{width:45px;height:45px;border-radius:14px;font-size:21px;margin-bottom:12px}
body.start .start-hero h1,body.asset-mode:not(.asset-project) .start-hero h1{font-size:clamp(25px,7vw,34px);margin:7px 0 8px}
body.start .start-hero p,body.asset-mode:not(.asset-project) .start-hero p{font-size:14px;line-height:1.42}
body.start .upload-card,body.asset-mode:not(.asset-project) .upload-card{min-height:126px;margin-top:14px}
body.start #recent-projects{margin:12px 0}
body.start .generate-card,body.asset-mode:not(.asset-project) .generate-card{margin:15px 0;padding:13px 15px}
.generate-card summary{font-size:14px;font-weight:750;cursor:pointer;list-style:none}
.generate-card summary::-webkit-details-marker{display:none}
.generate-card summary::after{content:'＋';float:right;font-size:18px;line-height:1}
.generate-card[open] summary::after{content:'−'}
.generate-card summary:focus-visible{outline:2px solid #bfa1ff;outline-offset:5px}
body.editor #frame{width:min(calc(100vw - 32px),460px)}
#reference-preview-banner{position:static;align-self:center;max-width:100%;min-height:44px;margin:5px 0 0;padding:8px 14px;border:1px solid #b69cff88;border-radius:12px;background:#281b49e8;color:#fff;font-size:11px;font-weight:700;line-height:1.2;text-align:center;text-wrap:balance;cursor:pointer;touch-action:manipulation;transition-property:background-color,border-color,transform;transition-duration:140ms}
#reference-preview-banner:hover{background:#39265d;border-color:#c2abff}
#reference-preview-banner:active{transform:scale(.98)}
#reference-preview-banner:focus-visible{outline:2px solid #e4d4ff;outline-offset:2px}
#reference-tune{padding:8px 0 4px}
#reference-tune label{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
#reference-tune input{display:block;width:100%;margin:8px 0 4px}
#reference-tune .hint{margin:8px 0;color:#aeb1c5}
#reference-preview-on-video,#reference-preview-stop,#reference-apply{display:block;width:100%;margin:8px 0;min-height:44px}
#reference-preview-on-video{background:#3b2c69;border-color:#ad87ff}
#reference-source{margin:10px 0;padding:9px 11px;border:1px solid #514568;border-radius:12px;background:#191725}
#reference-source>summary{cursor:pointer;color:#d7c8ff;font-size:13px;font-weight:750}
#reference-source>summary:focus-visible{outline:2px solid #bfa1ff;outline-offset:3px}
#reference-source[open]>summary{margin-bottom:10px}

/* Compact, consistent controls for a phone-sized editing canvas. */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{display:block;flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
#i-video path{fill:currentColor;stroke:none}
.start-icon .ui-icon{width:26px;height:26px;filter:drop-shadow(0 2px 4px #150d3544)}
body.editor #frame{border-color:#655d7e;box-shadow:0 12px 30px #0008,0 0 0 1px #ffffff0b}
.preview-workspace #frame .tabs{gap:3px;padding:3px;background:#10111cf2;border:1px solid #ffffff2b;box-shadow:0 4px 20px #0008;backdrop-filter:none;-webkit-backdrop-filter:none;overscroll-behavior-x:contain}
.preview-workspace #frame .tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:0 0 57px;width:57px;min-width:57px;min-height:45px;padding:4px 2px;border:1px solid transparent;border-radius:9px;background:transparent;color:#bfc1d4;font-size:9px;font-weight:650;line-height:1.05;text-shadow:none;touch-action:manipulation;transition-property:background-color,color,border-color,transform;transition-duration:140ms;transition-timing-function:ease-out}
.preview-workspace #frame .tabs button .ui-icon{width:19px;height:19px}
.preview-workspace #frame .tabs button span{font-size:9px;line-height:1.05}
.preview-workspace #frame .tabs button.active{background:#6744aa;border-color:#a889e2;color:#fff;box-shadow:inset 0 1px #ffffff24}
.preview-workspace #frame .tabs button:active{transform:scale(.96)}
.preview-workspace #frame .tabs button:focus-visible,.edit-navigation button:focus-visible,#studio-nav button:focus-visible,.secondary:focus-visible{outline:2px solid #e4d4ff;outline-offset:2px}
.edit-navigation button{min-height:44px;border:1px solid #ffffff1b;background:#171925;color:#ebe8f5;font-size:11px;font-weight:650;transition-property:background-color,border-color,transform;transition-duration:140ms}
.edit-navigation button:not(:disabled):active{transform:scale(.97);background:#302644}
.edit-navigation button:disabled{opacity:.42}
#studio-nav{border-color:#ffffff20;background:#171924;box-shadow:inset 0 1px #ffffff0b}
#studio-nav button{min-height:44px;transition-property:background-color,color,transform;transition-duration:140ms}
#studio-nav button.active{background:#6844aa;box-shadow:0 2px 10px #0004}
.panel{border-top:1px solid #ffffff14}
.panel>details,.panel>details#reference-card{border:1px solid #ffffff1b;border-radius:13px;background:#171925;padding:12px;margin:8px 0 14px}
.panel>details>summary{cursor:pointer;font-weight:700;min-height:22px}
.panel>details>summary:focus-visible{outline:2px solid #e4d4ff;outline-offset:3px}
.secondary{min-height:44px;font-weight:700;transition-property:background-color,border-color,transform;transition-duration:140ms}
.secondary:not(:disabled):active{transform:scale(.98);background:#352d50}
.stage-heading,.timeline-heading,.timeline-zoom,.source-times,.source-duration{font-variant-numeric:tabular-nums}
.upload-card{transition-property:border-color,background-color,transform;transition-duration:150ms}
.upload-card:active{transform:scale(.99);border-color:#c4a7fa}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #bd9afa;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.preview-workspace #frame .tabs button,.edit-navigation button,#studio-nav button,.secondary,.upload-card,#reference-preview-banner{transition:none}}

/* Keep compact controls visually quiet while making the actual touch areas usable. */
.player-top button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.timeline-zoom input[type=range],.panel input[type=range]{min-height:44px;margin-block:0}
.panel details>summary{min-height:44px;padding-block:12px;box-sizing:border-box}
.line-times{flex-basis:80px;gap:4px}
.line-time-label{display:flex;align-items:center;gap:3px;width:80px;margin:0;color:#aaa8bc;font-size:10px;font-weight:700;line-height:1.1}
.line-time-label input{flex:1;width:0;min-width:0;min-height:44px;padding:5px 2px;font-size:12px;font-variant-numeric:tabular-nums}
.line-row textarea{min-height:92px}
.line-remove{flex:0 0 44px;width:44px;min-width:44px;min-height:44px;align-self:stretch}
#lines{max-height:min(260px,36dvh)}
.word-tools button{min-height:40px;padding:9px 11px;touch-action:manipulation}
.word-tools input[type=color]{min-height:44px}
.panel input[type=file]{min-height:44px;max-width:100%}
.panel .tap-check{display:flex;align-items:center;gap:9px;min-height:44px;padding:4px 0;margin:7px 0;box-sizing:border-box;cursor:pointer;touch-action:manipulation}
.panel .tap-check input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:#a17be9}
#filmstrip-track .filmstrip-handle{width:44px;min-width:44px;background:transparent;color:transparent;font-size:0}
#filmstrip-track .filmstrip-handle::before{content:'⋮';position:absolute;inset:0 13px;display:grid;place-items:center;border-radius:6px;background:#b990ff;color:#171022;font-size:21px;box-shadow:0 1px 8px #0006;pointer-events:none}
body.source-selecting #create-project{position:static;bottom:auto;box-shadow:none;margin-top:4px}
.source-markers button{min-height:44px}
@media(max-width:440px){body.source-selecting #studio-nav{display:none}body.source-selecting #source-preview{height:clamp(180px,24dvh,230px)!important}}

/* iOS zooms focused controls below 16px, pushing fixed navigation off-screen.
   Keep manual pinch zoom enabled; change editable text, not buttons/sliders. */
@media(max-width:768px){
  body textarea,body select,
  body input:not([type]),
  body input:is([type=text],[type=search],[type=url],[type=email],[type=tel],[type=password],[type=number],[type=time],[type=date],[type=datetime-local]){
    font-size:16px!important;
  }
}
