:root{--paper: #f3f0e9;--paper-deep: #e8e3d9;--ink: #151515;--muted: #706d66;--rule: #cbc6bc;--accent: #a13d2d;--white: #fffdf8;--serif: "Instrument Serif", "Iowan Old Style", "Baskerville", "Times New Roman", serif;--sans: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif;--gutter: clamp(1.25rem, 3vw, 3.75rem);--header-height: 5.5rem;--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}#about,#work,#contact{scroll-margin-top:calc(var(--header-height) + 1rem)}body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body.menu-open,body.modal-open{overflow:hidden}::selection{background:var(--accent);color:var(--white)}img,canvas{display:block;max-width:100%}button,a{color:inherit}a{text-decoration:none}button{border:0;padding:0;background:none;font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:1000;padding:.75rem 1rem;transform:translateY(-150%);background:var(--ink);color:var(--white);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.skip-link:focus{transform:translateY(0)}.page-progress{position:fixed;inset:0 0 auto;z-index:200;height:2px;background:transparent;pointer-events:none}.page-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:var(--accent);will-change:transform}.site-header{position:fixed;top:0;left:0;z-index:100;display:flex;width:100%;height:var(--header-height);align-items:center;justify-content:space-between;padding:0 var(--gutter);border-bottom:1px solid transparent;transition:height .4s var(--ease-out),background-color .4s ease,border-color .4s ease}.site-header.is-compact{height:4.5rem;border-color:color-mix(in srgb,var(--rule) 78%,transparent);background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.site-header.on-dark{color:var(--paper)}.site-header.on-dark.is-compact{border-color:#3a3a38;background:color-mix(in srgb,var(--ink) 92%,transparent)}.site-header.on-dark .brand img{filter:brightness(0) invert(1)}.brand{position:relative;z-index:2;display:inline-flex;width:3.75rem;height:2.5rem;align-items:center}.brand img{width:3.625rem;height:auto;filter:none}.site-navigation{display:flex;align-items:center;gap:clamp(1.5rem,3vw,3.25rem);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.site-navigation a{position:relative;padding:.5rem 0}.site-navigation a:after,.text-link:after,.project-link:after,.footer-links a:after,.site-footer>a:after{position:absolute;right:0;bottom:0;left:0;height:1px;transform:scaleX(0);transform-origin:right center;background:currentColor;content:"";transition:transform .35s var(--ease-out)}.site-navigation a:hover:after,.text-link:hover:after,.project-link:hover:after,.footer-links a:hover:after,.site-footer>a:hover:after{transform:scaleX(1);transform-origin:left center}.menu-toggle{position:relative;z-index:2;display:none;width:2.75rem;height:2.75rem;cursor:pointer}.menu-toggle span{position:absolute;left:.55rem;width:1.65rem;height:1px;background:currentColor;transition:transform .3s var(--ease-out)}.menu-toggle span:first-child{top:1.1rem}.menu-toggle span:last-child{top:1.65rem}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(.275rem) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-.275rem) rotate(-45deg)}.hero{position:relative;display:grid;min-height:100svh;grid-template-rows:auto 1fr auto;overflow:hidden;padding:calc(var(--header-height) + 2.25rem) var(--gutter) 2.25rem;border-bottom:1px solid var(--rule)}.hero-kicker,.hero-footer{display:flex;align-items:flex-start;justify-content:space-between;font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.hero-copy{position:relative;z-index:2;align-self:center;padding:7vh 0 4vh}.eyebrow{margin:0 0 clamp(1.25rem,2vw,2.25rem);color:var(--accent);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.hero-title{margin:0;font-family:var(--serif);font-size:clamp(4.25rem,10.6vw,10.8rem);font-weight:400;letter-spacing:-.055em;line-height:.84}.title-line{display:block;overflow:hidden;margin:-.08em 0 -.12em;padding:.08em 0 .2em}.title-line>span,.title-line>em{display:block;transform-origin:left bottom}.title-line--offset{padding-left:18vw}.title-line em{color:var(--accent);font-weight:400}.hero-footer{position:relative;z-index:2;align-items:flex-end}.hero-footer p{max-width:23rem;margin:0;font-size:clamp(.9rem,1.2vw,1.05rem);font-weight:400;letter-spacing:-.02em;line-height:1.55;text-transform:none}.text-link,.project-link{position:relative;display:inline-block;padding-bottom:.35rem;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.hero-orbit{position:absolute;top:16%;right:-8vw;width:min(41vw,38rem);aspect-ratio:1;opacity:.75}.orbit-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid var(--rule);border-radius:50%}.orbit-ring:before,.orbit-ring:after{position:absolute;border:1px solid var(--rule);border-radius:50%;content:""}.orbit-ring:before{top:18%;right:18%;bottom:18%;left:18%}.orbit-ring:after{top:38%;right:38%;bottom:38%;left:38%;border-color:var(--accent)}.orbit-dot{position:absolute;top:7.5%;left:22%;width:.65rem;aspect-ratio:1;border-radius:50%;background:var(--accent);transform-origin:11vw 13vw}.section-shell{padding-right:var(--gutter);padding-left:var(--gutter)}.section-label{display:grid;grid-template-columns:minmax(2.5rem,1fr) 2fr;gap:1rem;padding-top:1.1rem;border-top:1px solid var(--rule);color:var(--muted);font-size:.65rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.about{display:grid;min-height:100svh;grid-template-columns:repeat(12,minmax(0,1fr));align-content:center;column-gap:clamp(.75rem,1.8vw,2rem);padding-top:11rem;padding-bottom:11rem}.about .section-label{grid-column:1 / 4;align-self:start}.about-copy{grid-column:5 / 13}.about-copy h2{max-width:68rem;margin:0;font-family:var(--serif);font-size:clamp(2.7rem,5.4vw,5.7rem);font-weight:400;letter-spacing:-.045em;line-height:.98}.about-copy p{max-width:37rem;margin:3rem 0 0 auto;color:var(--muted);font-size:clamp(1rem,1.3vw,1.2rem);letter-spacing:-.02em;line-height:1.65}.about-index{display:grid;grid-column:5 / 13;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem;margin-top:6rem}.about-index span{padding:.95rem 0;border-top:1px solid var(--rule);color:var(--muted);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.work{padding-top:6rem;padding-bottom:10rem;background:var(--paper-deep)}.work-header{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(.75rem,1.8vw,2rem);padding-bottom:10rem}.work-header .section-label{grid-column:1 / 4}.work-header h2{grid-column:5 / 12;margin:0;font-family:var(--serif);font-size:clamp(3rem,6.2vw,6.4rem);font-weight:400;letter-spacing:-.05em;line-height:.92}.work-header>p{grid-column:10 / 13;margin:3rem 0 0;color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.project-stage{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(.75rem,1.8vw,2rem)}.visual-column{position:sticky;top:14vh;align-self:start;grid-column:7 / 13;grid-row:1;height:72vh;min-height:30rem}.canvas-frame{position:relative;width:100%;height:100%;overflow:hidden;border:1px solid color-mix(in srgb,var(--rule) 90%,transparent);background:var(--paper)}#project-canvas{width:100%;height:100%}.canvas-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:none;place-items:center}.canvas-fallback span{position:absolute;width:42%;aspect-ratio:1;border:1px solid var(--ink);border-radius:50%}.canvas-fallback span:nth-child(2){width:25%;border-color:var(--accent);transform:translate(45%,-35%)}.canvas-fallback span:nth-child(3){width:12%;background:var(--ink);transform:translate(-95%,105%)}.canvas-frame.is-fallback #project-canvas{display:none}.canvas-frame.is-fallback .canvas-fallback{display:grid}.visual-meta{position:absolute;right:1.25rem;bottom:1.15rem;left:1.25rem;display:flex;justify-content:space-between;font-size:.62rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}.visual-legend{position:absolute;top:1.15rem;left:1.25rem;margin:0;color:var(--muted);font-size:.58rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.project-list{grid-column:1 / 6;grid-row:1}.project-chapter{display:flex;min-height:92vh;flex-direction:column;justify-content:center;padding:8rem 0;opacity:.32;transition:opacity .5s ease}.project-chapter.is-active{opacity:1}.project-topline{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--rule);color:var(--muted);font-size:.64rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}.project-chapter h3{max-width:40rem;margin:2.25rem 0 1.5rem;font-family:var(--serif);font-size:clamp(3.1rem,5.6vw,6rem);font-weight:400;letter-spacing:-.05em;line-height:.88}.project-summary{max-width:33rem;margin:0;font-size:clamp(1rem,1.25vw,1.16rem);letter-spacing:-.02em;line-height:1.65}.project-contribution{max-width:33rem;margin:1.5rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.65}.project-details{display:grid;grid-template-columns:1fr 2fr;gap:1rem;margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--rule)}.project-details dt{color:var(--muted);font-size:.62rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}.project-details dd{margin:0;font-size:.8rem;line-height:1.6}.project-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.5rem}.project-tags span{padding:.48rem .7rem;border:1px solid var(--rule);font-size:.6rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.project-links{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:2rem}.project-modal-trigger{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;padding:.8rem 1rem;border:1px solid var(--ink);color:var(--ink);cursor:pointer;font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:background-color .25s ease,color .25s ease}.project-modal-trigger:hover{background:var(--ink);color:var(--paper)}.archive{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(.75rem,1.8vw,2rem);padding-top:10rem;padding-bottom:12rem}.archive>.section-label{grid-column:1 / 4}.archive-heading,.archive-list{grid-column:5 / 13}.archive-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:5rem}.archive-heading h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,5.5vw,5.5rem);font-weight:400;letter-spacing:-.05em;line-height:.9}.archive-heading p{max-width:14rem;margin:0;color:var(--muted);font-size:.8rem}.archive-row{position:relative;isolation:isolate;display:grid;width:100%;grid-template-columns:3rem minmax(0,1.5fr) 1fr 1fr;gap:1rem;align-items:center;min-height:6rem;overflow:hidden;border-top:1px solid var(--rule);color:var(--ink);cursor:pointer;text-align:left;transition:color .25s ease}.archive-row:last-child{border-bottom:1px solid var(--rule)}.archive-row:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;transform:scaleY(0);transform-origin:bottom;background:var(--ink);content:"";transition:transform .35s var(--ease-out)}.archive-row:hover{color:var(--paper)}.archive-row:hover:before{transform:scaleY(1)}.archive-number,.archive-category,.archive-role{font-size:.62rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.archive-title{font-family:var(--serif);font-size:clamp(1.55rem,2.5vw,2.6rem);letter-spacing:-.03em;line-height:1}.archive-category,.archive-role{color:var(--muted);transition:color .25s ease}.archive-row:hover .archive-category,.archive-row:hover .archive-role{color:var(--paper-deep)}.project-modal{width:min(calc(100% - 2rem),90rem);height:min(92dvh,58rem);max-width:none;max-height:none;margin:auto;padding:0;overflow:hidden;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}.project-modal[open]{animation:modal-enter .38s var(--ease-out) both}.project-modal::backdrop{background:#151515b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.project-modal-shell{height:100%;overflow-y:auto;overscroll-behavior:contain}.project-modal-header{position:sticky;top:0;z-index:4;display:flex;min-height:4.25rem;align-items:center;justify-content:space-between;padding:0 clamp(1rem,2.2vw,2rem);border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.project-modal-index,.project-modal-role,.project-modal-meta>p,.project-gallery-controls p{margin:0;color:var(--muted);font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.project-modal-index{display:flex;gap:.7rem}.project-modal-close{min-width:4.5rem;padding:.55rem .8rem;border:1px solid var(--rule);cursor:pointer;font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:border-color .22s ease,background-color .22s ease,color .22s ease}.project-modal-close:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.project-modal-content{display:grid;min-height:calc(100% - 4.25rem);grid-template-columns:minmax(18rem,.78fr) minmax(0,1.22fr)}.project-modal-copy{display:flex;flex-direction:column;padding:clamp(2rem,5vw,5rem)}.project-modal-copy h2{margin:1.25rem 0 2rem;font-family:var(--serif);font-size:clamp(3.2rem,5.8vw,6.5rem);font-weight:400;letter-spacing:-.055em;line-height:.86}.project-modal-summary{max-width:36rem;margin:0;font-size:clamp(1rem,1.2vw,1.15rem);letter-spacing:-.015em;line-height:1.65}.project-modal-description{max-width:36rem;margin:1.35rem 0 0;color:var(--muted);font-size:.85rem;line-height:1.75}.project-modal-meta{margin-top:auto;padding-top:3rem}.project-modal-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.85rem}.project-modal-tags span{padding:.48rem .7rem;border:1px solid var(--rule);font-size:.58rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.project-modal-links{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}.project-modal-link{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;padding:.8rem 1rem;border:1px solid var(--ink);font-size:.62rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;transition:background-color .22s ease,color .22s ease}.project-modal-link:hover{background:var(--ink);color:var(--paper)}.project-modal-gallery{min-width:0;padding:clamp(1rem,2.2vw,2rem);border-left:1px solid var(--rule);background:var(--paper-deep)}.project-modal-media{position:relative;display:grid;height:clamp(25rem,58vh,42rem);place-items:center;overflow:hidden;border:1px solid var(--rule);background:var(--white)}.project-modal-media img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center}.project-gallery-controls{display:flex;min-height:4rem;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--rule)}.project-gallery-buttons{display:flex;gap:.4rem}.project-gallery-buttons button{padding:.55rem .75rem;border:1px solid var(--rule);cursor:pointer;font-size:.58rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:border-color .22s ease,background-color .22s ease,color .22s ease}.project-gallery-buttons button:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.project-thumbnails{display:flex;gap:.6rem;padding-top:1rem;overflow-x:auto;scrollbar-color:var(--ink) transparent;scrollbar-width:thin}.project-thumbnail{flex:0 0 5.5rem;height:3.75rem;overflow:hidden;border:1px solid transparent;background:var(--white);cursor:pointer;opacity:.48;transition:border-color .22s ease,opacity .22s ease}.project-thumbnail:hover,.project-thumbnail.is-active{border-color:var(--ink);opacity:1}.project-thumbnail img{width:100%;height:100%;object-fit:contain}.project-modal-scroll-cue{display:none}[hidden]{display:none!important}@keyframes modal-enter{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.contact{min-height:100svh;padding-top:4rem;padding-bottom:2rem;background:var(--ink);color:var(--paper)}.section-label--light{border-color:#3a3a38;color:#a9a69f}.contact-copy{display:flex;min-height:calc(100svh - 13rem);flex-direction:column;justify-content:center;padding:6rem 0}.contact-copy>p{margin:0 0 1.5rem;color:#aaa79f;font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.contact-copy h2{max-width:72rem;margin:0;font-family:var(--serif);font-size:clamp(3.4rem,8vw,8.5rem);font-weight:400;letter-spacing:-.055em;line-height:.87}.contact-email{position:relative;align-self:flex-start;margin-top:clamp(3rem,7vh,6rem);padding-bottom:.45rem;border-bottom:1px solid #5e5d59;color:var(--paper);font-size:clamp(1rem,1.7vw,1.45rem);letter-spacing:-.02em;transition:color .25s ease,border-color .25s ease}.contact-email:hover{border-color:var(--accent);color:#d66c59}.site-footer{display:grid;grid-template-columns:1fr auto 1fr;gap:2rem;align-items:end;padding-top:1.5rem;border-top:1px solid #3a3a38;color:#aaa79f;font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.footer-links{display:flex;gap:2rem}.footer-links a,.site-footer>a{position:relative;padding-bottom:.3rem;color:var(--paper)}.site-footer>a{justify-self:end}.noscript-message{position:fixed;right:1rem;bottom:1rem;z-index:300;max-width:30rem;margin:0;padding:1rem;background:var(--ink);color:var(--paper);font-size:.8rem}@media (max-width: 980px){.hero-title{font-size:clamp(4rem,12vw,7rem)}.title-line--offset{padding-left:10vw}.about .section-label,.work-header .section-label,.archive>.section-label{grid-column:1 / 5}.about-copy,.about-index,.archive-heading,.archive-list,.work-header h2{grid-column:5 / 13}.project-list{grid-column:1 / 7}.visual-column{grid-column:7 / 13}.archive-heading{display:block}.archive-heading p{margin-top:1.5rem}.archive-row{grid-template-columns:2.5rem minmax(0,1.5fr) 1fr}.archive-role{display:none}}@media (max-width: 720px){:root{--header-height: 4.75rem}.site-header.is-compact{height:4.25rem}.brand,.brand img{width:3.25rem}.menu-toggle{display:block}.site-navigation{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;visibility:hidden;width:100%;height:100dvh;min-height:100svh;max-height:100dvh;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;overflow-y:auto;overscroll-behavior:contain;padding:calc(var(--header-height) + max(2.5rem,env(safe-area-inset-top))) var(--gutter) max(2.5rem,env(safe-area-inset-bottom));background:var(--ink);color:var(--paper);opacity:0;-webkit-overflow-scrolling:touch;transition:opacity .3s ease,visibility .3s}.site-navigation.is-open{visibility:visible;opacity:1}.site-navigation a{flex:0 0 auto;width:100%;padding:.18em 0 .22em;border-bottom:1px solid #3a3a38;font-family:var(--serif);font-size:clamp(2.9rem,14vw,5.25rem);font-weight:400;letter-spacing:-.04em;line-height:.95;text-transform:none}.site-navigation a:first-child{border-top:1px solid #3a3a38}.site-navigation a:after{display:none}body.menu-open .site-header{border-color:transparent;background:var(--ink);color:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}body.menu-open .brand img{filter:brightness(0) invert(1)}.hero{min-height:100svh;padding-bottom:1.5rem}.hero-kicker span:last-child{display:none}.hero-copy{padding-top:14vh}.hero-title{font-size:clamp(4rem,20vw,6.4rem);line-height:.88}.title-line--offset{padding-left:0}.hero-footer{align-items:flex-end}.hero-footer p{max-width:14rem;font-size:.82rem}.hero-footer .text-link{writing-mode:vertical-rl;transform:rotate(180deg)}.hero-orbit{top:19%;right:-32vw;width:84vw}.section-label{grid-template-columns:2.5rem 1fr}.about,.work-header,.archive{display:block}.about{min-height:auto;padding-top:8rem;padding-bottom:8rem}.about-copy{margin-top:4rem}.about-copy h2{font-size:clamp(2.7rem,12vw,4rem)}.about-copy p{margin-top:2rem}.about-index{grid-template-columns:1fr;margin-top:4rem}.work{padding-top:4rem;padding-bottom:6rem}.work-header{padding-bottom:5rem}.work-header h2{margin-top:4rem;font-size:clamp(3.1rem,14vw,4.7rem)}.work-header>p{margin-top:2rem}.project-stage{display:block}.visual-column{top:4.75rem;z-index:5;width:100%;height:35svh;min-height:16rem;pointer-events:none}.canvas-frame{background:var(--paper)}.project-list{position:relative;z-index:2;margin-top:0;pointer-events:none}.project-chapter{min-height:100svh;justify-content:flex-start;padding:calc(35svh + 3.5rem) 0 5rem;opacity:1}.project-chapter>*{pointer-events:auto}.project-chapter h3{margin-top:1.5rem;font-size:clamp(3rem,15vw,4.7rem)}.project-summary,.project-contribution,.project-details,.project-tags,.project-links,.project-topline{position:relative;padding-right:.15rem;padding-left:.15rem}.project-summary,.project-contribution{text-shadow:none}.archive{padding-top:7rem;padding-bottom:8rem}.archive-heading{margin:4rem 0 3rem}.archive-row{grid-template-columns:2rem 1fr;min-height:6.5rem}.archive-category{display:none}.archive-title{font-size:1.75rem}.project-modal{width:100%;height:100dvh;border:0}.project-modal-header{min-height:4.5rem;padding:max(.65rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .65rem max(1rem,env(safe-area-inset-left))}.project-modal-index{min-width:0;max-width:calc(100% - 5.25rem);white-space:nowrap}.project-modal-index span:first-child{overflow:hidden;text-overflow:ellipsis}.project-modal-content{display:block;min-height:0}.project-modal-copy{min-height:calc(100svh - 4.5rem);padding:3.25rem max(1.25rem,env(safe-area-inset-right)) 3.5rem max(1.25rem,env(safe-area-inset-left))}.project-modal-copy h2{margin:1.1rem 0 1.75rem;font-size:clamp(3.3rem,15vw,5.3rem)}.project-modal-meta{margin-top:2.75rem;padding-top:0}.project-modal-gallery{scroll-margin-top:4.5rem;padding:1.25rem max(1.25rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));border-top:1px solid var(--rule);border-left:0}.project-modal-scroll-cue{position:fixed;left:50%;z-index:6;display:flex;min-height:2.7rem;align-items:center;gap:.65rem;padding:.62rem .85rem;border:1px solid var(--ink);box-shadow:0 .55rem 1.5rem #1515152e;cursor:pointer;font-size:.56rem;font-weight:600;letter-spacing:.1em;line-height:1;text-transform:uppercase}.project-modal-scroll-cue--down{bottom:max(.85rem,env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--paper)}.project-modal-scroll-cue--up{top:calc(4.5rem + max(.75rem,env(safe-area-inset-top)));transform:translate(-50%);background:var(--paper);color:var(--ink)}.project-modal-scroll-arrows{display:grid;width:.7rem;place-items:center;animation:scroll-cue-down 1.7s ease-in-out infinite}.project-modal-scroll-arrows>span{width:.42rem;height:.42rem;margin-top:-.14rem;transform:rotate(45deg);border-right:1px solid currentColor;border-bottom:1px solid currentColor}.project-modal-scroll-cue--up .project-modal-scroll-arrows{animation-name:scroll-cue-up}.project-modal-scroll-cue--up .project-modal-scroll-arrows>span{transform:rotate(225deg)}.project-modal-media{height:clamp(18rem,72vw,30rem)}.project-gallery-controls{min-height:4.5rem}.project-gallery-buttons button{min-height:2.75rem}.project-thumbnail{flex-basis:5rem;height:3.5rem}.contact{min-height:100svh}.contact-copy{min-height:calc(100svh - 16rem)}.contact-copy h2{font-size:clamp(3.4rem,15vw,5.5rem)}.site-footer{grid-template-columns:1fr auto}.site-footer>span{display:none}.footer-links{gap:1.1rem}}@media (max-width: 420px){.hero-title{font-size:18.7vw}.hero-footer p{max-width:12rem}.project-details{grid-template-columns:1fr}.project-details dt{margin-bottom:-.4rem}.contact-email{font-size:.92rem}.footer-links{flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.project-chapter{opacity:1}}@keyframes scroll-cue-down{0%,to{transform:translateY(-.12rem)}50%{transform:translateY(.12rem)}}@keyframes scroll-cue-up{0%,to{transform:translateY(.12rem)}50%{transform:translateY(-.12rem)}}
