@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Libre+Franklin:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,700;1,700&display=swap";:root{font-family:Libre Franklin,Arial,sans-serif;color:#201f1a;background:#d9d2bd;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper: #eee8d7;--ink: #201f1a;--faded-ink: #66614f;--red: #9f3026;--olive: #4f5542;--rule: rgba(32, 31, 26, .32)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(rgba(65,58,38,.045) 1px,transparent 1px),var(--paper);background-size:100% 4px}button,a{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:4px}::selection{color:var(--paper);background:var(--red)}#root{min-height:100vh}.portfolio-shell{width:min(100%,1600px);min-height:100vh;margin:0 auto;padding:20px 28px 16px}.masthead{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:7px 0;font-family:DM Mono,monospace;font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.1em}.masthead p{margin:0}.monogram{justify-self:start;width:29px;height:29px;display:grid;place-items:center;color:var(--paper);background:var(--ink);text-decoration:none;letter-spacing:-.12em}.sound-toggle{justify-self:end;border:0;padding:5px 0;color:var(--faded-ink);background:transparent;font-family:DM Mono,monospace;font-size:inherit;text-transform:uppercase;letter-spacing:inherit;cursor:pointer}.sound-toggle span{display:inline-block;min-width:27px;color:var(--red)}.sound-toggle.is-on{color:var(--ink)}.intro{position:relative;padding:0}.intro h1{margin:0;width:max-content;font-family:Playfair Display,Georgia,serif;font-size:clamp(86px,9.5vw,156px);line-height:.72;letter-spacing:-.075em;font-weight:700}.intro-copy{max-width:610px;margin-top:28px;padding:0}.eyebrow,.project-role{margin:0;color:var(--red);font-family:DM Mono,monospace;font-size:10px;line-height:1.4;letter-spacing:.08em;text-transform:uppercase}.dek{max-width:570px;margin:10px 0 20px;font-size:clamp(16px,1.25vw,20px);line-height:1.4;letter-spacing:-.025em}.contact-links{display:flex;flex-wrap:wrap;gap:12px 30px}.contact-links a,.mobile-project-detail a{padding-bottom:2px;border-bottom:1px solid var(--ink);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}.contact-links a:hover,.mobile-project-detail a:hover{color:var(--red);border-color:var(--red)}.contact-links a{padding-bottom:5px;border-bottom-width:2px;font-size:clamp(14px,1.15vw,18px);letter-spacing:.04em}.desktop-layout{min-height:calc(100vh - 104px);display:grid;grid-template-columns:minmax(330px,.52fr) minmax(650px,1.48fr);gap:clamp(28px,3.4vw,58px);padding:28px 0 18px}.left-column{min-width:0;display:flex;flex-direction:column}.project-index{margin-top:auto}.section-rule{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-family:DM Mono,monospace;text-transform:uppercase}.section-rule h2{margin:0;font-size:11px;letter-spacing:.12em;font-weight:500}.section-rule span{color:var(--faded-ink);font-size:9px;letter-spacing:.08em}.project-index ol{margin:0;padding:0;list-style:none}.project-index li{border-bottom:1px solid var(--rule)}.project-index button{position:relative;isolation:isolate;width:100%;display:grid;grid-template-columns:30px 1fr auto auto;gap:10px;align-items:baseline;padding:clamp(10px,1.45vh,18px) 0;border:0;color:var(--ink);background:transparent;text-align:left;cursor:pointer}.project-index button:before{content:"";position:absolute;inset:0 -8px;z-index:-1;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .18s cubic-bezier(.2,.7,.1,1)}.project-index li.active button,.project-index button:hover{color:var(--paper)}.project-index li.active button:before,.project-index button:hover:before{transform:scaleX(1);transform-origin:left}.project-number,.project-year,.project-coordinate{font-family:DM Mono,monospace;font-size:9px}.project-coordinate{opacity:.55;letter-spacing:.08em}.project-restricted{margin:0;color:var(--faded-ink);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.project-name{font-family:Playfair Display,Georgia,serif;font-size:clamp(19px,1.65vw,28px);line-height:1;font-style:italic;letter-spacing:-.025em}.mobile-project-detail{display:none}.project-viewer{align-self:stretch;min-width:0;display:flex;flex-direction:column;border:1px solid var(--ink);background:#d5cfbd;box-shadow:8px 9px #201f1a1f}.viewer-chrome{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:7px 9px;border-bottom:1px solid var(--ink);font-family:DM Mono,monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase}.viewer-chrome span:last-child{text-align:right}.transport{color:var(--red);letter-spacing:.3em}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}footer{display:flex;justify-content:space-between;padding:10px 0 0;border-top:1px solid var(--ink);color:var(--faded-ink);font-family:DM Mono,monospace;font-size:8px;letter-spacing:.08em;text-transform:uppercase}footer a{text-decoration:none}footer a:hover{color:var(--red)}@media (min-width: 901px) and (max-width: 1100px){.desktop-layout{grid-template-columns:minmax(300px,.52fr) minmax(520px,1.48fr);gap:28px}.intro h1{font-size:clamp(86px,12vw,132px)}}@media (max-width: 900px){.portfolio-shell{padding:14px 16px 24px}.masthead{grid-template-columns:1fr 1fr}.masthead p{display:none}.intro{min-height:auto;display:block;padding:48px 0 46px}.intro h1{font-size:clamp(76px,25vw,150px);line-height:.75}.intro-copy{max-width:610px;margin:50px 0 0;padding:0}.dek{font-size:19px;max-width:520px}.desktop-layout{display:block;min-height:auto;padding:0 0 64px}.left-column{display:block}.project-index button{grid-template-columns:28px 1fr auto;padding:18px 0 13px;cursor:default}.project-coordinate{display:none}.project-index button:before{display:none}.project-index li.active button,.project-index button:hover{color:var(--ink)}.project-name{font-size:clamp(22px,6vw,38px)}.mobile-project-detail{display:block;padding:0 0 22px 38px}.mobile-project-detail>p:not(.project-role){max-width:640px;margin:8px 0 14px;font-size:13px;line-height:1.55}.project-viewer{display:none}}@media (max-width: 480px){.masthead{font-size:8px}.intro h1{font-size:clamp(68px,25vw,116px)}.intro-copy{margin-top:42px}.contact-links{gap:12px 22px}.project-index button{grid-template-columns:24px 1fr auto;gap:6px}.mobile-project-detail{padding-left:30px}footer{gap:20px}footer span:last-child{text-align:right}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.project-index button:before{transition:none}}.fiche-window{--unit: 100px;--fiche-film: #23201a;--fiche-paper: #e3d7b8;--fiche-paper-dim: #cdc09e;--fiche-ink: #2e2a1e;--fiche-ink-soft: rgba(46, 42, 30, .62);--fiche-rule: rgba(46, 42, 30, .28);--fiche-accent: #9f3026;--fiche-mono: "DM Mono", monospace;--fiche-serif: "Playfair Display", Georgia, serif;position:relative;flex:1;min-height:0;overflow:hidden;background:var(--fiche-film);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;opacity:0;transition:opacity .26s ease-out}.fiche-window.is-ready{opacity:1}.fiche-window:active{cursor:grabbing}.fiche-window:focus-visible{outline:2px solid var(--fiche-accent);outline-offset:-3px}.fiche-film{position:absolute;inset:0;overflow:hidden}.fiche-film.has-motion{filter:url(#fiche-transport-blur) contrast(var(--motion-contrast, 1))}.fiche-film.is-cut{animation:ficheCut .19s ease-out}.fiche-filter{position:absolute;width:0;height:0}.fiche-sheet{position:absolute;top:0;left:0;width:calc(var(--unit) * var(--sheet-w));height:calc(var(--unit) * var(--sheet-h));transform-origin:0 0;will-change:transform;background-color:var(--fiche-film);background-image:url(/microfiche/archive/film-ground.jpg);background-size:100% 100%}.fiche-grid{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='760' height='760' color-interpolation-filters='sRGB'%3E%3Cfilter id='a' x='0' y='0' width='1' height='1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.11' numOctaves='2' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .05 0 0 0 0 .04 0 0 0 0 .02 0 0 0 1 0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='5' intercept='-3.85'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cfilter id='b' x='0' y='0' width='1' height='1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.19' numOctaves='2' seed='17' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .91 0 0 0 0 .78 0 0 0 1 0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='6' intercept='-4.95'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='760' height='760' filter='url(%23a)'/%3E%3Crect width='760' height='760' filter='url(%23b)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' color-interpolation-filters='sRGB'%3E%3Cfilter id='g' x='0' y='0' width='1' height='1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.42' numOctaves='4' seed='1' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .89 0 0 0 0 .84 0 0 0 0 .7 0 0 0 .12 -.032'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='340' color-interpolation-filters='sRGB'%3E%3Cfilter id='h' x='0' y='0' width='1' height='1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.26' numOctaves='3' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .89 0 0 0 0 .84 0 0 0 0 .7 0 0 0 .09 -.028'/%3E%3C/filter%3E%3Crect width='340' height='340' filter='url(%23h)'/%3E%3C/svg%3E"),url(/microfiche/archive/film-grid.png);background-size:760px 760px,200px 200px,340px 340px,calc(var(--unit) * 8) calc(var(--unit) * 8)}.fiche-lens{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 46%,transparent 42%,rgba(20,17,11,.5) 100%);box-shadow:inset 0 0 42px #120f098c}.fiche-cell{position:absolute;overflow:hidden;color:var(--fiche-ink);background:var(--fiche-paper);box-shadow:0 1px #0f0d0880,0 6px 14px #0c0a0647;transition:filter var(--reveal-out) ease-out,box-shadow .2s ease-out;filter:brightness(.72) saturate(.6)}.fiche-cell.is-active{filter:none}.fiche-cell.is-hinted{outline:2px solid var(--fiche-accent);outline-offset:2px;filter:brightness(.92)}.fiche-coordinate{position:absolute;right:4px;bottom:3px;font-family:var(--fiche-mono);font-size:7px;letter-spacing:.09em;text-transform:uppercase;color:var(--fiche-ink-soft);pointer-events:none}.fiche-cell.is-capture .fiche-coordinate{display:none}.fiche-capture{position:relative;height:100%;margin:0;display:flex;flex-direction:column}.fiche-duotone{position:relative;isolation:isolate;flex:1;min-height:0;overflow:hidden;background:var(--fiche-ink)}.fiche-duotone img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;mix-blend-mode:screen;filter:grayscale(1) brightness(.85) contrast(1.6);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.fiche-duotone:after{content:"";position:absolute;inset:0;background:var(--fiche-paper);mix-blend-mode:multiply;pointer-events:none}.fiche-duotone.is-contain{background:var(--fiche-paper)}.fiche-duotone.is-contain img{object-fit:contain;object-position:center;mix-blend-mode:multiply;filter:grayscale(1) contrast(1.18) brightness(1.02)}.fiche-duotone.is-contain:after{display:none}.fiche-window{--reveal-dwell: .1s;--reveal-in: .32s;--reveal-open: .72s;--reveal-out: 1.5s;--reveal-blur: 3px;--reveal-reach: 820px}@property --loupe-r{syntax: "<length>"; inherits: false; initial-value: 0px;}.fiche-duotone .fiche-colour{mix-blend-mode:normal;filter:blur(var(--reveal-blur))}.fiche-colour{position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:cover;object-position:top center;display:block;opacity:0;pointer-events:none;--loupe-x: 50%;--loupe-y: 50%;--loupe-r: 0px;-webkit-mask-image:radial-gradient(circle var(--loupe-r) at var(--loupe-x) var(--loupe-y),#000 55%,transparent 100%);mask-image:radial-gradient(circle var(--loupe-r) at var(--loupe-x) var(--loupe-y),#000 55%,transparent 100%);transform:scale(1.02);transition:opacity var(--reveal-out) ease-out,--loupe-r var(--reveal-out) ease-out,filter var(--reveal-out) ease-out,transform var(--reveal-out) ease-out}.fiche-duotone.is-contain .fiche-colour{object-fit:contain;object-position:center}.fiche-window:not(:active) .fiche-cell:hover .fiche-colour{opacity:1;--loupe-r: var(--reveal-reach);filter:blur(0px);transform:scale(1);transition:opacity var(--reveal-in) ease-in var(--reveal-dwell),--loupe-r var(--reveal-open) ease-out var(--reveal-dwell),filter var(--reveal-open) ease-out var(--reveal-dwell),transform var(--reveal-open) ease-out var(--reveal-dwell)}.fiche-window:not(:active) .fiche-cell:hover{filter:none;transition:filter var(--reveal-in) ease-in var(--reveal-dwell)}.fiche-capture figcaption{display:flex;justify-content:space-between;gap:8px;padding:3px 5px;border-top:1px solid var(--fiche-rule);background:var(--fiche-paper);font-family:var(--fiche-mono);font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:var(--fiche-ink-soft)}.fiche-open{position:absolute;left:8px;bottom:26px;padding:5px 9px;border:1px solid var(--fiche-paper);background:#23201adb;color:var(--fiche-paper);font-family:var(--fiche-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;opacity:0;transform:translateY(4px);transition:opacity .2s ease-out,transform .2s ease-out;pointer-events:none}.fiche-cell.is-active .fiche-open{opacity:1;transform:translateY(0);pointer-events:auto}.fiche-open:hover{border-color:var(--fiche-accent);color:#f0e3c2;background:var(--fiche-accent)}.fiche-body{height:100%;padding:7px 8px 10px;display:flex;flex-direction:column;gap:4px;overflow:hidden}.fiche-title{margin:0;font-family:var(--fiche-mono);font-size:7px;letter-spacing:.14em;text-transform:uppercase;color:var(--fiche-accent)}.fiche-foot{margin:0;font-family:var(--fiche-mono);font-size:6.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fiche-ink-soft)}.fiche-cover{justify-content:space-between}.fiche-cover strong{font-family:var(--fiche-serif);font-size:19px;font-style:italic;line-height:.94;letter-spacing:-.03em}.fiche-cover-meta,.fiche-cover-role{margin:0;display:flex;justify-content:space-between;gap:8px;font-family:var(--fiche-mono);font-size:7px;letter-spacing:.09em;text-transform:uppercase;color:var(--fiche-ink-soft)}.fiche-cover-meta{border-top:1px solid var(--fiche-rule);padding-top:4px}.fiche-clipping{gap:6px}.fiche-clipping h4{margin:0;font-family:var(--fiche-serif);font-size:19px;line-height:1.02;letter-spacing:-.02em;border-bottom:1px solid var(--fiche-rule);padding-bottom:5px}.fiche-columns{columns:2;column-gap:12px;column-rule:1px solid var(--fiche-rule);overflow:hidden}.fiche-columns p{margin:0 0 6px;font-size:10.5px;line-height:1.45;text-align:justify;-webkit-hyphens:auto;hyphens:auto}.fiche-record ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.fiche-record li{font-family:var(--fiche-mono);font-size:6.8px;letter-spacing:.045em;text-transform:uppercase;padding-bottom:2px;border-bottom:1px dotted var(--fiche-rule)}.fiche-program{justify-content:space-between}.fiche-program strong{font-family:var(--fiche-serif);font-style:italic;font-size:14px;line-height:1.04;letter-spacing:-.02em}.fiche-data ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}.fiche-data li{display:grid;grid-template-columns:68px 1fr 26px;align-items:center;gap:5px;font-family:var(--fiche-mono);font-size:6.5px;letter-spacing:.06em;text-transform:uppercase}.fiche-data li>span:last-child{text-align:right}.fiche-bar{position:relative;height:5px;border:1px solid var(--fiche-rule)}.fiche-bar:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--fill, 0%);background:var(--fiche-ink)}.fiche-inventory dl{margin:0;display:grid;gap:3px}.fiche-inventory div{display:grid;grid-template-columns:1fr auto;gap:6px;padding-bottom:2px;border-bottom:1px solid var(--fiche-rule)}.fiche-inventory dt,.fiche-inventory dd{margin:0;font-family:var(--fiche-mono);font-size:6.6px;letter-spacing:.06em;text-transform:uppercase}.fiche-inventory dd{color:var(--fiche-ink-soft)}.fiche-code pre{margin:0;font-family:var(--fiche-mono);font-size:6.4px;line-height:1.7;white-space:pre-wrap;color:var(--fiche-ink-soft)}.fiche-coordinates{justify-content:center}.fiche-coordinate-value{margin:0;font-family:var(--fiche-mono);font-size:11px;letter-spacing:.08em}.fiche-restricted{position:relative;justify-content:flex-end;background:var(--fiche-paper-dim)}.fiche-restricted>.fiche-restricted-rule{position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent 0 10px,rgba(46,42,30,.16) 10px 20px)}.fiche-restricted>.fiche-restricted-mark{position:absolute;inset:9% 9% 27%;display:grid;place-items:center}.fiche-restricted-mark svg{position:absolute;inset:0;width:100%;height:100%}.fiche-restricted-mark rect,.fiche-restricted-mark line{fill:none;stroke:var(--fiche-ink);stroke-width:.5;opacity:.42}.fiche-restricted-mark>span{position:relative;padding:4px 8px;background:var(--fiche-paper-dim);font-family:var(--fiche-mono);font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--fiche-ink-soft)}.fiche-restricted-foot{position:relative;display:flex;flex-direction:column;gap:5px}.fiche-restricted strong{font-family:var(--fiche-serif);font-size:30px;font-style:italic;line-height:.9;letter-spacing:-.035em}.fiche-restricted-note{padding-top:5px;border-top:1px solid var(--fiche-rule);font-family:var(--fiche-mono);font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fiche-ink-soft)}.fiche-divider{align-items:center;justify-content:center;gap:3px;background:var(--fiche-ink);color:var(--fiche-paper)}.fiche-divider strong{font-family:var(--fiche-serif);font-size:26px;letter-spacing:.02em}.fiche-divider p{margin:0;font-family:var(--fiche-mono);font-size:6.5px;letter-spacing:.13em;text-transform:uppercase;opacity:.72}.fiche-stamp{align-items:center;justify-content:center;gap:2px;border:2px solid var(--fiche-accent);color:var(--fiche-accent);background:transparent}.fiche-stamp strong{font-family:var(--fiche-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase}.fiche-stamp p,.fiche-label p{margin:0;font-family:var(--fiche-mono);font-size:6.4px;letter-spacing:.12em;text-transform:uppercase}.fiche-label{align-items:flex-start;justify-content:center;gap:3px}.fiche-label strong{font-family:var(--fiche-mono);font-size:14px;letter-spacing:.1em}.fiche-label p{color:var(--fiche-ink-soft)}.fiche-blank{background:linear-gradient(var(--fiche-ink) 1px,transparent 1px) 8px 8px / 16px 1px no-repeat,linear-gradient(90deg,var(--fiche-ink) 1px,transparent 1px) 8px 8px / 1px 16px no-repeat,linear-gradient(var(--fiche-ink) 1px,transparent 1px) calc(100% - 8px) calc(100% - 8px) / 16px 1px no-repeat,linear-gradient(90deg,var(--fiche-ink) 1px,transparent 1px) calc(100% - 8px) calc(100% - 24px) / 1px 16px no-repeat,var(--fiche-paper)}.fiche-body svg{width:100%;flex:1;min-height:0;overflow:visible}.fiche-phonetic polygon{fill:none;stroke:var(--fiche-rule);stroke-width:.6}.fiche-phonetic circle{fill:var(--fiche-accent)}.fiche-phonetic .fiche-axis{fill:none;stroke:var(--fiche-ink-soft);stroke-width:.5}.fiche-phonetic .fiche-tick{font-family:var(--fiche-mono);font-style:normal;font-size:3.4px;letter-spacing:.04em;fill:var(--fiche-ink-soft)}.fiche-phonetic text{font-family:var(--fiche-serif);font-style:italic;font-size:7px;fill:var(--fiche-ink)}.fiche-map line{stroke:var(--fiche-rule);stroke-width:.7}.fiche-map .fiche-map-block{fill:none;stroke:var(--fiche-ink);stroke-width:.9}.fiche-map .fiche-map-pin{fill:var(--fiche-accent)}.fiche-test rect{fill:var(--fiche-ink)}@keyframes ficheCut{0%{opacity:.3}to{opacity:1}}@media (prefers-reduced-motion: reduce){.fiche-cell{transition:none}.fiche-colour,.fiche-window:not(:active) .fiche-cell:hover .fiche-colour,.fiche-window:not(:active) .fiche-cell:hover{transition-duration:1ms;transition-delay:0ms}.fiche-colour{-webkit-mask-image:none;mask-image:none;transform:none}.fiche-duotone .fiche-colour{filter:none}.fiche-open{transition:none}.fiche-film.has-motion{filter:none}}
