:root{--ink: #e8e8e8;--ink-dim: #a6a6a6;--ink-dim: color-mix(in srgb, var(--ink) 65%, #000);--ink-faint: #2e2e2e;--ink-faint: color-mix(in srgb, var(--ink) 18%, #000);--bg: #000;--font: ui-monospace, "SF Mono", Menlo, Consolas, monospace}:root[data-theme=green]{--ink: #33ff66;--ink-dim: #21a642;--ink-dim: color-mix(in srgb, var(--ink) 65%, #000);--ink-faint: #092e12;--ink-faint: color-mix(in srgb, var(--ink) 18%, #000)}:root[data-theme=amber]{--ink: #ffb000;--ink-dim: #a67200;--ink-dim: color-mix(in srgb, var(--ink) 65%, #000);--ink-faint: #2e2000;--ink-faint: color-mix(in srgb, var(--ink) 18%, #000)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font);overflow:hidden;-webkit-font-smoothing:antialiased}#dfa{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;height:100%;text-shadow:0 0 4px color-mix(in srgb,var(--ink) 30%,transparent)}#dfa:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.18) 3px,rgba(0,0,0,.18) 4px);mix-blend-mode:multiply;z-index:50}#dfa:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 62%,rgba(0,0,0,.42) 100%);z-index:49}.dfa-masthead{flex:0 0 auto;padding:max(.7rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .5rem max(1rem,env(safe-area-inset-left));border-bottom:1px solid var(--ink-faint);display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.dfa-title{font-size:clamp(.9rem,2.6vw,1.35rem);letter-spacing:.42em;font-weight:700;white-space:nowrap}.dfa-sub{font-size:.62rem;letter-spacing:.18em;color:color-mix(in srgb,var(--ink) 80%,#000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dfa-orient{font-size:.55rem;letter-spacing:.24em;color:color-mix(in srgb,var(--ink) 58%,#000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.dfa-status{font-size:.62rem;letter-spacing:.22em;white-space:nowrap}.dfa-status .dot{display:inline-block;width:.5em;height:.5em;border-radius:50%;background:var(--ink-dim);margin-right:.5em;vertical-align:middle}.dfa-status[data-on=true] .dot{background:var(--ink)}@media (prefers-reduced-motion: no-preference){.dfa-status[data-on=true] .dot{animation:dfa-pulse 1.6s ease-in-out infinite}}@keyframes dfa-pulse{0%,to{opacity:1}50%{opacity:.25}}.dfa-display{flex:1 1 auto;position:relative;min-height:0;padding:0;overflow:hidden}.dfa-array-wrap,.dfa-waterfall-wrap{position:absolute;top:.6rem;right:1rem;bottom:.6rem;left:1rem;min-height:0;border:1px solid var(--ink-faint);overflow:hidden}.dfa-waterfall-wrap{z-index:0}.dfa-array-wrap{z-index:1;background:transparent;border-color:transparent;pointer-events:none}.dfa-array-wrap:before{content:"CRYSTALLINE ARRAY · DEEP FIELD";position:absolute;top:6px;left:8px;font-size:.55rem;letter-spacing:.24em;color:var(--ink-dim);z-index:2;pointer-events:none}.dfa-waterfall-wrap:before{content:"SPECTRUM · WATERFALL";position:absolute;bottom:4px;left:6px;font-size:.55rem;letter-spacing:.2em;color:var(--ink-dim);z-index:2;pointer-events:none}canvas.dfa-array,canvas.dfa-canvas{display:block;width:100%;height:100%}.dfa-console{flex:0 0 auto;border-top:1px solid var(--ink-faint);padding:.6rem max(1rem,env(safe-area-inset-right)) max(.8rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-template-areas:"primary  primary" "controls contacts" "secondary secondary";gap:.6rem 1.2rem}.dfa-controls{grid-area:controls;display:flex;flex-direction:column;gap:.45rem}.dfa-contacts{grid-area:contacts;display:flex;justify-content:center;align-items:flex-start}.dfa-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.dfa-actions-primary{grid-area:primary}.dfa-actions-secondary{grid-area:secondary}.dfa-ctl{display:flex;align-items:center;gap:.6rem;font-size:.66rem;letter-spacing:.12em}.dfa-ctl-label{flex:0 0 4.2em;color:var(--ink)}.dfa-ctl-range{flex:1 1 auto;min-width:0}.dfa-ctl-read{flex:0 0 auto;color:var(--ink-dim);white-space:nowrap}input[type=range].dfa-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:32px;background:transparent;cursor:pointer;margin:0;touch-action:manipulation}input[type=range].dfa-slider::-webkit-slider-runnable-track{height:2px;background:repeating-linear-gradient(to right,var(--ink-faint) 0,var(--ink-faint) 1px,transparent 1px,transparent 6px),linear-gradient(var(--ink-faint),var(--ink-faint)) center/100% 1px no-repeat;border:1px solid var(--ink-faint)}input[type=range].dfa-slider::-moz-range-track{height:2px;background:repeating-linear-gradient(to right,var(--ink-faint) 0,var(--ink-faint) 1px,transparent 1px,transparent 6px);border:1px solid var(--ink-faint)}input[type=range].dfa-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:20px;margin-top:-9px;background:var(--ink);border:none;box-shadow:0 0 6px color-mix(in srgb,var(--ink) 60%,transparent)}input[type=range].dfa-slider::-moz-range-thumb{width:18px;height:20px;border:none;border-radius:0;background:var(--ink);box-shadow:0 0 6px color-mix(in srgb,var(--ink) 60%,transparent)}input[type=range].dfa-slider:focus{outline:none}input[type=range].dfa-slider:focus-visible{outline:2px solid var(--ink);outline-offset:2px}input[type=range].dfa-slider:focus::-webkit-slider-thumb{outline:1px solid var(--ink);outline-offset:1px}input[type=range].dfa-slider:focus::-moz-range-thumb{outline:2px solid var(--ink);outline-offset:2px}.dfa-contacts pre{margin:0;font-size:clamp(.5rem,1.3vw,.66rem);line-height:1.35;white-space:pre;color:var(--ink);overflow:hidden}button.dfa-btn{background:transparent;border:1px solid var(--ink);color:var(--ink);font-family:var(--font);font-size:.64rem;letter-spacing:.16em;padding:.4rem .7rem;cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}button.dfa-btn:hover{background:var(--ink);color:var(--bg)}button.dfa-btn:active{opacity:.7}button.dfa-btn:disabled{opacity:.5;cursor:default;border-style:dashed}button.dfa-btn[hidden]{display:none}button.dfa-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}button.dfa-btn.primary{border-width:1px}button.dfa-btn.primary[data-on=true]{background:var(--ink);color:var(--bg)}@media (max-width: 620px){html,body{height:auto;overflow:visible}body{min-height:100vh;min-height:100dvh;overflow-y:auto;overflow-x:hidden}#dfa{position:relative;height:auto;min-height:100vh;min-height:100dvh}.dfa-display{flex:0 0 auto;height:70vh;height:70dvh;min-height:70vh;min-height:70dvh}.dfa-console{grid-template-columns:minmax(0,1fr);grid-template-areas:"primary" "contacts" "controls" "secondary";gap:.45rem;padding-left:max(.4rem,env(safe-area-inset-left));padding-right:max(.4rem,env(safe-area-inset-right))}.dfa-title{letter-spacing:.28em}.dfa-sub{font-size:.5rem;letter-spacing:.12em}.dfa-orient,.dfa-ctl-read{display:none}.dfa-contacts pre{font-size:clamp(.5rem,calc((100vw - 1.2rem) / 28.8),.95rem)}.dfa-array-wrap,.dfa-waterfall-wrap{top:.5rem;right:.7rem;bottom:.5rem;left:.7rem}}.dfa-about{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000d1;display:flex;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom))}.dfa-about[hidden]{display:none}.dfa-about-panel{position:relative;width:min(680px,100%);max-height:100%;overflow:auto;background:var(--bg);border:1px solid var(--ink);box-shadow:0 0 24px color-mix(in srgb,var(--ink) 22%,transparent);padding:1.4rem 1.5rem 1.2rem}.dfa-about-close{position:sticky;top:0;float:right;margin:-.4rem -.4rem 0 .6rem}.dfa-about-body{white-space:pre-wrap;font-size:.72rem;line-height:1.55;letter-spacing:.04em;color:var(--ink)}.dfa-about-credits{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--ink-faint);font-size:.62rem;line-height:1.45;color:var(--ink-dim)}.dfa-about-link{display:inline-block;margin-top:.8rem;font-size:.72rem;letter-spacing:.12em;color:var(--ink);text-decoration:none;border-bottom:1px dashed var(--ink-dim)}.dfa-about-link:hover,.dfa-about-link:focus-visible{border-bottom-style:solid}
