:root{--accent:#ef744b;--bg:#182124;--text:#eeeae1;--line:#6f817838}*{box-sizing:border-box}html,body,#viewer{height:100%;width:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);font:13px/1.4 'Segoe UI',Arial,sans-serif}button,input{font:inherit}button{cursor:pointer;color:inherit;background:#273336b8;border:1px solid #a5b5ab33;padding:8px 12px;border-radius:3px;min-height:34px}button:hover{background:#42534d}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.topline{position:absolute;inset:18px 18px auto;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:9px;letter-spacing:1.6px;font-weight:700;pointer-events:none}.topline>div{display:flex;align-items:center;gap:9px}.live-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 15px #ef744b66}.view-actions{pointer-events:auto;letter-spacing:0;font-weight:400}.view-actions button{font-size:10px;padding:6px 9px}.view-actions button:last-child{font-size:20px;line-height:1;padding:5px 9px}.interaction-hint{position:absolute;left:18px;top:66px;font-size:10px;color:#c0c9c2;pointer-events:none;display:flex;align-items:center;gap:8px;transition:opacity .4s}.interaction-hint>span{font-size:20px;line-height:1;color:var(--accent)}.interaction-hint i{font-style:normal;color:#6f8177}.controls{position:absolute;inset:auto 0 0;padding:18px 20px 13px;background:linear-gradient(#172123cf,#10181bef 25%);border-top:1px solid #7f97813b;backdrop-filter:blur(12px)}.stage-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.stage-heading>div{display:flex;align-items:baseline;gap:15px}.stage-heading>div>span{font-size:8px;letter-spacing:1.5px;color:#91a59b}.stage-heading strong{font-size:20px;font-weight:500;letter-spacing:-.3px}.cut-label{display:flex;align-items:center;gap:6px;font-size:10px;color:#bac6bb}.cut-label input{accent-color:var(--accent);width:13px;height:13px}.stages{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.stages button{min-width:0;padding:8px 3px;border:1px solid #82958732;background:#35433e55;font-size:10px;line-height:1.2}.stages button small{display:block;font-size:8px;letter-spacing:1px;color:#8c9f94;margin-bottom:5px}.stages button.active{color:var(--bg);background:var(--accent);border-color:var(--accent);font-weight:600}.stages button.active small{color:#563120}.stages button:hover{border-color:var(--accent)}.playback{display:flex;align-items:center;gap:14px;margin-top:13px}#play{font-size:10px;white-space:nowrap;border:0;background:#e4ebe1;color:#172123;min-width:102px;padding:8px 12px}#play:hover{background:#fff}#play:disabled{opacity:.4;cursor:default}#timeline{appearance:none;flex:1;min-width:0;height:3px;border-radius:0;background:linear-gradient(to right,var(--accent) var(--played,80%),#64796c55 var(--played,80%));cursor:pointer;margin:0}#timeline::-webkit-slider-thumb{appearance:none;width:12px;height:12px;background:#eeeae1;border-radius:50%;border:2px solid var(--bg);box-shadow:0 0 0 1px #a9bca9}#progress-label{font-size:9px;color:#a8baa9;font-variant-numeric:tabular-nums;min-width:24px}.model-note{font-size:8px;letter-spacing:.4px;color:#83958a;margin:12px 0 0}.loading{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;background:#182124;z-index:5}.loading strong{font-size:19px;font-weight:500}.loading>span:last-child{font-size:11px;color:#a9b9ad}.spinner{width:28px;height:28px;border:1px solid #98ad9b55;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.loading[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:460px){.topline{inset:14px 12px auto;font-size:8px;gap:8px;letter-spacing:1px}.view-actions{gap:4px!important}.view-actions button{padding:6px;font-size:9px}.view-actions button:last-child{font-size:17px}.interaction-hint{left:12px;top:61px;font-size:9px;gap:6px}.controls{padding:15px 12px 11px}.stages{gap:4px}.stages button{font-size:8px;padding:9px 1px}.stage-heading>div{gap:10px}.stage-heading>div>span{font-size:7px;letter-spacing:1px}.stage-heading strong{font-size:18px}.cut-label{font-size:9px}.playback{gap:11px}#play{font-size:9px;min-width:88px}.model-note{font-size:7px}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}.interaction-hint{transition:none}}
canvas{height:calc(100% - 190px)}
html[data-theme=molecule]{--bg:#102440;--line:#799ac54d}
html[data-theme=molecule] .controls{background:linear-gradient(#132b48d9,#0a1930f2 25%);border-color:#53739a}
html[data-theme=molecule] .loading{background:#102440}
html[data-theme=molecule] .stages button.active{background:#002e85;border-color:#6e9fed;color:#fff}
html[data-theme=molecule] .stages button.active small{color:#c4d7fc}

html[data-mode=hero] canvas{height:100%}
html[data-mode=hero] .interaction-hint{display:none}
html[data-mode=hero] .topline{inset:auto 4.5% 290px auto}
html[data-mode=hero] .topline>div:first-child{display:none}
html[data-mode=hero] .controls{left:auto;right:4.5%;bottom:77px;width:510px;border:1px solid #c1d5dc2b;background:#0b171fc9;padding:17px 18px 13px;backdrop-filter:blur(9px)}
html[data-mode=hero] .model-note{font-size:7px;margin-top:10px}
html[data-mode=hero][data-theme=molecule] .controls{background:#07162dce;border-color:#b5c9e72b}
@media(max-width:760px){html[data-mode=hero] .controls{bottom:48px}}
@media(max-width:760px){html[data-mode=hero] .topline{inset:auto 6% 214px auto}html[data-mode=hero] .topline #plan{display:none}html[data-mode=hero] .topline button{font-size:8px;min-height:27px;padding:5px 7px}html[data-mode=hero] .topline button:last-child{font-size:14px}html[data-mode=hero] .controls{left:4%;right:4%;bottom:48px;width:92%;padding:13px 12px 11px}html[data-mode=hero] .stage-heading{margin-bottom:11px}html[data-mode=hero] .stage-heading strong{font-size:17px}html[data-mode=hero] .stages button{padding:8px 1px;font-size:8px}html[data-mode=hero] .model-note{font-size:6px}html[data-mode=hero] .playback{margin-top:11px}}

