:root{--wall: #ece6da;--wall-2: #e3dccd;--ink: #1f1c17;--muted: #645c4f;--rule: #c7bca9;--accent: #a3341f;--plinth-1: #26241f;--plinth-2: #0f0e0c;--card: #f5f1e8;--sim: #2f6b4f;--emu: #8a5a12;--re: #2d4f7c;--band-h: 48px;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "URW Palladio L", P052, Georgia, serif;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace;--surface: var(--card);--surface-2: var(--wall-2);--border: var(--rule);--border-focus: var(--muted);--radius-md: 8px;--radius-sm: 5px;--shadow-pop: 0 10px 30px rgba(0, 0, 0, .22), 0 1px 3px rgba(0, 0, 0, .14);--fs-sm: 13px;--fs-xs: 11px;--calc-inset-top: var(--band-h);color-scheme:light}@media(prefers-color-scheme:dark){:root{--wall: #141311;--wall-2: #1b1a17;--ink: #ece6da;--muted: #a59c8c;--rule: #3a362f;--accent: #e3684e;--plinth-1: #24221e;--plinth-2: #090908;--card: #1c1b18;--sim: #6fbf95;--emu: #e0a84f;--re: #8fb3e6;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--wall);color:var(--ink);font:16px/1.5 var(--sans);-webkit-text-size-adjust:100%}html[data-view=gallery] body{overflow-x:hidden}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cs-gallery-page{max-width:1240px;margin:0 auto;padding:clamp(28px,6vw,72px) clamp(16px,4vw,48px) 48px}.cs-missing{font-family:var(--mono);font-size:13px;border-left:3px solid var(--accent);padding:6px 12px;margin:0 0 24px}.cs-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 48px;align-items:end;padding-bottom:28px;border-bottom:1px solid var(--ink)}.cs-kicker{grid-column:1 / -1;margin:0;font:600 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.cs-hero h1{margin:0;font:400 clamp(34px,6.2vw,76px) / 1.02 var(--serif);letter-spacing:-.015em;max-width:17ch;text-wrap:balance}.cs-hero h1 em{font-style:italic;color:var(--accent)}.cs-lede{grid-column:1;margin:0;max-width:56ch;font:400 clamp(17px,1.6vw,20px) / 1.5 var(--serif);color:var(--muted)}.cs-facts{grid-column:2;grid-row:2 / span 2;display:flex;gap:28px;margin:0}.cs-facts div{border-left:1px solid var(--rule);padding-left:12px}.cs-facts dt{font:600 11px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.cs-facts dd{margin:4px 0 0;font:400 34px/1 var(--serif);font-variant-numeric:lining-nums tabular-nums}.cs-timeline{padding:26px 0 8px;border-bottom:1px solid var(--rule)}.cs-timeline__rail{position:relative;isolation:isolate;height:calc(24px + var(--lanes, 3) * 28px);margin:0 24px;border-bottom:2px solid var(--ink)}.cs-tick{position:absolute;bottom:-24px;transform:translate(-50%);font:11px/1 var(--mono);color:var(--muted)}.cs-tick:before{content:"";position:absolute;left:50%;bottom:18px;width:1px;height:8px;background:var(--ink)}.cs-mark{position:absolute;bottom:-7px;width:0;text-decoration:none}.cs-mark__dot{position:absolute;left:-6px;bottom:0;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--wall);box-shadow:0 0 0 1px var(--accent);transition:transform .15s}.cs-mark__label{position:absolute;left:0;transform:translate(-50%);white-space:nowrap;font:600 12px/1 var(--sans);padding:3px 6px;border-radius:3px;background:var(--wall)}.cs-mark:before{content:"";position:absolute;left:0;bottom:18px;width:1px;height:calc(4px + var(--lane, 0) * 28px);background:var(--rule);z-index:-1}.cs-mark__label{bottom:calc(22px + var(--lane, 0) * 28px)}.cs-mark:hover .cs-mark__dot,.cs-mark:focus-visible .cs-mark__dot{transform:scale(1.35)}.cs-mark:hover .cs-mark__label{color:var(--accent)}.cs-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:40px 0 8px}.cs-method{padding:4px 24px 4px 0}.cs-method+.cs-method{border-left:1px solid var(--rule);padding-left:24px}.cs-method p{margin:8px 0 0;font:400 16px/1.45 var(--serif);color:var(--muted)}.cs-tech{display:inline-flex;align-items:center;gap:7px;margin:0;font:600 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}.cs-tech:before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor}.cs-tech--simulation{color:var(--sim)}.cs-tech--emulation{color:var(--emu)}.cs-tech--reimplementation{color:var(--re)}.cs-gallery{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:clamp(20px,3vw,36px)}.cs-exhibit{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit}.cs-plinth{position:relative;margin:0;aspect-ratio:4 / 3;border-radius:2px;overflow:hidden;display:grid;place-items:center;padding:14px;background:radial-gradient(ellipse 70% 55% at 50% 38%,rgba(255,244,214,.16),transparent 70%),linear-gradient(180deg,var(--plinth-1),var(--plinth-2));box-shadow:inset 0 -18px 30px #00000059}.cs-plinth img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.55));transition:transform .35s cubic-bezier(.2,.7,.2,1)}.cs-picto{width:52%;fill:none;stroke:#d8cfbd;stroke-width:2}.cs-picto .g{fill:#d8cfbd26}.cs-exhibit:hover .cs-plinth img,.cs-exhibit:focus-visible .cs-plinth img{transform:translateY(-4px) scale(1.025)}.cs-label{flex:1;padding:14px 2px 0;border-top:3px solid var(--ink);margin-top:12px;display:flex;flex-direction:column;gap:4px}.cs-accession{display:flex;justify-content:space-between;margin:0;font:12px/1 var(--mono);letter-spacing:.08em;color:var(--muted)}.cs-year{color:var(--ink);font-weight:600}.cs-name{margin:6px 0 0;font:400 30px/1.05 var(--serif);letter-spacing:-.01em}.cs-exhibit:hover .cs-name{color:var(--accent)}.cs-maker{margin:0;font:600 12px/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.cs-line{margin:4px 0 10px;font:400 16px/1.45 var(--serif)}.cs-label .cs-tech{margin-top:auto}.cs-foot{margin-top:64px;padding-top:20px;border-top:1px solid var(--ink);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;font:400 14px/1.5 var(--serif);color:var(--muted)}.cs-foot p{margin:0}@media(max-width:760px){.cs-hero{grid-template-columns:minmax(0,1fr)}.cs-facts{grid-column:1;grid-row:auto}.cs-facts dd{font-size:26px}.cs-methods{grid-template-columns:minmax(0,1fr);gap:14px}.cs-method,.cs-method+.cs-method{border-left:0;padding:0}.cs-timeline__rail{margin:0 14px}.cs-mark__label{font-size:11px;padding:2px 4px}.cs-foot{grid-template-columns:minmax(0,1fr)}}html[data-view=machine],html[data-view=machine] body{height:100%;overflow:hidden;overscroll-behavior:none}html[data-view=machine] body{background:radial-gradient(ellipse 60% 50% at 50% 42%,var(--wall),transparent 75%),var(--wall-2)}.cs-band{position:fixed;z-index:2000;top:0;left:0;right:0;height:var(--band-h);display:flex;align-items:center;gap:12px;padding:0 10px;background:color-mix(in srgb,var(--wall) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}.cs-home{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:17px;text-decoration:none;font:600 13px/1 var(--sans);white-space:nowrap}.cs-home:hover{background:var(--wall-2)}.cs-home__arrow{font-size:16px}.cs-band__title{flex:1;min-width:0;margin:0;display:flex;align-items:baseline;gap:8px;white-space:nowrap;overflow:hidden}.cs-band__name{font:400 19px/1 var(--serif);overflow:hidden;text-overflow:ellipsis}.cs-band__year{font:12px/1 var(--mono);color:var(--muted)}.cs-stage{position:fixed;inset:var(--band-h) 0 0 0;overflow:auto;-webkit-overflow-scrolling:touch}html[data-inline] .cs-stage{padding:10px}.cs-placard{position:fixed;left:clamp(16px,3vw,40px);bottom:clamp(16px,3vw,36px);max-width:300px;padding-top:10px;border-top:3px solid var(--ink);color:var(--ink);opacity:.85;pointer-events:none}.cs-placard p{margin:0}.cs-placard__year{font:12px/1 var(--mono);letter-spacing:.1em;color:var(--muted)}.cs-placard__name{font:400 28px/1.1 var(--serif);margin-top:6px!important}.cs-placard__maker{font:600 11px/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:4px 0 8px!important}.cs-placard .cs-placard__tech{font:600 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}.cs-placard{transition:opacity .2s,visibility .2s}.cs-placard.is-covered{opacity:0;visibility:hidden}@media(max-width:1000px){.cs-placard{display:none}}.cs-error{max-width:520px;margin:48px auto;padding:0 16px;font-family:var(--serif)}@media(max-width:520px){.cs-home__text{display:none}.cs-band__name{font-size:17px}}.cs-gate{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:32px 16px;background:radial-gradient(ellipse 70% 55% at 50% 40%,var(--wall),transparent 75%),var(--wall-2)}.cs-gate__card{width:min(520px,100%);padding:clamp(24px,5vw,44px);border-top:3px solid var(--ink);background:var(--card);box-shadow:0 24px 60px #00000029}.cs-gate__title{margin:14px 0 10px;font:400 clamp(30px,6vw,46px) / 1.05 var(--serif);letter-spacing:-.01em}.cs-gate__title em{color:var(--accent)}.cs-gate__lede{margin:0 0 26px;font:400 17px/1.5 var(--serif);color:var(--muted)}.cs-gate__label{display:block;margin-bottom:8px;font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.cs-gate__row{display:flex;gap:10px}.cs-gate__input{flex:1;min-width:0;height:46px;padding:0 14px;border:1px solid var(--rule);border-bottom:2px solid var(--ink);border-radius:0;background:var(--wall);color:var(--ink);font:20px/1 var(--mono);letter-spacing:.2em}.cs-gate__input:focus{outline:none;border-bottom-color:var(--accent)}.cs-gate__go{height:46px;padding:0 22px;border:0;border-radius:23px;background:var(--ink);color:var(--wall);font:600 14px/1 var(--sans);cursor:pointer}.cs-gate__go:hover{background:var(--accent)}.cs-gate__note{margin:12px 0 0;min-height:1.5em;font:14px/1.5 var(--serif);color:var(--muted)}.cs-gate__note.is-wrong{color:var(--accent)}.cs-gate__form.is-shaking{animation:cs-shake .32s}@keyframes cs-shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@media(prefers-reduced-motion:reduce){.cs-gate__form.is-shaking{animation:none}}.cs-gate__foot{margin:0;font:13px/1.4 var(--mono);color:var(--muted);text-align:center}.cs-stage.is-placing{visibility:hidden}
