@font-face{font-family:K100Geist;src:url(/fonts/k100/geist.ttf) format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:K100Brand;src:url(/fonts/k100/league-spartan-black.ttf) format("truetype");font-weight:900;font-display:swap}body:has(.graphic-page),html:has(.graphic-page){background:#0c0c0c}.graphic-page{background:#0c0c0c;color:#f6f6f5;font:400 16px/1.6 K100Geist,sans-serif;color-scheme:dark}.graphic-page *{box-sizing:border-box}.graphic-page a{text-decoration:none}.graphic-page a:focus-visible,.graphic-page button:focus-visible,.graphic-page input:focus-visible,.graphic-page select:focus-visible{outline:2px solid #a8adff;outline-offset:4px}.graphic-main{max-width:1240px;margin:auto;padding:64px 40px 72px}.graphic-intro{margin-bottom:40px}.graphic-eyebrow{color:#aaa5ff;font-size:12px;font-weight:600;letter-spacing:3px}.graphic-intro h1{font:500 clamp(38px,5vw,58px) /1.08 K100Geist,sans-serif;letter-spacing:-2px;margin:18px 0}.graphic-intro h1 span{color:#999998}.graphic-intro p{color:#b6b3b3;max-width:520px}.graphic-workspace{display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:56px;align-items:start}.graphic-controls{background:#171716;border:1px solid #ffffff1a;border-radius:20px;padding:28px}.graphic-page h2{font-size:21px;line-height:1.3;font-weight:500;margin:0 0 24px;color:#f6f6f5}.graphic-page label{display:block;font-size:14px;line-height:1.5;margin:20px 0 8px;color:#e9e9e7}.graphic-page label span{color:#aaa7ac}.graphic-page input,.graphic-page select{width:100%;min-width:0;min-height:46px;padding:11px 12px;border:1px solid #444441;border-radius:8px;background:#0c0c0c;color:#f6f6f5;font:inherit;font-size:16px}.graphic-page input::placeholder{color:#89898b}.graphic-page input[type=file]{padding:10px;font-size:12px}.graphic-page input::file-selector-button{color:#fff;background:#353438;border:0;padding:5px 8px;border-radius:4px;margin-right:8px}.graphic-page fieldset{padding:0;margin:24px 0;min-width:0;border:0}.graphic-page legend{color:#b6b3b3;font-size:13px}.graphic-button{display:flex;gap:10px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;background:#6172f7;color:#fff;width:100%;min-height:48px;font:500 15px/1.4 K100Geist,sans-serif;padding:12px 16px;cursor:pointer}.graphic-button:hover:not(:disabled){background:#5261d8}.graphic-button--secondary{background:#2c2c31;border-color:#555361;margin-top:12px}.graphic-button--secondary:hover:not(:disabled){background:#39383e}.graphic-page button:disabled,.graphic-page input:disabled,.graphic-page select:disabled{opacity:.55;cursor:not-allowed}.graphic-text-button{border:0;padding:8px 0;background:transparent;color:#b9b4ff;font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.graphic-page .graphic-hint{color:#a7a5aa;font-size:12px;line-height:1.6;margin:10px 0 0}.graphic-status{display:block;font-size:13px;color:#bdc4ff;margin:12px 0 0}.graphic-status:empty{display:none}.graphic-error{color:#ffc0bd;background:#ff817f0d;border:1px solid #ff817f44;border-radius:8px;padding:12px;font-size:13px;margin:16px 0}.graphic-preview{position:sticky;top:28px}.graphic-preview canvas{display:block;width:100%;height:auto;aspect-ratio:4/5;max-width:600px;border-radius:12px;border:1px solid #ffffff22;background:#080909}.graphic-preview p{font-size:12px;color:#99969f;max-width:500px;margin-top:16px}.graphic-loading{padding:60px 24px}@media (max-width:800px){.graphic-main{padding:40px 24px 48px}.graphic-workspace{grid-template-columns:minmax(0,1fr);gap:32px}.graphic-preview{position:static}.graphic-preview canvas{max-width:none}.graphic-controls{padding:22px}}@media (prefers-reduced-motion:reduce){.graphic-page *,.graphic-page :after,.graphic-page :before{scroll-behavior:auto}}