/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.flex{display:flex}.table{display:table}.flex-shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}:root{--ink:#101b36;--paper:#f7f8f4;--muted:#667085;--line:#cdd2d9;--lime:#d9ff43;--blue:#b8d7ff;--coral:#ffb4a3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans), sans-serif;margin:0}a{color:inherit;text-decoration:none}::selection{background:var(--lime);color:var(--ink)}.nav{border-bottom:1px solid var(--line);background:var(--paper);height:88px;color:var(--ink);justify-content:space-between;align-items:center;padding:0 4.5vw;display:flex}.wordmark{white-space:nowrap;font:700 .85rem/1 var(--font-mono);letter-spacing:.08em;align-items:baseline;gap:.55rem;display:inline-flex}.wordmark span{color:#4c647d}.nav-links{font:500 .82rem/1 var(--font-mono);align-items:center;gap:2.2rem;display:flex}.nav-links a:not(.nav-cta){border-bottom:1px solid #0000;padding:.5rem 0}.nav-links a:not(.nav-cta):hover{border-color:currentColor}.nav-cta{border:1px solid var(--ink);color:var(--ink);cursor:pointer;font:inherit;background:0 0;padding:.8rem 1rem;transition:transform .2s,background .2s,color .2s}.nav-cta:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}.contact-dialog{border:1px solid var(--ink);background:var(--paper);width:min(430px,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--ink);margin:auto;padding:0;position:fixed;inset:0;box-shadow:0 1.5rem 5rem #101b3638}.contact-dialog::backdrop{background:#101b3685}.contact-dialog-panel{text-align:center;padding:2.4rem;position:relative}.contact-dialog-panel .eyebrow{color:#697188}.contact-dialog-close{border:1px solid var(--line);width:2rem;height:2rem;color:var(--ink);cursor:pointer;font:300 1.5rem/1 var(--font-sans);background:0 0;padding:0;position:absolute;top:1rem;right:1rem}.contact-dialog-close:hover{background:var(--ink);color:#fff}.contact-dialog h2{letter-spacing:-.06em;margin:1.2rem 0 .5rem;font-size:2rem}.contact-dialog-intro{color:#596274;margin:0 0 1.5rem;font-size:.88rem;line-height:1.7}.contact-dialog img{background:#fff;width:min(240px,100%);height:auto;margin:0 auto;display:block}.contact-dialog-wechat{color:#596274;margin:1.3rem 0 1.4rem;font-size:.78rem}.contact-dialog-wechat strong{color:var(--ink);font:700 1rem/1.4 var(--font-mono);margin-left:.5rem}.contact-dialog-email{border-bottom:1px solid;padding-bottom:.25rem;font-size:.76rem;display:inline-block}.contact-dialog-email:hover{color:#3857ff}.section{border-top:1px solid var(--line);padding:7rem 4.5vw}.section-head{justify-content:space-between;align-items:center;margin-bottom:3rem;display:flex}.eyebrow,.count{font:700 .71rem/1 var(--font-mono);letter-spacing:.09em;margin:0}.count{font-size:1rem}.projects{border-top:1px solid var(--ink)}.project{border-bottom:1px solid var(--line);grid-template-columns:3.5rem clamp(9rem,15vw,15rem) minmax(0,1fr) 7.5rem;align-items:center;gap:clamp(1rem,2.25vw,2.25rem);min-height:190px;padding:1.55rem 0;display:grid}.project:hover .project-open{text-underline-offset:.3rem;text-decoration:underline}.project-number{color:#697188;font:700 .78rem/1.4 var(--font-mono);align-self:start;padding-top:.3rem}.project-thumbnail{aspect-ratio:16/10;border:1px solid var(--line);background:#e7ebee;width:100%;overflow:hidden}.project-thumbnail img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.project-copy{min-width:0}.project-copy h2{letter-spacing:-.045em;margin:0 0 .6rem;font-size:clamp(1.45rem,2.15vw,2rem);line-height:1.25}.project-copy p{color:#4a5265;max-width:680px;margin:0;line-height:1.6}.project-copy ul{flex-wrap:wrap;gap:.4rem;margin:0 0 .65rem;padding:0;list-style:none;display:flex}.project-copy li{font:500 .7rem/1 var(--font-mono);border:1px solid #9299a7;border-radius:10rem;padding:.3rem .6rem}.project-copy .project-summary{font-size:.86rem}.project-open{white-space:nowrap;font:700 .72rem/1.5 var(--font-mono);justify-self:end}.project-open span{margin-left:.4rem}.project-page{--project-accent:var(--lime)}.project-hero{padding:2rem 4.5vw 5rem}.project-hero-top{color:#657087;font:700 .7rem/1.3 var(--font-mono);justify-content:space-between;margin-bottom:clamp(4rem,8vw,8rem);display:flex}.project-hero-top a:hover{color:var(--ink);text-underline-offset:.3rem;text-decoration:underline}.project-hero .eyebrow{color:#697188}.project-hero h1{letter-spacing:-.065em;max-width:18ch;margin:1.2rem 0 1.5rem;font-size:clamp(2.8rem,5.4vw,6rem);line-height:1.13}.project-deck{color:#455069;max-width:38em;margin:0;font-size:clamp(1.1rem,1.55vw,1.5rem);line-height:1.7}.project-hero-meta{border-top:1px solid var(--ink);grid-template-columns:1fr 2fr 1.5fr;gap:2rem;margin:4rem 0 2rem;display:grid}.project-hero-meta div{flex-direction:column;gap:.7rem;padding-top:1rem;display:flex}.project-hero-meta span{color:#697188;font:700 .66rem/1.2 var(--font-mono)}.project-hero-meta strong{font-size:.88rem;line-height:1.6}.project-cover{width:100%;margin:0}.project-cover img{object-fit:contain;object-position:center;width:100%;height:auto;display:block}.project-cover-scroll{aspect-ratio:16/9;border:1px solid var(--line);scrollbar-color:#788b9b #e5eaeb;width:min(100%,146svh);max-height:82svh;margin:0 auto;overflow-y:auto}.project-cover-scroll img{max-height:none}.project-body{border-top:1px solid var(--line);grid-template-columns:minmax(180px,20%) minmax(0,1fr);gap:clamp(3rem,7vw,9rem);padding:0 4.5vw 6rem;display:grid}.project-toc{flex-direction:column;align-self:start;gap:0;padding-top:5rem;display:flex;position:sticky;top:2rem}.project-toc .eyebrow{color:#697188;margin-bottom:1.5rem}.project-toc a{border-top:1px solid var(--line);gap:1.15rem;padding:.95rem 0;font-size:.84rem;font-weight:600;display:flex}.project-toc a:last-child{border-bottom:1px solid var(--line)}.project-toc a:hover{color:#3857ff}.project-toc a span{color:#697188;font:700 .7rem/1.5 var(--font-mono)}.project-story{min-width:0}.project-story-section{border-bottom:1px solid var(--line);padding:5rem 0 6rem;scroll-margin-top:1.5rem}.project-section-index{color:#697188;font:700 .68rem/1.3 var(--font-mono);letter-spacing:.07em;margin:0 0 1.4rem}.project-story-section h2{letter-spacing:-.055em;max-width:15ch;margin:0 0 1.5rem;font-size:clamp(2.05rem,3.2vw,3.5rem);line-height:1.25}.project-lead{letter-spacing:-.02em;max-width:42em;margin:0 0 2.5rem;font-size:clamp(1.05rem,1.45vw,1.38rem);line-height:1.9}.project-premise{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.project-premise div{border-top:3px solid var(--project-accent);background:#e9ecec;padding:1.5rem}.project-premise span,.project-reflection span{color:#647086;font:700 .68rem/1.4 var(--font-mono)}.project-premise p{margin:1rem 0 0;font-size:.9rem;line-height:1.85}.project-section-intro{color:#465066;max-width:45em;margin:0 0 2.5rem;font-size:1rem;line-height:1.9}.project-steps{border-top:1px solid var(--ink)}.project-step{border-bottom:1px solid var(--line);grid-template-columns:5rem 1fr;gap:1.5rem;padding:1.7rem 0;display:grid}.project-step>span{color:#697188;font:700 .72rem/1.4 var(--font-mono);padding-top:.25rem}.project-step h3{letter-spacing:-.025em;margin:0 0 .45rem;font-size:1.14rem}.project-step p{color:#465066;max-width:48em;margin:0;font-size:.88rem;line-height:1.8}.project-subhead{margin:4rem 0 1.4rem;font-size:1.3rem}.project-decisions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.project-decisions>div{background:#eef0ed;padding:1.2rem}.project-decisions span{font:700 .66rem/1 var(--font-mono);color:#697188}.project-decisions h4{margin:1.7rem 0 .6rem;font-size:1rem}.project-decisions p{color:#465066;margin:0;font-size:.8rem;line-height:1.8}.project-figures{gap:3rem;margin-top:2rem;display:grid}.project-figure{margin:0}.project-figure>img{object-fit:contain;object-position:top center;border:1px solid var(--line);background:#e6e9e8;width:100%;height:auto;max-height:85svh;display:block}.project-figure figcaption{color:#647086;font:500 .74rem/1.7 var(--font-mono);padding:.8rem 0}.project-scroll-figure{aspect-ratio:16/9;border:1px solid var(--line);scrollbar-color:#788b9b #e5eaeb;background:#dce8eb;overflow:auto}.project-scroll-figure img{width:100%;height:auto;display:block}.project-flow-embed{margin-top:4rem}.project-flow-embed-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.project-flow-embed-heading h3{margin:0;font-size:1.3rem}.project-flow-embed-heading a{white-space:nowrap;font:700 .72rem/1.5 var(--font-mono);border-bottom:1px solid;padding-bottom:.25rem}.project-flow-embed-heading a:hover{color:#3857ff}.project-flow-embed iframe{border:1px solid var(--line);background:#fbf8f2;width:100%;height:min(72svh,720px);display:block}.project-flow-embed>p{color:#647086;margin:.8rem 0 0;font-size:.8rem;line-height:1.7}.project-evidence{border-top:1px solid var(--ink);gap:0;margin:0;padding:0;list-style:none;display:grid}.project-evidence li{border-bottom:1px solid var(--line);color:#465066;gap:1rem;padding:1rem 0;font-size:.88rem;line-height:1.75;display:flex}.project-evidence li:before{content:"↗";color:var(--ink);font:700 .85rem/1.6 var(--font-mono)}.project-reflection{background:var(--project-accent);margin-top:3rem;padding:2rem}.project-reflection p{max-width:42em;margin:.9rem 0 0;font-size:1.02rem;line-height:1.85}.project-source{border-bottom:1px solid var(--ink);font:700 .75rem/1.5 var(--font-mono);margin-top:2rem;padding-bottom:.35rem;display:inline-block}.project-source:hover{color:#3857ff;border-color:#3857ff}.project-next{background:var(--ink);color:#fff;grid-template-columns:1fr auto;gap:.9rem 2rem;padding:3rem 4.5vw;display:grid}.project-next>span:first-child{color:#aeb9cc;font:700 .68rem/1 var(--font-mono);grid-column:1/-1}.project-next strong{letter-spacing:-.05em;font-size:clamp(1.8rem,3.3vw,3.5rem)}.project-next>span:last-child{font:500 2rem/1 var(--font-mono);align-self:end;transition:transform .2s}.project-next:hover>span:last-child{transform:translate(4px,-4px)}.photography{padding-top:clamp(2rem,5vh,3.5rem);padding-bottom:clamp(3rem,6vh,5rem)}.photography .section-head{margin-bottom:1rem}.postcards{width:min(100%,1160px,177.78svh - 19.56rem);margin:0 auto}.postcard-viewport{touch-action:pan-y;background:#fff;border:1px solid #e0e2e5;overflow:hidden;box-shadow:0 1.5rem 4.5rem #101b361a}.postcard-track{transition:transform .6s cubic-bezier(.22,.7,.18,1);display:flex}.postcard{flex:0 0 100%;min-width:0;margin:0}.postcard img{aspect-ratio:16/9;object-fit:contain;-webkit-user-select:none;user-select:none;background:#fff;width:100%;height:auto;display:block}.postcard-controls{justify-content:space-between;align-items:center;gap:2rem;padding:1.45rem 0 1rem;display:flex}.postcard-caption{align-items:baseline;gap:1rem;min-width:0;display:flex}.postcard-counter{color:#697188;font:700 .72rem/1 var(--font-mono);letter-spacing:.07em}.postcard-caption strong{font-size:1.08rem}.postcard-caption>span:last-child{color:#697188;font-size:.78rem}.postcard-actions{align-items:center;gap:.65rem;display:flex}.postcard-actions a{white-space:nowrap;font:700 .72rem/1.4 var(--font-mono);border-bottom:1px solid;margin-right:1rem;padding-bottom:.3rem}.postcard-actions a:hover{color:#3857ff}.postcard-actions button{border:1px solid var(--ink);width:2.8rem;height:2.8rem;color:var(--ink);cursor:pointer;font:400 1.3rem/1 var(--font-sans);background:0 0;border-radius:50%;padding:0;transition:background .2s,color .2s}.postcard-actions button:hover:not(:disabled){background:var(--ink);color:#fff}.postcard-actions button:disabled{color:#bdc2cb;cursor:default;border-color:#bdc2cb}.postcard-progress{gap:.45rem;display:flex}.postcard-progress button{cursor:pointer;background:#cbd0d8;border:0;flex:1;height:3px;padding:0}.postcard-progress button.is-active{background:var(--ink)}.about{background:var(--paper);min-height:calc(100svh - 88px);color:var(--ink);flex-direction:column;padding-top:clamp(2rem,4vh,3rem);padding-bottom:2rem;display:flex}.about .eyebrow{color:#697188}.about-grid{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);align-items:center;gap:clamp(2rem,5vw,5rem);margin-top:2rem;display:grid}.about-name{font:700 1.5rem/1.3 var(--font-sans);letter-spacing:-.04em;align-items:center;gap:1.2rem;margin:0 0 1.8rem;display:flex}.about-name span{color:#4d566d;font:600 .68rem/1.3 var(--font-mono);letter-spacing:.02em;border:1px solid #9fa8b4;padding:.4rem .65rem}.about h1{letter-spacing:-.055em;margin:0 0 2rem;font-size:clamp(2.1rem,3.6vw,3.6rem);line-height:1.28}.about-title-line{white-space:nowrap;display:block}.about h1 em{color:#788d9f;margin:0 .06em;font-style:normal;font-weight:400}.about-copy>p:not(.about-name){color:#465066;max-width:35rem;margin:0;font-size:.97rem;line-height:1.9}.about-work-link{background:var(--ink);color:#fff;font:700 .9rem/1.5 var(--font-mono);align-items:center;gap:.8rem;margin-top:2rem;padding:.9rem 1.1rem;transition:background .2s,transform .2s;display:inline-flex}.about-work-link:hover{background:#344663;transform:translateY(-2px)}.about-visual{min-width:0}.about-photo{aspect-ratio:1.58;object-fit:cover;object-position:53% 44%;width:100%;max-height:48svh;display:block}.about-contact{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);grid-template-columns:1fr minmax(0,1.8fr) minmax(0,1fr);align-items:center;gap:2rem;margin-top:2rem;padding:1.4rem 0;transition:background .2s;display:grid}.about-contact:target{background:#edf1ed}.about-contact .eyebrow{white-space:nowrap}.contact-method{align-items:center;gap:.8rem;min-width:0;display:flex}.contact-method>span{color:#697188;white-space:nowrap;font:700 .65rem/1 var(--font-mono)}.contact-method>a,.contact-method>strong{font:600 clamp(.85rem, 1.2vw, 1.05rem)/1.3 var(--font-sans);letter-spacing:-.02em;white-space:nowrap}.contact-method>a:hover{text-underline-offset:.2rem;text-decoration:underline}.copy-email{color:var(--ink);white-space:nowrap;cursor:pointer;font:700 .6rem/1 var(--font-mono);background:0 0;border:1px solid #9fa8b4;padding:.45rem .6rem}.copy-email:hover{border-color:var(--ink);background:var(--ink);color:#fff}.site-footer{border-top:1px solid var(--line);font:700 .68rem/1.4 var(--font-mono);justify-content:space-between;gap:1rem;padding:1.6rem 4.5vw;display:flex}.site-footer a:hover{color:#3857ff}.resume-page{background:var(--paper);min-height:100svh}.resume-hero{border-bottom:1px solid var(--line);padding:2.75rem 4.5vw 2rem}.resume-hero-top{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.25rem;display:flex}.resume-hero .eyebrow{color:#697188}.resume-hero h1{letter-spacing:-.07em;margin:1rem 0 0;font-size:clamp(2.6rem,4vw,3.7rem);line-height:1}.resume-download{background:var(--ink);color:#fff;white-space:nowrap;font:700 .75rem/1.5 var(--font-mono);padding:.9rem 1.1rem;display:inline-block}.resume-download:hover{background:#344663}.resume-identity dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 2rem;margin:0;display:grid}.resume-identity dl>div{border-top:1px solid var(--line);flex-direction:column;gap:.55rem;min-width:0;padding:1rem 0;display:flex}.resume-identity dt{color:#697188;white-space:nowrap;font:600 .67rem/1.5 var(--font-mono)}.resume-identity dd{overflow-wrap:anywhere;margin:0;font-size:.9rem;font-weight:600}.resume-identity dd a:hover{text-decoration:underline}.resume-content{padding:0 4.5vw 5rem}.resume-section{border-bottom:1px solid var(--line);grid-template-columns:minmax(180px,24%) minmax(0,1fr);gap:clamp(2rem,6vw,7rem);padding:4rem 0;display:grid}.resume-section-head .eyebrow{color:#697188}.resume-section-head h2{letter-spacing:-.06em;margin:1rem 0 0;font-size:clamp(1.75rem,2.65vw,2.7rem);line-height:1.2}.resume-entry{border-bottom:1px solid var(--line);margin-bottom:2.5rem;padding:0 0 2.5rem}.resume-entry:last-child{border:0;margin-bottom:0;padding-bottom:0}.resume-entry-heading{justify-content:space-between;align-items:baseline;gap:1.5rem;margin-bottom:1.4rem;display:flex}.resume-entry-heading h3{letter-spacing:-.035em;margin:0 0 .35rem;font-size:clamp(1.22rem,1.65vw,1.65rem)}.resume-entry-heading p{color:#586276;margin:0;font-size:.83rem}.resume-entry-heading time{color:#697188;white-space:nowrap;font:600 .68rem/1.5 var(--font-mono)}.resume-entry>p{color:#465066;max-width:56rem;margin:.8rem 0 0;font-size:.9rem;line-height:1.85}.resume-entry .resume-entry-summary{color:var(--ink);font-weight:600}.resume-detail-list{gap:1.5rem;max-width:56rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.resume-detail-list li{border-top:1px solid #e0e3e7;grid-template-columns:minmax(145px,25%) minmax(0,1fr);gap:1.25rem;padding-top:1.2rem;display:grid}.resume-detail-list strong{font-size:.83rem;line-height:1.7}.resume-detail-list span{color:#465066;font-size:.84rem;line-height:1.85}.resume-skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3rem;display:grid}.resume-skills>div{border-top:1px solid var(--line);padding-top:1rem}.resume-skills h3{margin:0 0 .5rem;font-size:.95rem}.resume-skills p{color:#465066;margin:0;font-size:.85rem;line-height:1.75}:focus-visible{outline-offset:4px;outline:3px solid #3857ff}@media (max-width:760px){.nav{height:72px;padding:0 1.25rem}.nav-links{gap:1rem}.nav-links>a:not(.nav-cta){display:none}.section{padding:5rem 1.25rem}.project{grid-template-columns:2rem minmax(6rem,24%) minmax(0,1fr);gap:.75rem;min-height:0;padding:1.35rem 0}.project:hover{padding-left:0;padding-right:0}.project-copy h2{font-size:1.4rem}.project-copy .project-summary{font-size:.78rem}.project-open{grid-column:3;justify-self:start;font-size:.65rem}.project-hero{padding:1.5rem 1.25rem 3.5rem}.project-hero-top{margin-bottom:4rem}.project-hero h1{font-size:clamp(2.5rem,8vw,4.5rem)}.project-hero-meta{grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem}.project-hero-meta div:last-child{grid-column:1/-1}.project-body{padding:0 1.25rem 4rem;display:block}.project-flow-embed-heading{flex-direction:column;align-items:flex-start}.project-toc{border-bottom:1px solid var(--line);flex-flow:wrap;gap:.5rem 1rem;padding:2rem 0;position:static}.project-toc .eyebrow{width:100%;margin:0 0 .5rem}.project-toc a,.project-toc a:last-child{border:0;width:auto;padding:.3rem 0;font-size:.75rem}.project-story-section{padding:3.5rem 0 4rem}.project-next{padding:2.5rem 1.25rem}.photography{padding-top:2.25rem;padding-bottom:3.5rem}.photography .section-head{margin-bottom:1rem}.postcards{width:100%}.postcard-controls{align-items:flex-start;gap:1rem;padding-top:1rem}.postcard-caption{flex-wrap:wrap;gap:.35rem .65rem}.postcard-caption strong{order:-1;width:100%;font-size:.95rem}.postcard-actions{gap:.4rem}.postcard-actions a{margin-right:.35rem;font-size:.63rem}.postcard-actions button{width:2.35rem;height:2.35rem;font-size:1.1rem}.about{min-height:calc(100svh - 72px);padding:1.5rem 1.25rem 2rem}.about-grid{flex:none;grid-template-columns:1fr;gap:1.5rem;margin-top:1.25rem}.about-visual{order:-1}.about-photo{aspect-ratio:auto;object-position:53% 40%;width:100%;height:min(30svh,240px);max-height:none}.about-name{margin-bottom:1.2rem;font-size:1.3rem}.about h1{margin-bottom:1.2rem;font-size:clamp(1.65rem,7vw,2.5rem)}.about-title-line{white-space:nowrap}.about-copy>p:not(.about-name){font-size:.9rem}.about-contact{grid-template-columns:1fr;gap:1rem;margin-top:2.25rem}.contact-method{flex-wrap:wrap}.site-footer{flex-wrap:wrap;padding:1.5rem 1.25rem}.contact-dialog-panel{padding:2.2rem 1.4rem 1.8rem}.resume-hero{padding:2.25rem 1.25rem 1.5rem}.resume-hero-top{align-items:start;margin-bottom:2rem}.resume-identity dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.25rem}.resume-identity dl>div:last-child{grid-column:1/-1}.resume-content{padding:0 1.25rem 4rem}.resume-section{grid-template-columns:1fr;gap:2rem;padding:3rem 0}.resume-entry-heading{align-items:start}.resume-detail-list li{grid-template-columns:1fr;gap:.45rem}}@media (max-width:480px){.project{grid-template-columns:2rem minmax(0,1fr);align-items:start;gap:.75rem}.project-number{grid-area:1/1/3}.project-thumbnail{grid-area:1/2;width:min(100%,12rem)}.project-copy{grid-area:2/2}.project-open{grid-area:3/2}.project-hero-meta{grid-template-columns:1fr}.project-hero-meta div:last-child{grid-column:1}.project-premise,.project-decisions{grid-template-columns:1fr}.project-step{grid-template-columns:3.5rem 1fr;gap:.75rem}.project-reflection{padding:1.4rem}.resume-entry-heading{flex-direction:column;gap:.5rem}.resume-skills{grid-template-columns:1fr;gap:1.5rem}.postcard-controls{flex-wrap:wrap}.postcard-actions{justify-content:space-between;width:100%}.postcard-actions a{margin-right:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before{transition:none!important;animation:none!important}.postcard-track{transition:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
