@font-face{font-family:Libre Caslon Text;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/libre-caslon-text-latin-400-normal.CfldDPV-.woff2)format("woff2"),url(/_astro/libre-caslon-text-latin-400-normal.WtjoQ5sB.woff)format("woff")}@font-face{font-family:Libre Caslon Text;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/libre-caslon-text-latin-400-italic.snTzlHlN.woff2)format("woff2"),url(/_astro/libre-caslon-text-latin-400-italic.C1OAqZ6C.woff)format("woff")}@font-face{font-family:Libre Caslon Text;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/libre-caslon-text-latin-700-normal.D1WVYPaO.woff2)format("woff2"),url(/_astro/libre-caslon-text-latin-700-normal.B3n-DWsl.woff)format("woff")}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-cyrillic-wght-normal.CjwCQKo9.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-ext-wght-normal.BDUtSsKd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-wght-normal.ObQm3Zd1.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Yellowtail;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/yellowtail-latin-400-normal.BfFX3xIh.woff2)format("woff2"),url(/_astro/yellowtail-latin-400-normal.qKkxeRph.woff)format("woff")}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/courier-prime-latin-400-normal.BbyBr73r.woff2)format("woff2"),url(/_astro/courier-prime-latin-400-normal.BAlbUm6l.woff)format("woff")}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/courier-prime-latin-700-normal.D1YCjmaD.woff2)format("woff2"),url(/_astro/courier-prime-latin-700-normal.CVvp4Sof.woff)format("woff")}@font-face{font-family:DSEG7;src:url(/fonts/DSEG7Classic-Regular.woff2)format("woff2");font-display:swap}:root{--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:40px;--s-7:64px;--s-8:104px;--gutter:16px;--col-gap:24px;--rule:1px;--radius:999px;--round:22px;--t-fast:.12s;--ease:cubic-bezier(.2,.6,.2,1);--tempo:10s;--measure:40rem;--f-display:"Jost Variable", "Century Gothic", Futura, sans-serif;--f-script:"Yellowtail", "Brush Script MT", cursive;--f-text:"Libre Caslon Text", "Big Caslon", Georgia, serif;--f-mono:"Courier Prime", "Courier New", monospace;--f-seg:"DSEG7", var(--f-mono)}@media (width>=760px){:root{--gutter:32px;--col-gap:32px}}@media (width>=1200px){:root{--gutter:48px;--col-gap:40px}}:root{color-scheme:dark;--bg:#0f2a2e;--surface:#173a3f;--ink:#f5e9cf;--muted:#bdb9a2;--border:#2f5a5c;--accent:#f4b73a;--accent-ink:#f8c95f;--on-accent:#0f2a2e;--accent-2:#f26b4e;--accent-3:#5cc4b8;--electron:#6fe8ff;--poster:#145a60;--poster-ray:#1a6a70;--poster-ink:#fbf0d8;--poster-accent:#ffc94d;--plate:#f5e9cf;--plate-ink:#16302f;--plate-muted:#4f5a4e;--screw:#b9842b;--chrome:linear-gradient(180deg, #f4f1e8 0%, #a9b2b0 42%, #6f7b7b 52%, #d7dad2 100%);--pattern-opacity:.09;--tex:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");--laminate:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='300'%3E%3Cpath d='M40 70c22-30 58-40 92-30-30 2-52 16-60 40 10-4 22-2 32 6-28-6-48-2-64-16z'/%3E%3Cpath d='M300 190c-20 30-58 44-96 34 32-2 56-16 66-42-12 6-24 4-36-4 30 6 50 2 66 12z'/%3E%3Cpath d='M250 40l5 24 24 5-24 5-5 24-5-24-24-5 24-5z'/%3E%3Cpath d='M70 200l4 19 19 4-19 4-4 19-4-19-19-4 19-4z'/%3E%3Ccircle cx='180' cy='130' r='4'/%3E%3Ccircle cx='330' cy='80' r='3'/%3E%3Ccircle cx='24' cy='150' r='3'/%3E%3Ccircle cx='150' cy='270' r='4'/%3E%3C/svg%3E")}:root[data-theme=light]{color-scheme:light;--bg:#f3e8cf;--surface:#eadbb9;--ink:#16302f;--muted:#52584b;--border:#c9b68c;--accent:#c93f25;--accent-ink:#a7301a;--on-accent:#fff6e2;--accent-2:#17737a;--accent-3:#b97c10;--electron:#12c8f4;--poster:#146a71;--poster-ray:#1b7980;--poster-ink:#fff6e2;--poster-accent:#ffd25e;--plate:#fff6e2;--plate-ink:#16302f;--plate-muted:#52584b;--screw:#b9842b;--pattern-opacity:.1}[data-material=phosphor]{--screen-bg:#050a06;--screen-ink:#5fbf79;--screen-dim:#2a5a38;--screen-faint:#173322;--screen-accent:#8cffa8;--screen-alert:#ffcf6e;--panel-bg:#2f3e33;--panel-ink:#dde8da;--panel-muted:#b3c4b3;--panel-border:#4c6250;--lamp:#8cffa8;--bezel:#1b241e;--scan:.05}[data-material=blueprint]{--screen-bg:#0d2a4a;--screen-ink:#8fc1ec;--screen-dim:#4a7cab;--screen-faint:#1e4470;--screen-accent:#f2f7fc;--screen-alert:#ffb86b;--panel-bg:#14505a;--panel-ink:#e2eeec;--panel-muted:#b5d0ce;--panel-border:#2c717a;--lamp:#9fd2ff;--bezel:#0d363d;--scan:0}[data-material=plotter]{--screen-bg:#f3eedf;--screen-ink:#1f3f66;--screen-dim:#8e9aa0;--screen-faint:#d8d2bf;--screen-accent:#a63a24;--screen-alert:#a63a24;--panel-bg:#6b2a1e;--panel-ink:#f5e6d0;--panel-muted:#e0c3ab;--panel-border:#8f4632;--lamp:#e6b65a;--bezel:#471a12;--scan:0}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);background-image:var(--tex);color:var(--ink);font-family:var(--f-text);font-variant-numeric:oldstyle-nums;margin:0;font-size:17px;line-height:1.6;overflow-x:hidden}a{color:inherit}img{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px}p,h1,h2,h3{text-wrap:pretty}.prose p,.prose li,.standfirst,.lede{text-shadow:0 0 .5px}@media (width>=560px){.prose p,.prose li,.standfirst{text-align:justify;hyphens:auto}}.vh{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.label{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:500;line-height:16px}.skip{left:var(--gutter);background:var(--accent);color:var(--on-accent);padding:var(--s-2) var(--s-3);z-index:10;position:absolute;top:-60px}.skip:focus{top:var(--s-2)}body:before{content:"";z-index:-1;pointer-events:none;background:var(--accent-3);opacity:var(--pattern-opacity);-webkit-mask:var(--laminate) 0 0 / 360px 300px;mask:var(--laminate) 0 0 / 360px 300px;position:fixed;inset:0}.page{max-width:1320px;padding:0 var(--gutter) var(--s-7);row-gap:var(--s-6);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.page>*{min-width:0}.screws{--screw-inset:22px;background-image:radial-gradient(circle at var(--screw-inset) var(--screw-inset), var(--screw) 0 3px, #00000059 3.4px 4.2px, transparent 4.6px), radial-gradient(circle at calc(100% - var(--screw-inset)) var(--screw-inset), var(--screw) 0 3px, #00000059 3.4px 4.2px, transparent 4.6px), radial-gradient(circle at var(--screw-inset) calc(100% - var(--screw-inset)), var(--screw) 0 3px, #00000059 3.4px 4.2px, transparent 4.6px), radial-gradient(circle at calc(100% - var(--screw-inset)) calc(100% - var(--screw-inset)), var(--screw) 0 3px, #00000059 3.4px 4.2px, transparent 4.6px)}@media (width<=559px){.screws{--screw-inset:18px}}.bar{justify-content:space-between;align-items:center;gap:var(--s-2) var(--s-5);padding:var(--s-4) 0 var(--s-3);flex-wrap:wrap;display:flex;position:relative}.bar .name{align-items:center;gap:var(--s-2);font-family:var(--f-script);color:var(--accent-ink);font-size:30px;line-height:1;text-decoration:none;display:inline-flex}.bar .name svg{width:40px;height:40px;color:var(--accent-2);flex:none}.atom{--atom-glow:currentColor;overflow:visible}.nucleus{filter:drop-shadow(0 0 3px var(--atom-glow)) drop-shadow(0 0 1px var(--atom-glow))}.electron{opacity:0;fill:var(--electron);filter:drop-shadow(0 0 2px var(--electron)) drop-shadow(0 0 5px var(--electron));transition:opacity .18s var(--ease);offset-path:path("M 21 0 A 21 8 0 1 1 -21 0 A 21 8 0 1 1 21 0");offset-rotate:0deg;offset-distance:calc(var(--orbit) * 100% / 3);animation-delay:calc(var(--orbit) * -.5s)}.atom ellipse{transition:stroke-opacity .18s var(--ease)}.bar .name:hover .atom ellipse,.bar .name:focus-visible .atom ellipse,a.row:hover .atom ellipse,a.row:focus-visible .atom ellipse,.btn:hover .atom ellipse,.btn:focus-visible .atom ellipse{stroke-opacity:.4}.bar .name:hover .electron,.bar .name:focus-visible .electron,a.row:hover .electron,a.row:focus-visible .electron,.btn:hover .electron,.btn:focus-visible .electron{opacity:1;animation:1.5s linear infinite electron;animation-delay:calc(var(--orbit) * -.5s)}@keyframes electron{0%{offset-distance:0%}to{offset-distance:100%}}.bar nav ul{gap:var(--s-1) var(--s-2);flex-wrap:wrap;align-items:center;margin:0;padding:0;list-style:none;display:flex}.bar nav a{border-radius:var(--radius);font-family:var(--f-display);letter-spacing:.12em;text-transform:uppercase;padding:5px 13px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.bar nav a:hover{color:var(--accent-ink)}.bar nav a[aria-current=page]{color:var(--on-accent);background:var(--accent)}.bar nav a .ext{color:var(--muted)}.toggle{font:700 12px/16px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border:2px solid var(--border);padding:var(--s-1) var(--s-3);cursor:pointer;border-radius:var(--radius);background:0 0;min-height:30px}.toggle:hover{border-color:var(--accent-ink)}.claim{color:var(--poster-ink);background:repeating-conic-gradient(from 0deg at var(--ray-x,88%) var(--ray-y,108%), var(--poster) 0 var(--ray-step,7deg), var(--poster-ray) var(--ray-step,7deg) calc(var(--ray-step,7deg) * 2));box-shadow:inset 0 0 0 3px var(--poster-accent), 0 10px 0 color-mix(in srgb, var(--poster) 45%, #000);border-radius:32px 32px 120px;padding:clamp(24px,5vw,56px);position:relative;overflow:hidden;container:claim/inline-size}.cover{gap:var(--s-5);grid-template-columns:minmax(0,1fr);align-items:end;display:grid;position:relative}@container claim (width>=760px){.cover{column-gap:var(--s-6);grid-template-columns:minmax(0,8fr) minmax(0,4fr)}}.claim h1{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 var(--s-4);font-size:clamp(2.4rem,10cqi,6.4rem);font-weight:800;line-height:.98}@container claim (width>=760px){.claim h1{font-size:clamp(2.4rem,6cqi,5.6rem)}}.claim h1{overflow-wrap:anywhere}.claim h1.long{font-size:clamp(2rem,8cqi,3.2rem)}.claim h1.longest{font-size:clamp(1.7rem,6.4cqi,2.5rem)}@container claim (width>=760px){.claim h1.long{font-size:clamp(2rem,4.8cqi,4rem)}.claim h1.longest{font-size:clamp(1.8rem,3.5cqi,3rem)}}.claim h1 .l1,.claim h1 .l2{display:block}.claim h1 .l2{font-family:var(--f-script);text-transform:none;letter-spacing:0;color:var(--poster-accent);margin-top:.12em;font-size:1.12em;font-weight:400;line-height:1.05}.standfirst{max-width:36em;margin:0;font-size:1.15rem}.plate{color:var(--plate-ink);background-color:var(--plate);border-radius:var(--round);box-shadow:inset 0 0 0 2px var(--plate), inset 0 0 0 4px var(--screw), 0 5px 0 #00000047;margin:0;padding:24px 28px;position:relative}.spec{font-family:var(--f-mono);grid-template-columns:auto 1fr;gap:6px 18px;font-size:14px;display:grid}.spec dt{font-family:var(--f-display);letter-spacing:.2em;text-transform:uppercase;color:var(--plate-muted);padding-top:2px;font-size:11px;font-weight:700}.spec dd{margin:0}.sec-head,.fig-head{justify-content:space-between;align-items:baseline;gap:var(--s-1) var(--s-4);padding-bottom:var(--s-2);margin-bottom:var(--s-4);border-bottom:3px solid var(--accent);flex-wrap:wrap;display:flex}.sec-head h2,.fig-head h2{font-family:var(--f-script);color:var(--accent-ink);margin:0;font-size:2.1rem;font-weight:400;line-height:1.1}.ways ol{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin:0;padding:0;list-style:none;display:grid}.rows{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));margin:0;padding:0;list-style:none;display:grid}.rows li{min-width:0;display:grid}.rows li:nth-child(3n+1){--sign:var(--accent)}.rows li:nth-child(3n+2){--sign:var(--accent-2)}.rows li:nth-child(3n){--sign:var(--accent-3)}.ways a{gap:2px var(--s-2);height:100%;padding:var(--s-4);background:var(--surface);border:2px solid var(--border);border-radius:var(--round) var(--round) 56px var(--round);transition:transform var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;text-decoration:none;display:grid;position:relative}.ways a:hover,.ways a:focus-visible{border-color:var(--accent);transform:translateY(-3px)}.ways .n{width:34px;height:34px;font:700 13px/1 var(--f-mono);color:var(--on-accent);background:var(--accent);border-radius:50%;place-items:center;display:grid}.ways .t{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.06em;font-size:1.3rem;font-weight:700}.ways a:hover .t{color:var(--accent-ink)}.ways .d{color:var(--muted);grid-column:1/-1}.ways .go{color:var(--muted)}.row{isolation:isolate;gap:var(--s-2) var(--s-3);padding:var(--s-4) var(--s-4) var(--s-4) var(--s-5);background:var(--surface);border:2px solid var(--border);border-radius:var(--round) 56px var(--round) 10px;box-shadow:0 5px 0 color-mix(in srgb, var(--border) 70%, #000);transition:transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);grid-template-rows:auto 1fr auto;grid-template-columns:auto minmax(0,1fr);align-items:center;text-decoration:none;display:grid;position:relative;overflow:hidden}.row:before{content:"";z-index:-1;background:var(--sign);width:10px;transition:width .22s var(--ease);position:absolute;top:0;bottom:0;left:0}.row .n{width:36px;height:36px;color:var(--sign);display:block}.row .n .atom{width:100%;height:100%;display:block}.row h3{font-family:var(--f-display);letter-spacing:.05em;text-transform:uppercase;overflow-wrap:anywhere;margin:0;font-size:1.1rem;font-weight:700;line-height:1.2}.row p{color:var(--muted);grid-area:2/1/auto/-1;align-self:start;margin:0;font-size:15px;line-height:1.45}.row .tag{font-family:var(--f-mono);color:var(--muted);grid-area:3/1/auto/-1;justify-self:start;font-size:13px}.row .tag:empty{display:none}a.row:hover,a.row:focus-visible{border-color:var(--sign);box-shadow:0 9px 0 color-mix(in srgb, var(--sign) 55%, #000);transform:translateY(-4px)}a.row:hover:before,a.row:focus-visible:before{width:18px}a.row:active{box-shadow:0 1px 0 color-mix(in srgb, var(--sign) 55%, #000);transform:translateY(3px)}a.row:hover h3,a.row:focus-visible h3{color:var(--accent-ink)}.signup{background:var(--surface);border:2px solid var(--border);border-radius:var(--round) 40px var(--round) var(--round);padding:var(--s-3) var(--s-5);gap:var(--s-2) var(--s-5);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.signup p{margin:0;font-size:1.05rem}.signup-form{transition:grid-template-rows .32s var(--ease);flex-basis:100%;grid-template-rows:0fr;display:grid}.signup-form>div{min-height:0;overflow:hidden}.signup.open .signup-form{grid-template-rows:1fr}.signup-form iframe{border:0;border-radius:12px;width:480px;max-width:100%;height:320px;margin-inline:auto;display:block}.btn{cursor:pointer;--btn-bg:var(--accent);--btn-ink:var(--on-accent);--btn-glow:var(--on-accent);isolation:isolate;align-items:center;gap:var(--s-2);min-height:46px;padding:var(--s-2) var(--s-5) var(--s-2) var(--s-3);font-family:var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--btn-ink);background:var(--btn-bg);box-shadow:0 4px 0 color-mix(in srgb, var(--btn-bg) 55%, #000);transition:transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);border:0;border-radius:999px 999px 999px 8px;font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn.quiet{--btn-bg:var(--plate);--btn-ink:var(--plate-ink);--btn-glow:var(--plate-ink)}.btn:before{content:"";z-index:-2;aspect-ratio:1;opacity:0;background:conic-gradient(transparent 0 68%, var(--btn-glow) 88%, transparent 100%);width:200%;position:absolute;top:50%;left:50%;translate:-50% -50%}.btn:after{content:"";z-index:-1;border-radius:inherit;background:linear-gradient(105deg, transparent 40%, #ffffff73 50%, transparent 60%) 160% 0 / 250% 100% no-repeat, var(--btn-bg);position:absolute;inset:2px}.btn .atom{--atom-glow:#fff;flex:none;width:28px;height:28px;display:block}.btn.quiet .atom{--atom-glow:var(--accent-2)}.btn:hover,.btn:focus-visible{box-shadow:0 7px 0 color-mix(in srgb, var(--btn-bg) 55%, #000);transform:translateY(-3px)}.btn:hover:before,.btn:focus-visible:before{opacity:1;animation:1.6s linear infinite orbit}.btn:hover:after,.btn:focus-visible:after{animation:sheen .8s var(--ease) both}.btn:active{box-shadow:0 1px 0 color-mix(in srgb, var(--btn-bg) 55%, #000);transform:translateY(3px)}@keyframes orbit{to{rotate:360deg}}@keyframes sheen{0%{background-position:160% 0,0 0}to{background-position:-60% 0,0 0}}.foot{gap:var(--s-4);display:grid;position:relative}.foot .plate{padding:28px 34px}.tblock{gap:var(--s-3) var(--s-5);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:0;display:grid}.tblock dt{font-family:var(--f-display);letter-spacing:.2em;text-transform:uppercase;color:var(--plate-muted);font-size:11px;font-weight:700}.tblock dd{font-family:var(--f-mono);margin:0;font-size:14px}.legal{gap:var(--s-1) var(--s-4);color:var(--muted);flex-wrap:wrap;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.legal a{padding:2px 0;display:inline-block}.prose{max-width:var(--measure)}.prose h1{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.01em;margin:var(--s-5) 0 var(--s-4);font-size:clamp(2rem,6vw,3.2rem);font-weight:800;line-height:1.05}.prose h2{font-family:var(--f-display);margin:var(--s-6) 0 var(--s-3);font-size:1.5rem;font-weight:600;line-height:1.2}.prose h3{font-family:var(--f-display);margin:var(--s-5) 0 var(--s-2);font-size:1.2rem;font-weight:600}.prose a{color:var(--accent-ink)}.prose blockquote{margin:var(--s-5) 0;padding-left:var(--s-4);border-left:4px solid var(--accent);color:var(--muted)}.prose code{font-family:var(--f-mono);font-size:.9em}.prose pre{background:var(--surface);padding:var(--s-3);border-radius:12px;overflow-x:auto}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);padding:var(--s-1) var(--s-2)}.prose img{margin:var(--s-4) 0;display:block}.prose iframe{max-width:100%}.project-links{gap:var(--s-3);margin:var(--s-5) 0 var(--s-2);flex-wrap:wrap;display:flex}.project-embed{margin:0}.project-embed iframe{border:2px solid var(--border);border-radius:var(--round);background:var(--surface);width:100%;height:min(78vh,760px);display:block}.readme{gap:var(--s-3);max-width:none;display:grid}.readme>*{min-width:0}.claim+.readme{margin-top:calc(var(--s-3) - var(--s-6))}.exhibit-body>*{max-width:44rem}.exhibit{background:var(--surface);border:2px solid var(--border);border-radius:var(--round) var(--round) 56px var(--round);transition:border-color var(--t-fast) var(--ease)}.exhibit[open]{border-color:var(--accent)}.exhibit summary{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);cursor:pointer;border-radius:inherit;list-style:none;display:flex;position:relative}.exhibit summary::-webkit-details-marker{display:none}.exhibit summary>a:empty{top:calc(-1 * var(--s-3));position:absolute}.exhibit summary .n{width:34px;height:34px;font:700 13px/1 var(--f-mono);color:var(--on-accent);background:var(--accent);transition:transform var(--t-fast) var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.exhibit summary h2{min-width:0;font-family:var(--f-display);letter-spacing:.06em;text-transform:uppercase;overflow-wrap:anywhere;flex:1;margin:0;font-size:1.25rem;font-weight:700;line-height:1.2}.exhibit summary:hover h2{color:var(--accent-ink)}.exhibit summary:hover .n{transform:scale(1.12)}.exhibit summary i{width:18px;height:18px;transition:rotate .22s var(--ease);flex:none;position:relative}.exhibit summary i:before,.exhibit summary i:after{content:"";background:var(--accent-ink);border-radius:2px;height:3px;position:absolute;top:7.5px;left:0;right:0}.exhibit summary i:after{rotate:90deg}.exhibit[open] summary i{rotate:45deg}.exhibit-body{padding:0 var(--s-4) var(--s-5)}.exhibit-body>:first-child{margin-top:0}.exhibit-body>:last-child{margin-bottom:0}.readme h3,.readme h4,.readme h5,.readme h6{margin:var(--s-5) 0 var(--s-2);font-family:var(--f-script);color:var(--accent-ink);font-size:1.7rem;font-weight:400;line-height:1.15}.readme h4,.readme h5,.readme h6{font-size:1.4rem}.readme a:empty{display:block}.readme img{max-width:100%;height:auto}.readme video{background:#000;width:100%;display:block}.exhibit-tag{font:700 11px/16px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--plate-muted);display:block}.fig,.plate-fig,.equation,.readme blockquote{box-shadow:0 4px #00000038}.fig{width:fit-content;max-width:100%;margin:var(--s-4) 0;padding:var(--s-2) var(--s-2) var(--s-1);color:var(--plate-ink);background:var(--plate);border-radius:12px}.fig img{border:2px solid var(--plate-ink);background:#fff;border-radius:6px;margin:0;display:block}.fig figcaption{align-items:baseline;gap:0 var(--s-2);padding:var(--s-1) 2px 2px;font:13px/18px var(--f-mono);color:var(--plate-ink);flex-wrap:wrap;display:flex}.fig a.fig-away{padding:var(--s-4) var(--s-5);border:2px dashed var(--plate-ink);font-family:var(--f-mono);color:var(--plate-ink);border-radius:6px;font-size:14px;display:block}.equation{margin:var(--s-4) 0;max-width:100%;padding:var(--s-2) var(--s-3);color:var(--plate-ink);background:var(--plate);border-radius:12px;display:block;overflow:hidden}.equation .katex-display{margin:var(--s-1) 0;padding:var(--s-1) 0;overflow:auto hidden}.plate-fig{margin:var(--s-4) 0;padding:var(--s-2) var(--s-3);color:var(--plate-ink);background:var(--plate);border-radius:12px}.prose .plate-fig{max-width:100%}.readme .mermaid{padding:var(--s-2) 0;color:var(--plate-ink);background:0 0;margin:0;overflow-x:auto}.readme .mermaid svg{max-width:100%;height:auto;margin:0 auto;display:block}.readme .highlight{margin:var(--s-4) 0;padding:var(--s-2) var(--s-3);background:var(--bg);border:2px dashed var(--border);border-radius:12px}.readme .highlight .exhibit-tag{color:var(--muted)}.readme .highlight pre{padding:var(--s-1) 0 0;background:0 0;border-radius:0;margin:0}.readme>.exhibit pre:not(.mermaid){font-family:var(--f-mono);font-size:14px}.readme table{border:2px solid var(--accent);border-radius:6px}.readme th{font-family:var(--f-display);letter-spacing:.08em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);font-size:13px}.readme td{border-style:dashed;border-width:0 0 1px}.readme blockquote{padding:var(--s-2) var(--s-3);color:var(--plate-ink);background:var(--plate);border-left:8px solid var(--accent-2);border-radius:6px 12px 12px 6px}.wall{gap:var(--s-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=900px){.wall{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.print{top:var(--s-5);position:sticky}}.print{margin:var(--s-4) auto 0;background-color:var(--plate);max-width:480px;box-shadow:0 0 0 2px var(--screw), 0 8px 0 #00000047, 0 22px 36px #00000059;transition:rotate .24s var(--ease);border-radius:8px;padding:26px;rotate:-1.2deg}.print:hover{rotate:0deg}.print img{border-radius:2px;width:100%;display:block;box-shadow:0 0 0 1px #0006}.meta{font-family:var(--f-mono);color:var(--muted);font-size:14px}.lede{max-width:36em;margin:0 0 var(--s-4);font-size:1.15rem}.panel{background-color:var(--panel-bg);color:var(--panel-ink);margin:0;gap:var(--s-4);border-radius:34px;grid-template-columns:minmax(0,1fr);margin-inline:2px;padding:30px 30px 26px;display:grid;position:relative;box-shadow:inset 0 2px #ffffff24,inset 0 -3px #00000040,0 0 0 2px #000,0 12px 0 -2px #00000059,0 18px 30px #0000004d}@media (width<=559px){.panel{padding:26px 14px 22px}}@media (width>=980px){.panel.has-side{column-gap:var(--s-5);grid-template-columns:minmax(0,1fr) 300px}.panel.has-side .legend{grid-column:1/-1}.panel.has-side .side{grid-area:2/2/span 2}.panel.has-side:not(:has(.strip)) .side{grid-row:2}}.legend{justify-content:space-between;gap:var(--s-1) var(--s-4);padding:0 var(--s-3);font-family:var(--f-display);letter-spacing:.16em;text-transform:uppercase;color:var(--panel-muted);flex-wrap:wrap;font-size:12px;font-weight:600;display:flex}.legend .model{color:var(--panel-ink)}.legend .control{font:inherit;color:var(--panel-muted);gap:var(--s-2);min-height:0}.lamp{align-items:center;gap:var(--s-2);display:inline-flex}.lamp i{background:#2b2a26;border-radius:50%;width:9px;height:9px;box-shadow:inset 0 0 0 1px #0009}.lamp.on i{background:var(--lamp);box-shadow:0 0 8px var(--lamp)}.glass{background:var(--screen-bg);box-shadow:0 0 0 2px #000, 0 0 0 9px var(--bezel), 0 0 0 11px #ffffff29, inset 0 0 30px #000c;border-radius:26px/34px;margin:11px;position:relative;overflow:hidden}.glass canvas{touch-action:manipulation;width:100%;height:100%;display:block}.glass.main{aspect-ratio:var(--screen-aspect,16 / 10)}@media (width<=559px){.glass.main{aspect-ratio:var(--screen-aspect-narrow,var(--screen-aspect,16 / 10))}}.glass.strip{aspect-ratio:6/1.45}.glass.main canvas[data-clickable]{cursor:crosshair}.glass:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, rgba(0,0,0,var(--scan)) 0 1px, transparent 1px 3px);position:absolute;inset:0}.glass.main:before{content:"";pointer-events:none;z-index:1;height:25%;opacity:var(--scan);background:linear-gradient(transparent, var(--screen-accent), transparent);animation:refresh var(--tempo) linear infinite;position:absolute;top:-25%;left:0;right:0}@keyframes refresh{to{transform:translateY(500%)}}.channels{justify-content:space-between;gap:0 var(--s-4);padding:0 var(--s-3);font-family:var(--f-mono);color:var(--panel-muted);flex-wrap:wrap;font-size:12px;display:flex}.fallback{padding:var(--s-4);color:var(--screen-ink);margin:0;font-size:15px;display:none;position:absolute;inset:0}[data-state=failed] .fallback{display:block}.readouts{gap:var(--s-2) var(--s-3);grid-template-columns:repeat(auto-fit,minmax(92px,1fr));margin:0;display:grid}.readouts div{border-top:1px solid var(--panel-border);padding-top:var(--s-1);min-width:0}.readouts dt{font-family:var(--f-mono);color:var(--panel-muted);font-size:12px}.readouts dd{font-family:var(--f-mono);color:var(--panel-ink);margin:0;font-size:1.05rem}.readouts dd.word{color:var(--lamp);font-size:.95rem}.seg{text-align:right;font-family:var(--f-seg);color:var(--lamp);text-shadow:0 0 6px color-mix(in srgb, var(--lamp) 55%, transparent);background:#070806;border-radius:6px;padding:5px 6px 4px;font-size:.95rem;line-height:1.15;display:block;position:relative;overflow:hidden;box-shadow:inset 1px 1px 3px #000,0 1px #ffffff1a}.seg .ghost{color:var(--lamp);opacity:.09;text-shadow:none;position:absolute;top:5px;right:6px}.seg [data-readout]{position:relative}.readouts .unit{color:var(--panel-muted);overflow-wrap:anywhere;font-size:11px;line-height:1.2;display:block}.side{gap:var(--s-4);align-content:start;display:grid}.controls{gap:var(--s-3);display:grid}.control{font-family:var(--f-mono);color:var(--panel-muted);gap:2px;font-size:13px;display:grid}.control .head{justify-content:space-between;gap:var(--s-3);display:flex}.control output{color:var(--panel-ink);font-variant-numeric:tabular-nums}.control input[type=range]{width:100%;height:30px;accent-color:var(--lamp);background:0 0;margin:0}.control.switch{justify-content:space-between;align-items:center;min-height:30px;display:flex}.control.switch input{appearance:none;border:2px solid var(--panel-border);cursor:pointer;width:48px;height:26px;transition:background-color .16s var(--ease), border-color .16s var(--ease);background:#00000059;border-radius:999px;flex:none;margin:0;position:relative}.control.switch input:before{content:"";background:var(--panel-muted);width:18px;height:18px;transition:transform .16s var(--ease), background-color .16s var(--ease);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000080}.control.switch input:checked{background:var(--lamp);border-color:var(--lamp)}.control.switch input:checked:before{background:var(--panel-bg);transform:translate(22px)}.control[hidden]{display:none}.control input[type=text]{font:inherit;width:100%;min-height:32px;color:var(--panel-ink);border:1px solid var(--panel-border);padding:var(--s-1);background:#00000038}.control input[type=text][aria-invalid=true]{border-color:var(--screen-alert)}.control select{font:inherit;color:var(--panel-ink);background:var(--panel-bg);border:1px solid var(--panel-border);padding:var(--s-1);min-height:32px}.dropdown{position:relative}.dropdown button{align-items:center;gap:var(--s-2);cursor:pointer;text-align:left;width:100%;min-height:34px;font:700 13px/18px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--lamp);border:1px solid var(--panel-border);background:#070806;border-radius:12px;padding:5px 30px 5px 9px;display:flex;box-shadow:inset 1px 1px 3px #000,0 1px #ffffff12}.dropdown button:after{content:"";border-right:2px solid var(--lamp);border-bottom:2px solid var(--lamp);width:7px;height:7px;position:absolute;top:13px;right:11px;transform:translateY(-2px)rotate(45deg)}.dropdown button[aria-expanded=true]:after{transform:translateY(2px)rotate(225deg)}.dropdown button:hover,.dropdown button[aria-expanded=true]{border-color:var(--lamp)}.dropdown i{background:var(--lamp);width:8px;height:8px;box-shadow:0 0 7px var(--lamp);border-radius:50%;flex:none}.dropdown ul{z-index:5;border:1px solid var(--lamp);background:#070806;border-radius:12px;outline:none;margin:0;padding:3px;list-style:none;position:absolute;inset:calc(100% + 3px) 0 auto;box-shadow:0 6px 14px #0000008c}.dropdown ul[hidden]{display:none}.dropdown li{align-items:center;gap:var(--s-2);cursor:pointer;min-height:32px;font:700 13px/18px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--panel-muted);border-radius:8px;padding:0 7px;display:flex}.dropdown li i{background:#2b2a26;box-shadow:inset 0 0 0 1px #0009}.dropdown li[aria-selected=true]{color:var(--lamp)}.dropdown li[aria-selected=true] i{background:var(--lamp);box-shadow:0 0 7px var(--lamp)}.dropdown li.active{color:#070806;background:var(--lamp)}.dropdown li.active i{box-shadow:none;background:#070806}.buttons{gap:var(--s-2);flex-wrap:wrap;display:flex}.buttons button{font:700 12px/16px var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--panel-ink);border:2px solid var(--panel-border);cursor:pointer;border-radius:var(--radius);background:#ffffff14;min-height:34px;padding:7px 14px}.buttons button:hover,.buttons .upload:hover,.buttons .upload:focus-within{border-color:var(--lamp)}.buttons .upload{font:700 12px/16px var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--panel-bg);background:var(--lamp);border:2px solid var(--lamp);cursor:pointer;border-radius:999px;padding:7px 14px;position:relative}.buttons .upload input{opacity:0;cursor:pointer;position:absolute;inset:0}.buttons button[aria-pressed=true]{border-color:var(--lamp);color:var(--lamp)}.keypad{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:".up.""left down right";gap:5px;display:grid}.keypad[hidden]{display:none}.keypad.idle .key{opacity:.5}.key{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;color:#1f1d19;background:linear-gradient(#f5ebd3,#d9cba9);border:0;border-radius:12px;align-content:center;justify-items:center;gap:2px;min-height:62px;padding:5px 3px;display:grid;box-shadow:inset 0 1px #ffffffbf,inset 0 -3px #0003,0 2px #000}.key.up{grid-area:up}.key.left{grid-area:left}.key.down{grid-area:down}.key.right{grid-area:right}.key .cap{font:700 16px/1 var(--f-mono)}.key .does{font:500 10px/1.15 var(--f-text);text-align:center;color:#3f3b33}.key.pressed{background:var(--lamp);box-shadow:inset 0 1px 0 #ffffff80, 0 0 8px var(--lamp);transform:translateY(2px)}.tape{font-family:var(--f-mono);color:#2a2620;background:#f1e3bc;justify-self:start;padding:4px 12px;font-size:13px;transform:rotate(-1.4deg);box-shadow:0 1px 2px #00000080}.plateno{font-family:var(--f-mono);letter-spacing:.1em;color:var(--panel-muted);margin:0;font-size:11px}.fig-note{color:var(--muted);margin:var(--s-4) 0 0;max-width:44em;font-size:15px}@media (prefers-reduced-motion:reduce){.glass.main:before{animation:none;display:none}.electron{animation:none!important}.btn,.btn:before,.btn:after,.row,.print{animation:none!important;transform:none!important}.btn:before{opacity:0!important}.print{rotate:0deg}*{scroll-behavior:auto!important;transition:none!important}}
