
:root{color-scheme:dark;--bg:#0e1412;--panel:#151d18;--line:#2b3830;--text:#ecede5;--muted:#a0aea2;--gold:#caa67b;--light:#f0d3a6}
*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:'DM Sans',system-ui,sans-serif;font-size:13px}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #35433a;border-radius:5px;background:#243028;transition:.15s ease;padding:9px 10px}button:hover{border-color:var(--gold);background:#354639}button.active{background:var(--gold);border-color:var(--gold);color:#191e19;font-weight:700}.app{display:flex;width:100vw;height:100dvh}.sidebar{width:342px;flex-shrink:0;overflow:auto;scrollbar-color:#44554a transparent;padding:27px 23px 26px;background:var(--panel);border-right:1px solid #354139;z-index:2}.wordmark{letter-spacing:.15em;font-size:11px;font-weight:700;padding-bottom:24px;border-bottom:1px solid var(--line)}.wordmark span{font-size:9px;font-weight:400;color:var(--gold);letter-spacing:.09em}.eyebrow{font-size:9px;letter-spacing:.16em;color:#a9b09d;margin-top:24px}.sidebar h1{font-family:'Playfair Display',Georgia,serif;font-size:59px;letter-spacing:.03em;line-height:1.05;font-weight:600;margin:8px 0 0}.sidebar h1 .tiny{font-family:'DM Sans',sans-serif;letter-spacing:.06em;font-size:12px;color:var(--gold)}.subheading{font-family:Georgia,serif;color:var(--gold);font-size:19px;margin:0 0 13px}.context{font-size:12px;line-height:1.7;color:#bdc9bd;margin-bottom:24px}.section-label{margin:22px 0 10px;font-weight:700;letter-spacing:.12em;color:#bcc7b9;font-size:10px}.btn-row{display:flex;gap:7px}.btn-row button{flex:1}.buttons{display:grid;gap:7px}.buttons.two{grid-template-columns:repeat(2,minmax(0,1fr))}.buttons.three{grid-template-columns:repeat(3,minmax(0,1fr))}.buttons button{font-size:11px;padding:10px 4px}.layers{display:grid;gap:8px}.layer{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #263029;padding-bottom:7px;gap:10px}.layer label{cursor:pointer;font-size:12px;color:#d4dacf}.layer input{accent-color:#caa67b;width:16px;height:16px;cursor:pointer}.layer span{color:#879786;font-size:10px}.panel-info{background:#111813;border:1px solid #34413a;border-radius:8px;padding:14px;margin:20px 0}.small-head{font-size:10px;letter-spacing:.15em;color:var(--gold);display:block;margin-bottom:8px}.panel-info strong{font-size:14px;display:block}.panel-info p{line-height:1.6;font-size:12px;color:#a6b3a8;margin:8px 0}.mini{font-size:10px;color:var(--gold);line-height:1.7}.download{display:block;text-decoration:none;text-align:center;background:#caa67b;color:#1b211d;padding:12px;border-radius:5px;font-weight:700}.download:hover{background:#ebc39b}.footer{font-size:10px;color:#738277;line-height:1.8;margin:18px 0 0}.stage{position:relative;flex:1;min-width:0;background:radial-gradient(circle at 50% 35%,#37433a,#151d19 70%)}canvas{width:100%;height:100%;display:block;outline:none}.top-strip,.bottom-strip{position:absolute;pointer-events:none;left:30px;right:30px;display:flex;gap:15px;justify-content:space-between;align-items:center;color:#d5dfd3;font-size:10px;letter-spacing:.10em}.top-strip{top:24px}.bottom-strip{bottom:24px}.status-dot{width:7px;height:7px;border-radius:50%;background:#baca9b;box-shadow:0 0 12px #9aca8b;margin-right:-8px}.top-strip #status{flex:1}.stamp{color:#aab9aa}.selection-label{position:absolute;pointer-events:none;padding:7px 10px;font-size:11px;background:rgba(15,25,18,.94);border:1px solid #a6a47d;border-radius:5px;white-space:nowrap}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#141e18;transition:opacity .7s;z-index:3}.overlay.hidden{opacity:0;pointer-events:none}.load-mark{font-family:Georgia,serif;color:var(--gold);font-size:58px}.overlay h2{font:24px Georgia,serif;margin:10px}.overlay p{font-size:13px;color:var(--muted)}.loader{margin-top:12px;width:210px;background:#344138;height:2px;overflow:hidden}.loader i{background:var(--gold);height:100%;width:40%;display:block;animation:slide 1.3s infinite}@keyframes slide{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
@media(max-width:800px){.app{flex-direction:column-reverse}.sidebar{width:100%;height:38dvh;padding:15px;overflow:auto;border-right:0;border-top:1px solid #354139}.stage{height:62dvh;flex:0 0 62dvh}.sidebar h1{font-size:36px}.context{display:none}.top-strip,.bottom-strip{left:12px;right:12px;font-size:9px}.eyebrow{margin-top:12px}}
