.diagnostic-json{color:#d7ecdc;background:#1d2b25;white-space:normal}.diagnostic-json .json-row{margin-left:10px;min-height:1.45em}.diagnostic-json .json-node{margin:0}.diagnostic-json .json-summary{align-items:baseline;cursor:pointer;list-style-position:outside;-webkit-user-select:none;user-select:none}.diagnostic-json .json-children{margin-left:4px;border-left:1px solid rgba(215,236,220,.18)}.diagnostic-json .json-key{color:#8ec5ff}.diagnostic-json .json-string{color:#9cdc7c}.diagnostic-json .json-number{color:#f7c56b}.diagnostic-json .json-boolean{color:#ff8ec7}.diagnostic-json .json-null{color:#a8a39a}.diagnostic-json .json-punctuation{color:#f0d28a}.diagnostic-json .json-meta{color:#9bb3a4;font-style:italic}:root{color-scheme:light;--ink: #20302f;--muted-ink: #5a6660;--paper: #e7dab4;--paper-deep: #c7ab6e;--panel: #f2ecd6;--panel-line: #b69a5c;--ember: #b25738;--violet: #5d507f;--teal: #1f6f7a;--gold: #c4981f;--accent: #2f2114;--warm-wood: #80664a;--warm-wood-deep: #5c4630;--shadow: rgba(16, 34, 38, .28);--radius: 8px;--dur-quick: .14s;--dur-hover: .16s;--dur-fade: .2s;--dur-panel: .34s;--ease-out-soft: cubic-bezier(.25, 1, .5, 1);--ease-out-panel: cubic-bezier(.22, 1, .36, 1);--ease-rise: cubic-bezier(.2, .7, .3, 1);--focus-ring: 2px solid var(--accent);--focus-ring-offset: 2px;--ink-sepia: #38291a;--ink-sepia-70: rgba(56, 41, 26, .7);--ink-sepia-45: rgba(56, 41, 26, .45);--ink-sepia-20: rgba(56, 41, 26, .2);--ink-sepia-30: rgba(56, 41, 26, .3);--ink-chrome: rgba(56, 41, 26, .85);--chrome-glass: rgba(244, 236, 214, .42);--chrome-glass-strong: rgba(244, 236, 214, .85);--drawer-glass: rgba(237, 228, 202, .72);--drawer-blur: 22px;--drawer-shadow: 0 18px 70px rgba(36, 27, 22, .32);--chrome-control-width: 40px;--chrome-control-height: 34px;--chrome-control-pad-y: 6px;--chrome-run-gap: 4px;--chrome-rule-gap: 7px;--frame-width: clamp(12px, 1vw, 20px);--chrome-gap: clamp(12px, 1.5vw, 26px);--chrome-inset-x: calc(var(--frame-width) + var(--chrome-gap));--chrome-inset-y: var(--chrome-gap);--chrome-band-y: calc(var(--chrome-inset-y) + var(--chrome-control-height) + 8px)}@media(max-height:560px){:root{--chrome-control-height: 28px;--chrome-control-pad-y: 3px;--chrome-run-gap: 2px;--chrome-rule-gap: 4px}}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;font-family:IM Fell English,Georgia,serif;color:var(--ink);background:#132328}button,input{font:inherit}button{min-height:36px;border:1px solid rgba(32,48,47,.26);border-radius:6px;padding:0 14px;color:var(--ink);background:#f4ebcd;box-shadow:0 1px #fff6 inset;cursor:pointer;transition:background var(--dur-hover) ease}button:disabled{cursor:not-allowed;opacity:.48;transform:none}select,textarea{font:inherit}.select-control{min-height:36px;border:1px solid rgba(32,48,47,.26);border-radius:6px;padding:0 12px;color:var(--ink);background:#f4ebcd}.text-control{min-width:0;width:100%;min-height:36px;border:1px solid rgba(32,48,47,.26);border-radius:6px;padding:0 12px;color:var(--ink);background:#f4ebcd}button:hover{background:#ecdfb6}button:active{transform:translateY(1px)}.toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;border:1px solid rgba(36,27,22,.2);border-radius:6px;padding:0 12px;background:#ffffff57}.toggle input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;order:2;width:38px;height:20px;flex:0 0 auto;border-radius:999px;background:#241b163d;box-shadow:inset 0 0 0 1px #241b1633}.toggle input:before{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:999px;background:#fffbe9;transition:transform var(--dur-quick) ease}.toggle input:checked{background:var(--warm-wood);box-shadow:inset 0 0 0 1px var(--warm-wood-deep)}.toggle input:checked:before{transform:translate(18px)}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:.01ms!important;scroll-behavior:auto!important}}.app-shell{width:min(1480px,100%);min-height:100vh;margin:0 auto;padding:24px;display:flex;flex-direction:column}body:not(.sigil-maker-page) .app-shell{height:100vh;overflow:hidden}.workspace{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,2.2fr) minmax(280px,1fr);gap:18px;align-items:stretch;flex:1 1 auto;min-height:0}.eyebrow{margin:0 0 6px;font-family:Cinzel,serif;color:var(--accent);font-size:13px;letter-spacing:0;text-transform:uppercase}.header-actions{display:flex;align-items:center;gap:10px}.canvas-panel,.side-panel{border:1px solid rgba(245,240,219,.26);border-radius:var(--radius);background:#f2ecd6e6;box-shadow:0 18px 45px var(--shadow)}.canvas-panel{min-width:0;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;justify-content:stretch;background:var(--paper)}.side-panel{min-width:0;padding:14px}.toolbar{display:flex;align-items:center;gap:10px;min-height:58px;padding:10px;border-bottom:1px solid rgba(36,27,22,.16);background:#eee7cfeb}@media(min-width:1051px){.workspace{grid-template-columns:minmax(230px,.85fr) minmax(0,2.2fr) minmax(280px,1.05fr)}.canvas-panel{aspect-ratio:1 / 1;width:100%;height:auto;align-self:start}.workspace.canvas-height-matched{grid-template-columns:minmax(230px,.85fr) auto minmax(280px,1.05fr)}.workspace.canvas-height-matched .canvas-panel{width:auto;height:100%;align-self:stretch}}@media(max-width:1050px){body:not(.sigil-maker-page) .app-shell{height:auto;overflow:visible}.workspace{grid-template-columns:1fr;align-items:start}.canvas-panel{display:block}.side-panel{order:2}}@media(max-width:640px){.app-shell{padding:12px}.toolbar{flex-wrap:wrap}.toolbar button,.toggle{flex:1 1 120px;justify-content:center}}.canvas-shell{position:relative;width:100%;height:100%;max-height:none;flex:1 1 auto;background:var(--paper);touch-action:none;overflow:hidden;transition:background var(--portal-tilt-duration) ease}.canvas-shell canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}#glyphCanvas,#labGlyphCanvas{z-index:1;transform-origin:50% calc(50% + var(--portal-origin-shift) * var(--portal-fit, 1));transform-style:preserve-3d;will-change:transform,filter,box-shadow;transition:transform var(--portal-tilt-duration) cubic-bezier(.16,.78,.18,1),filter var(--portal-tilt-duration) ease,box-shadow var(--portal-tilt-duration) ease}.canvas-shell.portal-active{background:#3a332b}.canvas-shell.portal-active #glyphCanvas,.canvas-shell.portal-active #labGlyphCanvas{transform:perspective(var(--portal-perspective)) translateY(calc(var(--portal-lift) * var(--portal-fit, 1))) rotateX(var(--portal-tilt)) scale(var(--portal-shrink));box-shadow:0 1px #fffbe985 inset,0 28px 38px #241b164d;filter:drop-shadow(0 30px 24px rgba(36,27,22,.34))}#effectCanvas,#labEffectCanvas{z-index:2;pointer-events:none;mix-blend-mode:normal}#effectCanvas{transform-origin:center center;transition:transform .22s cubic-bezier(.25,1,.5,1);will-change:transform}@media(min-width:1051px){.canvas-shell{width:100%;height:auto;aspect-ratio:1 / 1}.workspace.canvas-height-matched .canvas-shell{width:auto;height:100%}}@media(max-width:1050px){.canvas-shell{width:100%;height:auto;max-height:none;aspect-ratio:1 / 1}}.reference-card{border:1px solid rgba(36,27,22,.14);border-radius:6px;padding:10px;background:#fffbe9d1}.reference-card.has-template{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:start}.reference-card-body{min-width:0}.reference-preview{width:82px;aspect-ratio:1 / 1;border:1px solid rgba(36,27,22,.14);border-radius:6px;background:#f4eed8}.reference-preview svg{display:block;width:100%;height:100%}.reference-preview polyline{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.reference-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}.reference-card-header strong{font-size:14px}.reference-card-header span{color:var(--muted-ink);font-size:12px;text-transform:capitalize}.reference-card-description{margin:0 0 8px;color:var(--muted-ink);font-size:12px;line-height:1.4}.reference-card dl{display:grid;gap:4px;margin:0}.reference-card dl div{display:flex;justify-content:space-between;gap:12px}.reference-card dt{color:var(--muted-ink);font-size:12px}.reference-card dd{margin:0;text-align:right;font-size:12px}.reference-panel,.diagnostics-panel{border-top:1px solid rgba(36,27,22,.16);padding-top:14px}.reference-panel,.dictionary-panel .diagnostics-panel{border-top:0;padding-top:0}.reference-tabs,.diagnostics-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-self:stretch;gap:4px;border:1px solid rgba(36,27,22,.12);border-radius:6px;padding:3px;background:#241b160a}.diagnostics-tabs{margin-bottom:12px}.dictionary-tab-button,.diagnostic-tab-button{min-width:0;padding:0 8px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;box-shadow:none;color:var(--muted-ink);transition:color var(--dur-hover) ease,background var(--dur-hover) ease}.dictionary-tab-button.active,.diagnostic-tab-button.active{color:var(--ink);background:#fffbe98f}.dictionary-tab-button:hover,.diagnostic-tab-button:hover{background:#fff2c5a3}.dictionary-tab-button,.diagnostic-tab-button{min-height:28px;border-bottom:0;border-radius:4px;padding:0 10px;font-size:13px;line-height:1.1;text-align:center}.dictionary-tab-button.active,.diagnostic-tab-button.active{border-bottom-color:transparent;background:#fffbe9b8;box-shadow:0 1px #ffffff7a inset}#dictionaryRootPanel,#diagnosticRootPanel,#shapesRootPanel,#spellsRootPanel,.reference-panel,.diagnostics-panel{min-height:0;flex:1 1 auto;display:flex;flex-direction:column}#spellsRootPanel{overflow-y:auto;overscroll-behavior:contain}.reference-scroll,.shape-palette,#spellsRootPanel{margin-right:calc(-1 * var(--drawer-pad-x));padding-right:var(--drawer-pad-x);scrollbar-gutter:stable}.label{color:var(--muted-ink);font-size:13px}.panel-description{margin:0 0 10px;color:var(--muted-ink);font-size:12px;line-height:1.35}.diagnostic-block{min-width:0}.diagnostic-block h2{margin:0 0 8px;font-family:Cinzel,serif;font-size:15px;letter-spacing:0}.diagnostic-output{max-height:none;overflow-y:auto;overflow-x:auto;overscroll-behavior:contain;scrollbar-gutter:stable;margin:0;border:1px solid rgba(36,27,22,.16);border-radius:6px;padding:10px;color:#2b211a;background:#fffbe9;font-family:JetBrains Mono,Consolas,Courier New,monospace;font-size:12px;line-height:1.45;white-space:pre-wrap}.shape-palette,.reference-scroll,.diagnostic-output,#spellsRootPanel{scrollbar-width:thin;scrollbar-color:var(--ink-sepia-45) transparent}.shape-palette::-webkit-scrollbar,.reference-scroll::-webkit-scrollbar,.diagnostic-output::-webkit-scrollbar,#spellsRootPanel::-webkit-scrollbar{width:8px;height:8px}.shape-palette::-webkit-scrollbar-thumb,.reference-scroll::-webkit-scrollbar-thumb,.diagnostic-output::-webkit-scrollbar-thumb,#spellsRootPanel::-webkit-scrollbar-thumb{background:var(--ink-sepia-45);border:2px solid transparent;border-radius:999px;background-clip:padding-box}.shape-palette::-webkit-scrollbar-thumb:hover,.reference-scroll::-webkit-scrollbar-thumb:hover,.diagnostic-output::-webkit-scrollbar-thumb:hover,#spellsRootPanel::-webkit-scrollbar-thumb:hover{background:var(--ink-sepia-70);background-clip:padding-box}.shape-palette::-webkit-scrollbar-track,.reference-scroll::-webkit-scrollbar-track,.diagnostic-output::-webkit-scrollbar-track,#spellsRootPanel::-webkit-scrollbar-track{background:transparent}.template-output{width:100%;min-height:48vh;resize:vertical;border:1px solid rgba(36,27,22,.16);border-radius:6px;padding:10px;color:#2b211a;background:#fffbe9;font-family:JetBrains Mono,Consolas,Courier New,monospace;font-size:12px;line-height:1.45}.auth-dialog.svelte-1pqqxlt{width:min(400px,92vw);padding:24px;border:1px solid var(--panel-line);border-radius:12px;color:var(--ink);background:var(--panel, #f2ecd6);box-shadow:0 24px 60px #241b1673;opacity:1;scale:1;transition:opacity .22s ease,scale .22s cubic-bezier(.22,1,.36,1),overlay .22s allow-discrete,display .22s allow-discrete}.auth-dialog.svelte-1pqqxlt:not([open]){opacity:0;scale:.97}@starting-style{.auth-dialog[open].svelte-1pqqxlt{opacity:0;scale:.97}}.auth-dialog.svelte-1pqqxlt::backdrop{background:#241b1680;transition:background .22s ease,overlay .22s allow-discrete,display .22s allow-discrete}.auth-dialog.svelte-1pqqxlt:not([open])::backdrop{background:#241b1600}@starting-style{.auth-dialog[open].svelte-1pqqxlt::backdrop{background:#241b1600}}form.svelte-1pqqxlt{display:grid;gap:14px}h2.svelte-1pqqxlt{margin:0;font-family:Cinzel,serif;font-size:1.3rem;letter-spacing:.04em}.auth-note.svelte-1pqqxlt{margin:0;font-size:.92rem;color:var(--muted-ink)}label.svelte-1pqqxlt{display:grid;gap:6px;font-size:.9rem}.auth-error-slot.svelte-1pqqxlt{min-height:1.2rem}.auth-error.svelte-1pqqxlt{margin:0;font-size:.9rem;color:var(--ember)}.auth-actions.svelte-1pqqxlt{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-submit.svelte-1pqqxlt{min-height:40px;padding:0 20px}.auth-close.svelte-1pqqxlt{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;border:0;border-radius:8px;color:var(--ink-sepia-45);background:none;cursor:pointer;transition:color var(--dur-hover) ease,background var(--dur-hover) ease}.auth-close.svelte-1pqqxlt:hover{color:var(--ink-sepia);background:var(--ink-sepia-20)}.auth-close.svelte-1pqqxlt svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.auth-switch.svelte-1pqqxlt{padding:6px 8px;border:none;background:none;font-size:.85rem;color:var(--accent);text-decoration:underline;cursor:pointer}.app-background.svelte-12qhfyh{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(#11282e57,#0f212780),url(../../../images/app-background.webp) center / cover no-repeat;opacity:.82}.app-content.svelte-12qhfyh{position:relative;z-index:1;min-height:100vh}@media(prefers-reduced-data:reduce){.app-background.svelte-12qhfyh{background:linear-gradient(#11282ef0,#0d1e24eb)}}
