:root{--font-ui: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;--font-text: "IBM Plex Sans", system-ui, sans-serif;--text-xs: 11px;--text-sm: 13px;--text-md: 15px;--text-lg: 18px;--text-xl: 28px;--text-2xl: 40px;--leading-tight: 1.2;--leading-normal: 1.45;--leading-relaxed: 1.625;--tracking-wide: .08em;--tracking-widest: .14em;--background: #ffffff;--foreground: #0a0a0a;--muted: #f5f5f5;--muted-foreground: #737373;--border: #cecece;--border-soft: #e5e5e5;--card: #ffffff;--accent: #f5f5f5;--accent-foreground: #171717;--primary: #171717;--primary-foreground: #fafafa;--destructive: #484848;--brand-foreground: #333333;--canvas-bg: #ffffff;--canvas-grid: #ededed;--canvas-guide: #b3b3b3;--canvas-baseline: #0a0a0a;--canvas-metric-label: #a1a1a1;--selection: #0a0a0a;--selection-blue: #0d99ff;--measurement-vertical: #7c3cff;--measurement-badge-bg: #f5f5f5;--selection-soft: rgba(10, 10, 10, .06);--module-fill: #0a0a0a;--radius: 0px;--control-h-lg: 56px;--control-h-md: 40px;--control-h-sm: 28px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--transition-noddef-ease: cubic-bezier(.4, 0, .2, 1);--transition-fast: .15s var(--transition-noddef-ease);--z-popover: 40;--z-modal: 50}[data-theme=dark]{--background: #0a0a0a;--foreground: #fafafa;--muted: #262626;--muted-foreground: #a1a1a1;--border: rgba(255, 255, 255, .16);--border-soft: rgba(255, 255, 255, .1);--card: #171717;--accent: #262626;--accent-foreground: #fafafa;--primary: #e5e5e5;--primary-foreground: #171717;--destructive: #8c8c8c;--brand-foreground: #e5e5e5;--canvas-bg: #0a0a0a;--canvas-grid: #1f1f1f;--canvas-guide: #4d4d4d;--canvas-baseline: #fafafa;--canvas-metric-label: #737373;--selection: #fafafa;--selection-blue: #0d99ff;--measurement-vertical: #7c3cff;--measurement-badge-bg: #262626;--selection-soft: rgba(250, 250, 250, .08);--module-fill: #fafafa}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-ui);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit}::selection{background:var(--foreground);color:var(--background)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:var(--border)}*::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:var(--tracking-widest);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),opacity var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:focus-visible{outline:1px solid var(--foreground);outline-offset:2px}.btn--primary{border:1px solid var(--foreground);background:var(--foreground);color:var(--background)}.btn--primary:hover:not(:disabled){background:var(--background);color:var(--foreground)}.btn--secondary{border:1px solid var(--border);background:transparent;color:var(--foreground)}.btn--secondary:hover:not(:disabled){border-color:var(--foreground);background:var(--foreground);color:var(--background)}.btn--tertiary{border:none;background:transparent;color:var(--muted-foreground);text-transform:none;letter-spacing:0;padding:0}.btn--tertiary:hover:not(:disabled){color:var(--foreground)}.btn--tertiary.is-active{color:var(--foreground);text-decoration:underline;text-underline-offset:4px}.btn--ghost{border:1px solid transparent;background:transparent;color:var(--foreground);text-transform:none;letter-spacing:0}.btn--ghost:hover:not(:disabled){border-color:var(--border);background:var(--muted)}.btn--ghost.is-active{border-color:var(--foreground);background:var(--foreground);color:var(--background)}.btn--lg{height:var(--control-h-lg);padding:0 var(--space-6);font-size:var(--text-md);font-weight:500}.btn--md{height:var(--control-h-md);padding:0 var(--space-4);font-size:var(--text-sm);font-weight:500}.btn--sm{height:var(--control-h-sm);padding:0 var(--space-2);font-size:var(--text-xs);font-weight:400}.btn--tertiary.btn--lg,.btn--tertiary.btn--md,.btn--tertiary.btn--sm{height:auto;padding:0}.iconBtn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--muted-foreground);cursor:pointer;flex:none;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.iconBtn:hover:not(:disabled){color:var(--foreground);background:var(--muted)}.iconBtn.is-active{color:var(--background);background:var(--foreground)}.iconBtn:disabled{opacity:.35;cursor:not-allowed}.iconBtn:focus-visible{outline:1px solid var(--foreground);outline-offset:2px}.iconBtn--md{width:32px;height:32px}.iconBtn--sm{width:26px;height:26px}.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.field--controlOnly{padding-top:calc(var(--text-xs) * var(--leading-normal) + var(--space-1))}.field__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--muted-foreground)}.field__control{width:100%}.field__hint{font-size:var(--text-xs);color:var(--muted-foreground);white-space:pre-line;line-height:var(--leading-normal)}.input,.select,.textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--background);color:var(--foreground);padding:0 var(--space-3);height:var(--control-h-md);font-size:var(--text-sm);transition:border-color var(--transition-fast);width:100%}.input--sm,.select--sm{height:var(--control-h-sm);padding:0 var(--space-2);font-size:var(--text-xs)}.textarea{height:auto;min-height:120px;padding:var(--space-3);resize:vertical;line-height:var(--leading-normal)}.input:hover,.select:hover,.textarea:hover{border-color:var(--foreground)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--foreground)}.select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:var(--space-6);cursor:pointer}.toggle{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);-webkit-user-select:none;user-select:none}.toggle__box{width:14px;height:14px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;transition:background var(--transition-fast),border-color var(--transition-fast);flex:none}.toggle:hover .toggle__box{border-color:var(--foreground)}.toggle.is-on .toggle__box{background:var(--foreground);border-color:var(--foreground)}.toggle input{position:absolute;opacity:0;pointer-events:none}.switch{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);-webkit-user-select:none;user-select:none}.switch__track{width:30px;height:16px;border:1px solid var(--border);display:inline-block;position:relative;transition:background var(--transition-fast),border-color var(--transition-fast);flex:none}.switch__track:before{content:"";position:absolute;left:3px;top:3px;width:8px;height:8px;background:var(--muted-foreground);transition:background var(--transition-fast),transform var(--transition-fast)}.switch:hover .switch__track{border-color:var(--foreground)}.switch.is-on .switch__track{background:var(--foreground);border-color:var(--foreground)}.switch.is-on .switch__track:before{background:var(--background);transform:translate(14px)}.switch input{position:absolute;opacity:0;pointer-events:none}.segmented{display:inline-flex;border:1px solid var(--border)}.segmented__item{border:none;background:transparent;color:var(--muted-foreground);height:calc(var(--control-h-sm) + 2px);padding:0 var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.segmented__item:hover{color:var(--foreground)}.segmented__item.is-active{background:var(--foreground);color:var(--background)}.langSwitch{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}.langSwitch__item{border:none;background:none;padding:0;cursor:pointer;color:var(--muted-foreground);transition:color var(--transition-fast);font-size:var(--text-sm)}.langSwitch__item:hover{color:var(--foreground)}.langSwitch__item.is-active{color:var(--foreground);text-decoration:underline;text-underline-offset:4px}.modal__backdrop{position:fixed;inset:0;background:#0a0a0a80;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-5)}.modal{background:var(--background);color:var(--foreground);border:1px solid var(--foreground);max-width:560px;width:100%;max-height:calc(100vh - 2 * var(--space-5));overflow:auto;padding:var(--space-7) var(--space-6) var(--space-6);position:relative}.modal--wide{max-width:720px}.modal__close{position:absolute;top:var(--space-4);right:var(--space-4)}.popover{position:relative;display:inline-flex}.popover__trigger{border:none;background:none;padding:0;cursor:pointer;color:var(--muted-foreground);font-size:var(--text-sm);text-decoration:underline dotted;text-underline-offset:4px;transition:color var(--transition-fast)}.popover__trigger:hover,.popover__trigger.is-open{color:var(--foreground)}.popover__panel{position:absolute;top:calc(100% + var(--space-2));min-width:240px;background:var(--background);border:1px solid var(--foreground);padding:var(--space-4);z-index:var(--z-popover);box-shadow:0 8px 24px #0000001f}.popover__panel--left{left:0}.popover__panel--right{right:0}.refList{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);margin:0;font-size:var(--text-xs)}.refList dt{color:var(--foreground);white-space:nowrap}.refList dd{margin:0;color:var(--muted-foreground)}.island{border:1px solid var(--border-soft);background:var(--background)}.island__head{display:flex;align-items:center;gap:var(--space-2);width:100%;border:none;background:none;padding:var(--space-3);cursor:pointer;text-align:left}.island__title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--muted-foreground);transition:color var(--transition-fast)}.island__head:hover .island__title,.island.is-open .island__title{color:var(--foreground)}.island__meta{font-size:var(--text-xs);color:var(--muted-foreground)}.island__chevron{margin-left:auto;color:var(--muted-foreground);transition:transform var(--transition-fast);flex:none}.island.is-open .island__chevron{transform:rotate(180deg)}.island__body{padding:0 var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.island--plain .island__body{padding-top:var(--space-3)}.divider{border:none;border-top:1px solid var(--border-soft);margin:var(--space-5) 0}.kbd{display:inline-block;border:1px solid var(--border);padding:0 var(--space-1);font-size:var(--text-xs);color:var(--muted-foreground)}.toast{position:fixed;left:50%;top:var(--space-5);z-index:calc(var(--z-modal) + 1);transform:translate(-50%);min-width:220px;max-width:calc(100vw - 48px);padding:var(--space-3) var(--space-5);border:1px solid var(--foreground);background:var(--foreground);color:var(--background);font-size:var(--text-sm);line-height:var(--leading-normal);text-align:center}.app{height:100%;display:flex;flex-direction:column;overflow:hidden}.app__header{display:flex;align-items:center;gap:var(--space-6);padding:0 var(--space-5);height:72px;border-bottom:1px solid var(--border-soft);flex:none}.app__brand{display:flex;align-items:center;min-width:0}.app__nav{display:flex;gap:var(--space-5);flex:1;justify-content:center}.app__headerRight{display:flex;align-items:center;gap:var(--space-4)}.app__header .btn{font-size:var(--text-md)}.app__header .langSwitch,.app__header .langSwitch__item{font-size:var(--text-md);font-weight:500}.headerSpring{animation:headerSpring .72s var(--transition-noddef-ease) both;transform-origin:top center;will-change:transform}@keyframes headerSpring{0%{transform:translateY(-28px)}38%{transform:translateY(14px)}58%{transform:translateY(-8px)}78%{transform:translateY(4px)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.headerSpring,.app__testerPane{animation:none}}.app__main{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.app__view{flex:1;min-height:0;overflow:hidden;display:flex}.app__view>*{flex:1;min-width:0}.app__testerPane{flex:none;height:42%;min-height:220px;border-top:1px solid var(--foreground);display:flex;flex-direction:column;min-width:0;animation:testerPaneEnter .26s var(--transition-noddef-ease) both;transform-origin:bottom center}.app__testerDock{position:sticky;bottom:0;z-index:2;flex:none;width:100%;min-height:56px;border:0;border-top:1px solid var(--border-soft);background:var(--background);color:var(--muted-foreground);display:flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-size:var(--text-md);font-weight:500;line-height:var(--leading-tight);letter-spacing:0;cursor:pointer}.app__testerDock:hover,.app__testerDock:focus-visible{background:var(--muted);color:var(--foreground)}.app__testerDock:focus-visible{outline:1px solid var(--foreground);outline-offset:-4px}.app__testerDock svg{flex:none}@keyframes testerPaneEnter{0%{transform:translateY(100%)}to{transform:translateY(0)}}.start{height:100%;overflow:auto;display:flex;flex-direction:column}.start__top{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);min-height:72px;border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--background);z-index:1}.start__top .langSwitch,.start__top .langSwitch__item{font-size:var(--text-md);font-weight:500}.start__brand{flex:none}.noddefLogo{display:inline-flex;align-items:center;gap:16px;color:var(--brand-foreground);text-decoration:none;line-height:1;flex:none}.noddefLogo:hover .noddefLogo__wordmark{text-decoration:underline;text-underline-offset:5px}.noddefLogo:focus-visible{outline:1px solid var(--foreground);outline-offset:5px}.noddefLogo__symbol{width:23px;height:26.5px;display:block;flex:none}.noddefLogo__wordmark{display:inline-flex;align-items:baseline;gap:7px;font-family:var(--font-text);font-size:25px;font-weight:500;letter-spacing:0;text-transform:uppercase;white-space:nowrap}.noddefLogo__punct{transform:translateY(-.03em)}.start__body{padding:40px var(--space-6) var(--space-8);max-width:none}.start__title{color:var(--foreground);font-size:27px;font-weight:400;margin:0 0 var(--space-6);line-height:var(--leading-tight)}.start__lead{white-space:pre-line;color:var(--muted-foreground);margin:0 0 var(--space-5);line-height:var(--leading-relaxed)}.start__grid{--set-card-height: auto;display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--border-soft);border-left:1px solid var(--border-soft)}.setCard{--set-card-bg: var(--background);--set-card-fg: var(--foreground);--set-card-muted: var(--muted-foreground);--module-fill: var(--foreground);flex:0 0 100%;min-width:0;height:var(--set-card-height);border:0;border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:var(--set-card-bg);color:var(--set-card-fg);cursor:pointer;padding:0;display:flex;flex-direction:column;gap:0;text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.setCard:hover,.setCard:focus-visible{--set-card-bg: var(--foreground);--set-card-fg: var(--background);--set-card-muted: var(--canvas-metric-label);--module-fill: var(--background);outline:none}.setCard:focus-visible{box-shadow:inset 0 0 0 2px var(--foreground)}.setCard__preview{display:flex;width:100%;flex:1 1 auto;min-height:0;overflow:hidden;box-sizing:border-box;padding:32px 40px 20px}.setCard__slotGrid{display:grid;grid-template-columns:repeat(var(--set-preview-columns),minmax(0,1fr));grid-template-rows:repeat(var(--set-preview-rows),minmax(0,1fr));width:100%;height:100%;min-width:0;min-height:0}.setCard__slot{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}.setCard__slotSvg{width:100%;height:100%;display:block;overflow:visible}.setCard__slotSvg path{transition:fill var(--transition-fast)}.setCard__foot{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:var(--space-3);width:100%;min-width:0;padding:var(--space-3) 20px;box-sizing:border-box}.setCard__num,.setCard__author{font-size:var(--text-md);line-height:var(--leading-normal);white-space:nowrap}.setCard__num{flex:none;font-weight:600}.setCard__author{justify-self:end;min-width:0;overflow:hidden;color:var(--set-card-muted);font-weight:600;text-align:right;text-overflow:ellipsis;transition:color var(--transition-fast)}.setCardPlaceholder{display:none;flex:0 0 100%;min-width:0;height:var(--set-card-height);border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:var(--border)}@media(min-width:768px){.setCard,.setCardPlaceholder--2{flex-basis:50%}.setCardPlaceholder--2{display:block}}@media(min-width:1280px){.setCard,.setCardPlaceholder--3{flex-basis:calc(100% / 3)}.setCardPlaceholder--2{display:none}.setCardPlaceholder--3{display:block}}.modal--onboarding{--onboarding-pad: var(--space-6);--onboarding-close-size: 16px;max-width:640px;padding:var(--onboarding-pad)}.modal--onboarding .modal__close{top:calc(var(--onboarding-pad) - 10px);right:calc(var(--onboarding-pad) - 10px)}.onb__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-right:var(--onboarding-close-size);margin-bottom:26px}.onb__langRow{display:flex;align-items:center;gap:var(--space-3)}.modal--onboarding .langSwitch,.modal--onboarding .langSwitch__item{font-size:var(--text-md);font-weight:500}.onb__title{font-size:27px;font-weight:400;margin:0 0 18px;line-height:var(--leading-tight);max-width:32ch}.onb__lead{margin:0 0 var(--space-7);color:var(--muted-foreground);font-size:27px;font-weight:400;line-height:35px;max-width:54ch}.onb__steps{display:flex;flex-direction:column;gap:var(--space-4);margin:0 0 var(--space-6);padding:0;list-style:none;counter-reset:onb;max-width:58ch}.onb__steps li{display:flex;gap:var(--space-3);color:var(--muted-foreground);line-height:var(--leading-normal)}.onb__steps li:before{counter-increment:onb;content:counter(onb,decimal-leading-zero);color:var(--foreground);flex:none}.onb__bottom{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-3)}.onb__error{margin:var(--space-3) 0 0;color:var(--muted-foreground);font-size:var(--text-xs);line-height:var(--leading-normal);text-align:right}.onb__credits{margin:var(--space-6) 0 0;padding-top:var(--space-4);border-top:1px solid var(--border-soft);font-size:var(--text-xs);color:var(--muted-foreground)}.credits a{color:var(--muted-foreground);text-decoration:underline;text-underline-offset:3px;transition:color var(--transition-fast)}.credits a:hover{color:var(--foreground)}.modal--warning{width:fit-content;max-width:calc(100vw - 48px);padding:var(--space-7) var(--space-7) var(--space-6)}.warnModal__title{margin:0 0 18px;max-width:32ch;font-size:27px;font-weight:400;line-height:var(--leading-tight)}.warnModal__body{width:max-content;max-width:100%}.warnModal__text{white-space:pre-line;color:var(--muted-foreground);font-size:27px;font-weight:400;line-height:35px;margin:0 0 var(--space-7)}.warnModal__actions{display:flex;flex-direction:column;gap:var(--space-3);align-items:stretch;width:100%}.scaleConfirm__actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.btnSpinner{width:12px;height:12px;border:1px solid currentColor;border-top-color:transparent;border-radius:999px;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mobileStub{--mobile-stub-copy-size: 20px;--mobile-stub-line-height: 24px;--mobile-stub-title-weight: 500;height:100%;position:relative;padding:var(--space-6)}.mobileStub__top{display:flex;align-items:center;justify-content:flex-start}.mobileStub__content{position:absolute;left:var(--space-6);right:var(--space-6);top:45%;transform:translateY(-50%)}.mobileStub__brandRow{display:flex;align-items:center;margin-bottom:var(--space-7)}.mobileStub__brand{flex:none}.mobileStub__title{font-family:var(--font-text);font-size:var(--mobile-stub-copy-size);font-weight:var(--mobile-stub-title-weight);color:var(--brand-foreground);margin:0 0 var(--space-4);line-height:var(--mobile-stub-line-height)}.mobileStub__text{font-size:var(--mobile-stub-copy-size);font-weight:400;color:var(--muted-foreground);margin:0;line-height:var(--mobile-stub-line-height)}.mobileStub .langSwitch,.mobileStub .langSwitch__item{font-size:var(--mobile-stub-copy-size);line-height:var(--mobile-stub-line-height)}.mobileStub .langSwitch{gap:var(--space-6)}.glyphGrid{overflow:auto;padding:var(--space-6) var(--space-6) var(--space-8)}.glyphGrid__head{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-6)}.glyphGrid__title{font-size:var(--text-xl);font-weight:600;margin:0}.glyphGrid__meta{color:var(--muted-foreground);font-size:var(--text-sm);flex:1}.glyphGrid__section{margin-bottom:var(--space-6)}.glyphGrid__sectionTitle{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--muted-foreground);margin:0 0 var(--space-3)}.glyphGrid__sectionTitle--literal{text-transform:none;letter-spacing:0}.glyphGrid__cells{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:1px;background:var(--border-soft);border:1px solid var(--border-soft)}.glyphGrid__cells--special{width:112px}.glyphCell{background:var(--background);aspect-ratio:1;display:flex;flex-direction:column;cursor:pointer;position:relative;transition:background var(--transition-fast);border:none;padding:0;min-width:0}.glyphCell:hover{background:var(--muted)}.glyphCell__char{position:absolute;top:var(--space-2);left:var(--space-2);font-size:var(--text-xs);color:var(--muted-foreground)}.glyphCell__preview{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-4);min-height:0}.glyphCell__preview svg{width:100%;height:100%}.glyphCell__empty{color:var(--border);font-size:var(--text-2xl);font-weight:400;font-family:var(--font-text)}.glyphGrid__addRow{display:flex;gap:var(--space-3);align-items:center;max-width:360px}.editor{display:flex;min-height:0}.editor__left{width:280px;flex:none;border-right:1px solid var(--border-soft);display:flex;flex-direction:column;min-height:0;min-width:0}.editor__leftScroll{overflow-y:auto;overflow-x:hidden;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);min-width:0;box-sizing:border-box}.editor__setLabel{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--muted-foreground)}.editor__setNum{color:var(--foreground);font-weight:600}.editor__center{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.editor__right{width:280px;flex:none;border-left:1px solid var(--border-soft);overflow-y:auto;overflow-x:hidden;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);background:var(--muted)}.editor__topbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-soft);flex:none}.editor__glyphNav{display:flex;align-items:center;gap:var(--space-2)}.editor__glyphChar{font-size:var(--text-lg);font-weight:600;min-width:40px;text-align:center}.editor__glyphChar--wide{min-width:76px;font-size:var(--text-md)}.editor__glyphCharInput{width:48px;height:var(--control-h-sm);border:1px solid transparent;background:transparent;color:var(--foreground);text-align:center;font-size:var(--text-lg);font-weight:600;padding:0 var(--space-1)}.editor__glyphCharInput:hover,.editor__glyphCharInput:focus{outline:none;border-color:var(--border);background:var(--background)}.editor__glyphUnnamed{font-size:var(--text-xs);color:var(--muted-foreground);border:1px dashed var(--border);padding:var(--space-1) var(--space-2);white-space:nowrap}.editor__topbarSpacer{flex:1}.editor__zoomGroup{display:flex;align-items:center;gap:var(--space-1)}.editor__zoomValue{font-size:var(--text-xs);color:var(--muted-foreground);min-width:44px;text-align:center}.editor__canvasWrap{flex:1;min-height:0;position:relative;overflow:hidden;background:var(--muted)}.editor__canvasScroll{width:100%;height:100%;overflow:auto;display:flex;align-items:center;justify-content:center}.editor__canvas{flex:none;background:var(--canvas-bg);box-shadow:0 0 0 1px var(--border-soft);touch-action:none;display:block;user-select:none;-webkit-user-select:none}.editor__canvas text{user-select:none;-webkit-user-select:none}.editor--paletteDragging .editor__canvas{cursor:copy}.editor__canvas--rotating{cursor:grabbing}.editor__canvas--rotate-topLeft,.editor__canvas--rotate-topLeft *{cursor:url(/cursors/rotate-top-left.svg) 16 16,grabbing!important}.editor__canvas--rotate-topRight,.editor__canvas--rotate-topRight *{cursor:url(/cursors/rotate-top-right.svg) 16 16,grabbing!important}.editor__canvas--rotate-bottomRight,.editor__canvas--rotate-bottomRight *{cursor:url(/cursors/rotate-bottom-right.svg) 16 16,grabbing!important}.editor__canvas--rotate-bottomLeft,.editor__canvas--rotate-bottomLeft *{cursor:url(/cursors/rotate-bottom-left.svg) 16 16,grabbing!important}.editor__rotateZone{fill:transparent}.editor__rotateZone--topLeft{cursor:url(/cursors/rotate-top-left.svg) 16 16,grab}.editor__rotateZone--topRight{cursor:url(/cursors/rotate-top-right.svg) 16 16,grab}.editor__rotateZone--bottomRight{cursor:url(/cursors/rotate-bottom-right.svg) 16 16,grab}.editor__rotateZone--bottomLeft{cursor:url(/cursors/rotate-bottom-left.svg) 16 16,grab}.editor__paletteGhost{opacity:.28;transition:opacity var(--transition-fast)}.editor__paletteGhost.is-accepted{opacity:.58}.editor__hintText{fill:color-mix(in srgb,var(--muted-foreground) 72%,var(--background));font-family:var(--font-ui);font-weight:400;pointer-events:none}.canvasToolbar{position:absolute;z-index:5;display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);background:var(--background);border:1px solid var(--border);box-shadow:0 8px 18px #00000014}.canvasToolbar__handle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:32px;border:none;background:none;color:var(--muted-foreground);cursor:grab;flex:none}.canvasToolbar__handle:active{cursor:grabbing}.canvasToolbar__sep{width:1px;height:20px;background:var(--border-soft);flex:none;margin:0 var(--space-1)}.palette{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border-soft);border:1px solid var(--border-soft);width:100%;box-sizing:border-box}.moduleScale{display:flex;flex-direction:column;gap:var(--space-2)}.moduleScale__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.moduleScale__value{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:0;color:var(--foreground);font-size:var(--text-xs)}.moduleScale__input{width:38px;padding:0;border:0;background:transparent;color:var(--foreground);font-family:var(--font-ui);font-size:var(--text-xs);line-height:16px;text-align:right}.moduleScale__input:hover,.moduleScale__input:focus{outline:none;background:var(--muted)}.moduleScale__input:disabled{cursor:not-allowed}.moduleScale__input::-webkit-outer-spin-button,.moduleScale__input::-webkit-inner-spin-button{margin:0;appearance:none}.moduleScale__range{width:100%;height:24px;margin:0;padding:0;appearance:none;background:transparent;cursor:ew-resize}.moduleScale__range:disabled{cursor:not-allowed;opacity:.45}.moduleScale__range:focus-visible{outline:1px solid var(--foreground);outline-offset:4px}.moduleScale__range::-webkit-slider-runnable-track{height:1px;background:var(--border)}.moduleScale__range::-webkit-slider-thumb{appearance:none;width:15px;height:15px;margin-top:-7px;border:1px solid var(--foreground);background:var(--background)}.moduleScale__range:hover::-webkit-slider-thumb,.moduleScale__range:focus-visible::-webkit-slider-thumb{background:var(--foreground)}.moduleScale__range::-moz-range-track{height:1px;background:var(--border)}.moduleScale__range::-moz-range-thumb{width:15px;height:15px;border:1px solid var(--foreground);border-radius:0;background:var(--background)}.moduleScale__range:hover::-moz-range-thumb,.moduleScale__range:focus-visible::-moz-range-thumb{background:var(--foreground)}.palette__item{--module-fill: var(--foreground);background:var(--background);aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:var(--space-2);cursor:pointer;border:none;transition:background var(--transition-fast);min-width:0;overflow:hidden;box-sizing:border-box;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.palette__item:hover{background:var(--muted)}.palette__item.is-dragging{--module-fill: var(--background);background:var(--foreground);cursor:grabbing}.palette__item svg{width:100%;height:100%;display:block;pointer-events:none;-webkit-user-drag:none}.panelGroup__row{display:flex;gap:var(--space-2);flex-wrap:wrap}.panelGroup__grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2) var(--space-3)}.panelGroup__stack{display:flex;flex-direction:column;gap:var(--space-3)}.panelGroup__readValue{color:var(--foreground);font-size:var(--text-sm);line-height:var(--leading-normal)}.selectionTools{display:flex;flex-direction:column;gap:var(--space-2)}.selectionTools__grid{display:grid;gap:var(--space-1)}.selectionTools__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.selectionTools__grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.selectionTools__grid .iconBtn{width:100%}.panelHint{font-size:var(--text-xs);color:var(--muted-foreground);white-space:pre-line;line-height:var(--leading-normal);margin:0}.nameRow{display:flex;gap:var(--space-2);align-items:center}.nameRow .input{width:64px;text-align:center;font-size:var(--text-lg)}.fontPanel{overflow:auto;padding:var(--space-6)}.fontPanel__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-7);max-width:1200px}.fontPanel__section{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.fontPanel__sectionTitle{font-size:var(--text-md);font-weight:600;margin:0;padding-bottom:var(--space-2);border-bottom:1px solid var(--border-soft)}.fontPanel__sectionToggle{display:flex;width:100%;align-items:center;justify-content:space-between;padding:0 0 var(--space-2);border-top:0;border-right:0;border-left:0;background:transparent;color:var(--foreground);font-family:var(--font-ui);text-align:left;cursor:pointer}.fontPanel__sectionChevron{color:var(--muted-foreground);transition:transform .16s ease}.fontPanel__sectionToggle[aria-expanded=true] .fontPanel__sectionChevron{transform:rotate(180deg)}.fontPanel__grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.fontPanel__metricGroups{display:flex;flex-direction:column;gap:var(--space-4)}.fontPanel__metricGroup{display:flex;flex-direction:column;gap:var(--space-2)}.kernRow{display:grid;grid-template-columns:92px 92px 1fr 28px;gap:var(--space-2);align-items:center}.licenseText{margin:0;padding:var(--space-3);border:1px solid var(--border-soft);background:var(--muted);font-family:var(--font-ui);font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--muted-foreground);white-space:pre-wrap;-webkit-user-select:text;user-select:text}.tester{display:flex;flex-direction:column;min-height:0;flex:1}.tester__bar{display:flex;gap:var(--space-4);align-items:flex-end;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-soft);flex:none;flex-wrap:wrap}.tester__bar .field{width:110px}.tester__bar .tester__fallbackField .field{width:180px}.tester__barSpacer{flex:1}.tester__area{flex:1;min-height:0;overflow:auto;padding:var(--space-5) var(--space-6)}.tester__inputWrap{position:relative;width:100%;height:100%;min-height:0}.tester__mirror,.tester__input{position:absolute;inset:0;width:100%;height:100%;margin:0;border:none;outline:none;background:transparent;padding:0;line-height:1.2;white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto}.tester__mirror{color:var(--foreground);overflow:hidden;pointer-events:none}.tester__glyph--fallback,.tester__placeholder{color:var(--muted-foreground)}.tester__input{color:transparent;caret-color:var(--foreground);resize:none;-webkit-text-fill-color:transparent}.tester__input::placeholder{color:transparent;-webkit-text-fill-color:transparent}.tester__empty{color:var(--muted-foreground);white-space:pre-line}
