@font-face{font-family:Texel;src:url(../fonts/texel-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Texel;src:url(../fonts/texel-bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font:"Texel", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--fs-sm:16px;--lh-sm:24px;--fs-md:16px;--lh-md:24px;--fs-lg:24px;--lh-lg:32px;--fs-xl:32px;--lh-xl:40px;--fs-2xl:48px;--lh-2xl:56px;--fs-3xl:64px;--lh-3xl:72px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--r-xs:2px;--r-sm:4px;--r-md:8px;--r-lg:12px;--topbar-h:64px;--container:1200px;--gutter:24px;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-1:.12s;--dur-2:.16s;--dur-3:.24s;--bg:#0d0f14;--bg-elev:#12151c;--surface:#181c25;--surface-2:#1f2430;--surface-3:#282e3c;--surface-4:#313849;--border:#2a3140;--border-strong:#3a4254;--text:#eef1f7;--text-2:#b4bccb;--text-3:#8c95a8;--overlay:#05070ab8;--green:#5bd35b;--green-2:#3fb23f;--green-deep:#1d4d21;--blue:#4fb3ff;--blue-2:#2f93e0;--blue-deep:#16395a;--purple:#b07cff;--purple-2:#9058f0;--purple-deep:#3a2566;--gold:#ffcf4a;--gold-2:#e0ad22;--red:#ff5b5b;--red-2:#e03e3e;--on-accent:#08120a;--tool-accent:var(--green);--tool-accent-2:var(--green-2);--tool-accent-soft:#5bd35b24;--tool-accent-glow:#5bd35b47;--focus:#8fd0ff;--focus-ring:0 0 0 2px var(--bg), 0 0 0 4px var(--focus);--bevel-hi:#ffffff38;--bevel-lo:#00000052;--inner-hi:inset 0 1px 0 #ffffff0d;--shadow-1:0 1px 2px #00000059, 0 2px 8px #0003;--shadow-2:0 2px 4px #0000004d, 0 10px 28px #00000059;--shadow-pop:0 4px 10px #00000059, 0 24px 64px #0000008c;--checker-a:#2b313e;--checker-b:#1d222c;--grid-line:#ffffff07;--scrollbar:#323a4b;--selection:#4fb3ff59}@media (min-resolution:2x){:root{--fs-sm:12px;--lh-sm:20px}}@media (min-resolution:3x) and (max-resolution:3.49x){:root{--fs-sm:calc(40px / 3);--lh-sm:calc(64px / 3)}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef1f6;--bg-elev:#f6f8fb;--surface:#fff;--surface-2:#f3f5f9;--surface-3:#e7eaf1;--surface-4:#dde1ea;--border:#d9dee8;--border-strong:#bfc6d4;--text:#121620;--text-2:#414a5c;--text-3:#5f687a;--overlay:#161b2673;--green:#207934;--green-2:#1b6f2f;--green-deep:#d5f2d5;--blue:#1969b6;--blue-2:#155ca1;--blue-deep:#d8ebfc;--purple:#7446d8;--purple-2:#5f35bd;--purple-deep:#ebe0ff;--gold:#886100;--gold-2:#7a5700;--red:#c92f2f;--red-2:#a82323;--on-accent:#fff;--tool-accent-soft:#23863a1a;--tool-accent-glow:#23863a2e;--focus:#1a6fc0;--focus-ring:0 0 0 2px var(--bg), 0 0 0 4px var(--focus);--bevel-hi:#ffffff59;--bevel-lo:#0003;--inner-hi:inset 0 1px 0 #ffffffb3;--shadow-1:0 1px 2px #141c2d14, 0 2px 8px #141c2d0f;--shadow-2:0 2px 4px #141c2d0f, 0 12px 28px #141c2d1f;--shadow-pop:0 4px 10px #141c2d1a, 0 24px 64px #141c2d38;--checker-a:#d9dde6;--checker-b:#f4f6fa;--grid-line:#141e320a;--scrollbar:#c3c9d6;--selection:#1a6fc040}:root[data-tool=skins]{--tool-accent:var(--blue);--tool-accent-2:var(--blue-2);--tool-accent-soft:#4fb3ff24;--tool-accent-glow:#4fb3ff47}:root[data-tool=shaders]{--tool-accent:var(--purple);--tool-accent-2:var(--purple-2);--tool-accent-soft:#b07cff24;--tool-accent-glow:#b07cff4d}:root[data-theme=light][data-tool=skins]{--tool-accent-soft:#1a6fc01a;--tool-accent-glow:#1a6fc02e}:root[data-theme=light][data-tool=shaders]{--tool-accent-soft:#7446d81a;--tool-accent-glow:#7446d82e}.accent-green{--tool-accent:var(--green);--tool-accent-2:var(--green-2);--tool-accent-soft:color-mix(in srgb, var(--green) 14%, transparent);--tool-accent-glow:color-mix(in srgb, var(--green) 28%, transparent)}.accent-blue{--tool-accent:var(--blue);--tool-accent-2:var(--blue-2);--tool-accent-soft:color-mix(in srgb, var(--blue) 14%, transparent);--tool-accent-glow:color-mix(in srgb, var(--blue) 28%, transparent)}.accent-purple{--tool-accent:var(--purple);--tool-accent-2:var(--purple-2);--tool-accent-soft:color-mix(in srgb, var(--purple) 14%, transparent);--tool-accent-glow:color-mix(in srgb, var(--purple) 30%, transparent)}.accent-gold{--tool-accent:var(--gold);--tool-accent-2:var(--gold-2);--tool-accent-soft:color-mix(in srgb, var(--gold) 14%, transparent);--tool-accent-glow:color-mix(in srgb, var(--gold) 28%, transparent)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--scrollbar) transparent;scroll-padding-top:calc(var(--topbar-h) + 16px)}body{min-height:100vh;min-height:100dvh;font-family:var(--font);font-size:var(--fs-md);line-height:var(--lh-md);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;font-synthesis:none;font-kerning:none;font-variant-ligatures:none;text-rendering:optimizespeed;margin:0;font-weight:400;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(900px 480px at 12% -8%, var(--tool-accent-soft), transparent 70%), radial-gradient(760px 420px at 100% 0%, #785aff12, transparent 70%), linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);transition:background-image var(--dur-3) var(--ease);background-size:auto,auto,32px 32px,32px 32px;position:fixed;inset:0}h1,h2,h3,h4,h5,h6{letter-spacing:0;text-wrap:balance;margin:0;font-weight:400}h1{font-size:var(--fs-2xl);line-height:var(--lh-2xl)}h2{font-size:var(--fs-xl);line-height:var(--lh-xl)}h3{font-size:var(--fs-lg);line-height:var(--lh-lg)}h4,h5,h6{font-size:var(--fs-md);line-height:var(--lh-md);font-weight:700}p{text-wrap:pretty;margin:0}a{color:var(--tool-accent);text-decoration:none}a:hover{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}strong,b{font-weight:700}small{font-size:var(--fs-sm);line-height:var(--lh-sm)}code,kbd,samp,pre{font-family:var(--font);font-size:inherit}code{border-radius:var(--r-sm);background:var(--surface-3);color:var(--text);-webkit-box-decoration-break:clone;box-decoration-break:clone;overflow-wrap:anywhere;padding:0 6px}img,svg,canvas,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}ul,ol{margin:0;padding:0}hr{background:var(--border);border:0;height:2px;margin:0}::selection{background:var(--selection)}:focus{outline:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:var(--scrollbar);background-clip:padding-box;border:3px solid #0000;border-radius:2px}::-webkit-scrollbar-track{background:0 0}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:1000;border-radius:var(--r-sm);background:var(--tool-accent);color:var(--on-accent);transition:top var(--dur-2) var(--ease);padding:8px 16px;position:fixed;top:-64px;left:16px}.skip-link:focus{text-decoration:none;top:12px}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:var(--fs-sm);line-height:var(--lh-sm)}.bold{font-weight:700}.accent{color:var(--tool-accent)}.stack{gap:var(--gap,12px);flex-direction:column;min-width:0;display:flex}.stack-sm{--gap:8px}.stack-lg{--gap:24px}.row{align-items:center;gap:var(--gap,8px);min-width:0;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.grow{flex:auto;min-width:0}.shrink-0{flex-shrink:0}.scroll{overscroll-behavior:contain;scrollbar-width:thin;min-height:0;overflow:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pixelated,.pixelated canvas,.pixelated img{image-rendering:pixelated}.checker{background-color:var(--checker-b);background-image:linear-gradient(45deg, var(--checker-a) 25%, transparent 25%), linear-gradient(-45deg, var(--checker-a) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--checker-a) 75%), linear-gradient(-45deg, transparent 75%, var(--checker-a) 75%);background-size:var(--checker-size,16px) var(--checker-size,16px);background-position:0 0, 0 calc(var(--checker-size,16px) / 2), calc(var(--checker-size,16px) / 2) calc(var(--checker-size,16px) / -2), calc(var(--checker-size,16px) / -2) 0}.section-title{font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-3);text-transform:uppercase;letter-spacing:.125em;align-items:center;gap:8px;margin:0;display:flex}.divider{background:var(--border);border:0;flex:none;align-self:stretch;height:2px;margin:0}.divider.vertical{width:2px;height:auto}.grid-auto{grid-template-columns:repeat(auto-fill, minmax(var(--min,72px), 1fr));gap:var(--gap,8px);display:grid}.chip{border-radius:var(--r-sm);border:2px solid var(--border);background:var(--surface-2);height:32px;color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-sm);white-space:nowrap;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);align-items:center;gap:6px;padding:0 12px;display:inline-flex}button.chip:hover,a.chip:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.chip[aria-pressed=true],.chip.active{border-color:var(--tool-accent);background:var(--tool-accent-soft);color:var(--text)}.chip .icon{color:var(--tool-accent)}.kbd{border-radius:var(--r-sm);border:2px solid var(--border-strong);background:var(--surface-3);min-width:24px;height:24px;color:var(--text);font-size:var(--fs-sm);vertical-align:middle;border-bottom-width:4px;justify-content:center;align-items:center;padding:0 6px;line-height:1;display:inline-flex}.pixel-shadow{text-shadow:.125em .125em #00000059}:root[data-theme=light] .pixel-shadow{text-shadow:.125em .125em #141e321f}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.icon{width:var(--icon-size,24px);height:var(--icon-size,24px);vertical-align:middle;flex:none;line-height:0;display:inline-flex}.icon svg{width:100%;height:100%}.btn{--btn-bg:var(--surface-3);--btn-bg-hover:var(--surface-4);--btn-fg:var(--text);--btn-border:var(--border-strong);--btn-h:40px;height:var(--btn-h);border:2px solid var(--btn-border);border-radius:var(--r-sm);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--fs-md);line-height:var(--lh-md);white-space:nowrap;-webkit-user-select:none;user-select:none;box-shadow:inset 0 2px 0 var(--bevel-hi), inset 0 -4px 0 var(--bevel-lo);transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 16px 2px;text-decoration:none;display:inline-flex;position:relative}.btn:hover:not(:disabled){background:var(--btn-bg-hover);text-decoration:none}.btn:active:not(:disabled){box-shadow:inset 0 2px 0 var(--bevel-lo), inset 0 -2px 0 var(--bevel-lo);transform:translateY(1px)}.btn:disabled{opacity:.45;box-shadow:none}.btn .icon{margin-bottom:-2px}.btn-primary{--btn-bg:var(--tool-accent);--btn-bg-hover:color-mix(in srgb, var(--tool-accent) 86%, white);--btn-fg:var(--on-accent);--btn-border:var(--tool-accent-2);--bevel-hi:#ffffff59;--bevel-lo:#00000040}:root[data-theme=light] .btn-primary{--btn-bg-hover:color-mix(in srgb, var(--tool-accent) 88%, black)}.btn-primary:hover:not(:disabled){box-shadow:inset 0 2px 0 var(--bevel-hi), inset 0 -4px 0 var(--bevel-lo), 0 0 0 4px var(--tool-accent-soft), 0 6px 20px var(--tool-accent-glow)}.btn-secondary{--btn-bg:var(--surface-3)}.btn-ghost{--btn-bg:transparent;--btn-bg-hover:var(--surface-3);--btn-border:transparent;--btn-fg:var(--text-2);box-shadow:none}.btn-ghost:hover:not(:disabled){--btn-fg:var(--text)}.btn-ghost:active:not(:disabled){box-shadow:none}.btn-danger{--btn-bg:var(--red);--btn-bg-hover:color-mix(in srgb, var(--red) 86%, white);--btn-fg:#1a0505;--btn-border:var(--red-2);--bevel-hi:#ffffff4d}:root[data-theme=light] .btn-danger{--btn-fg:#fff;--btn-bg-hover:color-mix(in srgb, var(--red) 88%, black)}.btn-sm{--btn-h:32px;gap:6px;padding:0 12px 2px}.btn-lg{--btn-h:48px;gap:12px;padding:0 24px 2px}.btn.icon-only{width:var(--btn-h);padding-left:0;padding-right:0}.btn.busy{pointer-events:none;color:#0000!important}.btn.busy>.spinner{color:var(--btn-fg);margin:auto;position:absolute;inset:0}.icon-btn{--ib:40px;width:var(--ib);height:var(--ib);border-radius:var(--r-sm);color:var(--text-2);transition:background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);background:0 0;border:2px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn.sm{--ib:32px}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:active:not(:disabled){transform:translateY(1px)}.icon-btn[aria-pressed=true]{background:var(--tool-accent-soft);border-color:color-mix(in srgb, var(--tool-accent) 55%, transparent);color:var(--tool-accent)}.icon-btn:disabled{opacity:.35}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-head{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.field-head>.slider-value{flex:none}.field-label{overflow-wrap:anywhere;min-width:0;color:var(--text);font-size:var(--fs-md);line-height:var(--lh-md)}.field-value{border-radius:var(--r-xs);background:var(--surface-2);min-width:48px;color:var(--text-2);text-align:right;font-variant-numeric:tabular-nums;border:2px solid #0000;flex:none;width:72px;height:28px;padding:0 6px}.field-value:hover{border-color:var(--border)}.field-value:focus{border-color:var(--focus);color:var(--text);outline:none}.field-desc{color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-sm)}.input,.textarea,.select-input{border:2px solid var(--border);border-radius:var(--r-sm);background:var(--bg-elev);width:100%;min-width:0;height:40px;color:var(--text);transition:border-color var(--dur-1) var(--ease), background-color var(--dur-1) var(--ease);padding:0 12px 2px;box-shadow:inset 0 2px #0000002e}.textarea{resize:vertical;height:auto;min-height:96px;line-height:var(--lh-md);padding:8px 12px}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.textarea:hover,.select-input:hover{border-color:var(--border-strong)}.input:focus,.textarea:focus,.select-input:focus{border-color:var(--focus);outline:none}.input-with-icon{position:relative}.input-with-icon>.icon{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.input-with-icon>.input{padding-left:40px}.select{min-width:0;position:relative}.select-input{appearance:none;cursor:pointer;background:var(--surface-2);box-shadow:var(--inner-hi);padding-right:40px}.select-input option{background:var(--surface);color:var(--text)}.select-chevron{color:var(--text-3);pointer-events:none;position:absolute;bottom:8px;right:8px}.slider{gap:4px}.range{--fill:50%;appearance:none;cursor:pointer;background:0 0;width:100%;height:24px;margin:0}.range::-webkit-slider-runnable-track{border-radius:var(--r-xs);background:linear-gradient(to right, var(--tool-accent) var(--fill), var(--surface-4) var(--fill));height:8px;box-shadow:inset 0 2px #00000040}.range::-moz-range-track{border-radius:var(--r-xs);background:var(--surface-4);height:8px;box-shadow:inset 0 2px #00000040}.range::-moz-range-progress{border-radius:var(--r-xs);background:var(--tool-accent);height:8px}.range::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--bg);border-radius:var(--r-xs);background:var(--text);width:16px;height:24px;transition:transform var(--dur-1) var(--ease);margin-top:-8px;box-shadow:inset 0 -4px #00000040}.range::-moz-range-thumb{border:2px solid var(--bg);border-radius:var(--r-xs);background:var(--text);width:12px;height:20px;box-shadow:inset 0 -4px #00000040}.range:hover::-webkit-slider-thumb{transform:scaleY(1.08)}.range:focus-visible{outline:none}.range:focus-visible::-webkit-slider-thumb{box-shadow:inset 0 -4px 0 #00000040, 0 0 0 2px var(--focus)}.range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 2px var(--focus)}.toggle{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.toggle-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.switch{border:2px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface-4);width:44px;height:24px;transition:background-color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);flex:none;margin-top:0;padding:0;position:relative;box-shadow:inset 0 2px #00000040}.switch:after{content:"";border-radius:var(--r-xs);background:var(--text-2);width:16px;height:16px;transition:transform var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease);position:absolute;top:2px;left:2px;box-shadow:inset 0 -4px #0003}.switch[aria-checked=true]{background:var(--tool-accent);border-color:var(--tool-accent-2)}.switch[aria-checked=true]:after{background:#fff;transform:translate(20px)}.toggle:hover .switch{border-color:var(--text-3)}.toggle:hover .switch[aria-checked=true]{border-color:var(--tool-accent-2)}.segmented{border:2px solid var(--border);border-radius:var(--r-md);background:var(--bg-elev);align-items:stretch;gap:2px;max-width:100%;padding:2px;display:inline-flex}.segmented-item{border-radius:var(--r-sm);min-width:0;height:32px;color:var(--text-2);white-space:nowrap;transition:background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:0;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:0 12px 2px;display:inline-flex}.segmented.sm .segmented-item{height:28px;font-size:var(--fs-sm);padding:0 8px 2px}.segmented-item:hover{color:var(--text);background:var(--surface-2)}.segmented-item[aria-checked=true]{background:var(--surface-4);color:var(--text);box-shadow:inset 0 2px 0 var(--bevel-hi), inset 0 -2px 0 var(--bevel-lo)}.segmented-item[aria-checked=true] .icon{color:var(--tool-accent)}.segmented-item:focus-visible{outline-offset:0}.swatch-field{align-items:center;gap:12px;display:flex}.swatch-btn{border:2px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);height:40px;color:var(--text-2);font-variant-numeric:tabular-nums;align-items:center;gap:8px;padding:0 12px 0 4px;display:inline-flex;position:relative}.swatch-btn:hover{border-color:var(--border-strong);color:var(--text)}.swatch-chip{border-radius:var(--r-xs);--checker-size:8px;width:28px;height:28px;box-shadow:inset 0 0 0 2px #00000040,inset 0 2px 0 2px #ffffff1f}.card{border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface);min-width:0;box-shadow:var(--inner-hi), var(--shadow-1);flex-direction:column;display:flex}.card-header{border-bottom:2px solid var(--border);align-items:center;gap:10px;min-height:56px;padding:12px 16px;display:flex}.card-header>.icon{color:var(--tool-accent)}.card-title{min-width:0;font-size:var(--fs-md);line-height:var(--lh-md);flex:auto;font-weight:700}.card-actions{align-items:center;gap:4px;margin-right:-6px;display:flex}.card-body{flex-direction:column;gap:16px;min-width:0;padding:16px;display:flex}.panel{border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface);min-width:0;min-height:0;box-shadow:var(--inner-hi);flex-direction:column;display:flex}.panel-header{border-bottom:2px solid var(--border);flex:none;align-items:center;gap:8px;min-height:48px;padding:8px 12px 8px 16px;display:flex}.panel-header h2,.panel-header h3,.panel-header .panel-title{min-width:0;font-size:var(--fs-md);line-height:var(--lh-md);flex:auto;font-weight:700}.panel-body{flex-direction:column;gap:16px;min-height:0;padding:16px;display:flex}.toolbar{border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--inner-hi), var(--shadow-1);flex-wrap:wrap;align-items:center;gap:4px;padding:4px;display:flex}.toolbar-sep{background:var(--border);flex:none;width:2px;height:24px;margin:0 4px}.tabs{border-bottom:2px solid var(--border);scrollbar-width:none;align-items:stretch;gap:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{height:44px;color:var(--text-3);white-space:nowrap;transition:color var(--dur-1) var(--ease);background:0 0;border:0;flex:none;align-items:center;gap:8px;padding:0 12px 2px;display:inline-flex;position:relative}.tab:after{content:"";height:4px;transition:background-color var(--dur-2) var(--ease);background:0 0;position:absolute;bottom:-2px;left:8px;right:8px}.tab:hover,.tab[aria-selected=true]{color:var(--text)}.tab[aria-selected=true]:after{background:var(--tool-accent)}.tab[aria-selected=true] .icon{color:var(--tool-accent)}.tab:focus-visible{outline-offset:-2px}.progress{flex-direction:column;gap:8px;min-width:0;display:flex}.progress-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 12px;min-width:0;display:flex}.progress-label{overflow-wrap:anywhere;min-width:0}.progress-meta{color:var(--text-3);font-variant-numeric:tabular-nums;flex:none;margin-left:auto}.progress-track{border:2px solid var(--border-strong);border-radius:var(--r-sm);background:var(--bg-elev);height:16px;position:relative;overflow:hidden;box-shadow:inset 0 2px #0000004d}.progress-bar{background:var(--tool-accent);width:0;transition:width var(--dur-3) var(--ease);position:absolute;inset:0 auto 0 0;box-shadow:inset 0 2px #ffffff59,inset 0 -2px #0003}.progress-track:after{content:"";pointer-events:none;background-image:linear-gradient(90deg,#0000 14px,#0000002e 14px);background-size:16px 100%;position:absolute;inset:0}.progress.indeterminate .progress-bar{width:30%;animation:1.2s steps(24,end) infinite progress-slide}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(340%)}}.spinner{--sz:24px;width:var(--sz);height:var(--sz);color:var(--tool-accent);flex:none;display:inline-block;position:relative}.spinner i{width:var(--c,7px);height:var(--c,7px);opacity:.16;background:currentColor;animation:.96s step-end infinite spinner-blink;position:absolute}.spinner i:first-child{animation-delay:-.84s;top:0;left:0}.spinner i:nth-child(2){left:var(--st,8px);animation-delay:-.72s;top:0}.spinner i:nth-child(3){left:calc(var(--st,8px) * 2);animation-delay:-.6s;top:0}.spinner i:nth-child(4){left:calc(var(--st,8px) * 2);top:var(--st,8px);animation-delay:-.48s}.spinner i:nth-child(5){left:calc(var(--st,8px) * 2);top:calc(var(--st,8px) * 2);animation-delay:-.36s}.spinner i:nth-child(6){left:var(--st,8px);top:calc(var(--st,8px) * 2);animation-delay:-.24s}.spinner i:nth-child(7){left:0;top:calc(var(--st,8px) * 2);animation-delay:-.12s}.spinner i:nth-child(8){left:0;top:var(--st,8px);animation-delay:0s}@keyframes spinner-blink{0%{opacity:1}12.5%{opacity:.7}25%{opacity:.45}37.5%{opacity:.16}}@media (prefers-reduced-motion:reduce){.spinner i{animation:.8s step-end infinite spinner-blink!important}.progress.indeterminate .progress-bar{opacity:.5;width:100%;animation:none!important}}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 24px;display:flex}.empty-icon{border-radius:var(--r-md);background:var(--tool-accent-soft);width:72px;height:72px;color:var(--tool-accent);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--tool-accent) 30%, transparent);place-items:center;margin-bottom:4px;display:grid}.empty-state h3{font-size:var(--fs-lg);line-height:var(--lh-lg)}.empty-state p{max-width:44ch;color:var(--text-2)}.empty-state .empty-action{margin-top:8px}.badge{--tone:var(--text-3);border-radius:var(--r-xs);border:2px solid color-mix(in srgb, var(--tone) 35%, transparent);background:color-mix(in srgb, var(--tone) 14%, transparent);height:24px;color:var(--tone);font-size:var(--fs-sm);white-space:nowrap;vertical-align:middle;flex:none;align-items:center;gap:4px;padding:0 8px;line-height:20px;display:inline-flex}.badge.tone-green{--tone:var(--green)}.badge.tone-blue{--tone:var(--blue)}.badge.tone-purple{--tone:var(--purple)}.badge.tone-gold{--tone:var(--gold)}.badge.tone-red{--tone:var(--red)}.badge.tone-gray{--tone:var(--text-2)}.tooltip{z-index:1200;border:2px solid var(--border-strong);border-radius:var(--r-sm);color:#eef1f7;max-width:280px;font-size:var(--fs-sm);line-height:var(--lh-sm);pointer-events:none;opacity:0;transition:opacity var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);box-shadow:var(--shadow-2);background:#07090d;padding:4px 8px 6px;position:fixed;transform:translateY(2px)}:root[data-theme=light] .tooltip{background:#1b2130;border-color:#1b2130}.tooltip.show{opacity:1;transform:none}.popover[popover],.tooltip[popover]{margin:0;inset:auto}.popover[popover]{color:var(--text);padding:0}.popover{z-index:950;border:2px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);min-width:200px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);box-shadow:var(--shadow-pop);animation:pop-in var(--dur-2) var(--ease-out);position:fixed;overflow:auto}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.menu{flex-direction:column;min-width:200px;padding:4px;display:flex}.menu-item{border-radius:var(--r-sm);height:40px;color:var(--text);text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:10px;padding:0 12px 2px 8px;display:flex}.menu-item .icon{color:var(--text-3)}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-3);outline:none}.menu-item.danger,.menu-item.danger .icon{color:var(--red)}.modal{width:min(var(--modal-w,520px), calc(100vw - 32px));border:2px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);max-width:none;max-height:calc(100dvh - 48px);color:var(--text);box-shadow:var(--shadow-pop);margin:auto;padding:0;overflow:hidden}.modal[open]{animation:modal-in var(--dur-3) var(--ease-out);flex-direction:column;display:flex}.modal::backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in var(--dur-2) var(--ease)}.modal.closing{animation:modal-out var(--dur-2) var(--ease) forwards}.modal.closing::backdrop{animation:fade-out var(--dur-2) var(--ease) forwards}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.97)}}@keyframes modal-out{to{opacity:0;transform:translateY(4px)scale(.98)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.modal-header{flex:none;align-items:center;gap:12px;padding:16px 12px 16px 24px;display:flex}.modal-title{min-width:0;font-size:var(--fs-lg);line-height:var(--lh-lg);flex:auto}.modal-body{min-height:0;color:var(--text-2);flex:auto;padding:0 24px 24px;overflow:auto}.modal-body>*+*{margin-top:12px}.modal-footer{border-top:2px solid var(--border);background:var(--bg-elev);flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}@media (max-width:560px){.modal{border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0;width:100vw;max-height:92dvh;margin:auto 0 0}.modal[open]{animation:sheet-in var(--dur-3) var(--ease-out)}.modal-footer{padding-bottom:max(16px, env(safe-area-inset-bottom))}.modal-footer .btn{flex:1 1 0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.toast-region{z-index:1100;pointer-events:none;flex-direction:column-reverse;align-items:flex-end;gap:8px;width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast-region[popover]{color:inherit;background:0 0;border:0;margin:0;padding:0;inset:auto 16px 16px auto;overflow:visible}.toast{--tone:var(--blue);border:2px solid var(--border-strong);border-left:6px solid var(--tone);border-radius:var(--r-md);background:var(--surface-2);width:100%;box-shadow:var(--shadow-pop);pointer-events:auto;animation:toast-in var(--dur-3) var(--ease-out);align-items:flex-start;gap:12px;padding:12px 8px 12px 14px;display:flex}.toast.leaving{animation:toast-out var(--dur-2) var(--ease) forwards}.toast>.icon{color:var(--tone);margin-top:0}.toast-msg{overflow-wrap:anywhere;flex:auto;min-width:0;padding-top:0}.toast-actions{align-items:center;gap:4px;margin:-4px 0;display:flex}.toast.tone-success{--tone:var(--green)}.toast.tone-error{--tone:var(--red)}.toast.tone-warn{--tone:var(--gold)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes toast-out{to{opacity:0;transform:translate(24px)}}@media (max-width:560px){.toast-region,.toast-region[popover]{width:auto;left:16px;right:16px;bottom:max(16px, env(safe-area-inset-bottom));align-items:stretch}}@media (max-width:720px){body:has(.editor-layout.has-tabs) .toast-region{bottom:calc(76px + env(safe-area-inset-bottom))}}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-md);background:var(--bg-elev);color:var(--text-2);text-align:center;cursor:pointer;transition:border-color var(--dur-1) var(--ease), background-color var(--dur-1) var(--ease), transform var(--dur-2) var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px 24px;display:flex;position:relative}.dropzone:hover{border-color:var(--text-3);background:var(--surface)}.dropzone.dragging{border-color:var(--tool-accent);background:var(--tool-accent-soft);transform:scale(1.01)}.dropzone-icon{border-radius:var(--r-md);background:var(--tool-accent-soft);width:56px;height:56px;color:var(--tool-accent);transition:transform var(--dur-2) var(--ease-out);place-items:center;margin-bottom:4px;display:grid}.dropzone.dragging .dropzone-icon{transform:translateY(-4px)}.dropzone-label{color:var(--text)}.dropzone-hint{color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-sm)}.dropzone-error{color:var(--red);font-size:var(--fs-sm);line-height:var(--lh-sm)}.dropzone.compact{text-align:left;flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 16px}.dropzone.compact .dropzone-icon{width:40px;height:40px;margin:0}.dropzone.compact .dropzone-text{flex-direction:column;min-width:0;display:flex}.version-picker{flex-direction:column;gap:8px;min-width:0;display:flex}.vp-trigger{border:2px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);width:100%;min-width:0;height:48px;color:var(--text);text-align:left;box-shadow:var(--inner-hi);transition:border-color var(--dur-1) var(--ease);align-items:center;gap:10px;padding:0 8px 0 12px;display:flex}.vp-trigger:hover{border-color:var(--border-strong)}.vp-trigger[aria-expanded=true]{border-color:var(--focus)}.vp-trigger>.icon:first-child{color:var(--tool-accent)}.vp-trigger .vp-current{flex:auto;align-items:baseline;gap:10px;min-width:0;display:flex}.vp-trigger .vp-name{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.vp-trigger .vp-sub{text-overflow:ellipsis;min-width:0;color:var(--text-3);white-space:nowrap;font-size:var(--fs-sm);flex:0 100 auto;overflow:hidden}.vp-trigger>.icon:last-child{color:var(--text-3)}.vp-pop{flex-direction:column;width:380px;display:flex;overflow:hidden}.vp-pop-head{border-bottom:2px solid var(--border);flex-direction:column;gap:10px;padding:12px;display:flex}.vp-list{overscroll-behavior:contain;max-height:min(380px,50vh);padding:4px;overflow:auto}.vp-group{color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-sm);padding:10px 10px 4px}.vp-item{border-radius:var(--r-sm);height:40px;color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:0 10px 2px;display:flex}.vp-item .vp-item-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.vp-item .vp-item-meta{color:var(--text-3);font-size:var(--fs-sm);white-space:nowrap}.vp-item.snapshot:not([aria-selected=true]){color:var(--text-2)}.vp-item.active{background:var(--surface-3)}.vp-item[aria-selected=true]{color:var(--tool-accent)}.vp-item .vp-check{width:24px;color:var(--tool-accent)}.vp-empty{color:var(--text-3);text-align:center;padding:24px 12px}.vp-status{color:var(--text-2);align-items:center;gap:10px;padding:16px 12px;display:flex}@media (max-width:560px){.vp-pop{width:calc(100vw - 16px)}}.asset-panel{border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface);width:100%;max-width:560px;box-shadow:var(--inner-hi), var(--shadow-2);flex-direction:column;gap:16px;margin:0 auto;padding:clamp(16px,4vw,24px);display:flex;container-type:inline-size}.asset-panel-head{align-items:flex-start;gap:16px;display:flex}.asset-panel-icon{border-radius:var(--r-md);background:var(--tool-accent-soft);width:56px;height:56px;color:var(--tool-accent);flex:none;place-items:center;display:grid}.asset-panel.is-error .asset-panel-icon{background:color-mix(in srgb, var(--red) 14%, transparent);color:var(--red)}.asset-panel.is-done .asset-panel-icon{background:color-mix(in srgb, var(--green) 14%, transparent);color:var(--green)}.asset-panel h3{font-size:var(--fs-lg);line-height:var(--lh-lg)}.asset-panel-note{border-radius:var(--r-sm);background:var(--bg-elev);color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-sm);gap:10px;padding:12px;display:flex}.asset-panel-note .icon{color:var(--text-3)}.asset-panel-error{color:var(--red)}.asset-panel-actions{flex-wrap:wrap;gap:8px;display:flex}@container (width<=440px){.asset-panel-head{gap:12px}.asset-panel-icon{width:40px;height:40px}.asset-panel h3{font-size:var(--fs-md);line-height:var(--lh-md);font-weight:700}}.color-picker{flex-direction:column;gap:12px;width:288px;max-width:100%;padding:12px;display:flex}.color-picker.inline{padding:0}.cp-sv{border-radius:var(--r-sm);cursor:crosshair;touch-action:none;height:160px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #0003}.cp-sv canvas{width:100%;height:100%}.cp-sv-cursor{pointer-events:none;border:2px solid #fff;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;box-shadow:0 0 0 2px #0009,inset 0 0 0 2px #0000004d}.cp-strip{border-radius:var(--r-xs);cursor:pointer;touch-action:none;--checker-size:8px;height:16px;position:relative;box-shadow:inset 0 0 0 2px #0003}.cp-strip-fill{border-radius:inherit;position:absolute;inset:0}.cp-strip-thumb{border-radius:var(--r-xs);pointer-events:none;border:2px solid #fff;width:8px;height:24px;margin-left:-4px;position:absolute;top:-4px;box-shadow:0 0 0 2px #0000008c}.cp-strip:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.cp-sv:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.cp-row{align-items:center;gap:8px;display:flex}.cp-preview{border-radius:var(--r-sm);--checker-size:10px;flex:none;width:40px;height:40px;display:flex;overflow:hidden;box-shadow:inset 0 0 0 2px #00000040}.cp-preview span{flex:1}.cp-hex{text-transform:lowercase;flex:auto}.cp-alpha-input{text-align:right;flex:none;width:64px}.cp-swatches{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.cp-swatch{aspect-ratio:1;border-radius:var(--r-xs);width:100%;transition:transform var(--dur-1) var(--ease);--checker-size:8px;background-color:#0000;border:0;padding:0;position:relative;overflow:hidden}.cp-swatch-fill{position:absolute;inset:0;box-shadow:inset 0 0 0 2px #0003}.cp-swatch:hover{transform:scale(1.12)}.cp-swatch.selected{box-shadow:0 0 0 2px var(--text);overflow:visible}.cp-label{color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-sm)}.options-form{flex-direction:column;gap:8px;display:flex}.options-group{border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.options-group>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;height:48px;padding:0 8px 2px 14px;font-weight:700;list-style:none;display:flex}.options-group>summary::-webkit-details-marker{display:none}.options-group>summary .chev{color:var(--text-3);transition:transform var(--dur-2) var(--ease)}.options-group[open]>summary .chev{transform:rotate(180deg)}.options-group>summary .grow{flex:auto}.options-group-body{flex-direction:column;gap:18px;padding:4px 16px 18px;display:flex}.editor-tabbar{display:none}html.modal-open{padding-right:var(--scrollbar-comp,0px);overflow:hidden}.shortcuts{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px 32px;display:grid}.shortcuts-group{flex-direction:column;gap:8px;display:flex}.shortcuts-list{flex-direction:column;margin:0;display:flex}.shortcuts-row{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:36px;display:flex}.shortcuts-row:last-child{border-bottom:0}.shortcuts-row dt{color:var(--text)}.shortcuts-row dd{flex:none;align-items:center;gap:4px;margin:0;display:flex}#app{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}.container{width:100%;max-width:var(--container);margin:0 auto;margin-left:max(0px, round(down, (100% - var(--container)) / 2, 1px));padding-left:var(--gutter);padding-right:var(--gutter)}.page{flex-direction:column;flex:auto;min-height:0;display:flex}.page:focus{outline:none}.view{flex-direction:column;flex:auto;min-width:0;display:flex}.topbar{z-index:100;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);transition:border-color var(--dur-2) var(--ease), background-color var(--dur-2) var(--ease);border-bottom:2px solid #0000;position:sticky;top:0}.topbar.scrolled,body[data-route=textures] .topbar,body[data-route=skins] .topbar,body[data-route=shaders] .topbar{border-bottom-color:var(--border);background:color-mix(in srgb, var(--bg) 90%, transparent)}.topbar-inner{margin:0 auto;align-items:center;gap:24px;max-width:1440px;height:100%;margin-left:max(0px,round(down,50% - 720px,1px));padding:0 16px 0 20px;display:flex}.brand{color:var(--text);border-radius:var(--r-sm);flex:none;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand:hover{text-decoration:none}.brand:hover .logo-mark{transform:translateY(-2px)rotate(-4deg)}.logo-mark{transition:transform var(--dur-2) var(--ease-out);filter:drop-shadow(0 4px 8px #5bd35b40);flex:none}.wordmark{font-size:var(--fs-lg);line-height:var(--lh-lg);color:var(--text);white-space:nowrap;text-shadow:.125em .125em #0000004d}.wordmark span{color:#5bd35b}:root[data-theme=light] .wordmark{text-shadow:.125em .125em #141e321a}:root[data-theme=light] .wordmark span{color:#23863a}.mainnav{align-items:center;gap:4px;margin-left:8px;display:flex}.nav-link{border-radius:var(--r-sm);height:40px;color:var(--text-2);white-space:nowrap;transition:color var(--dur-1) var(--ease), background-color var(--dur-1) var(--ease);align-items:center;gap:8px;padding:0 12px 2px;text-decoration:none;display:inline-flex}.nav-link .icon{color:var(--text-3);transition:color var(--dur-1) var(--ease)}.nav-link:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.nav-link:hover .icon{color:var(--tool-accent)}.nav-link[aria-current=page]{color:var(--text);background:var(--tool-accent-soft);box-shadow:inset 0 -4px 0 var(--tool-accent)}.nav-link[aria-current=page] .icon{color:var(--tool-accent)}.topbar-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.menu-btn{display:none}.theme-toggle.spin .icon{animation:theme-spin var(--dur-3) var(--ease-out)}@keyframes theme-spin{0%{opacity:.2;transform:rotate(-90deg)scale(.6)}}@media (max-width:1120px){.mainnav .nav-link .icon{display:none}}@media (max-width:900px){.mainnav{display:none}.menu-btn{display:inline-flex}.topbar-actions>a.icon-btn{display:none}}@media (max-width:420px){.topbar-inner{padding:0 8px 0 16px}.wordmark{font-size:var(--fs-md);line-height:var(--lh-md)}}.nav-drawer{width:min(360px,88vw);border:0;border-left:2px solid var(--border-strong);background:var(--surface);width:min(360px,round(down,88vw,1px));height:100dvh;max-height:none;color:var(--text);box-shadow:var(--shadow-pop);margin:0;padding:0;position:fixed;inset:0 0 0 auto}.nav-drawer[open]{animation:drawer-in var(--dur-3) var(--ease-out);flex-direction:column;display:flex}.nav-drawer.closing{animation:drawer-out var(--dur-2) var(--ease) forwards}.nav-drawer::backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in var(--dur-2) var(--ease)}@keyframes drawer-in{0%{opacity:0;transform:translate(40px)}}@keyframes drawer-out{to{opacity:0;transform:translate(40px)}}.drawer-head{height:var(--topbar-h);border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:0 8px 0 20px;display:flex}.drawer-nav{flex-direction:column;gap:4px;padding:16px 12px;display:flex}.drawer-link{border-radius:var(--r-md);height:56px;color:var(--text);font-size:var(--fs-lg);line-height:var(--lh-lg);align-items:center;gap:14px;padding:0 16px 2px;text-decoration:none;display:flex}.drawer-link .icon{color:var(--tool-accent)}.drawer-link:hover{background:var(--surface-2);text-decoration:none}.drawer-link[aria-current=page]{background:var(--tool-accent-soft);box-shadow:inset 4px 0 0 var(--tool-accent)}.drawer-foot{padding:16px 12px max(16px, env(safe-area-inset-bottom));border-top:2px solid var(--border);align-items:center;gap:4px;margin-top:auto;display:flex}.drawer-foot .small{margin-left:8px}.section{padding-top:var(--sp-8);padding-bottom:var(--sp-8)}.section-head{margin-bottom:var(--sp-6);flex-direction:column;gap:12px;max-width:720px;display:flex}.section-head.center{margin-left:auto;text-align:center;align-items:center;margin-left:max(0px,round(down,50% - 360px,1px));margin-right:auto}.eyebrow{color:var(--tool-accent);font-size:var(--fs-sm);line-height:var(--lh-sm);text-transform:uppercase;letter-spacing:.125em;align-items:center;gap:8px;display:inline-flex}.lead{color:var(--text-2);font-size:var(--fs-md);max-width:60ch;line-height:28px}.site-footer{padding:var(--sp-7) 0 var(--sp-5);border-top:2px solid var(--border);background:color-mix(in srgb, var(--bg-elev) 70%, transparent);margin-top:auto}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:48px;display:flex}.footer-brand{flex-direction:column;gap:12px;max-width:380px;display:flex}.footer-links{flex-wrap:wrap;gap:64px;display:flex}.footer-col{flex-direction:column;gap:8px;display:flex}.footer-col a{color:var(--text-2);align-items:center;gap:4px;display:inline-flex}.footer-col a:hover{color:var(--text)}.footer-col .ext{--icon-size:24px;color:var(--text-3)}.footer-legal{margin-top:var(--sp-6);padding-top:var(--sp-4);background:linear-gradient(var(--border), var(--border)) no-repeat var(--gutter) 0 / calc(100% - 2 * var(--gutter)) 2px;color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-sm);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;display:flex}.footer-legal a{color:inherit;text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}.footer-legal a:hover{color:var(--text)}.route-loading{min-height:50vh;animation:fade-in var(--dur-3) var(--ease) .12s both;flex:auto;justify-content:center;align-items:center;gap:12px;display:flex}.fallback-page{min-height:calc(100dvh - var(--topbar-h))}.fallback-body{padding-top:var(--sp-8);padding-bottom:var(--sp-8);flex:auto;justify-content:center;align-items:center;display:flex}.error-detail{max-width:520px;color:var(--text-3);text-align:left}.error-detail summary{cursor:pointer;text-align:center}.error-detail code{white-space:pre-wrap;margin-top:8px;padding:8px 12px;display:block}.editor-layout{--left-w:300px;--right-w:340px;grid-template-columns:var(--left-w) minmax(0, 1fr) var(--right-w);height:calc(100dvh - var(--topbar-h));grid-template-areas:"left center right";gap:12px;min-height:0;padding:12px;display:grid}.editor-layout.no-left{grid-template-columns:minmax(0, 1fr) var(--right-w);grid-template-areas:"center right"}.editor-layout.no-right{grid-template-columns:var(--left-w) minmax(0, 1fr);grid-template-areas:"left center"}.editor-left,.editor-center,.editor-right{flex-direction:column;min-width:0;min-height:0;display:flex}.editor-left{grid-area:left}.editor-center{grid-area:center}.editor-right{grid-area:right}.editor-left>*,.editor-center>*,.editor-right>*{flex:auto;min-height:0}.editor-sidetabs{display:none}@media (max-width:1180px){.editor-layout,.editor-layout.no-left,.editor-layout.no-right{grid-template-columns:minmax(0, 1fr) var(--right-w);grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"center left""center right"}.editor-layout.no-left{grid-template-areas:"center right""center right"}.editor-layout.no-right{grid-template-areas:"center left""center left"}.editor-layout.has-tabs:not(.no-left):not(.no-right){grid-template-rows:auto minmax(0,1fr);grid-template-areas:"center tabs""center side"}.editor-layout.has-tabs:not(.no-left):not(.no-right) .editor-sidetabs{grid-area:tabs;display:flex}.editor-layout.has-tabs:not(.no-left):not(.no-right) .editor-sidetabs .segmented{width:100%}.editor-layout.has-tabs:not(.no-left):not(.no-right) .editor-left,.editor-layout.has-tabs:not(.no-left):not(.no-right) .editor-right{grid-area:side;display:none}.editor-layout.has-tabs:not(.no-left):not(.no-right)[data-side=left] .editor-left,.editor-layout.has-tabs:not(.no-left):not(.no-right)[data-side=right] .editor-right{display:flex}}@media (max-width:720px){.editor-layout,.editor-layout.no-left,.editor-layout.no-right{height:auto;min-height:calc(100dvh - var(--topbar-h));flex-direction:column;gap:8px;padding:8px;display:flex}.editor-layout.has-tabs{height:calc(100dvh - var(--topbar-h));padding-bottom:calc(64px + env(safe-area-inset-bottom))}.editor-layout.has-tabs .editor-sidetabs{display:none!important}.editor-layout.has-tabs .editor-left,.editor-layout.has-tabs .editor-center,.editor-layout.has-tabs .editor-right{flex:auto;display:none!important}.editor-layout.has-tabs[data-panel=left] .editor-left,.editor-layout.has-tabs[data-panel=center] .editor-center,.editor-layout.has-tabs[data-panel=right] .editor-right{display:flex!important}.editor-tabbar{z-index:90;padding:6px 8px max(6px, env(safe-area-inset-bottom));border-top:2px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.editor-tab{border-radius:var(--r-md);height:52px;color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-sm);background:0 0;border:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;display:flex}.editor-tab[aria-current=true]{color:var(--text);background:var(--tool-accent-soft)}.editor-tab[aria-current=true] .icon{color:var(--tool-accent)}:root{--gutter:16px}.section{padding-top:var(--sp-7);padding-bottom:var(--sp-7)}}
