:root{color-scheme:light;--bg:#f6f7f2;--surface:#ffffff;--surface-2:#eef2f4;--ink:#161716;--muted:#626a69;--line:#d8dedc;--accent:#0f766e;--accent-strong:#0b5f59;--accent-soft:#d7efea;--danger:#9a3412;--shadow:0 18px 45px rgba(28,34,32,0.09);--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--preview-size:700px;--panel-height:762px;--side-panel-width:380px;--minimap-width:220px}*{box-sizing:border-box}body,html{background:var(--bg)}body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--sans);line-height:1.5}button,input{font:inherit}button{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.page{width:min(1440px,100%);margin:0 auto;padding:24px clamp(16px,3vw,36px) 40px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.brand{display:grid;grid-gap:2px;gap:2px}h1{margin:0;font-size:clamp(1.55rem,3vw,2.6rem);letter-spacing:0;line-height:1.05}.tagline{margin:0;color:var(--muted);font-size:.98rem}.language-toggle{padding:8px 12px;border-radius:8px;border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.language-toggle,.nav-link{min-height:38px;font-size:.9rem;font-weight:800;white-space:nowrap}.nav-link{display:inline-grid;place-items:center;padding:8px 12px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-soft);color:var(--accent-strong);text-decoration:none}.workspace{display:grid;grid-template-columns:var(--side-panel-width) calc(var(--preview-size) + 2px) var(--minimap-width);grid-gap:18px;gap:18px;justify-content:center;align-items:start}.controls,.minimap-panel,.output-area{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.controls{position:-webkit-sticky;position:sticky;top:16px;width:var(--side-panel-width);height:var(--panel-height);display:grid;align-content:start;grid-gap:18px;gap:18px;overflow:auto;padding:18px}.upload{min-height:170px;display:grid;place-items:center;grid-gap:10px;gap:10px;padding:18px;border:1px dashed #aeb8b5;border-radius:8px;background:#fbfcfa;text-align:center;transition:border-color .16s ease,background .16s ease}.upload.is-over{border-color:var(--accent);background:var(--accent-soft)}.upload strong{display:block;font-size:1rem}.upload span{display:block;color:var(--muted);font-size:.9rem}.file-button{display:inline-grid;min-height:38px;place-items:center;padding:8px 12px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;font-weight:800;cursor:pointer}.upload .file-button{color:#fff}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.preview-wrap{display:none;grid-template-columns:70px 1fr;align-items:center;gap:10px}.preview-wrap.is-visible{display:grid}.preview-wrap img{width:70px;height:70px;border:1px solid var(--line);border-radius:8px;object-fit:cover;background:#fff}.file-meta{min-width:0}.file-name{overflow:hidden;margin:0 0 4px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.file-details{margin:0;color:var(--muted);font-size:.88rem}.control-group{display:grid;grid-gap:12px;gap:12px}.group-title{margin:0;color:var(--ink);font-size:.82rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.slider-row{display:grid;grid-template-columns:108px 1fr 64px;align-items:center;grid-gap:10px;gap:10px}.slider-row label{color:var(--muted)}.slider-row input[type=range]{width:100%;accent-color:var(--accent)}.number-input{width:64px;height:30px;border:1px solid var(--line);border-radius:6px;background:#fbfcfa;color:var(--ink);font-family:var(--mono);font-size:.85rem;text-align:right}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted)}.toggle-row input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.toggle-track{position:relative;width:44px;height:24px;flex:0 0 auto;border:1px solid #bac4c1;border-radius:999px;background:#eef2f4;transition:background .16s ease,border-color .16s ease}.toggle-track:after{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);content:"";transition:transform .16s ease}.toggle-row input:checked+.toggle-track{border-color:var(--accent);background:var(--accent)}.toggle-row input:checked+.toggle-track:after{transform:translateX(20px)}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.action-button{min-height:40px;border-radius:8px;font-weight:900}.action-button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.action-button.full{grid-column:1/-1}.status{min-height:22px;margin:0;color:var(--muted);font-size:.88rem;overflow-wrap:anywhere}.status.is-error{color:var(--danger)}.output-area{width:calc(var(--preview-size) + 2px);height:var(--panel-height);display:grid;grid-template-rows:auto var(--preview-size);overflow:hidden}.output-head{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.output-title{margin:0;font-size:1rem;font-weight:900}.output-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}.metrics{color:var(--muted);font-family:var(--mono);font-size:.84rem;white-space:nowrap}.zoom-control{display:inline-flex;align-items:center;gap:6px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#fbfcfa}.zoom-button{width:28px;height:28px;border-radius:6px;color:var(--accent-strong);font-weight:900}.zoom-value{min-width:48px;color:var(--ink);font-family:var(--mono);font-size:.82rem;text-align:center}.ascii-scroll{width:var(--preview-size);height:var(--preview-size);overflow:auto;background:#fff}.ascii-frame{min-width:100%;min-height:100%;display:grid;place-items:center;padding:28px}.ascii-output{margin:0;color:#111;font-family:var(--mono);font-size:var(--preview-font-size,9px);line-height:1.05;white-space:pre;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ascii-output.empty{color:var(--muted);font-family:var(--sans);font-size:.95rem;white-space:normal;text-align:center}.minimap-panel{position:-webkit-sticky;position:sticky;top:16px;width:var(--minimap-width);height:var(--panel-height);display:grid;grid-template-rows:auto 1fr;grid-gap:12px;gap:12px;padding:14px;overflow:hidden}.minimap-panel h2{margin:0;font-size:1rem;line-height:1.25}.minimap-stage{min-height:0;display:grid;align-items:start;justify-items:center}.minimap-shell{width:100%;max-height:100%;aspect-ratio:var(--minimap-aspect,9/16);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.minimap-shell canvas{width:100%;height:100%;display:block;cursor:crosshair}.seo-section{width:min(900px,100%);margin:34px auto 0;color:var(--muted)}.seo-section h2{margin:0 0 8px;color:var(--ink);font-size:1.2rem}.seo-section p{margin:0}.hidden-canvas{display:none}.shared-page{width:min(1440px,100%)}.shared-layout{display:grid;grid-template-columns:320px calc(var(--preview-size) + 2px) var(--minimap-width);grid-gap:18px;gap:18px;align-items:start;justify-content:center}.shared-output-card,.shared-panel{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.shared-panel{display:grid;grid-gap:16px;gap:16px;padding:18px}.shared-panel h2{margin:0;font-size:1rem}.settings-list{display:grid;grid-gap:8px;gap:8px;margin:0}.settings-list div{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1ef;padding-bottom:8px}.settings-list dt{color:var(--muted);font-size:.9rem}.settings-list dd{margin:0;font-family:var(--mono);font-size:.85rem;text-align:right}.shared-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.shared-output-card{width:calc(var(--preview-size) + 2px);height:var(--panel-height);display:grid;grid-template-rows:auto var(--preview-size);overflow:hidden}.shared-scroll{width:var(--preview-size);height:var(--preview-size)}.shared-minimap-panel{position:-webkit-sticky;position:sticky;top:16px}.shared-minimap-shell{aspect-ratio:9/16}@media (max-width:1420px){.page{width:min(760px,100%)}.workspace{grid-template-columns:1fr}.controls,.minimap-panel,.output-area,.shared-output-card,.shared-panel{position:static;width:min(100%,calc(var(--preview-size) + 2px));height:auto}.output-area,.shared-output-card{grid-template-rows:auto min(var(--preview-size),70vh)}.ascii-scroll,.shared-scroll{width:min(var(--preview-size),100%);height:min(var(--preview-size),70vh)}.minimap-shell{width:min(260px,100%)}}@media (max-width:980px){.shared-layout{grid-template-columns:1fr}}@media (max-width:640px){.page{padding-inline:12px}.output-head,.output-tools,.topbar{align-items:flex-start;flex-direction:column}.output-tools{width:100%}.slider-row{grid-template-columns:88px 1fr 60px}.ascii-frame{padding:18px}}