:root{--ink:#eadfca;--muted:#9da5a4;--muted-bright:#c8c7bb;--page:#10171d;--panel:#19242b;--panel-solid:#19242b;--panel-raised:#223139;--line:#3e5055;--line-strong:#738078;--accent:#dc6533;--accent-bright:#f08b48;--accent-deep:#8a3725;--gold:#e4b75a;--red:#c34e45;--green:#69906a;--focus:#f08b48;--selection:#f08b4847;--ui-font:"Trebuchet MS", Verdana, sans-serif;--label-font:"Courier New", ui-monospace, monospace;--title-font:Georgia, "Times New Roman", serif;--surface-radius:0;--control-radius:2px;--surface-shadow:3px 3px 0 #090e12;--surface-texture:repeating-linear-gradient(135deg, #d0ddd306 0 1px, transparent 1px 6px)}*{box-sizing:border-box}html{background:#10171d;min-width:320px}body{min-height:100vh;color:var(--ink);font-family:var(--ui-font);background:#10171d;margin:0;font-size:14px;overflow-x:hidden}button,input,textarea,select{color:inherit;font:inherit}button,select,label{-webkit-tap-highlight-color:transparent}button{border:0}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button:disabled{cursor:default;opacity:.35}::selection{background:var(--selection)}.app-shell{min-height:100vh;color:var(--ink);background-color:var(--page);background-image:var(--surface-texture);font-family:var(--ui-font)}.topbar{z-index:50;border-bottom:1px solid var(--line);background:var(--panel-solid);grid-template-columns:210px minmax(180px,1fr) auto;align-items:center;height:62px;padding:0 18px 0 15px;display:grid;position:sticky;top:0}.brand{min-width:0;color:var(--accent-bright);align-items:center;gap:6px;display:flex}.brand-feather{object-fit:contain;width:46px;height:46px;image-rendering:pixelated;margin:-4px 0 -4px -5px}.brand-word{letter-spacing:.18em;font-family:var(--label-font);font-size:12px;font-weight:700}.document-heading{justify-content:center;align-items:center;gap:11px;min-width:0;display:flex}.document-title-input{width:min(310px,27vw);color:var(--ink);border-radius:var(--control-radius);text-align:center;text-overflow:ellipsis;font-family:var(--title-font);background:0 0;border:1px solid #0000;outline:0;padding:5px 8px;font-size:14px;font-weight:700;overflow:hidden}.document-title-input:hover,.document-title-input:focus{border-color:var(--line);background:var(--panel-raised)}.save-state{color:var(--muted);font-family:var(--label-font);flex:none;align-items:center;gap:6px;font-size:9px;display:inline-flex}.save-dot{border:1px solid color-mix(in srgb, var(--green), #000 25%);background:var(--green);border-radius:50%;width:6px;height:6px}.save-state.saving .save-dot{background:var(--gold)}.save-state.error .save-dot{background:var(--red)}.top-actions,.history-actions{align-items:center;display:flex}.top-actions{justify-content:flex-end;gap:6px}.history-actions{border-right:1px solid var(--line);gap:1px;margin-right:3px;padding-right:7px}.icon-button{cursor:pointer;width:31px;height:31px;color:var(--muted);border-radius:var(--control-radius);background:0 0;border:1px solid #0000;place-items:center;padding:0;display:inline-grid}.icon-button:not(:disabled):hover,.icon-button.active{color:var(--ink);border-color:var(--line);background:var(--panel-raised)}.icon-button.danger:hover{color:var(--red);border-color:var(--red)}.top-button,.text-button,.quiet-button{cursor:pointer;min-height:31px;color:var(--muted-bright);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--panel-raised);font-family:var(--label-font);justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:9px;font-weight:700;display:inline-flex}.top-button:hover,.text-button:hover,.quiet-button:hover{color:var(--ink);border-color:var(--line-strong)}.top-button.primary{color:var(--page);border-color:var(--accent-bright);background:var(--accent-bright)}.theme-select-wrap{height:31px;color:var(--muted);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--panel-raised);font-family:var(--label-font);text-transform:uppercase;align-items:center;gap:5px;padding:0 7px 0 9px;font-size:8px;display:flex}.theme-select{max-width:112px;color:var(--muted-bright);text-transform:none;background:0 0;border:0;outline:0;padding:0 14px 0 2px;font-size:9px}.theme-select option{color:var(--ink);background:var(--panel-solid)}.app-body{grid-template-columns:218px minmax(0,1fr);min-height:calc(100vh - 62px);display:grid}.sidebar{border-right:1px solid var(--line);background-color:var(--panel);background-image:var(--surface-texture);flex-direction:column;gap:22px;height:calc(100vh - 62px);padding:22px 12px 15px;display:flex;position:sticky;top:62px;overflow:hidden}.sidebar-section{min-height:0}.sidebar-section:first-child{flex:auto;overflow:hidden}.sidebar-section h2{color:var(--muted);letter-spacing:.09em;font-family:var(--label-font);text-transform:uppercase;justify-content:space-between;align-items:center;margin:0 6px 8px;font-size:9px;display:flex}.sidebar-section h2 span{color:color-mix(in srgb, var(--muted), transparent 25%);font-weight:400}.outline-list{scrollbar-color:var(--line) transparent;scrollbar-width:thin;flex-direction:column;gap:1px;max-height:calc(55vh - 74px);padding-right:2px;display:flex;overflow:auto}.outline-item{cursor:pointer;width:100%;min-width:0;color:var(--muted);text-align:left;text-overflow:ellipsis;white-space:nowrap;font-family:var(--label-font);background:0 0;border-left:2px solid #0000;padding:7px 8px;font-size:9px;overflow:hidden}.outline-item:hover{color:var(--ink);background:color-mix(in srgb, var(--panel-raised), transparent 30%)}.outline-item.active{color:var(--accent-bright);border-left-color:var(--accent);background:var(--panel-raised)}.sidebar-footer{grid-template-columns:1fr 1fr;gap:5px;margin-top:auto;display:grid}.sidebar-footer button{cursor:pointer;min-width:0;height:29px;color:var(--muted-bright);border:1px solid var(--line);border-radius:var(--control-radius);font-family:var(--label-font);background:0 0;justify-content:center;align-items:center;gap:3px;padding:0 6px;font-size:8px;display:inline-flex}.sidebar-footer button:hover{color:var(--ink);border-color:var(--line-strong);background:var(--panel-raised)}.workspace{min-width:0;padding:25px clamp(18px,4vw,64px) 120px}.script-workspace,.value-workspace,.raw-file-panel{width:min(100%,1020px);margin:0 auto}.entry-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:49px;display:flex}.entry-title{align-items:center;gap:11px;min-width:0;display:flex}.entry-title>span,.drawer-kicker{color:var(--accent-bright);letter-spacing:.1em;font-family:var(--label-font);text-transform:uppercase;font-size:8px;font-weight:700}.entry-title input{width:min(430px,48vw);min-width:110px;color:var(--ink);border-radius:var(--control-radius);letter-spacing:.035em;font-family:var(--label-font);background:0 0;border:1px solid #0000;outline:0;padding:6px 7px;font-size:13px;font-weight:700}.entry-title input:hover,.entry-title input:focus{border-color:var(--line);background:var(--panel)}.entry-actions{flex:none;align-items:center;gap:6px;display:flex}.quiet-button{min-height:27px;color:var(--muted);background:0 0}.script-summary{color:var(--muted);font-family:var(--label-font);margin:8px 0 5px;font-size:8px}.pages{flex-direction:column;display:flex}.dialog-page{grid-template-columns:42px minmax(0,1fr);width:100%;scroll-margin-top:82px;display:grid}.page-gutter{color:color-mix(in srgb, var(--muted), transparent 22%);flex-direction:column;align-items:center;gap:3px;padding-top:9px;display:flex}.page-number{font-family:var(--label-font);margin-bottom:3px;font-size:8px}.page-gutter button{cursor:pointer;width:27px;height:27px;color:var(--muted);border-radius:var(--control-radius);opacity:.35;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid}.dialog-page:hover .page-gutter button,.dialog-page.active .page-gutter button,.page-gutter button:focus-visible{opacity:1}.page-gutter button:hover,.page-gutter button.active{color:var(--accent-bright);border-color:var(--line);background:var(--panel)}.page-gutter button:last-child:hover{color:var(--red)}.drag-button{cursor:grab!important}.drag-button:active{cursor:grabbing!important}.page-main{min-width:0;padding:0}.page-canvas-wrap{border:1px solid color-mix(in srgb, var(--line), transparent 20%);border-radius:var(--surface-radius);width:min(100%,880px);box-shadow:2px 2px 0 color-mix(in srgb, var(--page), #000 35%);background:#080b0e;margin:0 auto;position:relative;overflow:visible}.dialog-page.active .page-canvas-wrap{border-color:var(--accent)}.celeste-canvas-editor{display:block}.formatting-bar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background-color:var(--panel);background-image:var(--surface-texture);scrollbar-width:thin;align-items:center;gap:2px;width:min(100%,880px);min-height:36px;margin:0 auto 5px;padding:3px 4px;display:flex;overflow-x:auto}.format-button{cursor:pointer;min-width:max-content;height:28px;color:var(--muted);border-radius:var(--control-radius);font-family:var(--label-font);background:0 0;border:1px solid #0000;align-items:center;gap:5px;padding:0 7px;font-size:8px;display:inline-flex}.format-button:hover{color:var(--ink);border-color:var(--line);background:var(--panel-raised)}.format-button.active{color:var(--page);border-color:var(--accent-bright);background:var(--accent-bright)}.format-button.mixed{color:var(--accent-bright);border-style:dashed;border-color:var(--accent)}.format-button b{color:var(--accent-bright);font-size:11px}.format-button.active b{color:var(--page)}.format-button kbd{color:color-mix(in srgb, currentColor, transparent 35%);font-family:var(--label-font);font-size:7px}.format-divider{background:var(--line);flex:none;width:1px;height:18px;margin:0 2px}.color-tool input{cursor:pointer;background:0 0;border:0;width:14px;height:14px;padding:0}.raw-page-editor{resize:vertical;width:min(100%,880px);min-height:210px;color:var(--ink);border:1px solid var(--accent);border-radius:var(--surface-radius);caret-color:var(--accent-bright);tab-size:2;line-height:1.7;font-family:var(--label-font);background:#0b1014;outline:0;margin:0 auto;padding:18px 20px;font-size:11px;display:block}.add-portrait-button{z-index:2;cursor:pointer;color:#aaa5b2;height:28px;font-family:var(--label-font);background:#07080bd1;border:1px solid #ffffff29;border-radius:2px;align-items:center;gap:5px;padding:0 8px;font-size:8px;display:inline-flex;position:absolute;top:12px;left:12px}.add-portrait-button:hover{color:#fff;border-color:#ffffff57}.quick-expressions{z-index:4;opacity:0;pointer-events:none;background:#07080beb;border:1px solid #ffffff26;border-radius:2px;align-items:center;gap:3px;padding:4px;transition:opacity .1s,transform .1s;display:flex;position:absolute;bottom:8px;left:9px;transform:translateY(3px)}:is(.page-canvas-wrap:has(.celeste-canvas-editor[data-portrait-hovered]) .quick-expressions,.quick-expressions:hover,.quick-expressions:focus-within){opacity:1;pointer-events:auto;transform:translateY(0)}.quick-expressions>span{color:#b7b4bd;text-overflow:ellipsis;white-space:nowrap;max-width:72px;font-family:var(--label-font);text-transform:uppercase;padding:0 5px;font-size:7px;overflow:hidden}.quick-expressions button{cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;width:35px;height:35px;padding:0;display:grid}.quick-expressions button:hover{background:#ffffff12;border-color:#ffffff47}.quick-expressions img{object-fit:contain;width:32px;height:32px;image-rendering:pixelated}.quick-expressions .more-expressions{color:#b7b4bd;width:auto;font-family:var(--label-font);padding:0 6px;font-size:7px}.insert-between{opacity:0;grid-template-columns:minmax(20px,1fr) auto minmax(20px,1fr);align-items:center;height:31px;margin-left:42px;transition:opacity .1s;display:grid}.insert-between:hover,.insert-between:focus-within{opacity:1}.insert-between>span{background:var(--line);height:1px}.insert-between>div{gap:3px;display:flex}.insert-between button{cursor:pointer;height:24px;color:var(--accent-bright);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--panel-solid);font-family:var(--label-font);align-items:center;gap:3px;padding:0 7px;font-size:7px;display:inline-flex}.insert-between button:hover{color:var(--page);border-color:var(--accent-bright);background:var(--accent-bright)}.value-workspace{width:min(100%,820px)}.value-editor-label{color:var(--muted);letter-spacing:.08em;font-family:var(--label-font);text-transform:uppercase;margin:38px 0 8px;font-size:8px;display:block}.value-editor{resize:vertical;width:100%;min-height:104px;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--surface-radius);background-color:var(--panel-raised);background-image:var(--surface-texture);box-shadow:var(--surface-shadow);line-height:1.6;font-family:var(--title-font);outline:0;padding:17px 18px;font-size:16px;display:block}.value-editor:focus{border-color:var(--accent)}.value-help{max-width:560px;color:var(--muted);margin:13px 0;font-size:10px;line-height:1.6}.raw-file-panel{border:1px solid var(--line);border-radius:var(--surface-radius);box-shadow:var(--surface-shadow);background:#0b1014;overflow:hidden}.raw-file-heading{border-bottom:1px solid var(--line);background-color:var(--panel-solid);background-image:var(--surface-texture);justify-content:space-between;align-items:center;min-height:46px;padding:0 12px 0 15px;display:flex}.raw-file-heading>span{color:var(--muted-bright);font-family:var(--label-font);align-items:center;gap:7px;font-size:9px;display:inline-flex}.raw-file-textarea{resize:vertical;color:#d9d5ce;width:100%;min-height:67vh;caret-color:var(--accent-bright);tab-size:4;line-height:1.72;font-family:var(--label-font);background:0 0;border:0;outline:0;padding:24px 27px;font-size:11px;display:block}.raw-file-status{color:var(--muted);border-top:1px solid var(--line);background:var(--panel-solid);font-family:var(--label-font);padding:11px 15px;font-size:8px}.empty-workspace{min-height:55vh;color:var(--muted);align-content:center;place-items:center;display:grid}.empty-workspace img{object-fit:contain;image-rendering:pixelated;opacity:.55}.drawer-layer{z-index:100;background:#03050794;position:fixed;inset:0}.portrait-drawer{border-left:1px solid var(--line-strong);background-color:var(--panel-solid);background-image:var(--surface-texture);grid-template-rows:auto auto auto minmax(0,1fr);width:min(440px,94vw);height:100%;animation:.13s ease-out drawer-in;display:grid;position:absolute;top:0;right:0;box-shadow:-5px 0 #0000003d}@keyframes drawer-in{0%{opacity:0;transform:translate(20px)}}.drawer-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:65px;padding:10px 14px 10px 19px;display:flex}.drawer-heading h2{font-family:var(--title-font);margin:3px 0 0;font-size:18px}.portrait-side-controls{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr auto;gap:4px;padding:11px 14px;display:grid}.portrait-side-controls button,.character-list button{cursor:pointer;min-height:30px;color:var(--muted);border:1px solid var(--line);border-radius:var(--control-radius);font-family:var(--label-font);background:0 0;padding:0 9px;font-size:8px}.portrait-side-controls button:hover,.portrait-side-controls button.active,.character-list button:hover,.character-list button.active{color:var(--ink);border-color:var(--accent);background:var(--panel-raised)}.portrait-side-controls .remove-portrait:hover{color:var(--red);border-color:var(--red)}.character-list{border-bottom:1px solid var(--line);gap:4px;padding:10px 14px;display:flex;overflow-x:auto}.character-list button{flex:none}.expression-grid{scrollbar-color:var(--line) transparent;scrollbar-width:thin;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:6px;padding:14px;display:grid;overflow:auto}.expression-grid button{cursor:pointer;min-width:0;color:var(--muted);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--panel);flex-direction:column;align-items:center;padding:8px 5px 7px;display:flex}.expression-grid button:hover,.expression-grid button.selected{color:var(--ink);border-color:var(--accent-bright);background:var(--panel-raised)}.expression-grid img{object-fit:contain;width:82px;height:82px;image-rendering:pixelated}.expression-grid button span{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-family:var(--label-font);margin-top:4px;font-size:8px;overflow:hidden}.toast-region{z-index:200;pointer-events:none;position:fixed;bottom:16px;right:16px}.toast{color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--panel-raised);box-shadow:var(--surface-shadow);font-family:var(--label-font);padding:10px 13px;font-size:9px;animation:.12s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(4px)}}@media (max-width:1120px){.topbar{grid-template-columns:170px minmax(120px,1fr) auto}.theme-select-wrap>span,.save-state,.top-button span{display:none}.theme-select-wrap{padding:0 5px}.top-button{width:32px;padding:0}}@media (max-width:800px){.topbar{grid-template-columns:1fr auto;height:auto;min-height:58px;padding:6px 10px;position:relative}.document-heading{display:none}.brand-feather{width:42px;height:42px}.app-body{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:9px;width:100%;height:auto;padding:9px 10px;display:grid;position:relative;top:0}.sidebar-section:first-child{overflow:visible}.sidebar-section h2{margin:0 4px 4px}.outline-list{flex-direction:row;max-height:none;overflow-x:auto}.outline-item{border-bottom:2px solid #0000;border-left:0;flex:none;width:auto;max-width:170px}.outline-item.active{border-bottom-color:var(--accent);border-left-color:#0000}.sidebar-footer{align-self:end}.workspace{padding:18px 10px 80px}.entry-title input{width:min(340px,52vw)}.quick-expressions{display:none}}@media (max-width:560px){.brand-word,.theme-select-wrap,.history-actions{display:none}.topbar{grid-template-columns:45px 1fr}.top-actions{justify-self:end}.sidebar{grid-template-columns:1fr}.sidebar-section{min-width:0}.sidebar-footer{display:flex}.sidebar-footer button{flex:1}.entry-heading{flex-direction:column;align-items:flex-start;padding:5px 0 9px}.entry-title{flex-direction:column;align-items:flex-start;gap:3px;width:100%}.entry-title input{width:100%;padding-left:0}.entry-actions{justify-content:space-between;width:100%}.dialog-page{grid-template-columns:32px minmax(0,1fr)}.page-gutter button{width:25px;height:25px}.insert-between{margin-left:32px}.formatting-bar{max-width:calc(100vw - 52px)}.format-button kbd{display:none}.format-button{padding:0 6px}.add-portrait-button{top:6px;left:6px}.expression-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
