:root{--bg:#0e1013;--p1:#15181d;--p2:#1b1f25;--p3:#232830;--ln:#2a2f37;--ln2:#20242b;--tx:#e6e8eb;--tx2:#b4bac4;--mu:#8a919c;--ac:#4c8dff;--ac2:#2f6fe0;--ok:#3fb68b;--ph:#f2b441;
--num:"Inter","SF Pro Text","Segoe UI",system-ui,sans-serif}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg)}
body{color:var(--tx);font:13px/1.6 "Hiragino Sans","Noto Sans JP","Noto Sans CJK JP","Yu Gothic UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
svg.i{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
button,select,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.studio{min-height:100vh;display:flex;flex-direction:column}
.bar{height:48px;display:flex;align-items:center;gap:10px;padding:0 16px;background:var(--p1);border-bottom:1px solid var(--ln)}
.logo{width:26px;height:26px;border-radius:6px;background:var(--ac2);display:grid;place-items:center;color:#fff}.logo svg{width:15px;height:15px}
.bar h1{font-size:13.5px;margin:0;font-weight:700}
.proj{color:var(--mu);font-size:12px;padding-left:10px;border-left:1px solid var(--ln)}
.sp{flex:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--ln);background:var(--p3);font-size:12.5px;font-weight:600;color:var(--tx);transition:background .15s,border-color .15s;white-space:nowrap}
.btn:hover:not(:disabled){background:#2b313a;border-color:#363c46}
.btn.ghost{background:transparent}
.btn.pri{background:var(--ac2);border-color:var(--ac2);color:#fff}
.btn.pri:hover:not(:disabled){background:#3b7cf0}
.btn.pri:disabled{background:#1f3a66;border-color:#1f3a66;color:#c9d6ee}
.btn.wide{width:100%;height:36px}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;flex:1;min-height:0}
.viewer-panel{display:flex;flex-direction:column;border-right:1px solid var(--ln);min-width:0}
.panel-title{display:flex;align-items:center;gap:10px;height:40px;padding:0 14px;border-bottom:1px solid var(--ln2);background:var(--p1)}
.panel-title h3{margin:0;font-size:12.5px;font-weight:700;letter-spacing:.02em}
.chip{font:600 11.5px var(--num);color:var(--tx2);background:var(--p3);border:1px solid var(--ln);border-radius:5px;padding:1px 7px}
.preview-surface{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:430px;padding:20px;background:#090a0c;background-image:linear-gradient(45deg,#0c0d10 25%,transparent 25%,transparent 75%,#0c0d10 75%),linear-gradient(45deg,#0c0d10 25%,transparent 25%,transparent 75%,#0c0d10 75%);background-size:16px 16px;background-position:0 0,8px 8px;overflow:hidden}
.preview-surface canvas{display:block;width:100%;max-width:820px;max-height:440px;aspect-ratio:16/9;border-radius:2px;box-shadow:0 0 0 1px #262a31,0 10px 30px rgba(0,0,0,.45)}
.preview-surface.portrait canvas{width:auto;height:420px;aspect-ratio:9/16}
.preview-surface.square canvas{width:400px;aspect-ratio:1}
.preview-surface.feed canvas{width:330px;aspect-ratio:4/5}
.sample-tag{position:absolute;left:12px;top:12px;font-size:11px;color:var(--tx2);background:rgba(21,24,29,.9);border:1px solid var(--ln);border-radius:5px;padding:1px 7px}
.transport{display:flex;align-items:center;gap:12px;height:48px;padding:0 14px;border-top:1px solid var(--ln);background:var(--p1)}
.play-button{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px 0 10px;border-radius:6px;border:1px solid var(--ln);background:var(--p3);font-size:12.5px;font-weight:600}
.play-button:hover{background:#2b313a}
#play-icon{display:none}.play-button .ipa{display:none}.play-button[aria-pressed="true"] .ip{display:none}.play-button[aria-pressed="true"] .ipa{display:block}
.tc{font:600 12.5px var(--num);font-variant-numeric:tabular-nums;color:var(--tx);background:#0b0c0f;border:1px solid var(--ln);border-radius:5px;padding:4px 8px;white-space:nowrap}
#seek{flex:1;-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:linear-gradient(var(--ac),var(--ac)) 0/var(--p,0%) 100% no-repeat,#2c323b;cursor:pointer}
#seek::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(76,141,255,.35)}
#seek::-moz-range-thumb{width:13px;height:13px;border:0;border-radius:50%;background:#fff}
.mute{display:inline-flex;align-items:center;gap:5px;color:var(--mu);font-size:11.5px;white-space:nowrap}
.preview-description{margin:0;padding:9px 14px;font-size:12px;color:var(--tx2);background:var(--p1);border-top:1px solid var(--ln2)}
.edit-panel{background:var(--p1);overflow:auto}
.insp-h{height:40px;display:flex;align-items:center;padding:0 16px;font-weight:700;font-size:12.5px;border-bottom:1px solid var(--ln2)}
.control-section{padding:16px;border-bottom:1px solid var(--ln2)}
.step-label{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--mu)}
.step-label b{font:700 10.5px var(--num);color:var(--tx2);background:var(--p3);border:1px solid var(--ln);border-radius:4px;padding:0 5px}
.control-section h3{display:flex;align-items:center;gap:8px;margin:7px 0 6px;font-size:14px}
.control-section h3 svg{color:var(--ac)}
.control-section p{margin:0 0 10px;font-size:12.5px;color:var(--tx2);line-height:1.7}
.control-result{font:600 12px var(--num)!important;color:var(--tx)!important;margin:8px 0 0!important;display:flex;align-items:center;gap:6px}
.control-result::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok)}
label{display:block;font-size:11.5px;color:var(--mu);margin:0 0 5px}
.sel{position:relative;margin-bottom:10px}
.sel::after{content:"";position:absolute;right:11px;top:50%;width:6px;height:6px;border-right:1.6px solid var(--mu);border-bottom:1.6px solid var(--mu);transform:translateY(-70%) rotate(45deg);pointer-events:none}
select{width:100%;height:34px;-webkit-appearance:none;appearance:none;background:var(--p2);border:1px solid var(--ln);border-radius:6px;padding:0 30px 0 10px;font-size:12.5px;cursor:pointer}
select:hover{border-color:#39404b}
.row2{display:flex;gap:8px}
.ai-status{margin:10px 0!important;padding:8px 10px;border-radius:6px;background:var(--p2);border:1px solid var(--ln2);font-size:12px!important}
.ai-stages{list-style:none;margin:0;padding:0;border:1px solid var(--ln2);border-radius:6px;overflow:hidden}
.ai-stages li{display:flex;align-items:center;gap:10px;padding:7px 10px;font-size:12.5px;color:var(--tx2);background:var(--p2)}
.ai-stages li+li{border-top:1px solid var(--ln2)}
.ai-stages li>span{width:18px;height:18px;border-radius:50%;border:1.5px solid #3a414c;display:grid;place-items:center;font:700 9px var(--num);color:var(--mu);flex:none}
.ai-stages li[data-state="active"]{background:#17253d;color:#fff}
.ai-stages li[data-state="active"]>span{border-color:var(--ac);color:var(--ac)}
.ai-stages li[data-state="complete"]{color:var(--tx)}
.ai-stages li[data-state="complete"]>span{border-color:var(--ok);background:var(--ok);color:transparent;position:relative}
.ai-stages li[data-state="complete"]>span::after{content:"";position:absolute;width:7px;height:4px;border-left:1.6px solid #fff;border-bottom:1.6px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.ai-stages[data-state="stopped"] li[data-state="active"],.ai-stages[data-state="manual"] li[data-state="active"]{background:var(--p2);color:var(--tx2)}
.ai-result{margin-top:10px;padding:10px 12px;border:1px solid #23493c;background:#11221c;border-radius:6px}
.ai-result h4{margin:0 0 2px;font-size:12.5px}
.ai-result p{margin:0 0 6px!important;font:600 12px var(--num)!important;color:#8fd9b8!important}
.ai-result ul{margin:0;padding-left:16px;font-size:12px;color:var(--tx2)}
.ai-result li{margin:2px 0}
.caption-details{margin-top:10px}
.caption-details summary{list-style:none;display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--tx2);cursor:pointer;padding:4px 0}
.caption-details summary::-webkit-details-marker{display:none}
.caption-details[open] summary svg{transform:rotate(90deg)}
.caption-details label{margin-top:6px}
.ratios{display:flex;gap:8px;align-items:flex-end;margin:2px 0 10px}
.ratios i{display:block;border:1.5px solid #3a414c;border-radius:2px}
.ratios i[data-r=landscape]{width:32px;height:18px}.ratios i[data-r=portrait]{width:14px;height:25px}.ratios i[data-r=square]{width:21px;height:21px}.ratios i[data-r=feed]{width:18px;height:22px}
.ratios i.on{border-color:var(--ac);background:rgba(76,141,255,.14)}
/* timeline */
.timeline-panel{border-top:1px solid var(--ln);background:var(--p1)}
.tl-hint{margin-left:auto;color:var(--mu);font-size:11.5px}
.tl{display:grid;grid-template-columns:132px 1fr;background:var(--p2)}
.heads{border-right:1px solid var(--ln);background:var(--p1)}
.hd{height:84px;display:flex;align-items:center;gap:7px;padding:0 10px;border-bottom:1px solid var(--ln2);color:var(--mu);font-size:11.5px}
.hd.rul{height:30px}
.hd.sm{height:40px}
.hd b{font:700 11px var(--num);color:var(--tx);background:var(--p3);border:1px solid var(--ln);border-radius:4px;padding:0 5px}
.hd span{flex:1}
.hd svg{width:13px;height:13px}
.lanes{position:relative;padding:0 14px;overflow:hidden}
.timeline-ruler{position:relative;height:30px;border-bottom:1px solid var(--ln2);font:10.5px var(--num);color:var(--mu)}
.timeline-ruler>span{display:none}
.ticks{position:absolute;inset:0}
.ticks i{position:absolute;bottom:0;width:1px;background:#3a404a;height:5px}
.ticks i.mj{height:10px;background:#59606b}
.ticks b{position:absolute;top:3px;transform:translateX(-50%);font-weight:500}
.timeline{display:flex;gap:2px;height:84px;padding:8px 0;border-bottom:1px solid var(--ln2)}
.clip{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;justify-content:space-between;border-radius:5px;padding:6px 8px;font-size:12px;font-weight:600;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.clip>span,.clip>small{position:relative;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.clip small{font:600 11px var(--num);opacity:.85;align-self:flex-start;background:rgba(0,0,0,.35);border-radius:3px;padding:0 4px}
.clip-city{background:#21484f}
.clip-park{background:#405a37}
.clip-city::before,.clip-park::before{content:"";position:absolute;inset:22px 0 0;opacity:.95;
  background:repeating-linear-gradient(90deg,transparent 0 58px,rgba(0,0,0,.55) 58px 60px),var(--strip)}
.clip-city{--strip:linear-gradient(180deg,#254253 0%,#527975 45%,#3f656a 70%,#29424a 100%)}
.clip-park{--strip:linear-gradient(180deg,#455c55 0%,#87966f 45%,#617e61 70%,#3e6255 100%)}
.clip-city::after,.clip-park::after{content:"";position:absolute;inset:0;border-top:3px solid #62b6c4;border-radius:5px;pointer-events:none}
.clip-park::after{border-top-color:#9cc36f}
.clip-gap{background:repeating-linear-gradient(135deg,#232830 0 6px,#1d2128 6px 12px);border:1px dashed #4a515c;color:var(--mu)}
.subtitle-track{display:flex;gap:2px;height:40px;padding:7px 0}
.subtitle-track span{flex:1;min-width:0;display:flex;align-items:center;padding:0 8px;font-size:11.5px;color:#f1e3bd;background:#5a4a24;border:1px solid #7a6633;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subtitle-track span.subtitle-gap{background:transparent;border:1px dashed #3a404a}
.timeline-panel .is-hidden{display:none}
.playhead{position:absolute;top:0;bottom:0;left:14px;width:0;pointer-events:none;z-index:3}
.playhead::before{content:"";position:absolute;top:0;bottom:0;left:-.5px;width:1px;background:var(--ph)}
.playhead i{position:absolute;top:0;left:-6px;width:12px;height:12px;background:var(--ph);clip-path:polygon(0 0,100% 0,100% 55%,50% 100%,0 55%)}
.experience-note{margin:0;padding:10px 16px;font-size:11.5px;color:var(--mu);border-top:1px solid var(--ln2);background:var(--bg)}
@media(max-width:900px){
  .workspace{grid-template-columns:1fr}.viewer-panel{border-right:0}
  .edit-panel{border-top:1px solid var(--ln)}
}
@media(max-width:640px){
  .bar{padding:0 12px}.proj{display:none}
  .btn.ghost{padding:0 9px;font-size:0;gap:0}.btn.ghost svg{width:16px;height:16px}
  .preview-surface{min-height:240px;padding:12px}
  .preview-surface canvas{max-height:300px}
  .preview-surface.portrait canvas{height:300px}.preview-surface.square canvas{width:260px}.preview-surface.feed canvas{width:220px}
  .transport{gap:8px;padding:0 10px}.mute{display:none}
  .tl{grid-template-columns:64px 1fr}.hd span,.hd svg{display:none}
  .tl-hint{display:none}
  .lanes{padding:0 8px}
  .clip{padding:5px 6px;font-size:11px}
}
@media(min-width:901px){
  .studio{height:100vh;min-height:640px}
  .workspace{overflow:hidden}
  .viewer-panel{min-height:0}
  .preview-surface{min-height:0}
  .preview-surface canvas,.preview-surface.portrait canvas,.preview-surface.square canvas,.preview-surface.feed canvas{width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:auto}
  .edit-panel{min-height:0}
}
@media(max-width:900px){
  .workspace{display:contents}
  .studio>.bar{order:0}.viewer-panel{order:1}.timeline-panel{order:2}.edit-panel{order:3}.experience-note{order:4}
}

/* iframe埋め込み時（embedded-height.js）は100vhが循環するため固定高さにする */
.is-embedded .studio{min-height:0}
@media(min-width:901px){.is-embedded .studio{height:860px}}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
