:root{--bug-900:#3d0b37;--bug-700:#63264a;--bug-300:#c0d684;--bug-200:#cbeaa6;--bug-100:#f3f9d2;--paper:var(--bug-100);--paper-alt:var(--bug-200);--paper-deep:var(--bug-300);--ink:var(--bug-900);--ink-soft:#3d0b37d1;--ink-faint:#3d0b379e;--line:#3d0b3729;--line-strong:#3d0b3752;--accent:var(--bug-700);--accent-deep:var(--bug-900);--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-mono:"Space Mono", "SFMono-Regular", Consolas, monospace;--rail-w:110px;--edge:1.25rem;--ease:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,figure,ul,ol{margin:0}ul,ol{padding:0;list-style:none}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,textarea{font:inherit}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}body{background:var(--paper);color:var(--ink);font-family:var(--font-display);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5;position:relative}body:before{content:"";z-index:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.24  0 0 0 0 0.04  0 0 0 0 0.22  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:fixed;inset:0}.mono{font-family:var(--font-mono);letter-spacing:.02em}.skip-link{background:var(--ink);color:var(--paper);z-index:999;padding:.75em 1.25em;position:absolute;top:0;left:-999px}.skip-link:focus{left:var(--edge);top:var(--edge)}.rail,.topbar,.menu,.marquee{--paper:var(--bug-700);--ink:var(--bug-100);--ink-soft:#f3f9d2d9;--ink-faint:#f3f9d2b3;--line:#f3f9d233;--line-strong:#f3f9d266;--accent:var(--bug-300);color:var(--ink)}.rail{width:var(--rail-w);z-index:100;padding:var(--edge) 0;background:var(--paper);border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden auto}.rail::-webkit-scrollbar{width:4px}.rail::-webkit-scrollbar-track{background:0 0}.rail::-webkit-scrollbar-thumb{background:var(--line-strong)}.rail__home{color:var(--ink);width:100%;transition:color .2s var(--ease), transform .3s var(--ease);flex-shrink:0;padding:0 .65rem}.rail__home:hover{color:var(--accent);transform:scale(1.04)}.rail__home svg{width:100%;height:auto;display:block}.rail__nav{flex-direction:column;flex-shrink:0;align-items:center;gap:1.75rem;padding:1.5rem 0;display:flex}.rail__link{writing-mode:vertical-rl;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:.6rem;padding:.15rem .2rem;font-size:.72rem;display:flex;position:relative;transform:rotate(180deg)}.rail__link:before{content:attr(data-index);color:var(--ink-faint)}.rail__link:after{content:"";background:var(--accent);width:1px;height:0;transition:height .25s var(--ease)}.rail__link:hover,.rail__link:focus-visible{color:var(--ink)}.rail__link:hover:after,.rail__link:focus-visible:after{height:16px}.rail__link.is-active{color:var(--accent)}.rail__link.is-active:after{height:22px}.rail__foot{writing-mode:vertical-rl;font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.08em;flex-shrink:0;padding-top:1rem;font-size:.65rem}.rail__toggle{display:none}.lang-switch{font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-soft);border:1px solid var(--line-strong);transition:color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;flex-shrink:0;padding:.2rem .55rem;font-size:.7rem}.lang-switch:hover,.lang-switch:focus-visible{color:var(--accent);border-color:var(--accent)}.menu__lang{margin-top:1.5rem}.menu__lang .lang-switch{padding:.4rem .9rem;font-size:.85rem}.topbar,.menu{display:none}@media (width<=860px){.rail{display:none}.topbar{z-index:100;padding:.9rem var(--edge);background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.topbar__home svg{width:26px;height:auto}.topbar__toggle{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.75rem;display:flex}.topbar__toggle .bar{background:var(--ink);width:18px;height:1px;position:relative}.topbar__toggle .bar:before,.topbar__toggle .bar:after{content:"";background:var(--ink);width:100%;height:1px;position:absolute;left:0}.topbar__toggle .bar:before{top:-5px}.topbar__toggle .bar:after{top:5px}.menu{z-index:99;background:var(--paper);padding:0 var(--edge);transition:transform .45s var(--ease);flex-direction:column;justify-content:center;display:flex;position:fixed;inset:0;transform:translateY(-100%)}.menu.is-open{transform:translateY(0)}.menu__link{border-bottom:1px solid var(--line);align-items:baseline;gap:1rem;padding:.9rem 0;font-size:1.9rem;display:flex}.menu__link span{font-family:var(--font-mono);color:var(--ink-faint);font-size:.9rem}.menu__link.is-active{color:var(--accent)}}main{z-index:1;position:relative}.shell{margin-left:var(--rail-w);flex-direction:column;min-height:100vh;display:flex}@media (width<=860px){.shell{margin-left:0;padding-top:60px}}.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3.5rem)}.page-index{font-family:var(--font-mono);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.75rem;font-size:.78rem;display:block}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);overflow:hidden}.marquee__track{width:max-content;animation:28s linear infinite marquee;display:flex}.marquee:hover .marquee__track{animation-play-state:paused}.marquee__item{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--ink-soft);border-right:1px solid var(--line);padding:.85rem 1.5rem;font-size:.85rem}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.hero{padding-top:clamp(3rem,9vw,6.5rem);padding-bottom:clamp(2rem,6vw,4rem);position:relative}.hero__mark{color:var(--ink);width:min(64vw,640px);margin-left:-.5rem}.hero__mark svg{width:100%;height:auto}.hero__row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin-top:1.5rem;display:flex}.hero__lede{max-width:34ch;color:var(--ink-soft);font-size:clamp(1.05rem,1.6vw,1.25rem)}.hero__cta{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--ink);transition:gap .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);align-items:center;gap:.6rem;padding-bottom:.2rem;font-size:.85rem;display:inline-flex}.hero__cta:hover{color:var(--accent);border-color:var(--accent);gap:1rem}.section-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;padding:2.5rem 0 1.5rem;display:flex}.section-head h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:500}.section-head .see-more{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;font-size:.78rem}.section-head .see-more:hover{color:var(--accent)}section.block{padding-bottom:clamp(2.5rem,6vw,4.5rem)}.specimens{grid-template-columns:repeat(6,1fr);gap:1.1rem;padding-top:1.75rem;display:grid}.specimen{grid-column:span 3;position:relative}.specimen--narrow{grid-column:span 2}.specimen__frame{aspect-ratio:4/5;border:1px solid var(--line-strong);clip-path:polygon(0% 1.5%,3% 0%,9% 1%,15% .2%,22% 1.2%,30% 0%,38% .8%,47% 0%,55% 1%,63% .2%,71% 1.1%,80% 0%,88% .9%,95% .1%,100% 1%,100% 100%,0% 100%);cursor:pointer;position:relative;overflow:hidden}.specimen__wash{transition:transform .6s var(--ease);position:absolute;inset:0}.specimen__frame:hover .specimen__wash,.specimen__frame:focus-visible .specimen__wash{transform:scale(1.045)}img.specimen__wash{object-fit:cover;background:var(--paper-deep);width:100%;height:100%}.specimen__label{background:color-mix(in srgb, var(--paper-alt) 92%, transparent);border-top:1px solid var(--line-strong);transition:transform .35s var(--ease);padding:.85rem .9rem;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%)}.specimen__frame:hover .specimen__label,.specimen__frame:focus-visible .specimen__label{transform:translateY(0)}.specimen__label .t{font-size:1rem;font-style:italic}.specimen__label .m{font-family:var(--font-mono);color:var(--ink-soft);letter-spacing:.04em;margin-top:.25rem;font-size:.68rem;display:block}.specimen__caption{font-family:var(--font-mono);color:var(--ink-soft);justify-content:space-between;padding-top:.5rem;font-size:.72rem;display:flex}.wash-1{background:linear-gradient(155deg, var(--bug-200), var(--bug-700) 120%)}.wash-2{background:linear-gradient(155deg, var(--bug-900), var(--bug-300) 130%)}.wash-3{background:linear-gradient(160deg, var(--bug-100), var(--bug-700) 140%)}.wash-4{background:linear-gradient(150deg, var(--bug-300), var(--bug-900) 150%)}.wash-5{background:linear-gradient(165deg, var(--bug-700), var(--bug-200) 120%)}.wash-6{background:linear-gradient(145deg, var(--bug-900), var(--bug-100) 130%)}.wash-7{background:linear-gradient(150deg, var(--bug-900), var(--bug-700) 140%)}.wash-8{background:linear-gradient(160deg, var(--bug-300), var(--bug-100) 130%)}.wash-9{background:linear-gradient(145deg, var(--bug-700), var(--bug-300) 150%)}.specimen__pending{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#f3f9d2e6;background:#3d0b3773;padding:.2rem .45rem;font-size:.6rem;position:absolute;top:.7rem;right:.7rem}@media (width<=720px){.specimens{grid-template-columns:repeat(2,1fr)}.specimen,.specimen--narrow{grid-column:span 2}}.specimens--row{grid-template-columns:repeat(2,1fr)}.specimens--row .specimen{grid-column:auto}.chips{flex-wrap:wrap;gap:.6rem;padding:1.5rem 0 .5rem;display:flex}.chip{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-strong);transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;padding:.45rem .9rem;font-size:.75rem}.chip:hover{border-color:var(--accent)}.chip.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.specimen.is-hidden{display:none}.lightbox{z-index:200;background:#3d0b37eb;justify-content:center;align-items:center;padding:4vh 4vw;display:none;position:fixed;inset:0}.lightbox.is-open{display:flex}.lightbox__stage{width:min(720px,100%);position:relative}.lightbox__wash{aspect-ratio:4/5;background-position:50%;background-size:cover;border:1px solid #f3f9d240;width:100%}.lightbox__label{color:var(--paper);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:1rem;display:flex}.lightbox__label .t{font-size:1.3rem;font-style:italic}.lightbox__label .m{font-family:var(--font-mono);color:#f3f9d2b3;font-size:.75rem}.lightbox__close,.lightbox__prev,.lightbox__next{color:var(--paper);font-family:var(--font-mono);font-size:.8rem;position:absolute}.lightbox__close{top:-2.6rem;right:0}.lightbox__prev{top:50%;left:-2.6rem;transform:translateY(-50%)}.lightbox__next{top:50%;right:-2.6rem;transform:translateY(-50%)}@media (width<=720px){.lightbox__prev{top:auto;bottom:-2.6rem;left:0;transform:none}.lightbox__next{top:auto;bottom:-2.6rem;right:0;transform:none}}.lightbox__close:hover,.lightbox__prev:hover,.lightbox__next:hover{color:var(--paper-deep)}.ledger{border-top:1px solid var(--line)}.ledger__row{border-bottom:1px solid var(--line);grid-template-columns:9ch 1fr;gap:1.5rem;padding:1.75rem 0;display:grid}.ledger__date{font-family:var(--font-mono);color:var(--ink-soft);padding-top:.3rem;font-size:.78rem}.ledger__body h3{margin-bottom:.4rem;font-size:1.2rem;font-weight:500}.ledger__body p{color:var(--ink-soft);max-width:62ch}.ledger__tag{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:.6rem;font-size:.65rem;display:inline-block}@media (width<=640px){.ledger__row{grid-template-columns:1fr;gap:.4rem}}.program__row{border-bottom:1px solid var(--line);grid-template-columns:5.5rem 1fr auto;align-items:baseline;gap:1rem;padding:1.1rem 0;display:grid}.program__row a{position:relative}.program__row a:after{content:"";background:var(--accent);width:0%;height:1px;transition:width .3s var(--ease);position:absolute;bottom:-2px;left:0}.program__row a:hover:after{width:100%}.program__year{font-family:var(--font-mono);color:var(--ink-soft);font-size:.8rem}.program__venue{font-family:var(--font-mono);color:var(--ink-soft);white-space:nowrap;font-size:.75rem}.program__tag{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:999px;margin-left:.6rem;padding:.15rem .45rem;font-size:.62rem}@media (width<=640px){.program__row{grid-template-columns:1fr;gap:.25rem}.program__venue{white-space:normal}}.profile-grid{grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);padding-top:2rem;display:grid}.profile-grid p+p{margin-top:1.1rem}.profile-grid .lede{margin-bottom:1.25rem;font-size:clamp(1.15rem,1.8vw,1.4rem);font-style:italic}.profile-grid p{color:var(--ink-soft);max-width:58ch}.tag-cloud{flex-wrap:wrap;gap:.5rem;padding-top:.75rem;display:flex}.tag-cloud span{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--ink-soft);border-radius:999px;padding:.35rem .7rem;font-size:.72rem}.facts{margin-top:2rem}.facts__row{border-bottom:1px solid var(--line);font-family:var(--font-mono);justify-content:space-between;padding:.8rem 0;font-size:.82rem;display:flex}.facts__row dt{color:var(--ink-faint)}.facts__row dd{color:var(--ink);text-align:right}.portrait{aspect-ratio:3/4;border:1px solid var(--line-strong);background:var(--paper-deep);clip-path:polygon(0% 1.5%,4% 0%,12% 1%,20% .2%,30% 1.2%,40% 0%,50% .8%,62% 0%,72% 1%,84% .2%,92% 1.1%,100% 0%,100% 100%,0% 100%);position:relative;overflow:hidden}.portrait img{object-fit:cover;object-position:50% 30%;width:100%;height:100%}.contact-links{border-top:1px solid var(--line);margin-top:2rem}.contact-link{border-bottom:1px solid var(--line);transition:padding-left .3s var(--ease), color .3s var(--ease);justify-content:space-between;align-items:center;gap:1.5rem;padding:1.6rem 0;display:flex}.contact-link:hover{color:var(--accent);padding-left:.75rem}.contact-link__label{align-items:center;gap:1rem;font-size:clamp(1.3rem,3vw,2rem);display:flex}.contact-link__icon{stroke:currentColor;fill:none;stroke-width:1.4px;flex-shrink:0;width:26px;height:26px}.contact-link__meta{font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;font-size:.72rem}.stamp{opacity:.9;width:120px;color:var(--ink);position:absolute;top:2.5rem;right:clamp(1.25rem,4vw,3.5rem);transform:rotate(3deg)}@media (width<=720px){.stamp{display:none}}.toast{background:var(--ink);color:var(--paper);font-family:var(--font-mono);letter-spacing:.05em;opacity:0;pointer-events:none;transition:opacity .25s var(--ease), transform .25s var(--ease);z-index:300;padding:.7rem 1.1rem;font-size:.78rem;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)translateY(10px)}.toast.is-visible{opacity:1;transform:translate(-50%)translateY(0)}.site-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding:1.5rem clamp(1.25rem,4vw,3.5rem);display:flex}.site-footer__home svg{width:22px;height:auto;color:var(--ink)}.site-footer__text{font-family:var(--font-mono);color:var(--ink-faint);font-size:.72rem}.site-footer__links{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:1.25rem;font-size:.72rem;display:flex}.lang-switch--flag{align-items:center;gap:.4rem;display:inline-flex}.lang-switch--flag .flag{outline:1px solid var(--line);width:auto;height:.8rem}.site-footer__links a:hover{color:var(--accent)}.reveal{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--ease);transform:translateY(14px)}.reveal.is-visible{opacity:1;transform:none}
