:root{font-family:IBM Plex Sans,Avenir Next,Segoe UI,sans-serif;--page-background: hsl(225 24% 10%);--page-background-image: radial-gradient(circle at top left, hsl(18 82% 55% / .2), transparent 30%), radial-gradient(circle at right, hsl(208 88% 56% / .16), transparent 28%), linear-gradient(180deg, hsl(225 25% 12%) 0%, hsl(228 23% 8%) 100%);--text-color: hsl(40 25% 92%);--surface: hsl(225 18% 18% / .84);--surface-strong: hsl(226 18% 22% / .96);--surface-muted: hsl(226 18% 16% / .74);--border: hsl(215 35% 75% / .12);--accent: hsl(206 86% 61%);--accent-strong: hsl(19 88% 60%);--muted: hsl(220 14% 72%);--ok: hsl(151 55% 56%);--error: hsl(8 80% 66%);--canvas-surface: hsl(225 15% 20%);--canvas-mandelbrot: hsl(224 44% 10%);--shadow-color: hsl(225 60% 4% / .35);--crosshair-filter: invert(57%) sepia(92%) saturate(514%) hue-rotate(348deg) brightness(100%) contrast(96%)}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;min-height:100vh;background-color:var(--page-background);background-image:var(--page-background-image);color:var(--text-color)}body,button,input,select{font:inherit}body.is-resizing{-webkit-user-select:none;user-select:none}a{color:inherit}#app{min-height:100vh}.app-page{display:grid;gap:20px;min-height:100vh;padding:20px}.app-page--zen{gap:0;padding:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border:1px solid var(--border);border-radius:26px;background:var(--surface);box-shadow:0 18px 48px var(--shadow-color);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar__title{display:grid;gap:4px}.topbar__title h2,.panel__header h1,.panel__header h2,.card h3{margin:0;font-family:"IBM Plex Serif",Georgia,serif}.topbar__nav{display:flex;gap:10px;flex-wrap:wrap}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:999px;border:1px solid hsl(0 0% 100% / .08);background:var(--surface-strong);color:var(--muted);text-decoration:none;transition:background-color .12s ease,color .12s ease,border-color .12s ease,transform .12s ease}.nav-link:hover,.nav-link:focus-visible{color:var(--text-color);border-color:#ffffff2e;transform:translateY(-1px)}.nav-link--current{color:#fff;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%);border-color:transparent}.nav-link--external{gap:8px;border-color:var(--border);background:transparent;color:var(--text-color);font-weight:600}.nav-link--external:hover,.nav-link--external:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.route-shell{display:grid;gap:20px}.compare-grid{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:20px;align-items:start}.compare-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.compare-column,.compare-column__canvases,.harness-grid{display:grid;gap:20px}.harness-pair{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:20px;align-items:start}.harness-box{display:flex;align-items:flex-start;justify-content:flex-start;border-radius:20px;border:1px dashed var(--border);background:var(--surface-muted);padding:16px}.harness-box--width{width:420px}.harness-box--width-square{width:320px}.harness-box--height{width:100%;min-height:260px;height:260px}.harness-box--height-square{width:100%;min-height:320px;height:320px}.app-shell{display:grid;grid-template-columns:minmax(280px,360px) minmax(360px,1fr) minmax(260px,320px);gap:20px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:24px;box-shadow:0 18px 50px var(--shadow-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.panel__header{display:grid;gap:6px}.panel__header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel__lede,.detail,.field__hint,.notes,.errors{color:var(--muted)}.field__static{min-height:46px;display:flex;align-items:center;width:100%;padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface-strong);color:var(--text-color);font-weight:600}.eyebrow{margin:0;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-strong)}.group+.group{margin-top:24px}.group h2{margin:0 0 14px;font-size:1rem}.advanced-settings{border-top:1px solid var(--border);padding-top:20px}.advanced-settings__summary{cursor:pointer;font-weight:700;list-style:none}.advanced-settings__summary::-webkit-details-marker{display:none}.advanced-settings__summary:before{content:"▸";display:inline-block;margin-right:8px;transition:transform .12s ease}.advanced-settings[open] .advanced-settings__summary:before{transform:rotate(90deg)}.advanced-settings__section{margin-top:16px}.advanced-settings__heading{margin:0 0 12px;font-size:.95rem}.field{display:grid;gap:6px;margin-bottom:12px}.field-grid{display:grid;gap:10px}.field-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.field__label{font-size:.92rem;font-weight:600}.field__input{width:100%;border:1px solid var(--border);border-radius:14px;padding:10px 12px;background:var(--surface-strong);color:inherit}.field__input--color{min-height:40px;padding:4px;cursor:pointer;overflow:hidden}.field__input--color:disabled{cursor:not-allowed;opacity:.8}.field__input--color::-webkit-color-swatch-wrapper{padding:0}.field__input--color::-webkit-color-swatch{border:0;border-radius:10px}.field__input--color::-moz-color-swatch{border:0;border-radius:10px}.actions{display:flex;gap:10px;flex-wrap:wrap}.button{border:1px solid var(--border);border-radius:999px;background:var(--surface-strong);color:inherit;padding:10px 16px;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background-color .12s ease}.button:hover:enabled,.button:focus-visible:enabled{transform:translateY(-1px);border-color:#fff3}.button:disabled{cursor:not-allowed;opacity:.45}.button--primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%);color:#fff;border-color:transparent}.button--subtle{background:transparent}.button--danger{border-color:#ca2b3073;color:#f99498}.file-input{display:none}.status-card,.card{background:var(--surface-strong);border:1px solid var(--border);border-radius:20px;padding:18px}.status-card__row{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.status-card--compact{margin-top:14px;padding:12px}.status-card--compact .status-card__row{align-items:baseline}.status-card--compact .status-card__row strong{max-width:58%;overflow-wrap:anywhere;text-align:right}.progress-bar{height:12px;border-radius:999px;background:#ffffff14;overflow:hidden;margin:14px 0 18px}.progress-bar__fill{height:100%;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-strong) 100%)}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:16px;margin-top:20px}.explorer-layout{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:16px;margin-top:20px}.viewer-stack{display:grid;gap:16px;align-content:start}.card--map,.card--viewer{display:flex;flex-direction:column}.canvas-frame{position:relative;margin-top:14px;border-radius:18px;overflow:hidden;background:var(--canvas-surface);border:1px solid var(--border)}.tile-preview{display:grid;place-items:center;flex:1;min-height:260px;margin-top:14px;border-radius:18px;overflow:hidden;background:var(--canvas-surface);border:1px solid var(--border)}.tile-preview__canvas{display:block;width:100%;max-height:520px;object-fit:contain;image-rendering:pixelated}.sample-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:8px;max-height:260px;overflow:auto;margin-top:12px;padding:8px;border:1px solid var(--border);border-radius:14px;background:var(--surface-muted)}.sample-tile{display:grid;gap:4px;margin:0}.sample-tile__canvas{width:100%;aspect-ratio:1 / 1;border:1px solid var(--border);border-radius:8px;background:var(--canvas-surface);image-rendering:pixelated}.sample-tile figcaption{color:var(--muted);font-size:.68rem;text-align:center}.canvas-stage{position:relative;max-width:100%;max-height:100%}.canvas-stage>.canvas{width:100%;height:100%}.canvas-overlay{position:absolute;top:10px;left:10px;z-index:2;padding:6px 10px;border-radius:999px;background:#151d28c7;color:#f4efe1;font-size:12px;line-height:1;letter-spacing:.04em;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.canvas-overlay--right{left:auto;right:10px}.canvas-frame--map{overflow:auto}.canvas{display:block;width:100%;height:auto;background:var(--canvas-surface)}.canvas--overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:transparent;z-index:1}.canvas--map{width:auto;height:auto;max-width:none;max-height:none;image-rendering:pixelated;image-rendering:crisp-edges}.canvas--viewer{aspect-ratio:1 / 1}.canvas-frame--mandelbrot{background:var(--canvas-mandelbrot);aspect-ratio:3 / 2}.canvas-frame--viewer{aspect-ratio:1 / 1}.canvas--mandelbrot{aspect-ratio:3 / 2}.canvas-frame--mandelbrot,.canvas-frame--viewer{touch-action:none}.mandelbrot-crosshair{position:absolute;width:36px;height:36px;transform:translate(-50%,-50%);filter:var(--crosshair-filter);pointer-events:none}.mandelbrot-crosshair--active{filter:invert(33%) sepia(89%) saturate(2871%) hue-rotate(342deg) brightness(101%) contrast(105%)}.mandelbrot-crosshair--hover-mandelbrot{filter:invert(52%) sepia(89%) saturate(1828%) hue-rotate(191deg) brightness(102%) contrast(102%)}.mandelbrot-crosshair--hover-julia{filter:invert(77%) sepia(61%) saturate(1141%) hue-rotate(129deg) brightness(99%) contrast(93%)}.marker-legend{margin-top:16px;padding:14px 16px;border:1px solid var(--border);border-radius:18px;background:var(--surface-muted)}.marker-legend__items{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px}.marker-legend__item{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;color:var(--text-color)}.marker-legend__swatch{width:12px;height:12px;border-radius:999px;background:currentColor}.marker-legend__swatch--active{color:#ff3f52}.marker-legend__swatch--hover-mandelbrot{color:#2fa8ff}.marker-legend__swatch--hover-julia{color:#2edcc8}.metric{margin:8px 0 0;font-weight:600}.metric--large{font-size:1.4rem;line-height:1.3}.detail{margin:8px 0 0;font-size:.92rem}.ok{color:var(--ok)}.errors,.notes{margin:12px 0 0;padding-left:18px}.error-banner{margin:12px 0 0;color:var(--error);font-weight:600}.settings-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.theme-card{width:100%;display:grid;gap:14px;padding:16px;border-radius:22px;border:1px solid var(--border);background:var(--surface);color:inherit;cursor:pointer;text-align:left;box-shadow:0 16px 38px var(--shadow-color);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.theme-card:hover,.theme-card:focus-visible{transform:translateY(-3px);border-color:#fff3}.theme-card--selected{border-color:var(--accent);box-shadow:0 16px 38px var(--shadow-color),0 0 0 1px var(--accent) inset}.theme-card__preview{padding:14px;border-radius:18px;border:1px solid var(--border);background-color:var(--page-background);background-image:var(--page-background-image);box-shadow:inset 0 0 0 1px #ffffff0a}.theme-card__meta{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.theme-card__meta strong{display:block;font-size:1rem}.theme-card__badge{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:30px;padding:0 10px;border-radius:999px;background:var(--surface-strong);border:1px solid var(--border);color:var(--muted);text-transform:capitalize;font-size:.76rem}.theme-card__badge--selected{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%);color:#fff;border-color:transparent}.theme-preview{display:grid;gap:10px;min-height:176px;padding:12px;border-radius:16px;border:1px solid var(--border);background:var(--surface);box-shadow:0 12px 28px var(--shadow-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.theme-preview__masthead{display:flex;gap:8px}.theme-preview__pill{width:42px;height:10px;border-radius:999px;background:var(--surface-muted)}.theme-preview__pill--accent{background:var(--accent)}.theme-preview__pill--strong{background:var(--accent-strong)}.theme-preview__body{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px}.theme-preview__sidebar,.theme-preview__panel,.theme-preview__hero,.theme-preview__canvas{border:1px solid var(--border);background:var(--surface-strong)}.theme-preview__sidebar{display:grid;gap:8px;align-content:start;padding:10px;border-radius:12px}.theme-preview__line{display:block;height:8px;border-radius:999px;background:var(--surface-muted)}.theme-preview__line--short{width:68%}.theme-preview__content{display:grid;gap:10px}.theme-preview__hero{min-height:44px;border-radius:12px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%)}.theme-preview__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme-preview__panel{min-height:38px;border-radius:12px}.theme-preview__panel--accent{background:linear-gradient(135deg,var(--surface-strong) 0%,hsl(0 0% 100% / .04) 100%),linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%)}.theme-preview__canvas{min-height:48px;border-radius:12px;background:linear-gradient(135deg,#ffffff08,#ffffff03),var(--canvas-mandelbrot)}.app-shell--zen{grid-template-columns:minmax(0,1fr);align-items:start;gap:0;min-height:100vh}.app-shell--explorer{grid-template-columns:minmax(280px,340px) minmax(0,1fr) minmax(260px,320px)}.panel--hidden,.status-card--hidden,.result-grid--hidden{display:none}.panel--summary-zen{min-height:100vh;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;display:flex;align-items:center;justify-content:center}.panel--summary-zen-explorer{display:block}.viewer-layout--zen{width:min(100vw,160vh);height:min(100vh,62.5vw);grid-template-columns:5fr 3fr;align-items:stretch;min-height:0;min-width:0;margin-top:0;gap:0}.explorer-layout--zen{width:100vw;height:100vh;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);align-items:stretch;min-height:0;min-width:0;margin-top:0;gap:0}.panel--summary-zen>.panel__header{display:none}.viewer-layout--zen .card--map{min-height:0;padding:0;border-radius:0;border-top:0;border-bottom:0;border-left:0;display:flex;align-items:stretch;justify-content:center}.viewer-layout--zen .canvas--map{width:auto;height:auto;max-height:none}.viewer-stack--zen{display:grid;grid-auto-rows:minmax(0,1fr);gap:0;min-height:0;height:100%;align-content:stretch}.viewer-stack--zen .card--viewer{min-height:0;padding:0;border-radius:0;border-top:0;border-right:0}.viewer-layout--zen .card,.viewer-layout--zen .status-card{box-shadow:none}.explorer-layout--zen .card{min-height:0;padding:0;border-radius:0;box-shadow:none}.card--viewer-zen-pane{overflow:hidden}.viewer-layout--zen .card--viewer+.card--viewer{border-top:1px solid var(--border)}.viewer-layout--zen .card>.eyebrow,.viewer-layout--zen .card>h3,.viewer-layout--zen .card>.detail{display:none}.explorer-layout--zen .card>.eyebrow,.explorer-layout--zen .card>h3,.explorer-layout--zen .card>.detail{display:none}.viewer-layout--zen .canvas-frame,.explorer-layout--zen .canvas-frame{flex:1 1 auto;width:100%;height:100%;border-left:0;border-right:0;border-radius:0;margin-top:0;display:flex;align-items:center;justify-content:center}.explorer-layout--zen .canvas-frame--mandelbrot,.explorer-layout--zen .canvas-frame--viewer{aspect-ratio:auto}.explorer-layout--zen .canvas-stage{max-width:none;max-height:none;flex:none}.zen-separator{position:relative;overflow:visible;z-index:3;background:linear-gradient(180deg,#ffffff0f,#ffffff05),var(--surface-strong);border-left:1px solid var(--border);border-right:1px solid var(--border);cursor:col-resize;display:flex;align-items:center;justify-content:center;outline:none;touch-action:none}.zen-separator__hitbox{position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;z-index:2;pointer-events:auto}.zen-separator--horizontal{border-left:0;border-right:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);cursor:row-resize}.zen-separator:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);z-index:2}.zen-separator__handle{position:relative;z-index:3;width:4px;height:68px;border-radius:999px;background:linear-gradient(180deg,var(--accent),var(--accent-strong));opacity:.8}.zen-separator--horizontal .zen-separator__handle{width:68px;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-strong))}@media(pointer:fine){.zen-separator__hitbox{top:-6px;right:-6px;bottom:-6px;left:-6px}}.viewer-layout--zen .canvas-frame--map{align-items:flex-start;justify-content:flex-start;overflow:auto}.viewer-layout--zen .canvas--viewer,.viewer-layout--zen .canvas--mandelbrot{width:100%;height:100%;object-fit:contain}.explorer-layout--zen .canvas--viewer,.explorer-layout--zen .canvas--mandelbrot{width:100%;height:100%}.viewer-layout--zen .card--viewer .canvas-frame{min-height:0}.viewer-layout--zen .tile-preview,.viewer-layout--zen .sample-preview{flex:1 1 auto;min-height:0;max-height:none;height:100%;margin-top:0;border-radius:0;border-left:0;border-right:0}@media(max-width:1280px){.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.app-shell,.compare-grid,.compare-columns,.app-shell--zen,.result-grid,.viewer-layout,.explorer-layout{grid-template-columns:1fr}.viewer-layout--zen{grid-template-columns:1fr;grid-template-rows:auto auto;width:100%;height:auto}.explorer-layout--zen{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 12px minmax(0,1fr);width:100%;height:100vh}.viewer-stack{display:grid;gap:16px}.harness-pair{grid-template-columns:1fr}.harness-box--width,.harness-box--width-square{width:100%}.viewer-stack--zen{height:auto;min-height:0}.viewer-layout--zen .card--map,.viewer-layout--zen .card--viewer,.explorer-layout--zen .card--viewer-zen-pane{min-height:50vh}.viewer-layout--zen .canvas--map{min-height:0}}@media(max-width:860px){.app-page{padding:14px}.topbar{flex-direction:column;align-items:stretch}.topbar__nav{width:100%}.nav-link{flex:1 1 0}.settings-summary,.field-inline,.theme-grid{grid-template-columns:1fr}.panel__header-row{flex-direction:column;align-items:stretch}}
