:root{color-scheme:dark;--bg:#08010c;--panel:#0e0913;--text:#f6f4f7;--muted:#b8afc3;--accent:#9ee4ef;--sidebar:390px;--gutter:clamp(25px,4vw,76px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 Arial,Helvetica,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{font:inherit}.skip{position:fixed;top:-80px;z-index:50;background:white;color:black;padding:12px}.skip:focus{top:8px}#menu{position:fixed;display:flex;align-items:center;gap:12px;top:20px;left:20px;z-index:40;border:1px solid #45394f;border-radius:30px;background:#120d1a;color:var(--text);padding:10px 17px;cursor:pointer;font-size:12px;box-shadow:0 6px 24px #0004}#menu:hover{border-color:var(--accent);color:var(--accent)}.menu-icon{font-size:19px;line-height:1}.scrim{position:fixed;inset:0;background:#0009;border:0;z-index:20}.scrim[hidden]{display:none}aside{position:fixed;inset:0 auto 0 0;width:var(--sidebar);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#4a3d56 transparent;background:var(--panel);border-right:1px solid #261d30;padding:90px 36px 45px;color:var(--muted);font-size:16px;line-height:1.65;z-index:30;transition:transform .28s ease,visibility .28s;visibility:visible}aside .logo{display:block;width:270px;max-width:100%;margin:0 auto 50px}aside .logo img{display:block;width:100%;height:auto}aside h2,aside h3,summary{font-size:12px;font-weight:700;letter-spacing:.12em;line-height:1.5;margin:0 0 16px;color:#e2d9ea}aside>div{margin-bottom:42px}aside ul{list-style:none;margin:0;padding:0}aside li{margin:0;border-bottom:1px solid #ffffff09}aside li a{display:block;padding:10px 0;font-size:14px;font-weight:600;line-height:1.5}aside a:hover{color:white}summary{cursor:pointer;padding:14px 0;border-top:1px solid #372a43;border-bottom:1px solid #372a43}aside details a{display:inline-block;font-size:13px;margin:5px 8px 5px 0}aside details{margin-bottom:42px}.social{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:36px;padding-top:28px;border-top:1px solid #372a43}.social a{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:10px;letter-spacing:.01em}.social img{width:100%;height:60px;object-fit:contain;transition:transform .2s}.social a:hover img{transform:translateY(-4px)}main{margin-left:var(--sidebar);min-height:100vh;transition:margin-left .28s}.sidebar-closed aside{transform:translateX(-100%);visibility:hidden}.sidebar-closed main{margin-left:0}header{padding:43px var(--gutter) 34px;background:#04070b;border-bottom:1px solid #241b2c;margin-bottom:40px}header>a{display:inline-block;color:white;font-size:clamp(27px,2.6vw,43px);font-weight:700;line-height:1.15;letter-spacing:-1.6px}header p{margin:10px 0 0;color:var(--muted);font-size:12px;letter-spacing:.045em}.sidebar-closed header{padding-left:max(210px,var(--gutter))}.tools{margin:0 var(--gutter) 32px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.tools label{font-size:12px;color:var(--muted)}input{font:inherit;font-size:14px;color:white;background:#110c19;border:1px solid #493b56;border-radius:6px;padding:12px 16px;width:290px;max-width:100%}input:focus{border-color:var(--accent)}#count{margin:0 0 0 auto;font-size:11px;letter-spacing:.06em;color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin:0 var(--gutter)}.column{min-width:0}.card{margin-bottom:48px}.card img{display:block;width:100%;height:auto;background:#110c19;transition:filter .25s}.card a{display:block}.card a:hover{text-decoration:none}.card a:hover img{filter:brightness(1.12)}.card h2{position:relative;font-size:clamp(17px,1.35vw,23px);line-height:1.35;margin:0;padding:16px 28px 17px 0;border-bottom:1px solid #33263e;font-weight:600;letter-spacing:-.45px;color:var(--text)}.card h2:after{content:'↗';position:absolute;right:1px;color:var(--accent);opacity:0;transform:translate(-4px,4px);transition:.2s}.card a:hover h2:after,.card a:focus-visible h2:after{opacity:1;transform:none}.card[hidden]{display:none}.back,.project{margin:0 var(--gutter) 30px}.back{font-size:13px}.project{max-width:1100px}.project h1{font-size:clamp(26px,3vw,44px);letter-spacing:-1px;line-height:1.15;margin:40px 0}.body{overflow-wrap:anywhere;color:#e2dde6;line-height:1.85;font-size:17px}.body img{display:block;max-width:100%;height:auto;margin:24px auto}.body table{width:100%;max-width:100%}.body td{display:block}.body div,.body span{max-width:100%}.body h2{font-size:25px;line-height:1.3}.body p{margin:0 0 22px}footer{margin:60px var(--gutter) 0;padding:28px 0;border-top:1px solid #33263e;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:20px}#empty{margin:50px var(--gutter)}@media(min-width:1800px){:root{--sidebar:430px}}@media(max-width:1100px){:root{--sidebar:350px;--gutter:28px}.tools label{width:100%}}@media(max-width:900px){:root{--sidebar:min(400px,90vw);--gutter:24px}main{margin-left:0}aside{box-shadow:16px 0 80px #0006}.mobile-nav-open{overflow:hidden}header,.sidebar-closed header{padding:90px var(--gutter) 28px}header>a{font-size:33px}header{margin-bottom:28px}.tools{gap:12px}#count{margin-left:0}.social img{height:60px}}@media(max-width:600px){.gallery{display:flex;flex-direction:column;gap:0}.column{display:contents}.card{margin-bottom:34px}.card h2{font-size:19px}.card h2:after{opacity:1;transform:none}.tools label{width:100%}input{width:100%}aside{padding:85px 28px 35px;font-size:16px}aside .logo{width:240px;margin-bottom:32px}.project h1{font-size:29px}.body{font-size:16px}footer{flex-direction:column;gap:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
.sidebar-about{margin-bottom:40px}.sidebar-about p{margin:0}.project-summary{max-width:780px}.project-intro{font-size:clamp(20px,1.6vw,25px);line-height:1.6;letter-spacing:-.3px;color:#f1ebf5}.curatorial-focus{font-size:16px;color:var(--muted);max-width:70ch}.project-facts{margin:28px 0;font-size:14px;border-top:1px solid #35263f}.project-facts>div{padding:14px 0;border-bottom:1px solid #35263f;display:grid;grid-template-columns:125px 1fr;gap:16px}.project-facts dt{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.project-facts dd{margin:0;line-height:1.65}.project-credits{font-size:14px;margin-bottom:35px}.project-credits summary{font-size:11px;letter-spacing:.08em;padding:12px 0}.project-credits p{padding:16px 0;color:var(--muted)}.publications{margin-top:48px}.section-heading{border-top:1px solid #35263f;padding-top:28px;margin-bottom:24px}.section-heading>span{font-size:10px;color:var(--accent);letter-spacing:.16em}.section-heading h2{font-size:26px;letter-spacing:-.6px;margin:7px 0}.section-heading p{font-size:13px;color:var(--muted);margin:0}.publication{margin:0 0 36px;background:#100c16;border:1px solid #392d43}.publication figcaption{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px}.document-title{font-weight:600}.document-title small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.document-actions{display:flex;gap:16px;flex-shrink:0;align-items:center;font-size:11px}.document-actions button{background:none;border:1px solid #564064;color:var(--text);border-radius:4px;padding:8px 12px;cursor:pointer;font-size:11px}.document-actions button:hover{border-color:var(--accent)}.publication iframe{display:block;width:100%;height:clamp(520px,78vh,1100px);border:0;background:#252525}.viewer-help{font-size:10px!important;color:var(--muted);padding:8px 16px;margin:0!important}.publication:fullscreen{background:#100c16;display:flex;flex-direction:column;overflow:auto}.publication:fullscreen iframe{flex:1;height:calc(100vh - 110px)}.project-images{margin-top:45px;display:grid;gap:24px}.project-images img{width:auto;max-width:100%;margin:0 auto}.project-links{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0}.project-links a{border:1px solid #42324f;padding:9px 14px;font-size:12px;border-radius:4px}@media(max-width:600px){.project-facts>div{grid-template-columns:1fr;gap:4px}.publication figcaption{align-items:flex-start;flex-direction:column;padding:14px}.publication iframe{height:70vh;min-height:440px}.document-actions{gap:20px}.section-heading h2{font-size:23px}}
.language-switch{margin:0 0 35px;padding:0 0 22px;border-bottom:1px solid #372a43}.language-switch>span{display:block;font-size:9px;letter-spacing:.16em;color:var(--muted);margin-bottom:10px}.language-switch>div{display:flex;gap:8px}.language-switch a{font-size:13px;padding:7px 19px;border:1px solid #42324f;border-radius:4px;color:var(--muted)}.language-switch a[aria-current]{background:var(--accent);border-color:var(--accent);color:#0b0b10;font-weight:700}.language-switch a:hover{text-decoration:none;border-color:var(--accent)}
.egg-stage{position:relative;height:230px;margin:0 var(--gutter) 30px;overflow:hidden;border-bottom:1px solid #251c2e;pointer-events:none}.egg-stage canvas{display:block;width:100%;height:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.egg-stage{height:230px;padding-top:40px}}@media(max-width:600px){.egg-stage{height:200px;margin-bottom:24px}}
.egg-stage{border-bottom:0}.egg-stage:after{content:'';position:absolute;left:0;right:0;bottom:22px;border-bottom:1px solid #251c2e}
/* Open spacing replaces decorative dividers. */
header,.card h2,aside,aside li,summary,.social,.language-switch,.project-facts,.project-facts>div,.section-heading,footer{border:0}.egg-stage:after{display:none}.publication{border:0}#menu{width:44px;height:44px;padding:10px;justify-content:center;border:0;background:#17101fe6}.menu-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.menu-icon path{transform-origin:12px 12px;transition:transform .2s,opacity .2s}#menu[aria-expanded="true"] .menu-top{transform:translateY(5px) rotate(45deg)}#menu[aria-expanded="true"] .menu-mid{opacity:0}#menu[aria-expanded="true"] .menu-bottom{transform:translateY(-5px) rotate(-45deg)}.language-switch{padding:0;margin-bottom:30px}.language-switch a{display:grid;place-items:center;padding:7px;width:52px;height:40px;border:0;background:transparent;opacity:.5}.language-switch a[aria-current]{background:#28202f;opacity:1;box-shadow:0 0 0 1px #9ee4ef80}.language-switch a:hover{opacity:1;background:#28202f}.language-switch img{display:block;width:36px;height:24px}
.egg-stage{height:370px}@media(max-width:900px){.egg-stage{height:370px;padding-top:40px}}@media(max-width:600px){.egg-stage{height:290px;padding-top:40px}}
/* Locally hosted Barlow: confident condensed capitals, readable body copy. */
@font-face{font-family:Barlow;src:url('/assets/fonts/Barlow-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('/assets/fonts/BarlowCondensed-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
:root{--font-body:Barlow,Arial,sans-serif;--font-display:'Barlow Condensed','Arial Narrow',Arial,sans-serif}
body{font-family:var(--font-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,header>a,.card h2,aside li a,summary,.section-heading>span,.project-facts dt,.document-title,.document-actions,.project-links a,.back,.social span,footer a{font-family:var(--font-display);font-weight:600;text-transform:uppercase;font-style:normal;letter-spacing:.035em}
.card h2{font-size:clamp(23px,1.85vw,29px);line-height:1.1;padding-top:15px;letter-spacing:.025em}
.project h1{font-size:clamp(36px,4.1vw,60px);line-height:1.02;letter-spacing:.025em}
header>a{letter-spacing:.035em;font-size:clamp(30px,3vw,46px)}
aside li a{font-size:18px;line-height:1.25;padding:11px 0;letter-spacing:.035em}
aside h2,aside h3,summary{font-size:15px;letter-spacing:.09em;line-height:1.3}
aside details a{font-family:var(--font-display);font-size:15px;text-transform:uppercase;letter-spacing:.025em}
.section-heading h2{font-size:32px;line-height:1.1;letter-spacing:.035em}
.project-intro{font-family:var(--font-body);letter-spacing:0;font-size:clamp(21px,1.65vw,26px);line-height:1.5}
.body,.curatorial-focus,.sidebar-about{font-family:var(--font-body);letter-spacing:.005em}
.project-facts dt{font-size:14px;letter-spacing:.065em}.document-title{font-size:18px}.document-title small{font-family:var(--font-body);text-transform:none;font-size:11px;letter-spacing:0}.document-actions,.document-actions button,.project-links a,.back{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.055em;font-size:14px}.social span{font-size:12px}
@media(max-width:600px){.card h2{font-size:24px}.project h1{font-size:38px}.section-heading h2{font-size:28px}}
/* Project pages follow the available browser width, including PDF publications. */
.project{max-width:none;min-width:0;margin-left:var(--gutter);margin-right:var(--gutter)}
.project-summary{max-width:none;width:100%}.project-intro{max-width:none;width:100%;font-size:clamp(18px,1.25vw,22px);line-height:1.65;margin:0 0 26px;color:#e2dde6;letter-spacing:0}
.project-facts{width:100%;max-width:none}.publications,.publication{width:100%;max-width:none;min-width:0}
.publication iframe{width:100%;height:calc(100svh - 110px);min-height:640px;max-height:none}
.project h1{margin:28px 0}.publications{margin-top:34px}
@media(min-width:901px){body:has(.project){--gutter:clamp(24px,2.5vw,48px)}}
@media(max-width:600px){.project-intro{font-size:18px;line-height:1.6}.publication iframe{height:80svh;min-height:460px}.publication figcaption{min-width:0}.document-actions{flex-wrap:wrap}.project-facts dd{min-width:0;overflow-wrap:anywhere}}
@media(min-width:601px){.project-facts>div{grid-template-columns:180px minmax(0,1fr)}}
/* Hover-only signal interference: cropped image slices, no layout movement. */
.project-visual{position:relative;display:block;overflow:hidden;isolation:isolate;background:#100b16}
.project-visual>img{width:100%;height:auto;display:block;transition:filter .22s ease,transform .35s ease}
.project-visual:before,.project-visual:after{content:'';position:absolute;inset:0;pointer-events:none;background-image:var(--project-image);background-size:100% 100%;background-repeat:no-repeat;opacity:0;z-index:1;mix-blend-mode:screen;clip-path:inset(45% 0 53% 0)}
.project-visual:before{filter:sepia(.7) saturate(3) hue-rotate(120deg)}.project-visual:after{filter:sepia(.7) saturate(3) hue-rotate(285deg)}
@keyframes signal-cyan{0%,9%,16%,48%,56%,78%,85%,100%{opacity:0;transform:translateX(0)}10%,12%{opacity:.48;clip-path:inset(21% 0 75% 0);transform:translateX(4px)}13%,15%{opacity:.32;clip-path:inset(64% 0 33% 0);transform:translateX(-3px)}49%,52%{opacity:.4;clip-path:inset(43% 0 51% 0);transform:translateX(5px)}53%,55%{opacity:.2;clip-path:inset(81% 0 17% 0);transform:translateX(-2px)}79%,84%{opacity:.32;clip-path:inset(34% 0 64% 0);transform:translateX(3px)}}
@keyframes signal-magenta{0%,10%,17%,49%,57%,80%,87%,100%{opacity:0;transform:translateX(0)}11%,13%{opacity:.34;clip-path:inset(23% 0 74% 0);transform:translateX(-4px)}14%,16%{opacity:.22;clip-path:inset(62% 0 34% 0);transform:translateX(3px)}50%,53%{opacity:.3;clip-path:inset(45% 0 50% 0);transform:translateX(-4px)}54%,56%{opacity:.18;clip-path:inset(78% 0 20% 0);transform:translateX(2px)}81%,86%{opacity:.22;clip-path:inset(36% 0 62% 0);transform:translateX(-3px)}}
@keyframes signal-drift{0%,20%,48%,62%,100%{transform:scale(1.012) translateX(0)}11%,15%{transform:scale(1.012) translateX(-1px)}51%,55%{transform:scale(1.012) translateX(1px)}}
@media(hover:hover) and (pointer:fine){.card a:hover .project-visual>img{filter:brightness(1.06) saturate(1.06);animation:signal-drift 3.6s linear infinite}.card a:hover .project-visual:before{animation:signal-cyan 3.6s steps(1,end) infinite}.card a:hover .project-visual:after{animation:signal-magenta 3.6s steps(1,end) infinite}}
.card a:focus-visible .project-visual>img{filter:brightness(1.06) saturate(1.06);animation:signal-drift 3.6s linear infinite}.card a:focus-visible .project-visual:before{animation:signal-cyan 3.6s steps(1,end) infinite}.card a:focus-visible .project-visual:after{animation:signal-magenta 3.6s steps(1,end) infinite}
@media(prefers-reduced-motion:reduce){.card a .project-visual>img,.card a .project-visual:before,.card a .project-visual:after{animation:none!important;transform:none!important}.card a .project-visual:before,.card a .project-visual:after{opacity:0!important}}
.pixel-glitch{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;opacity:0}.project-visual.pixel-active .pixel-glitch{opacity:1}
@media(prefers-reduced-motion:reduce){.project-visual .pixel-glitch{display:none!important}}

/* Project navigation stays open; narrow screens use an inline navigation panel. */
.project-page #menu{text-decoration:none}
@media(max-width:900px){.project-page aside{position:relative;inset:auto;width:100%;max-height:55svh;overflow-y:auto;transform:none;visibility:visible;box-shadow:none;padding-top:84px}.project-page main{margin-left:0}.project-page aside .logo{width:180px;margin-bottom:20px}.project-page header{padding-top:30px}}
