:root{color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--page);font-synthesis:none;text-rendering:optimizelegibility;--page:#f7f5f0;--ink:#292725;--muted:#77716b;--line:#dfdbd3;--panel:#fffefa;--paper:#fff;--canvas:#eeece6;--accent:#e9573f;--accent-dark:#c83f2b;--accent-soft:#fff0ec;--focus:#2b6cb0;--focus-ring:#2b6cb047;--shadow:0 18px 55px #2d272014;--brand-shadow:0 8px 20px #e9573f38;--primary-text:#fff;--primary-bg:#292725;--primary-hover:#111;--primary-shadow:0 7px 18px #29272524;--quiet-hover:#fff;--input-bg:#faf9f6;--input-focus-bg:#fff;--input-border:#d8d4cc;--input-border-hover:#bdb7ae;--input-shadow:0 0 0 3px #29272514;--placeholder:#aaa49c;--control-hover:#29272512;--example-text:#625e59;--example-border-hover:#f0b8ad;--label:#4b4743;--range-label:#9a948d;--select-text:#45413d;--segmented-bg:#efede8;--selected-bg:#fff;--selected-shadow:0 1px 4px #2927251f;--switch-off:#cbc7c0;--switch-knob:#fff;--switch-shadow:0 1px 3px #00000040;--canvas-dot:#4b443c1a;--scrollbar:#bdb8b0;--watermark:#29272559;--cell-border:#d4cfc6;--cell-shadow:0 2px 7px #372f280d;--guide-primary:#e6a79d;--guide-dot:#dca097;--guide-secondary:#e8c7c1;--glyph:#171615;--empty:#8a847c;--empty-icon:#aaa49c;--empty-title:#615d58;--footer:#928c85;--toast-text:#fff;--toast-bg:#292725;--toast-shadow:0 10px 28px #00000038;font-family:system-ui,-apple-system,BlinkMacSystemFont,Yu Gothic,Meiryo,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#161514;--ink:#f1ede7;--muted:#aaa39b;--line:#3b3835;--panel:#22201e;--paper:#24211f;--canvas:#141312;--accent:#ff7a64;--accent-dark:#ff9a87;--accent-soft:#3d2621;--focus:#7ab8ff;--focus-ring:#7ab8ff59;--shadow:0 18px 55px #00000052;--brand-shadow:0 8px 20px #ff7a6433;--primary-text:#191817;--primary-bg:#f1ede7;--primary-hover:#fff;--primary-shadow:0 7px 18px #00000047;--quiet-hover:#2a2826;--input-bg:#191817;--input-focus-bg:#24211f;--input-border:#494541;--input-border-hover:#6a635d;--input-shadow:0 0 0 3px #f1ede717;--placeholder:#777069;--control-hover:#ffffff14;--example-text:#c4bdb5;--example-border-hover:#8d4d42;--label:#d8d2cb;--range-label:#8f8880;--select-text:#e2ddd7;--segmented-bg:#181715;--selected-bg:#35312e;--selected-shadow:0 1px 4px #00000061;--switch-off:#59544f;--switch-knob:#f4f0eb;--switch-shadow:0 1px 3px #0000007a;--canvas-dot:#e4dcd317;--scrollbar:#5c5651;--watermark:#f1ede740;--cell-border:#4a4540;--cell-shadow:0 2px 7px #0000003d;--guide-primary:#a6665c;--guide-dot:#bd7468;--guide-secondary:#704c47;--glyph:#f5f1eb;--empty:#aaa39b;--empty-icon:#777069;--empty-title:#d8d2cb;--footer:#8f8880;--toast-text:#171615;--toast-bg:#f1ede7;--toast-shadow:0 10px 28px #00000070}}*{box-sizing:border-box}html{background:var(--page);min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,textarea,select,input{font:inherit}button,select,input[type=range],input[type=checkbox]{cursor:pointer}button{color:inherit}button:focus-visible,textarea:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.app{width:100%;min-height:100vh}.topbar{z-index:10;justify-content:space-between;align-items:center;width:min(100% - 48px,1480px);height:92px;margin:0 auto;display:flex;position:relative}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{object-fit:cover;width:43px;height:43px;box-shadow:var(--brand-shadow);border-radius:10px}.brand strong{letter-spacing:.01em;font-family:system-ui,sans-serif;font-size:21px;display:block}.brand small{color:var(--muted);letter-spacing:.08em;margin-top:-2px;font-size:11px;display:block}.topbar-actions{align-items:center;gap:8px;display:flex}.button{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-size:13px;font-weight:600;transition:transform .14s,background-color .14s,border-color .14s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button-primary{color:var(--primary-text);background:var(--primary-bg);box-shadow:var(--primary-shadow)}.button-primary:hover{background:var(--primary-hover)}.button-quiet{border-color:var(--line);background:0 0}.button-quiet:hover{background:var(--quiet-hover)}.workspace{grid-template-columns:minmax(330px,390px) minmax(0,1fr);gap:18px;width:min(100% - 48px,1480px);min-height:calc(100vh - 144px);margin:0 auto;display:grid}.control-panel,.preview-panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;overflow:hidden}.control-panel{align-self:start}.options-disclosure>summary{display:none}.options-summary-title,.options-summary-value{min-width:0}.options-summary-title{align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.options-summary-value{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.options-chevron{transition:transform .16s}.options-disclosure[open] .options-chevron{transform:rotate(180deg)}.control-section{border-bottom:1px solid var(--line);padding:23px 24px}.input-section{padding-top:25px}.section-heading,.control-label-row{justify-content:space-between;align-items:flex-end;display:flex}.eyebrow{color:var(--accent);letter-spacing:.16em;margin:0 0 5px;font-family:system-ui,sans-serif;font-size:10px;font-weight:700}h1,h2{color:var(--ink);margin:0}h1{font-size:18px;font-weight:700}.count,.preview-actions>span{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.03em;font-family:system-ui,sans-serif;font-size:11px}.textarea-wrap{margin-top:15px;position:relative}textarea{resize:vertical;width:100%;min-height:116px;color:var(--ink);background:var(--input-bg);border:1px solid var(--input-border);border-radius:11px;padding:14px 42px 14px 15px;font-size:19px;line-height:1.65;transition:border-color .14s,box-shadow .14s,background-color .14s;display:block}textarea:hover{border-color:var(--input-border-hover)}textarea:focus{background:var(--input-focus-bg);border-color:var(--ink);box-shadow:var(--input-shadow);outline:none}textarea::placeholder{color:var(--placeholder)}.icon-button{background:0 0;border:0;border-radius:9px;place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.icon-button:hover{background:var(--control-hover)}.clear-button{color:var(--muted);position:absolute;top:8px;right:7px}.examples{color:var(--muted);scrollbar-width:none;align-items:center;gap:6px;margin-top:10px;font-size:11px;display:flex;overflow-x:auto}.examples::-webkit-scrollbar{display:none}.examples>span{margin-right:2px}.examples button{color:var(--example-text);border:1px solid var(--line);background:0 0;border-radius:6px;flex:none;padding:4px 8px;font-size:11px}.examples button:hover{color:var(--accent-dark);background:var(--accent-soft);border-color:var(--example-border-hover)}.control-label-row label,.segmented-field legend,.select-field>span,.switch-row strong{color:var(--label);font-size:12px;font-weight:600}.control-label-row output{color:var(--accent-dark);font-variant-numeric:tabular-nums;font-family:system-ui,sans-serif;font-size:12px;font-weight:700}.control-label-spaced{margin-top:24px}.range{width:100%;height:4px;accent-color:var(--accent);background:var(--line);border-radius:999px;margin:15px 0 0}.range-labels{color:var(--range-label);justify-content:space-between;margin-top:7px;font-size:9px;display:flex}.settings-grid{gap:20px;display:grid}.select-field{grid-template-columns:54px 1fr;align-items:center;gap:12px;display:grid}.custom-font-settings{background:var(--input-bg);border:1px solid var(--line);border-radius:10px;gap:7px;padding:12px;display:grid}.custom-font-settings>label{color:var(--label);font-size:11px;font-weight:600}.custom-font-settings>small{color:var(--muted);font-size:9px;line-height:1.5}.custom-font-controls{grid-template-columns:minmax(0,1fr) auto;gap:7px;display:grid}.custom-font-controls input{min-width:0;min-height:38px;color:var(--select-text);background:var(--input-focus-bg);border:1px solid var(--input-border);border-radius:8px;padding:0 10px;font-size:12px}.custom-font-controls input::placeholder{color:var(--placeholder)}.local-font-button{min-height:38px;color:var(--example-text);background:var(--panel);border:1px solid var(--line);border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:10px;font-weight:600;display:inline-flex}.local-font-button:hover:not(:disabled){color:var(--accent-dark);background:var(--accent-soft);border-color:var(--example-border-hover)}.local-font-button:disabled{cursor:not-allowed;opacity:.58}select{width:100%;min-height:38px;color:var(--select-text);background-color:var(--input-bg);border:1px solid var(--line);border-radius:8px;padding:0 34px 0 11px;font-size:12px}.segmented-field{border:0;grid-template-columns:54px 1fr;align-items:center;gap:12px;min-width:0;margin:0;padding:0;display:grid}.segmented-field legend{float:left;width:54px;padding:0}.segmented-control{background:var(--segmented-bg);border-radius:9px;grid-auto-columns:1fr;grid-auto-flow:column;min-width:0;padding:3px;display:grid}.segmented-control button{min-width:0;min-height:32px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:7px;padding:0 8px;font-size:11px;font-weight:600;overflow:hidden}.segmented-control button[aria-pressed=true]{color:var(--ink);background:var(--selected-bg);box-shadow:var(--selected-shadow)}.switch-row{justify-content:space-between;align-items:center;display:flex}.switch-row span{gap:3px;display:grid}.switch-row small{color:var(--muted);font-size:10px}.switch-row input{appearance:none;background:var(--switch-off);border-radius:999px;width:40px;height:23px;margin:0;transition:background-color .14s;position:relative}.switch-row input:after{content:"";background:var(--switch-knob);width:17px;height:17px;box-shadow:var(--switch-shadow);border-radius:50%;transition:transform .14s;position:absolute;top:3px;left:3px}.switch-row input:checked{background:var(--accent)}.switch-row input:checked:after{transform:translate(17px)}.reset-button{width:100%;min-height:47px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;gap:7px;font-size:11px;display:flex}.reset-button:hover{color:var(--ink);background:var(--input-bg)}.preview-panel{flex-direction:column;min-width:0;min-height:760px;display:flex;position:relative}.preview-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:79px;padding:0 24px;display:flex}.preview-toolbar h2{align-items:center;gap:8px;font-size:16px;display:flex}.preview-actions{align-items:center;gap:13px;display:flex}.fullscreen-button{border:1px solid var(--line);margin-left:4px}.preview-stage{overscroll-behavior:contain;background-color:var(--canvas);background-image:radial-gradient(circle, var(--canvas-dot) .7px, transparent .8px);scrollbar-color:var(--scrollbar) transparent;background-size:12px 12px;flex:1;align-items:flex-start;min-width:0;min-height:0;padding:38px;display:flex;position:relative;overflow:auto}.preview-stage:after{color:var(--watermark);letter-spacing:.18em;content:"ZIMI";pointer-events:none;font-family:system-ui,sans-serif;font-size:9px;font-weight:700;position:absolute;bottom:15px;right:18px}.character-lines{gap:var(--character-gap);min-width:min-content;min-height:min-content;padding:1px;display:flex}.character-lines.horizontal{flex-direction:column}.character-lines.vertical{flex-direction:row-reverse}.character-line{gap:var(--character-gap);display:flex}.character-lines.vertical .character-line{flex-direction:column}.character-cell{width:var(--character-size);height:var(--character-size);flex:0 0 var(--character-size);isolation:isolate;background:var(--paper);border:1px solid var(--cell-border);box-shadow:var(--cell-shadow);place-items:center;display:grid;position:relative;overflow:hidden}.character-cell:before,.character-cell:after{z-index:-1;content:"";pointer-events:none;position:absolute;inset:0}.character-cell.guide-full:before{background:linear-gradient(to right, transparent calc(50% - .5px), var(--guide-primary) calc(50% - .5px), var(--guide-primary) calc(50% + .5px), transparent calc(50% + .5px)), linear-gradient(to bottom, transparent calc(50% - .5px), var(--guide-primary) calc(50% - .5px), var(--guide-primary) calc(50% + .5px), transparent calc(50% + .5px))}.character-cell.guide-cross:before{background-image:radial-gradient(circle at center, var(--guide-dot) 1.2px, transparent 1.4px), radial-gradient(circle at center, var(--guide-dot) 1.2px, transparent 1.4px);background-position:top,0;background-repeat:repeat-y,repeat-x;background-size:3px 8px,8px 3px}.character-cell.guide-full:after{opacity:.72;background:linear-gradient(45deg, transparent calc(50% - .5px), var(--guide-secondary) calc(50% - .5px), var(--guide-secondary) calc(50% + .5px), transparent calc(50% + .5px)), linear-gradient(-45deg, transparent calc(50% - .5px), var(--guide-secondary) calc(50% - .5px), var(--guide-secondary) calc(50% + .5px), transparent calc(50% + .5px))}.character-cell.guide-none{border-color:#0000}.glyph{color:var(--glyph);font-family:var(--preview-font);font-size:calc(var(--character-size) * .74);transform-origin:50%;font-weight:400;line-height:1;display:block}.mirrored{transform:scaleX(-1)}.empty-line{width:var(--character-size);height:var(--character-size);flex:none;display:block}.flow-preview{min-width:min-content;min-height:min-content;padding:calc(var(--character-size) * .25);color:var(--glyph);font-family:var(--preview-font);font-size:var(--character-size);letter-spacing:var(--character-gap);white-space:pre-wrap;overflow-wrap:normal;background-color:var(--paper);border:1px solid var(--cell-border);box-shadow:var(--cell-shadow);transform-origin:50%;line-height:1.35;position:relative}.flow-preview.guide-full{background-image:linear-gradient(to right, transparent calc(50% - .5px), var(--guide-primary) calc(50% - .5px), var(--guide-primary) calc(50% + .5px), transparent calc(50% + .5px)), linear-gradient(to bottom, transparent calc(50% - .5px), var(--guide-primary) calc(50% - .5px), var(--guide-primary) calc(50% + .5px), transparent calc(50% + .5px))}.flow-preview.guide-cross{background-image:radial-gradient(circle at center, var(--guide-dot) 1.2px, transparent 1.4px), radial-gradient(circle at center, var(--guide-dot) 1.2px, transparent 1.4px);background-position:top,0;background-repeat:repeat-y,repeat-x;background-size:3px 8px,8px 3px}.direction-vertical .flow-preview{height:max(560px, calc(var(--character-size) * 3));writing-mode:vertical-rl;text-orientation:mixed}.empty-preview{width:100%;height:100%;min-height:420px;color:var(--empty);text-align:center;place-content:center;justify-items:center;gap:8px;display:grid}.empty-preview svg{color:var(--empty-icon);margin-bottom:4px}.empty-preview strong{color:var(--empty-title);font-size:14px}.empty-preview span{font-size:11px}.preview-hint{min-height:48px;color:var(--muted);border-top:1px solid var(--line);align-items:center;gap:7px;padding:0 24px;font-size:10px;display:flex}.preview-panel:fullscreen{border:0;border-radius:0;width:100vw;height:100vh;max-height:none}.preview-panel:fullscreen .preview-stage{padding:56px}footer{width:min(100% - 48px,1480px);min-height:64px;color:var(--footer);letter-spacing:.04em;justify-content:space-between;margin:0 auto;padding-top:20px;font-family:system-ui,sans-serif;font-size:9px;display:flex}.footer-project,.footer-project a{align-items:center;gap:8px;display:inline-flex}.footer-project a{color:var(--muted);text-underline-offset:2px;gap:4px;font-weight:600}.footer-project a:hover{color:var(--accent-dark)}.toast{z-index:100;bottom:max(24px, env(safe-area-inset-bottom));max-width:calc(100% - 32px);color:var(--toast-text);pointer-events:none;visibility:hidden;background:var(--toast-bg);box-shadow:var(--toast-shadow);opacity:0;border-radius:9px;align-items:center;gap:8px;padding:11px 15px;font-size:12px;font-weight:600;transition:opacity .18s,transform .18s,visibility .18s;display:flex;position:fixed;left:50%;transform:translate(-50%,10px)}.toast-visible{visibility:visible;opacity:1;transform:translate(-50%)}@media (width<=980px){.topbar,.workspace,footer{width:min(100% - 32px,760px)}.workspace{grid-template-columns:1fr}.control-panel{display:block}.options-disclosure>summary{-webkit-user-select:none;user-select:none;border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:10px;min-height:54px;padding:0 24px;list-style:none;display:grid}.options-disclosure>summary::-webkit-details-marker{display:none}.options-disclosure>summary:hover{background:var(--input-bg)}.options-content,.reset-button{border-top:1px solid var(--line)}.preview-panel{min-height:680px}}@media (width<=680px){.topbar{width:calc(100% - 28px);height:76px}.brand-mark{width:39px;height:39px}.brand small,.install-button{display:none}.button-primary{width:42px;padding:0;font-size:0}.button-primary svg{width:18px;height:18px}.workspace,footer{width:calc(100% - 20px)}.workspace{gap:10px}.control-panel{border-radius:14px;display:block}.control-section{border-right:0;padding:21px 20px}.options-disclosure>summary{grid-template-columns:minmax(0,1fr) 18px;padding:0 20px}.options-summary-value{display:none}.input-section{padding-top:22px}.preview-panel{border-radius:14px;min-height:610px}.preview-toolbar{min-height:70px;padding:0 18px}.preview-actions{gap:8px}.preview-actions>span:first-child{display:none}.preview-stage{padding:22px}.preview-panel:fullscreen .preview-stage{padding:22px}.preview-hint{padding:9px 18px;line-height:1.55}footer{min-height:58px}footer span:last-child{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fff;--glyph:#171615;--cell-border:#d4cfc6;--guide-primary:#e6a79d;--guide-dot:#dca097;--guide-secondary:#e8c7c1}.topbar,.control-panel,.preview-toolbar,.preview-hint,footer,.toast{display:none!important}body,.app,.workspace,.preview-panel,.preview-stage{width:100%;min-height:0;box-shadow:none;background:#fff;border:0;margin:0;padding:0;overflow:visible}.workspace{display:block}.preview-stage:after{display:none}}
