:root{--font-stack-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--font-stack-mono: "SF Mono", Consolas, "Liberation Mono", Monaco, monospace;--text-2xs: .75rem;--text-xs: .8rem;--text-sm: .875rem;--text-base: .95rem;--text-xl: 1.5rem;--weight-regular: 400;--weight-medium: 500;--weight-bold: 700;--leading-tight: 1.2;--leading-snug: 1.5;--leading-body: 1.6;--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-main: 2px;--radius-button: 6px;--radius-word-button: 4px;--radius-panel: 8px;--col-left-flex: 1;--col-right-flex: 1;--golden: 1.618;--color-primary: oklch(51.1% .091 295.7);--color-text: oklch(24.7% .002 247.9);--color-text-light: oklch(46.1% .009 241.8);--color-white: oklch(100% 0 0);--color-light: oklch(98.2% .002 247.8);--color-medium: oklch(94.3% .006 264.5);--color-border: oklch(73.2% .014 251.6);--border-main: solid 1px var(--color-border);--color-symbol: oklch(97.5% .03 100);--input-text: var(--color-text);--input-placeholder: oklch(80% .07 55);--color-core: oklch(57% .197 40.3);--color-dependency: oklch(73.4% .158 71);--color-non-dependency: oklch(52.5% .135 161.2);--color-stack: oklch(47.9% .22 328.4);--bracket-depth-1: oklch(34.7% .159 281.8);--bracket-depth-2: oklch(52% .12 65);--bracket-depth-3: oklch(50% .098 180.4);--bracket-depth-4: oklch(53% .13 11);--bracket-depth-5: oklch(49.9% .135 148.6);--bracket-depth-6: oklch(51% .084 230.8);--bracket-depth-7: oklch(53.5% .167 334.6);--bracket-depth-8: oklch(51% .123 109.3);--bracket-depth-9: oklch(43.2% .145 354.5);--color-output-debug: oklch(32.1% 0 0);--color-output-program: oklch(53.5% .134 234);--color-output-error: oklch(57.5% .202 21.2);--color-output-info: oklch(51% 0 0);--color-stack-top: oklch(94% .035 25);--shadow-popover: 0 2px 6px oklch(0% 0 0 / .15);--transition-fast: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow-x:hidden}body{font-family:var(--font-stack-primary);background:var(--color-white);color:var(--color-text);line-height:var(--leading-body)}[hidden]{display:none!important}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;inset:0 auto auto 0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;background:var(--color-text);color:var(--color-white);padding:var(--space-xs) var(--space-md);z-index:1000}.skip-link:focus{width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;outline:2px solid var(--color-primary);outline-offset:2px}.container{min-height:100%;display:flex;flex-direction:column}@media(max-width:768px){.container{height:100dvh;min-height:0}}@media(max-width:768px){html,body{height:100%;overflow:hidden}}@property --mv-h-a{syntax: "<number>"; inherits: false; initial-value: 265;}@property --mv-h-b{syntax: "<number>"; inherits: false; initial-value: 300;}@property --mv-l{syntax: "<percentage>"; inherits: false; initial-value: 90%;}@property --mv-c-a{syntax: "<number>"; inherits: false; initial-value: .085;}@property --mv-c-b{syntax: "<number>"; inherits: false; initial-value: .085;}@keyframes mv-hydrangea-hues{0%,to{--mv-h-a: 265;--mv-h-b: 300}25%{--mv-h-a: 305;--mv-h-b: 325}50%{--mv-h-a: 195;--mv-h-b: 225}75%{--mv-h-a: 150;--mv-h-b: 178}}@keyframes mv-chroma{0%,to{--mv-c-a: .085;--mv-c-b: .085}40%{--mv-c-a: .095;--mv-c-b: .095}65%{--mv-c-a: .065;--mv-c-b: .065}}@keyframes mv-light{0%,to{--mv-l: 90%}50%{--mv-l: 93%}}header,footer,.utsuroi{background:linear-gradient(to right in oklch,oklch(var(--mv-l) var(--mv-c-a) var(--mv-h-a)),oklch(calc(var(--mv-l) + 1%) var(--mv-c-b) var(--mv-h-b)));animation:mv-hydrangea-hues 260s ease-in-out infinite,mv-chroma 210s ease-in-out infinite,mv-light 170s ease-in-out infinite}@media(prefers-reduced-motion:reduce){header,footer,.utsuroi{animation:none}}header{border-bottom:var(--border-main);padding:var(--space-md) var(--space-xl);display:flex;flex-direction:column;align-items:stretch;gap:var(--space-xs);flex-shrink:0;color:var(--color-text)}header h1{font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--color-text)}header .version{cursor:help}.app-header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%}.app-brand-block{display:flex;align-items:center;gap:.4rem;color:inherit}.app-brand-meta{display:flex;align-items:center;gap:var(--space-xs)}.logo{width:40px;height:40px;object-fit:contain}.version{display:inline-block;font-size:var(--text-2xs);line-height:var(--leading-snug);color:var(--color-white);background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-button);padding:var(--space-3xs) var(--space-xs)}.header-actions{width:100%;display:flex;justify-content:flex-end;gap:var(--space-xs)}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);opacity:1;transition:opacity .35s ease}.splash-screen.splash-dismissing{opacity:0;pointer-events:none}.splash-screen.splash-detail-visible :is(.splash-version-line,.splash-note,.splash-limits-heading,.splash-limits){opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.splash-screen{transition:none}}.splash-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl);text-align:center}.splash-logo{width:96px;height:96px;object-fit:contain;opacity:0;transform:scale(.9);animation:splash-logo-in .5s ease forwards}.splash-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-xs);opacity:0;animation:splash-fade-in .5s ease .15s forwards}.splash-title{font-size:var(--text-xl);font-weight:var(--weight-medium)}.splash-version-line,.splash-note,.splash-limits-heading,.splash-limits{opacity:0;transform:translateY(4px);transition:opacity .5s ease,transform .5s ease}.splash-version-line{font-family:var(--font-stack-mono);font-size:var(--text-xs);color:var(--color-text)}.splash-note{font-size:var(--text-2xs);color:var(--color-text-light);max-width:32rem}.splash-limits-heading{font-size:var(--text-xs);color:var(--color-text);font-weight:var(--weight-medium)}.splash-limits{list-style:none;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3xs);font-family:var(--font-stack-mono);font-size:var(--text-2xs);color:var(--color-text-light);text-align:left}.splash-hint{font-size:var(--text-2xs);color:var(--color-text-light)}@keyframes splash-logo-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes splash-fade-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.splash-logo,.splash-heading{animation:none;opacity:1;transform:none}.splash-version-line,.splash-note,.splash-limits-heading,.splash-limits{transition:none;opacity:1;transform:none}}footer{border-top:var(--border-main);padding:var(--space-sm) var(--space-xl);display:flex;align-items:center;justify-content:center;gap:var(--space-xl);flex-shrink:0;color:var(--color-text);font-size:var(--text-sm);text-align:center}footer a{color:var(--color-text-light)}footer a:hover{color:var(--color-text)}.btn{display:inline-flex;align-items:center;align-self:flex-end;justify-content:center;gap:var(--space-xs);min-height:2.125rem;padding:var(--space-xs) var(--space-md);font-family:var(--font-stack-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-tight);border:var(--border-main);border-radius:var(--radius-button);cursor:pointer;color:var(--color-text);background:var(--color-white)}.btn:hover{background:var(--color-light);color:var(--color-text)}.display-area,.state-display,.words-display{min-height:0;overflow-y:auto;padding:var(--space-sm);border:var(--border-main);background:var(--color-white);font-family:var(--font-stack-mono);font-size:.9rem;scrollbar-width:thin;scrollbar-color:var(--color-medium) var(--color-light)}@media(max-width:768px){.display-area,.state-display,.words-display{min-height:80px}}.main-layout{display:flex;flex:1;min-height:0;background:var(--color-white)}@media(max-width:768px){.main-layout{flex-direction:column;overflow:hidden}}#editor-panel,#state-panel{display:flex;flex-direction:column;gap:var(--space-xs);min-height:0;padding:var(--space-sm);overflow:hidden;background:var(--color-white);position:relative;container:panel / inline-size}@media(min-width:769px)and (max-width:1024px){#editor-panel,#state-panel{padding-inline:var(--space-sm) calc(var(--space-sm) / 2)}}@media(max-width:768px){#editor-panel,#state-panel{flex:1 1 auto;width:100%;gap:0;padding:var(--space-xs) var(--space-sm) var(--space-sm)}}#editor-panel{flex:var(--col-left-flex);border-right:var(--border-main)}@media(max-width:768px){#editor-panel{border-right:none}}#state-panel{flex:var(--col-right-flex)}@media(min-width:769px)and (max-width:1024px){#state-panel{padding-inline:calc(var(--space-sm) / 2) var(--space-sm)}}@media(max-width:768px){body:is([data-active-area=input],[data-active-area=output]) #state-panel,body:is([data-active-area=stack],[data-active-area=dictionary]) #editor-panel{display:none}}.input-area,.output-area,.stack-area,.dictionary-area{flex:1;display:flex;flex-direction:column;gap:var(--space-xs);min-height:0;position:relative}@media(min-width:769px){body[data-active-area] .main-layout section{flex:1;min-height:0}}.area-selector{flex-shrink:0}.area-selector select,.dictionary-toolbar select{--control-text-y-adjust: .0625rem;font-family:var(--font-stack-mono);font-size:var(--text-xs);line-height:var(--leading-tight);padding:calc(var(--space-2xs) + var(--control-text-y-adjust)) var(--space-xs) calc(var(--space-2xs) - var(--control-text-y-adjust));border:var(--border-main);border-radius:var(--radius-main);background:var(--color-white);color:var(--color-text);width:100%;cursor:pointer;transition:background-color var(--transition-fast)}.area-selector select:focus,.dictionary-toolbar select:focus{outline:none;background:var(--color-light)}.dictionary-toolbar{display:flex;flex:0 0 auto;align-items:center;gap:var(--space-xs)}.dictionary-toolbar select{flex:var(--golden) 1 0%}.dictionary-toolbar .search-wrapper{flex:1 1 0%;min-width:0}.dictionary-toolbar .vocabulary-search-input{width:100%;min-width:0}@container panel (width <= 18rem){.dictionary-toolbar{flex-wrap:wrap}.dictionary-toolbar .search-wrapper,.dictionary-toolbar select{flex-basis:100%}}@media(max-width:768px){.area-selector-left{display:none}}@media(max-width:768px){.area-selector-right{display:none}}.area-selector-mobile{display:none}@media(max-width:768px){.area-selector-mobile{display:flex;padding:var(--space-sm) var(--space-sm) 0;background:var(--color-white)}}#code-input{width:100%;min-height:0;touch-action:manipulation;padding:var(--space-sm);border:var(--border-main);font-family:var(--font-stack-mono);font-size:var(--text-base);resize:none;flex:1;line-height:var(--leading-snug);background-color:var(--color-symbol);color:var(--input-text);caret-color:var(--input-text);transition:background-color var(--transition-fast)}#code-input:focus{outline:2px solid var(--color-primary);outline-offset:-2px}#code-input::placeholder{color:transparent}@media(max-width:768px){#code-input{font-size:1rem}}#code-input:placeholder-shown~:is(#editor-clear-btn,#editor-format-btn){display:none}#code-input:not(:placeholder-shown)~.editor-hint{display:none}.editor-hint{position:absolute;top:0;right:0;bottom:0;left:0;padding:calc(var(--space-sm) + 1px);overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--font-stack-mono);font-size:var(--text-base);line-height:var(--leading-snug);color:var(--input-placeholder)}@media(max-width:768px){.editor-hint{font-size:1rem}}.editor-hint p{margin:0}.editor-hint .editor-hint-heading{margin-top:var(--space-sm)}.editor-hint-group{display:grid;grid-template-columns:fit-content(26em) auto;column-gap:var(--space-md);row-gap:var(--space-2xs);align-items:center;margin:var(--space-sm) 0 0}.editor-hint-group dd{margin:0}.editor-hint-group .editor-hint-note{grid-column:1 / -1}.editor-hint-group .editor-hint-note+dd{display:none}@media(max-width:768px){.editor-hint-group{column-gap:var(--space-sm)}}.editor-hint-chord{white-space:nowrap}.editor-hint kbd{display:inline-block;min-width:1.8em;margin:0 .15em;padding:0 .4em;border:1px solid var(--input-placeholder);border-bottom-width:2px;border-radius:var(--radius-word-button);background-color:transparent;color:var(--input-placeholder);font-family:var(--font-stack-mono);font-size:var(--text-xs);line-height:1.6;text-align:center}.inline-clear-btn{position:absolute;width:1.5rem;height:1.5rem;touch-action:manipulation;border:none;background:none;color:var(--input-text);font-size:1.15rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity var(--transition-fast)}.inline-clear-btn:hover{opacity:1}#editor-clear-btn,#editor-format-btn,#stack-clear-btn{z-index:2}@media(max-width:768px){#editor-clear-btn,#editor-format-btn,#stack-clear-btn{width:2.75rem;height:2.75rem}}#editor-clear-btn,#stack-clear-btn{inset:var(--space-xs) var(--space-xs) auto auto}@media(max-width:768px){#editor-clear-btn,#stack-clear-btn{inset:0 0 auto auto}}#editor-format-btn{inset:auto var(--space-xs) var(--space-xs) auto}@media(max-width:768px){#editor-format-btn{inset:auto 0 0 auto}}.run-status{position:absolute;inset:auto auto var(--space-xs) var(--space-xs);z-index:2;max-width:calc(100% - 4rem);padding:var(--space-3xs) var(--space-xs);border:var(--border-main);border-radius:var(--radius-main);background:var(--color-white);color:var(--color-text-light);font-size:var(--text-xs);pointer-events:none}#stack-clear-btn{color:var(--color-text-light)}#stack-panel.is-empty-stack #stack-clear-btn{display:none}.editor-suggestions{position:absolute;touch-action:manipulation;min-width:180px;max-width:calc(100% - 1rem);max-height:220px;overflow-y:auto;background:var(--color-white);z-index:20}.editor-suggestion-item{width:100%;border:none;background:transparent;text-align:left;padding:.45rem .6rem;font-family:var(--font-stack-mono);font-size:.78rem;cursor:pointer}.editor-suggestion-item:hover,.editor-suggestion-item.is-selected{background:var(--color-light)}@media(max-width:768px){.editor-suggestion-item{min-height:2.75rem;font-size:var(--text-base)}}#output-display{flex:1;min-height:0;overflow-y:auto;overflow-wrap:break-word;white-space:pre-wrap}.output-debug{color:var(--color-output-debug)}.output-program{color:var(--color-output-program)}.output-info{color:var(--color-output-info)}.output-error{color:var(--color-output-error);font-weight:var(--weight-bold)}.folded-info{margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--color-text-light)}.folded-info summary{cursor:pointer;-webkit-user-select:none;user-select:none}.folded-info-body{white-space:pre-wrap;padding:var(--space-2xs) 0 0 var(--space-md)}@media(max-width:768px){.output-area,.stack-area{cursor:pointer;touch-action:manipulation}}.stack-latex-toggle{align-self:flex-end;display:inline-flex;align-items:center;gap:.35rem;margin:0 var(--space-3xs) var(--space-3xs) 0;font-family:var(--font-stack-primary);font-size:var(--text-xs);color:var(--color-text-light);cursor:pointer;-webkit-user-select:none;user-select:none}.stack-latex-toggle input{cursor:pointer;accent-color:var(--color-primary);touch-action:manipulation}@media(max-width:768px){.stack-latex-toggle{min-height:2.75rem;padding-right:var(--space-2xs);font-size:.9rem}.stack-latex-toggle input{width:1.25rem;height:1.25rem}}#stack-display{flex:1;min-height:0;overflow:hidden auto;padding-right:1.75rem}#stack-display.is-empty{display:flex;align-items:center;justify-content:center}#stack-display .stack-content-flow{align-items:center}#stack-display .stack-item:last-child .stack-node[data-depth="1"]{padding:.35rem;border-radius:0;background-color:var(--color-stack-top)}.state-display{color:var(--color-text)}.state-display.is-empty{color:var(--color-text-light)}.area-content-flow{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;width:100%}.stack-item{font-family:var(--font-stack-mono);font-size:var(--text-2xs);display:inline;margin:2px;padding:2px 4px;border-radius:var(--radius-button);color:var(--color-stack);overflow-wrap:anywhere}.stack-item:last-child{font-weight:var(--weight-bold)}.stack-node{display:inline;border-radius:var(--radius-button);line-height:var(--leading-body)}.stack-node-vector{display:inline;color:var(--color-stack)}.stack-node-math{display:inline-block;max-width:100%;overflow:auto hidden;vertical-align:middle;padding:.1rem .6rem .1rem .15rem}.stack-bracket{font-weight:var(--weight-bold);font-size:1.1em;line-height:1;color:var(--bracket-depth-1)}.stack-bracket[data-depth="2"]{color:var(--bracket-depth-2)}.stack-bracket[data-depth="3"]{color:var(--bracket-depth-3)}.stack-bracket[data-depth="4"]{color:var(--bracket-depth-4)}.stack-bracket[data-depth="5"]{color:var(--bracket-depth-5)}.stack-bracket[data-depth="6"]{color:var(--bracket-depth-6)}.stack-bracket[data-depth="7"]{color:var(--bracket-depth-7)}.stack-bracket[data-depth="8"]{color:var(--bracket-depth-8)}.stack-bracket[data-depth="9"]{color:var(--bracket-depth-9)}.stack-node-nil{white-space:nowrap}.stack-nil-reason{color:var(--color-text-light);font-weight:var(--weight-regular)}.stack-elision{font-style:italic;font-weight:var(--weight-regular);opacity:.65;white-space:nowrap}.search-wrapper{position:relative;display:flex;align-items:center}.vocabulary-search-input{padding:var(--space-2xs) 1.75rem var(--space-2xs) var(--space-xs);border:var(--border-main);border-radius:0;font-size:.85rem;font-family:var(--font-stack-mono);background-color:var(--color-symbol);color:var(--input-text);caret-color:var(--input-text);transition:background-color var(--transition-fast)}.vocabulary-search-input:focus{outline:2px solid var(--color-primary);outline-offset:-2px}.vocabulary-search-input::placeholder{color:var(--input-placeholder)}.vocabulary-search-input:placeholder-shown~.vocabulary-search-clear-btn{display:none}@media(max-width:768px){.vocabulary-search-input{font-size:1rem}}.vocabulary-search-clear-btn{inset:50% var(--space-2xs) auto auto;transform:translateY(-50%);z-index:2}.dictionary-sheet{flex:1;display:flex;flex-direction:column;gap:var(--space-xs);min-height:0;width:100%;overflow:hidden}.dictionary-sheet .words-display{flex:1;min-height:7rem}.words-display{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;border-radius:var(--radius-panel);cursor:pointer}.words-display.is-empty{align-items:center;align-content:center;justify-content:center}@media(max-width:768px){.words-display{cursor:default}}.no-results-message,.empty-words-message{width:100%;text-align:center;color:var(--color-text-light);font-style:italic}.no-results-message{padding:var(--space-xs)}.empty-words-message{padding:var(--space-sm)}.vocabulary-actions{display:flex;justify-content:flex-end;gap:var(--space-xs)}@media(max-width:768px){.vocabulary-actions .btn{min-height:2.75rem}}@media(max-width:768px){#copy-output-btn{min-height:2.75rem}}.word-button{--control-text-y-adjust: .0625rem;display:inline-flex;align-items:center;justify-content:center;margin:2px;padding:calc(.2rem + var(--control-text-y-adjust)) .4rem calc(.2rem - var(--control-text-y-adjust));background:var(--color-white);color:var(--color-text);border:var(--border-main);font-family:var(--font-stack-mono);font-size:var(--text-2xs);line-height:var(--leading-tight);font-weight:var(--weight-regular);cursor:pointer;border-radius:var(--radius-word-button);content-visibility:auto;contain-intrinsic-width:auto 4rem;contain-intrinsic-height:auto 1.75rem}.word-button.core{border-color:var(--color-core);color:var(--color-core)}.word-button.dependency{border-color:var(--color-dependency);color:var(--color-dependency)}.word-button.non-dependency{border-color:var(--color-non-dependency);color:var(--color-non-dependency)}@container panel (width <= 26rem){.word-button{margin:3px;padding:calc(.4rem + var(--control-text-y-adjust)) .6rem calc(.4rem - var(--control-text-y-adjust));font-size:.85rem}}@media(max-width:768px){.word-button{min-height:0;font-size:var(--text-2xs);padding:.1rem var(--space-2xs);margin:1px;contain-intrinsic-height:auto 1.25rem;touch-action:manipulation}}@media(max-width:340px){.word-button{font-size:.65rem}}.context-menu{position:fixed;inset:auto;margin:0;border:0;min-width:12rem;padding:var(--space-3xs);background:var(--color-white);box-shadow:var(--shadow-popover)}.context-menu button{display:block;width:100%;padding:.375rem var(--space-sm);background:transparent;color:var(--color-text);border:none;text-align:left;cursor:pointer}.context-menu button:hover{background:var(--color-light)}
