:root{--black:#050505;--ink:#151511;--paper:#eee8dc;--paper-bright:#fbf7ea;--warm-gray:#b8b0a2;--panel:#d9d1c2;--line:#3a3832;--red:#b8352f;--yellow:#d8a71d;--green:#3e8b4c}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:var(--black);color:var(--paper);font-family:Arial,Helvetica,sans-serif}button{font:inherit}.app-shell{height:100vh;min-height:760px;padding:24px;overflow:hidden;background:var(--black)}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 0 22px;border-bottom:1px solid var(--line)}.eyebrow,.label{margin:0;color:var(--warm-gray);font-size:11px;font-weight:700;letter-spacing:0}h1{margin:3px 0 0;color:var(--paper-bright);font-size:clamp(42px,8vw,96px);line-height:.92;letter-spacing:0}.connection{display:flex;align-items:center;gap:10px;min-width:122px;color:var(--paper);font-family:Courier New,Courier,monospace;font-size:12px}.lamp{width:16px;height:16px;border:2px solid var(--line);border-radius:50%;background:var(--red)}.lamp.on{background:var(--green)}.workbench{display:grid;grid-template-columns:316px minmax(0,1fr);grid-gap:24px;gap:24px;height:calc(100% - 124px);padding-top:24px}.controls{gap:18px;min-width:0;overflow:auto;padding-right:2px}.control-group,.controls{display:flex;flex-direction:column}.control-group{gap:9px}.key,.layout-option,.segmented button{min-height:42px;border:1px solid #858073;border-radius:4px;background:var(--panel);color:var(--ink);box-shadow:inset 0 -3px 0 rgba(0,0,0,.18);cursor:pointer;font-size:12px;font-weight:800;letter-spacing:0}.key:disabled,.layout-option:disabled,.segmented button:disabled{cursor:not-allowed;opacity:.55}.key:active,.layout-option:active,.segmented button:active{transform:translateY(1px);box-shadow:inset 0 -1px 0 rgba(0,0,0,.2)}.key.primary{background:var(--green);color:var(--paper-bright)}.key.accent-yellow{background:var(--yellow)}.key.export{min-height:54px;margin-top:4px;background:var(--red);color:var(--paper-bright)}.readout{min-height:50px;padding:12px;border:1px solid var(--line);border-radius:4px;background:#11110f;color:var(--paper);font-family:Courier New,Courier,monospace;font-size:12px;line-height:1.35}.segmented{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px}.segmented button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;padding:8px 5px}.segmented span{max-width:100%;overflow:hidden;color:#4e4b44;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.layout-option.selected,.segmented .selected{border-color:var(--paper-bright);background:var(--paper-bright)}.layout-list{display:grid;grid-gap:7px;gap:7px}.slider-panel{display:grid;grid-template-columns:minmax(0,1fr) 54px;align-items:center;grid-gap:12px;gap:12px;min-height:46px;padding:0 12px;border:1px solid #858073;border-radius:4px;background:var(--panel);box-shadow:inset 0 -3px 0 rgba(0,0,0,.18)}.slider-panel input{width:100%;accent-color:var(--red)}.slider-panel code{color:var(--ink);font-family:Courier New,Courier,monospace;font-size:13px;text-align:right}.layout-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 12px;text-align:left}.layout-option code{color:#4b4740;font-family:Courier New,Courier,monospace;font-size:12px}.preview-zone{min-width:0;height:100%;overflow:hidden;padding:14px;border:1px solid var(--line);background:#10100e}.preview-scale{width:calc(1600px * var(--preview-scale));height:calc(1080px * var(--preview-scale));max-width:100%;max-height:100%;margin:0 auto}.export-stage{width:1600px;height:1080px;margin:0 auto;padding:42px;overflow:hidden;background:#050505;color:#f6f2e8;transform:scale(var(--preview-scale));transform-origin:top left}.export-stage.export-render{transform:none}.poster-head{display:flex;align-items:center;justify-content:space-between;height:48px;border-bottom:1px solid #2c2c29;color:#f6f2e8;font-family:Courier New,Courier,monospace;font-size:22px;font-weight:700}.poster-body{display:grid;grid-template-columns:900px minmax(0,1fr);grid-gap:30px;gap:30px;height:calc(100% - 48px);padding-top:24px}.poster-body:has(.album-grid-dense){grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:22px}.album-grid{display:grid;grid-gap:5px;gap:5px;align-self:start;width:900px;height:auto;max-width:900px;max-height:966px;min-width:0;min-height:0}.album-grid-classic{aspect-ratio:1/1}.album-grid-dense{width:1260px;max-width:1260px;aspect-ratio:10/5}.album-grid-poster{width:auto;height:966px;aspect-ratio:6/8}.album-grid img,.empty-cell{width:100%;height:100%;min-height:0;object-fit:cover;background:#12120f}.album-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-template-rows:repeat(25,minmax(0,1fr));grid-column-gap:22px;column-gap:22px;grid-row-gap:2px;row-gap:2px;align-content:start;min-width:0;margin:0;padding:0;overflow:hidden;color:#fbf7ea;font-family:Courier New,Courier,monospace;font-size:var(--poster-list-font-size,15px);line-height:1.18;list-style:none}.album-list-dense{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(17,minmax(0,1fr));column-gap:26px;font-size:calc(var(--poster-list-font-size, 15px) - 1px)}.album-list li{display:grid;grid-template-columns:34px minmax(0,1fr);grid-gap:9px;gap:9px}.album-list span{color:#aaa293}.album-list p{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.callback-screen{display:grid;min-height:100vh;place-items:center;padding:24px;background:var(--black)}.device-panel{width:min(560px,100%);padding:28px;border:1px solid var(--line);background:#10100e}.device-panel h1{font-size:34px;line-height:1.05}@media (max-width:980px){.app-shell{height:auto;min-height:100vh;overflow:auto;padding:16px}.workbench{grid-template-columns:1fr;height:auto}.topbar{padding-bottom:14px}h1{font-size:42px}.controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.preview-zone{order:-1;height:min(62vh,560px)}.key.export{grid-column:1/-1}}@media (max-width:640px){.topbar{align-items:start;flex-direction:column}.controls{grid-template-columns:1fr}.export-stage{transform-origin:top left}.poster-body{grid-template-columns:900px minmax(0,1fr);gap:14px}}