:root{--desk: #e9e9f2;--desk-2: #d4d5e0;--steel: #a7a9b8;--steel-dk: #6f7183;--ink: #0a0a14;--muted: #7a7a83;--screen: #05050c;--screen-2: #0c0b1a;--violet: #8b2ff0;--violet-lt: #b98cff;--cobalt: #4a63ff;--magenta: #e05cff;--phos: #d9ccff;--phos-dim: #8e86b3;--display: "Tektur", "Martian Mono", monospace;--mono: "Martian Mono", ui-monospace, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);font-family:var(--mono);font-size:14px;line-height:1.55;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 1px,transparent 1px 3px),linear-gradient(180deg,#f1f1f7,var(--desk) 30%,var(--desk-2));min-height:100vh}img{display:block;max-width:100%}button{font:inherit;color:inherit}.desk{max-width:1360px;margin:0 auto;padding:18px 18px 28px}.rail{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;border-radius:6px;background:linear-gradient(180deg,#fbfbfe,#cfd0dc);box-shadow:inset 0 1px #fff,inset 0 -2px #0000001f,0 2px 6px #0a0a141f}.rail-id{display:flex;align-items:center;gap:10px}.rail-id img{border-radius:4px;box-shadow:0 0 0 2px var(--screen)}.wordmark{font-family:var(--display);font-weight:900;font-size:22px;letter-spacing:.14em}.tick{font-family:var(--display);font-weight:700;color:var(--violet);letter-spacing:.08em;font-size:13px}.rail-meters{display:flex;gap:10px}.meter{display:flex;align-items:center;gap:8px;background:var(--screen);color:var(--phos);padding:6px 12px;border-radius:4px;box-shadow:inset 0 2px 6px #000c,0 1px #fff;font-size:12px}.m-label{color:var(--phos-dim);font-size:10px;letter-spacing:.12em}.m-val{font-variant-numeric:tabular-nums;min-width:7ch;text-align:right}.lamp{width:8px;height:8px;border-radius:50%;background:#3a3550}.lamp.on{background:var(--violet-lt);box-shadow:0 0 8px var(--violet);animation:blink 2.4s ease-in-out infinite}.lamp.off{background:#6b2340}@keyframes blink{50%{opacity:.45}}.wall{margin-top:16px;display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.wall{grid-template-areas:"subj subj subj subj subj subj subj subj sock sock sock sock" "subj subj subj subj subj subj subj subj clk clk clk clk" "asm asm asm asm asm asm asm log log log log log" "sch sch sch sch sch sch sch sch sch sch sch sch"}.subject{grid-area:subj}.socket{grid-area:sock}.clock{grid-area:clk}.assembly{grid-area:asm}.log{grid-area:log}.schematic{grid-area:sch}.bezel{position:relative;display:flex;flex-direction:column;padding:0 12px 12px;border-radius:8px;background:radial-gradient(circle at 12px calc(100% - 12px),#8d8fa0 0 3px,#f2f2f8 3.5px 4.5px,transparent 5px),radial-gradient(circle at calc(100% - 12px) calc(100% - 12px),#8d8fa0 0 3px,#f2f2f8 3.5px 4.5px,transparent 5px),repeating-linear-gradient(90deg,rgba(255,255,255,.25) 0 1px,transparent 1px 2px),linear-gradient(180deg,#f4f4f9,#c9cad7);box-shadow:inset 0 1px #fff,inset 0 -1px #0000002e,0 10px 22px -12px #0a0a1473,0 1px 2px #0a0a1433;transition:opacity .6s ease,transform .6s ease}.bezel.pre{opacity:0;transform:translateY(14px)}.bezel.pre.on{opacity:1;transform:none}.bezel.pre.on .screen{animation:power .9s ease both}@keyframes power{0%{opacity:.2}30%{opacity:.9}40%{opacity:.5}to{opacity:1}}.plate{display:flex;align-items:center;gap:10px;padding:9px 2px 8px;font-family:var(--display);font-size:11px;letter-spacing:.2em;color:var(--steel-dk);text-shadow:0 1px 0 #fff}.plate b{color:var(--ink);font-weight:700}.plate .screw{margin-left:auto;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle,#8d8fa0 0 3px,#f2f2f8 3.5px 4.5px,transparent 5px);position:relative}.plate .screw:after{content:"";position:absolute;left:2px;right:2px;top:4.5px;height:1px;background:#f2f2f8;transform:rotate(35deg)}.screen{flex:1;position:relative;overflow:hidden;border-radius:5px;background:var(--screen);color:var(--phos);box-shadow:inset 0 0 0 1px #000,inset 0 3px 14px #000000e6,0 1px #fff;padding:18px}.screen:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px)}.kicker{margin:0 0 8px;color:var(--violet-lt);font-size:11px;letter-spacing:.08em}.small{font-size:12px;margin:0}.dim{color:var(--phos-dim)}.subject-screen{padding:0;min-height:560px;display:flex;align-items:flex-end}.subject-screen picture{position:absolute;top:0;right:0;bottom:0;left:0}.hero-img{width:100%;height:100%;object-fit:cover;object-position:0% 20%;animation:drift 40s ease-in-out infinite alternate}@keyframes drift{0%{transform:scale(1.04) translate(0)}to{transform:scale(1.1) translate(-2%,-1.5%)}}.subject-copy{position:relative;z-index:2;padding:28px 28px 30px;max-width:560px}.subject-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(5,5,12,.92) 0%,rgba(5,5,12,.6) 38%,transparent 62%)}.subject h1{font-family:var(--display);font-weight:900;font-size:clamp(30px,4.4vw,58px);line-height:1.02;letter-spacing:.01em;margin:0 0 14px;color:#f3f1ff}.lede{margin:0;color:#cfc8ef;font-size:13.5px;max-width:46ch}.assembly-screen{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:22px;align-items:start}.board-wrap{position:relative}.board{position:relative;aspect-ratio:1;width:100%;background:#000;border-radius:3px;box-shadow:0 0 0 1px #2a2640,0 0 24px -6px #8b2ff099;outline:none}.board:focus-visible{box-shadow:0 0 0 2px var(--violet-lt)}.tile{position:absolute;width:25%;height:25%;padding:0;border:0;cursor:pointer;left:0;top:0;transform:translate(calc(var(--cx) * 100%),calc(var(--cy) * 100%));transition:transform .16s ease;background-size:400% 400%;box-shadow:inset 0 0 0 1px #000000a6,inset 0 0 0 2px #b98cff1f}.tile:hover{filter:brightness(1.15)}.tile:active{filter:brightness(.9)}.tile.gap{opacity:0;pointer-events:none}.board.solved .tile{box-shadow:none;cursor:default}.board.solved .tile.gap{opacity:1;transition:opacity .5s ease .1s}.board.peek:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:var(--peek-img, url(/brand/pfp-512.webp)) center/cover;opacity:.9}.board-done{position:absolute;inset:auto 0 0 0;z-index:4;padding:12px 14px;text-align:center;background:linear-gradient(0deg,#05050cf0,#05050c99)}.board-done p{margin:0;font-family:var(--display);font-weight:900;letter-spacing:.3em;color:var(--violet-lt)}.board-done span{font-size:12px}.readouts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.readouts div{border:1px solid #2a2640;border-radius:3px;padding:8px 10px}.readouts dt{font-size:9.5px;letter-spacing:.16em;color:var(--phos-dim)}.readouts dd{margin:2px 0 0;font-size:17px;font-variant-numeric:tabular-nums;color:#f3f1ff;white-space:nowrap}.switches{display:flex;gap:10px;flex-wrap:wrap}.toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;padding:9px 14px 9px 10px;border:0;border-radius:4px;font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.16em;color:var(--ink);background:linear-gradient(180deg,#fbfbfe,#b9bbc9);box-shadow:inset 0 1px #fff,0 2px #5f6174,0 3px 6px #00000080;transition:transform .08s ease,box-shadow .08s ease}.toggle:hover{background:linear-gradient(180deg,#fff,#c9cbd8)}.toggle:active{transform:translateY(2px);box-shadow:inset 0 1px #fff,0 0 #5f6174,0 1px 2px #00000080}.toggle-lever{width:8px;height:18px;border-radius:2px;background:var(--violet);box-shadow:inset 0 -6px #00000040;transition:transform .15s ease}.toggle.ghost .toggle-lever{background:#6d6a80}.toggle[aria-pressed=true] .toggle-lever{background:var(--violet);transform:translateY(-3px)}.toggle:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.socket-screen{display:flex;flex-direction:column;gap:14px;justify-content:space-between}.socket-shape{width:74px;height:74px;fill:none;stroke:var(--violet-lt);stroke-width:2;stroke-dasharray:5 4;animation:dash 18s linear infinite}@keyframes dash{to{stroke-dashoffset:-180}}.ca{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1px solid #2a2640;border-radius:3px;padding:8px 10px;min-height:40px}.ca-label{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.2em;color:var(--violet-lt)}.ca-value{font-family:var(--mono);font-size:11.5px;color:#f3f1ff;overflow-wrap:anywhere}.ca.empty .ca-value{min-height:1em;border-bottom:1px dashed #3a3550}.ca-actions{display:flex;gap:6px}.ca-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:5px 8px;border-radius:3px;border:1px solid #3a3550;background:transparent;color:var(--phos);font-size:11px;text-decoration:none;transition:background .15s ease,border-color .15s ease}.ca-btn:hover{background:#1a1730;border-color:var(--violet)}.ca-btn.ok{border-color:var(--violet-lt);color:#fff}.ca-btn svg,.icons svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.clock-screen{display:flex;flex-direction:column;gap:12px}.dial{display:flex;flex-direction:column;border-left:2px solid var(--violet);padding-left:12px}.d-label{font-size:9.5px;letter-spacing:.16em;color:var(--phos-dim)}.d-val{font-family:var(--display);font-weight:700;font-size:26px;color:#f3f1ff;font-variant-numeric:tabular-nums}.d-val.sweep{animation:sweep .7s ease}@keyframes sweep{0%{opacity:.35}to{opacity:1}}.log-lines{list-style:none;margin:0;padding:0;font-size:12.5px}.log-lines li{display:flex;gap:12px;padding:5px 0;border-bottom:1px dotted #221f36}.bezel.pre .log-lines li{opacity:0;transform:translate(-6px)}.log-lines li span{color:var(--phos-dim)}.bezel.pre.on .log-lines li{animation:line .4s ease forwards;animation-delay:calc(var(--i) * .12s + .3s)}@keyframes line{to{opacity:1;transform:none}}.log-lines li.cursor:after{content:"▌";color:var(--violet-lt);margin-left:4px;animation:blink 1s steps(1) infinite}.parts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.parts li{display:flex;gap:12px}.parts b{font-family:var(--display);letter-spacing:.14em;font-size:12px;color:#f3f1ff}.parts p{margin:4px 0 0;font-size:12px;color:#bdb5df}.swatch{flex:none;width:34px;height:34px;border-radius:3px;box-shadow:inset 0 0 0 1px #ffffff26}.swatch.marble{background:radial-gradient(circle at 30% 30%,#fff,#cfd0dc 55%,#8d8fa0)}.swatch.nebula{background:radial-gradient(circle at 70% 40%,var(--magenta),transparent 45%),radial-gradient(circle at 30% 70%,var(--cobalt),#0b0d3a 70%)}.swatch.eye{background:radial-gradient(circle,#f3e8ff 0 12%,var(--violet) 35%,#1a0633 80%)}.swatch.loose{background:transparent;border:1.5px dashed var(--violet-lt);box-shadow:none;transform:translateY(-4px) rotate(-8deg)}.foot{margin-top:16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:12px 14px;border-radius:6px;background:var(--screen);color:var(--phos);box-shadow:inset 0 2px 10px #000000e6,0 1px #fff}.foot-id{display:flex;align-items:center;gap:10px}.foot-id img{border-radius:4px}.foot .wordmark{font-size:16px;color:#f3f1ff}.foot-ca{max-width:560px}.icons{display:flex;gap:8px}.icons a{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:4px;color:var(--phos);border:1px solid #3a3550;text-decoration:none;transition:background .15s ease,color .15s ease,transform .15s ease}.icons a.txt{width:auto;padding:0 10px;font-family:var(--display);font-size:11px;letter-spacing:.16em}.icons a:hover{background:var(--violet);color:#fff;transform:translateY(-1px)}.icons svg.fill{fill:currentColor;stroke:none}@media(max-width:980px){.wall{grid-template-areas:"subj subj" "sock clk" "asm asm" "log log" "sch sch";grid-template-columns:1fr 1fr}.parts{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.desk{padding:10px 10px 20px}.wall{gap:12px}.wall{grid-template-areas:"subj" "asm" "sock" "clk" "log" "sch";grid-template-columns:1fr}.subject-screen:before{background:linear-gradient(0deg,rgba(5,5,12,.95) 0%,rgba(5,5,12,.8) 40%,transparent 70%)}.hide-sm,.tick,.m-label{display:none}.rail{padding:8px 10px}.wordmark{font-size:18px}.subject-screen{min-height:520px}.hero-img{object-position:60% 20%}.subject-copy{padding:60px 18px 20px;max-width:none}.assembly-screen,.parts,.foot{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.bezel.pre,.bezel.pre .log-lines li,.log-lines li{opacity:1;transform:none}}.log-screen{background:linear-gradient(#05050ce0,#05050cf0),url(/brand/texture.webp) 0 0 / 180px;animation:pan 60s linear infinite}@keyframes pan{to{background-position:0 0,180px 180px}}.bezel.pre.on .log-screen{animation:power .9s ease both,pan 60s linear infinite}
