:root{--ink:#1a1714;--ink-soft:#45403a;--cream:#f4efe6;--paper:#fbf8f1;--accent:#e4572e;--accent-deep:#b8401f;--line:#ddd5c7;--grid:rgba(26,23,20,.05);--good:#2f7d4f;--shadow:18px 18px 0 rgba(26,23,20,.08)}*{box-sizing:border-box;margin:0;padding:0}body,html{background-color:var(--cream);color:var(--ink);font-family:Space Mono,ui-monospace,monospace;-webkit-font-smoothing:antialiased;min-height:100%}body{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px}.wrap{max-width:1080px;margin:0 auto;padding:48px 24px 96px}.masthead{border:2px solid var(--ink);background:var(--paper);padding:28px 32px;box-shadow:var(--shadow);position:relative;overflow:hidden}.masthead:before{content:"LOTTIE · TOOLKIT · NO-UPLOAD";position:absolute;top:10px;right:-40px;transform:rotate(0deg);font-size:10px;letter-spacing:3px;color:var(--accent);font-weight:700}.eyebrow{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--accent-deep);font-weight:700}h1{font-family:Fraunces,Georgia,serif;font-weight:900;font-size:clamp(34px,6vw,58px);line-height:.98;letter-spacing:-.02em;margin:10px 0 14px}h1 .mark{position:relative;white-space:nowrap}h1 .mark:after{content:"";position:absolute;left:-2px;right:-2px;bottom:6px;height:12px;background:var(--accent);opacity:.28;z-index:-1}.lede{font-size:14px;line-height:1.7;max-width:56ch;color:var(--ink-soft)}.lede strong{color:var(--ink);background:rgba(228,87,46,.12);padding:1px 4px}.stage{margin-top:32px}.dropzone{border:2px dashed var(--ink);background:var(--paper);padding:56px 24px;text-align:center;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease;position:relative}.dropzone:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow)}.dropzone.dragging{background:#fff;border-color:var(--accent);border-style:solid;transform:translate(-3px,-3px);box-shadow:18px 18px 0 rgba(228,87,46,.18)}.dropzone .big{font-family:Fraunces,serif;font-weight:600;font-size:22px;margin-bottom:8px}.dropzone .small{font-size:12px;color:var(--ink-soft);letter-spacing:1px}.dropzone .plus{display:inline-grid;place-items:center;width:52px;height:52px;border:2px solid var(--ink);border-radius:50%;font-size:26px;margin-bottom:18px;background:var(--cream)}.panels{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;margin-top:28px}@media (max-width:720px){.panels{grid-template-columns:1fr}}.panel{border:2px solid var(--ink);background:var(--paper);display:flex;flex-direction:column}.panel .bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:2px solid var(--ink);font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700}.panel.before .bar{background:var(--ink);color:var(--cream)}.panel.after .bar{background:var(--accent);color:#fff}.panel .tag{font-size:9px;border:1px solid;padding:2px 6px;letter-spacing:1px}.stageview{position:relative;aspect-ratio:1/1;display:grid;place-items:center;background:repeating-conic-gradient(#efe9dd 0 25%,#f7f2e8 0 50%) 50% /28px 28px}.stageview .player{width:78%;height:78%}.report{border:2px solid var(--ink);background:var(--paper);margin-top:24px;padding:20px 22px}.report h2{font-family:Fraunces,serif;font-size:18px;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:10px}.report h2 .dot{width:10px;height:10px;border-radius:50%;background:var(--good)}.layerlist{list-style:none;font-size:12px}.layerlist li{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-top:1px dashed var(--line)}.layerlist li:first-child{border-top:none}.badge{flex-shrink:0;font-size:9px;font-weight:700;letter-spacing:1px;padding:3px 7px;border:1px solid var(--ink);text-transform:uppercase}.badge.kept{background:var(--cream);color:var(--ink-soft)}.badge.removed{background:var(--accent);color:#fff;border-color:var(--accent)}.layerlist .lname{font-weight:700}.layerlist .lwhy{color:var(--ink-soft);font-size:11px}.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}.btn{font-family:Space Mono,monospace;font-weight:700;font-size:13px;letter-spacing:1px;padding:14px 26px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;text-transform:uppercase;transition:transform .12s ease,box-shadow .12s ease}.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}.btn:active{transform:translate(0);box-shadow:none}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent-deep)}.btn.primary:hover{box-shadow:6px 6px 0 var(--accent-deep)}.btn.ghost{background:transparent}.note{font-size:11px;color:var(--ink-soft);margin-top:28px;line-height:1.7;border-left:3px solid var(--accent);padding-left:14px}.error{border:2px solid var(--accent-deep);background:#fdeee9;color:var(--accent-deep);padding:14px 18px;font-size:13px;margin-top:24px;font-weight:700}footer{margin-top:64px;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-soft);text-align:center}@keyframes pop{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.pop{animation:pop .4s ease both}