:root{--bg:#11120f;--paper:#f4efe4;--ink:#171812;--acid:#d7ff36;--red:#e23b2e;--cyan:#147d92;--muted:#77786f}*{box-sizing:border-box}
[hidden]{display:none!important}html{background:var(--bg);color:var(--paper);font-family:Arial,Helvetica,sans-serif}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}header{height:68px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:var(--acid);color:var(--ink)}header .brand{color:inherit;text-decoration:none;font-weight:900;font-size:28px;letter-spacing:-1.5px}header span{font-weight:700}.intro{min-height:62vh;display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch}.intro>div{padding:72px 24px 56px;display:flex;flex-direction:column;justify-content:flex-end}.intro h1{font-size:clamp(56px,8vw,124px);letter-spacing:-.07em;line-height:.84;max-width:9ch;margin:0 0 34px}.intro p{font-size:20px;line-height:1.45;max-width:560px;margin:0}.intro figure{margin:0;background:#d8d1c3;display:grid;place-items:center;position:relative;min-height:480px;overflow:hidden}.intro img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.intro figcaption{position:absolute;bottom:0;left:0;background:var(--acid);color:var(--ink);padding:12px 16px;font-weight:700}.workspace{background:var(--paper);color:var(--ink);display:grid;grid-template-columns:340px minmax(0,1fr);min-height:820px}form{padding:28px 24px;background:#ded8ca}h2{font-size:32px;letter-spacing:-.04em;margin:0 0 24px}fieldset{border:0;padding:0;margin:0 0 28px}legend{font-weight:800;font-size:18px;margin-bottom:10px}label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:9px 0;font-size:14px}label span{display:flex;align-items:center;gap:5px}input[type=number],select{width:86px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:8px}select{width:100px}.upload{display:block;background:var(--paper);padding:12px;margin:20px 0}.upload input{display:block;margin-top:8px;max-width:100%}form button,.output-head button{width:100%;border:0;background:var(--ink);color:var(--paper);padding:14px 16px;font-weight:800;margin-top:8px}.secondary{background:var(--acid);color:var(--ink)}#status{font-size:14px;line-height:1.4;color:#941f18;min-height:40px}.output{padding:28px 24px;min-width:0}.output-head{display:flex;align-items:start;justify-content:space-between;gap:20px}.output-head h2{margin-bottom:5px}.output-head p{margin:0 0 18px;color:var(--muted)}.output-head button{width:auto;margin:0;background:var(--cyan)}#preview{height:620px;overflow:auto;background:#c9c3b8;display:grid;place-items:start;padding:14px;touch-action:pan-x pan-y}#preview svg{width:100%;height:auto;background:var(--paper)}details{margin-top:18px}summary{cursor:pointer;font-weight:800;padding:12px 0}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:10px;background:#e7e1d5}tr:nth-child(even) td{background:#d8d1c3}.notice{background:var(--red);min-height:48vh;padding:70px 24px;display:flex;flex-direction:column;justify-content:space-between}.notice h2{font-size:clamp(48px,9vw,132px);line-height:.85;max-width:8ch}.notice p{font-size:24px;line-height:1.35;max-width:660px;margin:50px 0 0}footer{padding:28px 24px;display:flex;align-items:end;justify-content:space-between}footer strong{font-size:clamp(54px,10vw,150px);letter-spacing:-.08em;line-height:.8}footer span{color:#aaa}@media(max-width:800px){header span{display:none}.intro{grid-template-columns:1fr}.intro>div{padding:54px 18px 40px}.intro h1{font-size:58px}.intro figure{min-height:360px}.workspace{grid-template-columns:1fr}.output{padding:24px 14px}.output-head{align-items:center}#preview{height:430px;padding:8px}.notice{min-height:420px;padding:50px 18px}.notice p{font-size:20px}footer{display:block}footer strong{display:block;margin-bottom:22px}footer span{font-size:14px}}@media(prefers-reduced-motion:no-preference){button{transition:transform .12s,background-color .12s}button:active{transform:translateY(2px)}}:focus-visible{outline:4px solid var(--cyan);outline-offset:3px}
