:root{color-scheme:light;--paper: #f1ede4;--paper-raised: #faf8f2;--paper-deep: #e5ded2;--ink: #171611;--ink-soft: #57544a;--muted: #6b675e;--blue: #2336f0;--blue-deep: #1729d9;--error: #9f271e;--rule: rgb(23 22 17 / 14%);--rule-strong: rgb(23 22 17 / 30%);--paper-rule: rgb(241 237 228 / 22%);--page-gutter: clamp(1rem, 3.5vw, 3.5rem);--section-space: clamp(5.5rem, 10vw, 10rem);--wide: 92rem;--content: 78rem;--reading: 68ch;--sans: "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;--serif: "Iowan Old Style", Baskerville, "Times New Roman", serif;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility}*,*:before,*:after{box-sizing:border-box}html{min-width:20rem;background:var(--paper);scroll-behavior:smooth;scroll-padding-top:5rem}body{min-width:20rem;min-height:100vh;margin:0;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}main,section,article,header,footer,nav,figure{min-width:0}img,video,canvas,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}p,ul,ol,dl,figure{margin-top:0}p,li,dd{line-height:1.62}h1,h2,h3,h4{margin:0;color:inherit;font-family:var(--sans);font-weight:650;letter-spacing:-.045em;line-height:1;text-wrap:balance}::selection{background:var(--blue);color:#fff}:where(a,button,summary,input,textarea,select,[tabindex]):focus-visible{outline:3px solid var(--blue);outline-offset:4px}.skip-link{position:fixed;z-index:1000;top:.75rem;left:.75rem;min-height:2.75rem;padding:.72rem 1rem;transform:translateY(calc(-100% - 1rem));border:1px solid var(--ink);background:var(--paper-raised);color:var(--ink);font-size:.85rem;font-weight:700;transition:transform .16s ease}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}#work,#profile,#contact{scroll-margin-top:2rem}.eyebrow,.meta,.section-index{margin:0;font-family:var(--mono);font-size:.73rem;letter-spacing:.075em;line-height:1.45;text-transform:uppercase}.eyebrow,.section-index{color:var(--blue)}.meta{color:var(--muted)}.site-header{position:absolute;z-index:20;top:0;left:0;display:flex;width:100%;min-height:4.75rem;align-items:center;justify-content:space-between;gap:2rem;padding:0 var(--page-gutter);border-bottom:1px solid var(--rule);background:#f1ede4c2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.site-mark{display:inline-flex;min-height:2.75rem;align-items:center;gap:.85rem;font-family:var(--mono);font-size:.83rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.site-mark>span{display:grid;width:2.35rem;height:2.35rem;place-items:center;border:1px solid var(--ink);background:var(--ink);color:var(--paper)}.site-mark small{color:var(--ink-soft);font:inherit;font-size:.68rem;font-weight:500}.site-nav{display:flex;align-items:center;gap:clamp(.15rem,1vw,.75rem)}.site-nav a{display:inline-flex;min-height:2.75rem;align-items:center;padding:0 .85rem;border-bottom:1px solid transparent;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;transition:border-color .16s ease,color .16s ease}.site-nav a:hover{border-color:var(--blue);color:var(--blue)}.hero{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;border-bottom:1px solid var(--rule);background:var(--paper)}.hero:before{position:absolute;z-index:-2;inset:0;background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:radial-gradient(95% 90% at 64% 48%,#000 30%,transparent 88%);mask-image:radial-gradient(95% 90% at 64% 48%,#000 30%,transparent 88%);content:"";opacity:.5;pointer-events:none}.hero:after{position:absolute;z-index:10;inset:-50%;width:200%;height:200%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");content:"";opacity:.028;pointer-events:none}.hero-layout{position:relative;z-index:1;display:grid;width:min(100%,108rem);min-height:100svh;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(1rem,3vw,4rem);margin:0 auto;padding:clamp(7.5rem,12vh,10rem) var(--page-gutter) clamp(5.5rem,9vh,7rem)}.hero-copy{position:relative;z-index:4;width:min(100%,44rem)}.hero-copy>.eyebrow{margin-bottom:clamp(1.25rem,2.5vh,2rem)}.hero-copy h1{max-width:9.2ch;font-size:clamp(4rem,6.2vw,7.2rem);font-weight:660;letter-spacing:-.065em;line-height:.9}.hero-lede{max-width:57ch;margin:clamp(1.5rem,3.2vh,2.35rem) 0 0;color:var(--ink-soft);font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.58}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1.3rem;margin-top:clamp(1.5rem,3vh,2.25rem)}.button-link,.text-link{display:inline-flex;min-height:2.9rem;align-items:center;justify-content:center;font-size:.86rem;font-weight:700}.button-link{padding:.72rem 1.15rem;border:1px solid var(--ink);transition:background .16s ease,color .16s ease,transform .16s ease}.button-link--primary{border-color:var(--blue);background:var(--blue);color:#fff}.button-link:hover{transform:translateY(-2px)}.button-link--primary:hover{border-color:var(--ink);background:var(--ink)}.text-link{gap:.45rem;border-bottom:1px solid var(--rule-strong);transition:border-color .16s ease,color .16s ease}.text-link:hover{border-color:var(--blue);color:var(--blue)}.hero-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(2.25rem,5vh,4rem) 0 0;padding:0;border-top:1px solid var(--rule-strong)}.hero-proof>div{min-width:0;padding:.95rem .8rem 0 0}.hero-proof>div+div{padding-left:.8rem;border-left:1px solid var(--rule)}.hero-proof dt{color:var(--ink);font-family:var(--mono);font-size:clamp(1.15rem,1.7vw,1.65rem);font-weight:700;letter-spacing:-.05em;line-height:1}.hero-proof dd{max-width:18ch;margin:.42rem 0 0;color:var(--muted);font-size:.72rem;line-height:1.35}.hero-scroll{position:absolute;z-index:12;bottom:1.4rem;left:50%;display:inline-flex;min-height:2.75rem;align-items:center;gap:.8rem;transform:translate(-50%);color:var(--muted);font-family:var(--mono);font-size:.67rem;letter-spacing:.07em;text-transform:uppercase}.hero-scroll:hover{color:var(--blue)}.cad-stage{position:relative;z-index:1;width:calc(100% + var(--page-gutter));height:min(82svh,58rem);min-height:38rem;margin-right:calc(-1 * var(--page-gutter));overflow:hidden;isolation:isolate}.cad-stage__canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;max-width:none;cursor:grab;outline:none;touch-action:pan-y}.cad-stage__canvas.is-dragging{cursor:grabbing}.cad-stage__canvas.is-inspecting{cursor:crosshair}.cad-annotation,.cad-hint,.cad-load-state{position:absolute;z-index:3;color:var(--muted);font-family:var(--mono);font-size:clamp(.58rem,.7vw,.7rem);letter-spacing:.075em;line-height:1.55;text-transform:uppercase;pointer-events:none}.cad-annotation{top:clamp(1rem,2.4vw,2rem);display:flex;flex-direction:column}.cad-annotation--figure{left:clamp(.5rem,1.4vw,1.4rem)}.cad-annotation--count{right:var(--page-gutter);align-items:flex-end;text-align:right}.cad-hint{right:var(--page-gutter);bottom:1.25rem}.cad-load-state{bottom:1.25rem;left:clamp(.5rem,1.4vw,1.4rem);display:flex;min-width:11.5rem;justify-content:space-between;gap:1.5rem;transition:opacity .5s ease,transform .5s ease}.cad-load-state [data-load-progress]{color:var(--blue);font-variant-numeric:tabular-nums}.cad-load-state.is-ready{opacity:0;transform:translateY(.45rem)}.cad-load-state.is-error{color:var(--error)}.cad-load-state[hidden]{display:none}.cad-callout{position:fixed;z-index:50;top:0;left:0;opacity:0;pointer-events:none;transition:opacity .18s ease;will-change:transform}.cad-callout.is-visible{opacity:1}.cad-callout__anchor{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px #2336f02e}.cad-callout__card{position:absolute;top:-12px;left:26px;width:min(17rem,calc(100vw - 3rem));padding:.9rem 1rem 1rem;border:1px solid var(--rule);border-left:2px solid var(--blue);background:#f1ede4f0;box-shadow:0 14px 45px #1716111a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cad-callout__card:before{position:absolute;top:16px;left:-22px;width:20px;height:1px;background:var(--blue);content:""}.cad-callout.is-flipped .cad-callout__card{right:26px;left:auto;border-right:2px solid var(--blue);border-left:1px solid var(--rule)}.cad-callout.is-flipped .cad-callout__card:before{right:-22px;left:auto}.cad-callout__number{color:var(--blue);font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.cad-callout__name{margin:.4rem 0 .35rem;font-family:var(--serif);font-size:1.35rem;font-weight:400;letter-spacing:-.025em;line-height:1.1}.cad-callout__description{margin:0;color:var(--ink-soft);font-size:.76rem;line-height:1.45}.cad-fallback{position:absolute;z-index:4;inset:0;display:grid;place-items:center;padding:2rem;color:var(--error);font-family:var(--mono);font-size:.72rem;letter-spacing:.07em;text-align:center;text-transform:uppercase}.cad-fallback[hidden]{display:none}.cad-stage.is-unavailable .cad-stage__canvas,.cad-stage.is-unavailable .cad-annotation,.cad-stage.is-unavailable .cad-hint{opacity:.2}.projects-section{width:min(100%,var(--wide));margin:0 auto;padding:var(--section-space) var(--page-gutter)}.section-heading{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem clamp(1rem,2vw,2rem);align-items:start;margin-bottom:clamp(3rem,6vw,5.5rem)}.section-heading .section-index{grid-column:1 / 4;padding-top:.55rem}.section-heading h2{grid-column:4 / 9;font-size:clamp(3rem,5.5vw,5.8rem);letter-spacing:-.065em}.section-heading>p:last-child:not(.section-index){grid-column:9 / 13;max-width:38ch;margin:0;color:var(--ink-soft);font-size:1rem}.project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(3.5rem,6vw,6.5rem) clamp(1rem,2vw,2rem);align-items:stretch}.project-card{grid-column:span 4;min-width:0;border-top:1px solid var(--rule-strong);transition:border-color .18s ease}.project-card:nth-child(1){grid-column:span 7}.project-card:nth-child(2){grid-column:span 5}.project-card:last-child:nth-child(3n){grid-column:span 12}.project-card__link{display:flex;height:100%;flex-direction:column;gap:1.15rem;padding-top:.7rem}.project-card:last-child:nth-child(3n) .project-card__link{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(18rem,.7fr);align-items:stretch;gap:clamp(1.5rem,3vw,3rem)}.project-card__media{position:relative;aspect-ratio:16 / 10;overflow:hidden;border:1px solid var(--rule);background:var(--project-accent, linear-gradient(135deg, var(--paper-deep), var(--paper-raised)))}.project-card:nth-child(1) .project-card__media{aspect-ratio:16 / 9}.project-card:nth-child(2) .project-card__media{aspect-ratio:4 / 3}.project-card:last-child:nth-child(3n) .project-card__media{aspect-ratio:16 / 8}.project-card__media:after{position:absolute;inset:0;border:1px solid transparent;content:"";pointer-events:none;transition:border-color .18s ease}.project-card__media img,.project-card__media video{width:100%;height:100%;object-fit:cover;object-position:center center;transition:transform .32s cubic-bezier(.2,.75,.2,1)}.project-card__media>span:not(.project-card__number){position:absolute;inset:auto 1rem 1rem;font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase}.project-card__number{position:absolute;z-index:2;top:.7rem;right:.7rem;display:grid;width:2.35rem;height:2.35rem;place-items:center;border:1px solid rgb(23 22 17 / 18%);background:#faf8f2e5;color:var(--ink);font-family:var(--mono);font-size:.66rem;box-shadow:0 4px 20px #17161114;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.project-card__copy{display:flex;min-width:0;flex:1;flex-direction:column}.project-card__meta{display:flex;align-items:start;justify-content:space-between;gap:1rem}.project-card__meta .meta{flex:none;text-align:right}.project-card h3{margin-top:.75rem;font-size:clamp(1.8rem,3.1vw,3.4rem);letter-spacing:-.055em}.project-card:nth-child(n+3) h3{font-size:clamp(1.65rem,2.3vw,2.4rem)}.project-card__summary{max-width:54ch;margin:.85rem 0 0;color:var(--ink-soft);font-size:.93rem;line-height:1.55}.project-card__cta{display:inline-flex;width:fit-content;min-height:2.75rem;align-items:center;gap:.45rem;margin-top:auto;padding-top:1.2rem;border-bottom:1px solid var(--rule-strong);color:var(--ink);font-family:var(--mono);font-size:.69rem;font-weight:700;letter-spacing:.055em;text-transform:uppercase;transition:border-color .16s ease,color .16s ease}.project-card:hover{border-color:var(--blue)}.project-card__link:hover .project-card__media img,.project-card__link:hover .project-card__media video{transform:scale(1.025)}.project-card__link:hover .project-card__media:after{border-color:var(--blue)}.project-card__link:hover .project-card__cta{border-color:var(--blue);color:var(--blue)}.tag-list{display:flex;flex-wrap:wrap;gap:.42rem;margin:1rem 0 0;padding:0;list-style:none}.tag-list li{display:inline-flex;min-height:1.75rem;align-items:center;padding:.25rem .55rem;border:1px solid var(--rule);color:var(--muted);font-family:var(--mono);font-size:.62rem;letter-spacing:.045em;line-height:1.2;text-transform:uppercase}.metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:0;margin:1.15rem 0 0;padding:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.metric-row>div{min-width:0;padding:.7rem .65rem .72rem 0}.metric-row>div+div{padding-left:.65rem;border-left:1px solid var(--rule)}.metric-row dt{color:var(--muted);font-family:var(--mono);font-size:.58rem;letter-spacing:.04em;line-height:1.3;text-transform:uppercase}.metric-row dd{margin:.3rem 0 0;color:var(--ink);font-family:var(--mono);font-size:clamp(.92rem,1.4vw,1.2rem);font-weight:700;letter-spacing:-.04em;line-height:1}.profile-section{display:grid;width:min(100%,var(--wide));grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(3rem,6vw,7rem) clamp(1rem,2vw,2rem);margin:0 auto;padding:var(--section-space) var(--page-gutter);border-top:1px solid var(--rule)}.profile-intro{grid-column:1 / 7;align-self:start}.profile-intro .section-index{margin-bottom:1.5rem}.profile-intro h2{max-width:12ch;font-size:clamp(2.8rem,5.2vw,5.5rem);letter-spacing:-.065em}.profile-intro>p:not(.section-index){max-width:58ch;margin:1.4rem 0 0;color:var(--ink-soft);font-size:clamp(.98rem,1.2vw,1.1rem)}.experience-list{grid-column:7 / 13;align-self:start;border-top:1px solid var(--rule-strong)}.info-card{display:grid;grid-template-columns:minmax(6.5rem,.85fr) minmax(0,2.5fr);gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--rule)}.info-card__date{padding-top:.2rem}.info-card__body h3,.link-card h3{margin-top:.35rem;font-size:clamp(1.45rem,2.25vw,2.2rem);letter-spacing:-.045em}.info-card__body>p:not(.eyebrow),.link-card>p:not(.eyebrow){margin:.75rem 0 0;color:var(--ink-soft);font-size:.9rem}.link-card{transition:border-color .16s ease,color .16s ease}.link-card:hover{border-color:var(--blue);color:var(--blue)}.link-arrow{align-self:end;color:var(--blue);font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.contact-section{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(3rem,6vw,7rem) clamp(1rem,2vw,2rem);padding:var(--section-space) max(var(--page-gutter),calc((100vw - var(--wide)) / 2 + var(--page-gutter)));background:var(--ink);color:var(--paper)}.contact-section>div:first-child{grid-column:1 / 8}.contact-section .section-index{color:#7f8cff}.contact-section h2{max-width:10ch;margin-top:1.5rem;font-size:clamp(3.2rem,6.8vw,7.2rem);letter-spacing:-.065em}.contact-section>div:first-child>p:last-child{max-width:52ch;margin:1.75rem 0 0;color:#f1ede4b8;font-size:1.02rem}.contact-links{grid-column:9 / 13;align-self:end;border-top:1px solid var(--paper-rule)}.contact-links a{display:flex;min-height:4rem;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--paper-rule);font-size:clamp(1.1rem,1.8vw,1.45rem);transition:color .16s ease,padding .16s ease}.contact-links a:hover{padding-left:.4rem;color:#8994ff}.contact-link-label{display:inline-flex;align-items:center;gap:.75rem}.contact-icon{width:1.15em;height:1.15em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.contact-signoff{grid-column:1 / -1;margin:clamp(2rem,5vw,5rem) 0 0;padding-top:1rem;border-top:1px solid var(--paper-rule);color:#f1ede494;font-family:var(--mono);font-size:.65rem;letter-spacing:.055em;text-transform:uppercase}.project-page{min-height:100vh;background:var(--paper)}.project-page-toolbar{position:sticky;z-index:30;top:0;display:flex;min-height:4.5rem;align-items:center;padding:0 var(--page-gutter);border-bottom:1px solid var(--rule);background:#f1ede4e5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.project-page-back{display:inline-flex;min-height:2.75rem;align-items:center;gap:.7rem;font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.055em;text-transform:uppercase;transition:color .16s ease}.project-page-back:hover{color:var(--blue)}.case-study-header{display:grid;width:min(100%,var(--wide));grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(3rem,6vw,7rem) clamp(1rem,2vw,2rem);align-items:center;margin:0 auto;padding:clamp(4.5rem,8vw,8rem) var(--page-gutter) clamp(5rem,9vw,9rem)}.case-study-header-copy{grid-column:1 / 6}.case-study-kicker{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--rule-strong)}.case-study-category,.case-study-meta,.case-study-section-index,.case-study-link-eyebrow,.project-page-pagination-direction{margin:0;font-family:var(--mono);font-size:.68rem;letter-spacing:.065em;line-height:1.45;text-transform:uppercase}.case-study-category,.case-study-section-index,.case-study-link-eyebrow{color:var(--blue)}.case-study-meta,.project-page-pagination-direction{color:var(--muted)}.case-study-title{margin-top:clamp(1.5rem,3vw,2.5rem);font-size:clamp(4rem,7.4vw,8rem);letter-spacing:-.07em;line-height:.88}.case-study-summary{max-width:48ch;margin:clamp(1.5rem,3vw,2.3rem) 0 0;color:var(--ink-soft);font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.55}.case-study-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(2rem,4vw,3rem) 0 0;padding:0;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule)}.case-study-metric{min-width:0;padding:.85rem .7rem .9rem 0}.case-study-metric+.case-study-metric{padding-left:.7rem;border-left:1px solid var(--rule)}.case-study-metric-label{color:var(--muted);font-family:var(--mono);font-size:.58rem;letter-spacing:.045em;line-height:1.35;text-transform:uppercase}.case-study-metric-value{margin:.38rem 0 0;line-height:1.1}.case-study-metric-value-text{display:block;font-family:var(--mono);font-size:clamp(1rem,1.6vw,1.35rem);font-weight:700;letter-spacing:-.045em}.case-study-metric-note{display:block;margin-top:.35rem;color:var(--muted);font-size:.68rem;line-height:1.35}.case-study-tags .tag-list{margin-top:1.35rem}.case-study-lead{grid-column:6 / 13;margin:0}.case-study-lead-frame{position:relative;display:grid;min-height:30rem;aspect-ratio:4 / 3;place-items:center;overflow:hidden;border:1px solid var(--rule);background:var(--case-study-accent, var(--paper-deep))}.case-study-lead-frame img,.case-study-lead-frame video{width:100%;height:100%;object-fit:cover;object-position:center center}.case-study-lead-frame-contain{background:var(--ink)}.case-study-lead-frame-contain img,.case-study-lead-frame-contain video{object-fit:contain}.case-study-lead-fallback{padding:2rem;font-family:var(--mono);font-size:.72rem;text-align:center}.case-study-lead-caption,.gallery-card figcaption{margin-top:.7rem;color:var(--muted);font-size:.75rem;line-height:1.45}.case-study-body{width:min(100%,var(--content));margin:0 auto;padding:0 var(--page-gutter) var(--section-space)}.case-study-section{border-top:1px solid var(--rule-strong);padding:clamp(3.5rem,7vw,7rem) 0}.case-study-overview,.case-study-points{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem clamp(1rem,2vw,2rem)}.case-study-overview .case-study-section-title,.case-study-points .case-study-section-title{grid-column:1 / 4}.case-study-overview .case-study-section-copy,.case-study-points .case-study-point-list{grid-column:5 / 12}.case-study-section-title{font-size:clamp(2.35rem,4.5vw,4.8rem);letter-spacing:-.06em}.case-study-section-copy{max-width:var(--reading);margin:0;color:var(--ink-soft);font-size:clamp(1.02rem,1.4vw,1.24rem);line-height:1.65}.case-study-point-list{display:grid;gap:0;max-width:var(--reading);margin:0;padding:0;list-style:none;counter-reset:detail-point}.case-study-point-list li{position:relative;padding:1rem 0 1rem 2.75rem;border-top:1px solid var(--rule);color:var(--ink-soft);counter-increment:detail-point}.case-study-point-list li:last-child{border-bottom:1px solid var(--rule)}.case-study-point-list li:before{position:absolute;top:1.13rem;left:0;color:var(--blue);content:counter(detail-point,decimal-leading-zero);font-family:var(--mono);font-size:.66rem;letter-spacing:.04em}.case-study-media>.case-study-section-title,.case-study-links>.case-study-section-title{margin-bottom:clamp(2rem,4vw,3.5rem)}.case-study-section-header{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem clamp(1rem,2vw,2rem)}.case-study-section-index{grid-column:1 / 3;padding-top:.55rem}.case-study-section-heading-copy{grid-column:3 / 11}.case-study-section-heading-copy .case-study-section-copy{margin-top:1.3rem}.case-study-section-points{width:min(100%,46rem);margin:clamp(2.5rem,5vw,4.5rem) 0 0 calc(100% / 6)}.case-study-points-title{margin-bottom:1rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.065em;text-transform:uppercase}.case-study-section-gallery{margin-top:clamp(3rem,6vw,5.5rem)}.gallery-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.4rem,2.5vw,2.5rem) clamp(.8rem,1.5vw,1.25rem)}.gallery-card{min-width:0;margin:0}.gallery-image{position:relative;display:grid;min-height:12rem;aspect-ratio:16 / 10;place-items:center;overflow:hidden;border:1px solid var(--rule);background:var(--paper-deep)}.gallery-image>img,.gallery-image>video{width:100%;height:100%;object-fit:cover;object-position:center center}.gallery-image-contain{background:var(--ink)}.gallery-image-contain .gallery-image-bg,.gallery-image-contain .gallery-image-main{position:absolute;inset:0;width:100%;height:100%}.gallery-image-contain .gallery-image-bg{object-fit:cover;object-position:center center;filter:blur(20px) saturate(1.08);opacity:.62;transform:scale(1.12)}.gallery-image-contain .gallery-image-main{z-index:1;object-fit:contain;object-position:center center}.gallery-image>span{padding:1rem;font-family:var(--mono);font-size:.7rem;text-align:center}.video-thumb{position:absolute;inset:0;width:100%;height:100%;padding:0;overflow:hidden;border:0;background:var(--ink);color:#fff;cursor:pointer}.video-thumb-bg,.video-thumb-main{position:absolute;inset:0;width:100%;height:100%}.video-thumb-bg{object-fit:cover;object-position:center center;filter:blur(20px) saturate(1.12);opacity:.66;transform:scale(1.12)}.video-thumb-main{z-index:1;object-fit:contain;object-position:center center}.video-play-label,.case-study-link-action,.media-link-play{position:absolute;z-index:2;right:.75rem;bottom:.75rem;display:inline-flex;min-height:2rem;align-items:center;padding:.4rem .65rem;border:1px solid rgb(255 255 255 / 24%);background:#171611d1;color:#fff;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}.video-dialog{width:min(92vw,42rem);max-width:42rem;max-height:92vh;padding:0;overflow:hidden;border:1px solid rgb(255 255 255 / 20%);border-radius:0;background:var(--ink);box-shadow:0 30px 100px #0000006b;color:#fff}.video-dialog::backdrop{background:#171611c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.video-dialog video{width:100%;max-height:90vh;background:var(--ink)}.video-dialog-close{position:absolute;z-index:3;top:.75rem;right:.75rem;min-width:3.2rem;min-height:2.75rem;padding:.55rem .75rem;border:1px solid rgb(255 255 255 / 30%);background:#171611cc;color:#fff;font-family:var(--mono);font-size:.66rem;letter-spacing:.055em;text-transform:uppercase;cursor:pointer}.case-study-link-grid,.media-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.case-study-link-card,.media-link-card{display:grid;min-width:0;overflow:hidden;border-top:1px solid var(--rule-strong);transition:border-color .16s ease,color .16s ease}.case-study-link-card:hover,.media-link-card:hover{border-color:var(--blue);color:var(--blue)}.case-study-link-thumbnail,.media-link-thumb{position:relative;display:block;aspect-ratio:16 / 9;margin-top:.65rem;overflow:hidden;border:1px solid var(--rule);background:var(--paper-deep)}.case-study-link-thumbnail img,.media-link-thumb img{width:100%;height:100%;object-fit:cover;object-position:center center}.case-study-link-thumbnail-contain img{object-fit:contain;background:var(--ink)}.case-study-link-copy,.media-link-copy{display:grid;gap:.3rem;padding:.9rem 0 0}.case-study-link-label,.media-link-copy strong{font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.25}.media-link-copy>span{color:var(--muted);font-family:var(--mono);font-size:.64rem;letter-spacing:.05em;text-transform:uppercase}.case-study-text-links,.link-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.case-study-text-link,.link-row a{display:inline-flex;min-height:2.8rem;align-items:center;justify-content:space-between;gap:1.5rem;padding:.65rem .85rem;border:1px solid var(--rule-strong);font-family:var(--mono);font-size:.7rem;letter-spacing:.045em;text-transform:uppercase;transition:border-color .16s ease,background .16s ease,color .16s ease}.case-study-text-link:hover,.link-row a:hover{border-color:var(--blue);background:var(--blue);color:#fff}.project-page-pagination{display:grid;width:min(100%,var(--wide));grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto;padding:0 var(--page-gutter) var(--section-space)}.project-page-pagination-link{display:flex;min-height:10rem;flex-direction:column;justify-content:space-between;gap:1rem;padding:1.5rem;border:1px solid var(--rule-strong);transition:border-color .16s ease,background .16s ease,color .16s ease}.project-page-pagination-link+.project-page-pagination-link{border-left:0}.project-page-pagination-link:hover{border-color:var(--blue);background:var(--blue);color:#fff}.project-page-pagination-link:hover .project-page-pagination-direction{color:#ffffffb8}.project-page-pagination-next{text-align:right}.project-page-pagination-title{font-size:clamp(1.5rem,2.8vw,2.8rem);line-height:1}@media (max-width: 1099px){.hero-layout{min-height:auto;grid-template-columns:minmax(0,1fr);gap:2rem;padding-top:clamp(8rem,14vw,10rem)}.hero-copy{width:min(100%,52rem)}.hero-copy h1{max-width:11ch;font-size:clamp(4rem,9.5vw,7rem)}.hero-lede{max-width:65ch}.hero-proof{max-width:42rem}.cad-stage{width:calc(100% + 2 * var(--page-gutter));height:clamp(31rem,58svh,46rem);min-height:0;margin-right:calc(-1 * var(--page-gutter));margin-left:calc(-1 * var(--page-gutter))}.cad-annotation--figure,.cad-load-state{left:var(--page-gutter)}.hero-scroll{display:none}.section-heading .section-index{grid-column:1 / 5}.section-heading h2{grid-column:5 / 13}.section-heading>p:last-child:not(.section-index){grid-column:5 / 11;margin-top:.75rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card,.project-card:nth-child(1),.project-card:nth-child(2),.project-card:last-child:nth-child(3n){grid-column:auto}.project-card:last-child:nth-child(3n) .project-card__link{display:flex;gap:1.15rem}.project-card:nth-child(1) .project-card__media,.project-card:nth-child(2) .project-card__media,.project-card:last-child:nth-child(3n) .project-card__media{aspect-ratio:16 / 10}.project-card:nth-child(n) h3{font-size:clamp(1.8rem,4vw,2.8rem)}.profile-intro{grid-column:1 / 6}.experience-list{grid-column:6 / 13}.contact-section>div:first-child{grid-column:1 / 8}.contact-links{grid-column:8 / 13}.case-study-header{align-items:start}.case-study-header-copy{grid-column:1 / 7}.case-study-lead{grid-column:7 / 13}.case-study-lead-frame{min-height:24rem;aspect-ratio:3 / 4}.case-study-title{font-size:clamp(3.5rem,8vw,6.5rem)}}@media (max-width: 759px){:root{--page-gutter: 1rem;--section-space: clamp(4.5rem, 18vw, 6.5rem)}html{scroll-padding-top:4.25rem}.site-header{min-height:4.25rem;gap:.5rem}.site-mark{gap:0}.site-mark>span{width:2.15rem;height:2.15rem}.site-mark small{display:none}.site-nav{gap:0}.site-nav a{min-height:2.75rem;padding:0 .48rem;font-size:.64rem}.hero-layout{gap:1.5rem;padding-top:6.5rem;padding-bottom:1.5rem}.hero:before{background-size:54px 54px;-webkit-mask-image:radial-gradient(110% 90% at 50% 58%,#000 25%,transparent 90%);mask-image:radial-gradient(110% 90% at 50% 58%,#000 25%,transparent 90%)}.hero-copy h1{max-width:10ch;font-size:clamp(3.25rem,15vw,5rem);line-height:.92}.hero-lede{font-size:.96rem}.hero-actions{align-items:stretch}.button-link{width:100%}.text-link{width:fit-content}.hero-proof>div{padding-right:.45rem}.hero-proof>div+div{padding-left:.45rem}.hero-proof dt{font-size:clamp(1rem,5vw,1.3rem)}.hero-proof dd{font-size:.62rem}.cad-stage{height:clamp(23rem,52svh,32rem)}.cad-annotation--count,.cad-callout{display:none}.cad-annotation,.cad-hint,.cad-load-state{font-size:.58rem}.cad-hint{right:var(--page-gutter)}.section-heading{display:block;margin-bottom:2.75rem}.section-heading h2{margin-top:1.15rem;font-size:clamp(3rem,15vw,4.7rem)}.section-heading>p:last-child:not(.section-index){max-width:38ch;margin-top:1.15rem}.project-grid{grid-template-columns:minmax(0,1fr);gap:3.75rem}.project-card__media,.project-card:nth-child(1) .project-card__media,.project-card:nth-child(2) .project-card__media,.project-card:last-child:nth-child(3n) .project-card__media{aspect-ratio:16 / 10}.project-card:nth-child(n) h3{font-size:clamp(2rem,10vw,3rem)}.project-card__summary{font-size:.9rem}.profile-section{display:block}.profile-intro h2{font-size:clamp(3rem,14vw,4.7rem)}.experience-list{margin-top:3.5rem}.info-card{grid-template-columns:minmax(0,1fr);gap:.65rem}.contact-section{display:block}.contact-section h2{font-size:clamp(3.2rem,16vw,5rem)}.contact-links{margin-top:3.5rem}.contact-links a{min-height:3.75rem}.contact-signoff{margin-top:4rem}.project-page-toolbar{min-height:4.1rem}.case-study-header{display:flex;flex-direction:column;gap:3rem;padding-top:3.5rem;padding-bottom:5rem}.case-study-header-copy,.case-study-lead{width:100%}.case-study-title{font-size:clamp(3.7rem,17vw,5.7rem)}.case-study-summary{font-size:1.02rem}.case-study-metrics{grid-template-columns:minmax(0,1fr)}.case-study-metric{display:grid;grid-template-columns:minmax(7.5rem,.8fr) minmax(0,1.2fr);align-items:baseline;gap:1rem;padding:.8rem 0}.case-study-metric+.case-study-metric{padding-left:0;border-top:1px solid var(--rule);border-left:0}.case-study-metric-value{margin-top:0}.case-study-lead-frame{min-height:20rem;aspect-ratio:4 / 3}.case-study-section,.case-study-overview,.case-study-points{display:block}.case-study-section-title{font-size:clamp(2.6rem,13vw,4rem)}.case-study-overview .case-study-section-copy,.case-study-points .case-study-point-list{margin-top:1.5rem}.case-study-section-header{display:block}.case-study-section-index{margin-bottom:1rem}.case-study-section-heading-copy .case-study-section-copy{margin-top:1.2rem}.case-study-section-points{width:100%;margin-left:0}.gallery-strip,.case-study-link-grid,.media-link-grid{grid-template-columns:minmax(0,1fr)}.gallery-strip{gap:2rem}.gallery-image{min-height:11rem}.case-study-text-links,.link-row{display:grid;grid-template-columns:minmax(0,1fr)}.project-page-pagination{grid-template-columns:minmax(0,1fr)}.project-page-pagination-link+.project-page-pagination-link{border-top:0;border-left:1px solid var(--rule-strong)}.project-page-pagination-next{text-align:left}}@media (max-width: 380px){.site-nav a{padding:0 .35rem;font-size:.59rem}.hero-proof{grid-template-columns:minmax(0,1fr)}.hero-proof>div,.hero-proof>div+div{display:grid;grid-template-columns:6rem minmax(0,1fr);align-items:baseline;gap:.6rem;padding:.7rem 0;border-bottom:1px solid var(--rule);border-left:0}.hero-proof dd{max-width:none;margin:0}}@media (hover: none),(pointer: coarse){.project-card__media img,.project-card__media video,.button-link,.contact-links a{transition:none}.cad-stage__canvas{cursor:default}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.button-link:hover,.project-card__link:hover .project-card__media img,.project-card__link:hover .project-card__media video{transform:none}}@media (forced-colors: active){:where(a,button,summary,input,textarea,select,[tabindex]):focus-visible{outline:3px solid Highlight}.project-card__media,.gallery-image,.case-study-lead-frame,.case-study-link-thumbnail,.media-link-thumb{border:1px solid CanvasText}}
