/* default font renders via @font-face (works on file://). To EXPORT a
   self-contained HTML, also click "Load font" so the bytes get embedded. */
@font-face{ font-family:'AntonSC'; src:url('../Fonts/AntonSC-Regular.ttf') format('truetype'); font-display:block; }
:root{--bg:#181a1f;--panel:#22262e;--line:#333a45;--txt:#e6e9ef;--accent:#59d38a;--accent2:#5aa0ff;--key:#ffcf4d;}
*{box-sizing:border-box;}
html,body{margin:0;height:100%;background:var(--bg);color:var(--txt);font:13px/1.4 system-ui,sans-serif;overflow:hidden;}
.app{display:grid;grid-template-rows:auto 1fr auto;height:100%;}

/* ---- top toolbar ---- */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line);}
.toolbar label{display:flex;align-items:center;gap:5px;color:#aeb6c2;}
.toolbar input[type=text]{width:150px;}
.toolbar input[type=number]{width:62px;}
input,button,select{background:#161a20;color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:5px 7px;}
button{cursor:pointer;background:#2c313b;}
button:hover{background:#39404c;}
button.on{background:var(--accent);color:#04240f;border-color:var(--accent);}
.sep{width:1px;height:24px;background:var(--line);}
.file-btn{position:relative;overflow:hidden;display:inline-block;}
.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;}

/* ---- middle: stage + inspector ---- */
.mid{display:grid;grid-template-columns:1fr 250px;min-height:0;}
.stagewrap{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
/* checkerboard is its OWN backdrop layer, independent of the project canvas */
.grid{position:absolute;inset:0;z-index:0;pointer-events:none;
   background:repeating-conic-gradient(#2a2f37 0% 25%,#232830 0% 50%) 50%/26px 26px;}
.stage{position:relative;z-index:1;flex:0 0 auto;transform-origin:center center;
   box-shadow:0 0 0 1px #000,0 12px 40px rgba(0,0,0,.6);background:#0d0f13;}
/* PNG sequence sits IN FRONT of the text so the overlay reads on top (text behind, seen through it) */
#onion{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.5;image-rendering:auto;z-index:3;}
.letter{position:absolute;z-index:2;color:var(--accent);line-height:1;white-space:pre;user-select:none;cursor:grab;
   transform-origin:center center;will-change:transform,opacity;}
.letter.sel{outline:1px dashed var(--accent2);outline-offset:2px;}
.letter.dragging{cursor:grabbing;}
/* ghost: opacity-off layer shown as a faint locatable box while editing */
.letter.ghost{ color:transparent!important; background:rgba(120,170,255,.16);
   outline:1.5px dashed rgba(140,180,255,.55); outline-offset:0; }
.letter.ghost.sel{ background:rgba(120,170,255,.3); outline-color:var(--accent2); }

/* Aux diagnostic strips: editor-only confirmation that aux1/2/3 are animating.
   Derived live from keyframe values — never stored, never exported. */
#auxLayer{position:absolute;inset:0;z-index:5;pointer-events:none;}
#auxLayer.off{display:none;}
.auxstrip{position:absolute;transform:translate(-50%,0);width:46px;display:flex;flex-direction:column;gap:2px;}
.auxbar{position:relative;height:4px;border-radius:2px;background:rgba(255,255,255,.12);overflow:hidden;}
.auxbar>i{position:absolute;left:0;top:0;bottom:0;width:0;}
.auxbar.a1>i{background:#4dd0e1;}   /* Aux 1 = cyan  */
.auxbar.a2>i{background:#e14d9d;}   /* Aux 2 = magenta */
.auxbar.a3>i{background:#e1c74d;}   /* Aux 3 = amber */

.inspector{background:var(--panel);border-left:1px solid var(--line);padding:10px;overflow:auto;}
.inspector h3{margin:4px 0 8px;font-size:12px;color:#8b94a3;text-transform:uppercase;letter-spacing:.5px;}
.row{display:flex;align-items:center;gap:6px;margin:5px 0;}
.row label{width:56px;color:#aeb6c2;}
.row input[type=number]{flex:1;}
.chips{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0;}
.chip{padding:3px 6px;border:1px solid var(--line);border-radius:5px;cursor:pointer;background:#161a20;font-size:12px;}
.chip.sel{background:var(--accent2);color:#022;border-color:var(--accent2);}
.hint{color:#78818f;font-size:11px;margin-top:8px;line-height:1.55;}
.hint b{color:#aeb6c2;}

/* ---- bottom: transport + timeline ---- */
.bottom{background:var(--panel);border-top:1px solid var(--line);padding:8px 12px;}
.transport{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.transport input[type=range]{flex:1;accent-color:var(--accent2);}
.readout{font-variant-numeric:tabular-nums;color:var(--accent2);min-width:120px;text-align:right;}

.tl-wrap{display:flex;height:210px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#12151b;}
.tl-labels{flex:0 0 50px;background:#161b22;border-right:1px solid #2a3240;}
.tl-labels .sp{height:22px;border-bottom:1px solid #2a3240;}
.tl-labels .ll{height:20px;line-height:20px;padding-left:7px;font-size:10px;color:#9aa4b2;border-bottom:1px solid #20252e;}
.tl{position:relative;flex:1;overflow-x:auto;overflow-y:hidden;}
.tl-inner{position:relative;height:100%;min-width:100%;}
.tl-ruler{position:absolute;top:0;left:0;right:0;height:22px;border-bottom:1px solid #2a3240;cursor:col-resize;}
.tick{position:absolute;bottom:0;width:1px;background:#3a4453;}
.tick.major{background:#5f6c7e;}
.tick-label{position:absolute;top:3px;font-size:9px;color:#7d8794;pointer-events:none;font-variant-numeric:tabular-nums;transform:translateX(3px);}
.tl-tracks{position:absolute;left:0;right:0;top:22px;bottom:0;}
.tl-row{position:absolute;left:0;right:0;height:20px;border-bottom:1px solid #20252e;}
.tl-row:nth-child(odd){background:rgba(255,255,255,.015);}
.kf{position:absolute;top:5px;width:10px;height:10px;background:var(--key);border:1px solid #6b5300;
   transform:translateX(-50%) rotate(45deg);cursor:grab;}
.kf:hover{background:#fff;}
.kf.selk{background:#ff7bd0;border-color:#a02e70;box-shadow:0 0 0 2px rgba(255,123,208,.35);}
.playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);z-index:8;pointer-events:none;}
.playhead::before{content:'';position:absolute;top:0;left:-4px;border:5px solid transparent;border-top-color:var(--accent);}
.marquee{position:absolute;z-index:7;border:1px solid var(--accent2);background:rgba(90,160,255,.15);pointer-events:none;}
