:root{--ink:#030303;--paper:#f2f0eb;--muted:#747474;--accent:#9d3d35;background:var(--ink);color:var(--paper);font-synthesis:none;font-family:Inter,Helvetica,Arial,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#app{min-height:100%}body{background:var(--ink);min-width:320px;margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:1px solid var(--paper);outline-offset:5px}.hero{isolation:isolate;background:radial-gradient(circle at 51% 34%, #1a1a1a 0%, #0a0a0a 42%, var(--ink) 76%);min-height:100svh;position:relative;overflow:hidden}.hero-scene{position:absolute;inset:0}.identity{z-index:3;width:min(420px,38vw);animation:.7s cubic-bezier(.22,1,.36,1) both text-reveal;position:absolute;top:clamp(28px,4vw,58px);left:clamp(24px,4.2vw,72px)}.name{letter-spacing:.04em;margin:0;font-size:clamp(18px,1.6vw,25px);font-weight:650}.role{color:var(--accent);letter-spacing:.2em;white-space:nowrap;align-items:center;gap:12px;margin:15px 0 0;font-size:9px;font-weight:700;display:flex}.role:before{content:"";background:currentColor;flex:none;width:36px;height:1px}.identity nav{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;gap:clamp(18px,2.4vw,38px);margin-top:26px;font-size:11px;display:flex}.identity nav a{color:var(--muted);transition:color .18s}.identity nav a:hover{color:var(--paper)}.portrait-stage{z-index:1;width:min(68vw,1040px);position:absolute;top:-4vh;bottom:-8vh;left:18vw}.portrait-base,.portrait-canvas{width:100%;height:100%;position:absolute;inset:0}.portrait-base{object-fit:contain;object-position:50% 18%;opacity:0}.portrait-canvas{z-index:2}.portrait-error{z-index:3;color:var(--muted);letter-spacing:.1em;opacity:0;margin:0;font-size:11px;position:absolute;bottom:12%;left:50%;transform:translate(-50%)}.portrait-stage--fallback .portrait-canvas,.portrait-stage--error .portrait-canvas,.portrait-stage.is-error .portrait-canvas{display:none}.portrait-stage--fallback .portrait-base,.portrait-stage--error .portrait-base,.portrait-stage.is-error .portrait-base{opacity:0}.portrait-stage--fallback .portrait-error,.portrait-stage--error .portrait-error,.portrait-stage.is-error .portrait-error{opacity:1}.hero-chat{z-index:3;width:min(330px,24vw);max-height:calc(61% - clamp(96px,10vh,112px));box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;position:absolute;top:39%;bottom:clamp(96px,10vh,112px);left:6.5%}.chat-scroll-region{overscroll-behavior:contain;scrollbar-color:#606060 transparent;scrollbar-width:thin;min-height:0;overflow-y:auto}.chat-heading{align-items:center;gap:12px;display:flex}.chat-accent{background:#bd5b52;flex:none;width:36px;height:1px}.chat-label{color:#bd5b52;letter-spacing:.18em;margin:0;font-size:10px;font-weight:700}.chat-intro{color:#aaa;margin:15px 0 0;font-size:11px;line-height:1.65}.chat-recommendations{flex-direction:column;margin-top:12px;display:flex}.chat-recommendation{color:#999;min-height:44px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #303030;padding:9px 0;font-size:11px;line-height:1.45;transition:color .16s,padding-left .16s}.chat-recommendation:hover{color:var(--paper);padding-left:5px}.chat-recommendation:focus-visible,.chat-input:focus-visible,.chat-send:focus-visible,.chat-sources :is(button,a):focus-visible{outline:1px solid var(--paper);outline-offset:3px}.chat-transcript{color:#d3d3d3;scrollbar-width:thin;max-height:min(24vh,210px);margin-top:14px;font-size:12px;line-height:1.65;transition:opacity .16s;overflow:auto}.chat-transcript:empty,.chat-sources:empty{display:none}.chat-sources{flex-wrap:wrap;gap:7px;margin-top:12px;display:flex}.chat-sources :is(button,a){color:#999;min-height:44px;font:inherit;letter-spacing:.08em;cursor:pointer;background:0 0;border:1px solid #343434;align-items:center;padding:7px 10px;font-size:10px;display:inline-flex}.chat-composer{border-bottom:1px solid #4a4a4a;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:14px;display:grid}.chat-input{resize:vertical;width:100%;min-height:44px;max-height:112px;color:var(--paper);font:inherit;background:0 0;border:0;padding:11px 0 8px;font-size:12px;line-height:1.5}.chat-input::placeholder{color:#7a7a7a}.chat-send{color:#bd5b52;min-width:44px;min-height:44px;font:inherit;letter-spacing:.08em;cursor:pointer;background:0 0;border:0;padding:0;font-size:11px;transition:color .16s}.chat-status{color:#7a7a7a;min-height:1.5em;margin:8px 0 0;font-size:10px;line-height:1.5;transition:opacity .16s,color .16s}.chat-cursor{animation:.8s steps(2,jump-none) infinite chat-cursor}@keyframes chat-cursor{50%{opacity:0}}.headline-wrap{z-index:3;text-align:right;width:min(62vw,900px);position:absolute;bottom:clamp(54px,7vh,94px);right:clamp(28px,4.8vw,82px)}.headline{letter-spacing:-.055em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(58px,7.6vw,128px);font-style:italic;font-weight:400;line-height:.88;animation:.7s cubic-bezier(.22,1,.36,1) .1s both text-reveal}.headline span{white-space:nowrap;display:block}.headline em{color:#0000;font:inherit;-webkit-text-stroke:1px var(--paper)}.headline-wrap small{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin-top:20px;font-family:Inter,Helvetica,Arial,sans-serif;font-size:clamp(9px,.9vw,12px);font-style:normal;display:block}.hero-index{z-index:3;color:var(--muted);letter-spacing:.18em;margin:0;font-size:9px;animation:.7s cubic-bezier(.22,1,.36,1) both text-reveal;position:absolute;bottom:clamp(28px,4vw,56px);left:clamp(24px,4.2vw,72px)}.hero-index strong{color:var(--paper);font-size:13px;font-weight:500}.portfolio-content{z-index:4;background:var(--ink);position:relative;overflow:clip}.portfolio-section{width:min(100%,1600px);margin:0 auto;padding:clamp(92px,12vw,190px) clamp(24px,5.2vw,92px);scroll-margin-top:24px}.section-heading{border-bottom:1px solid #242424;grid-template-columns:minmax(150px,.55fr) minmax(0,1.45fr);align-items:start;gap:clamp(32px,6vw,110px);padding-bottom:clamp(48px,7vw,104px);display:grid}.section-index{color:var(--muted);letter-spacing:.19em;margin:9px 0 0;font-size:9px}.section-index span{color:var(--paper);font-size:13px}.section-heading h2{letter-spacing:-.055em;max-width:960px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(52px,7vw,118px);font-style:italic;font-weight:400;line-height:.9}.section-heading h2 span,.section-heading h2 em{display:block}.section-heading h2 em{color:#0000;font:inherit;-webkit-text-stroke:1px var(--paper)}.about-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(54px,10vw,160px);padding-top:clamp(54px,8vw,120px);display:grid}.about-copy{max-width:760px}.about-lead{letter-spacing:-.025em;margin:0;font-size:clamp(22px,2.4vw,39px);font-weight:350;line-height:1.5}.education{border-top:1px solid #242424;grid-template-columns:minmax(120px,.55fr) 1fr;gap:7px 24px;margin-top:clamp(60px,8vw,112px);padding-top:22px;display:grid}.education-label,.education p,.education time{color:var(--muted);letter-spacing:.08em;margin:0;font-size:11px;line-height:1.6}.education h3{grid-column:2;margin:0;font-size:clamp(18px,1.5vw,24px);font-weight:500}.education p:not(.education-label),.education time{grid-column:2}.capability-list{border-top:1px solid #242424}.capability{border-bottom:1px solid #242424;grid-template-columns:.85fr 1.15fr;gap:24px;padding:24px 0 28px;display:grid}.capability h3{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:10px;font-weight:650;line-height:1.5}.capability ul,.project-tags{margin:0;padding:0;list-style:none}.capability li{color:#aaa;font-size:13px;line-height:1.8}.projects{padding-top:clamp(112px,14vw,220px)}.project-list{padding-top:clamp(64px,9vw,136px)}.project-card{border-bottom:1px solid #242424;grid-template-columns:minmax(0,1.42fr) minmax(300px,.58fr);align-items:center;gap:clamp(42px,7vw,112px);padding:clamp(46px,7vw,112px) 0;display:grid}.project-card:first-child{padding-top:0}.project-card:nth-child(2n){grid-template-columns:minmax(300px,.58fr) minmax(0,1.42fr)}.project-card:nth-child(2n) .project-media{order:2}.project-card:nth-child(2n) .project-copy{order:1}.project-media{min-width:0;margin:0}.project-reader{color:#b8b8b8;outline-offset:6px}.project-reader-stage{aspect-ratio:16/9;touch-action:pan-y;isolation:isolate;background:#070707;border:1px solid #1f1f1f;position:relative;overflow:hidden}.project-reader-stage:after{z-index:2;pointer-events:none;content:"";background:linear-gradient(135deg,#0000 60%,#9d3d3517);position:absolute;inset:0}.project-reader picture{width:100%;height:100%;display:block}.project-reader [data-page-image]{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .18s;display:block}.project-reader [data-reader-status],.project-reader [data-reader-error]{z-index:3;color:#8d8d8d;letter-spacing:.12em;text-align:center;text-transform:uppercase;max-width:min(80%,360px);margin:0;font-size:10px;line-height:1.6;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.project-reader [data-reader-status]{transition:opacity .18s}.project-reader [data-reader-error]:not([hidden]){flex-wrap:wrap;justify-content:center;gap:10px 16px;display:flex}.project-reader [data-reader-error] p{flex-basis:100%;margin:0}.project-reader [data-reader-retry],.project-reader [data-open-original-pdf]{color:#b8b8b8;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #555;padding:0 0 2px}.project-reader [data-reader-retry]:hover,.project-reader [data-open-original-pdf]:hover{color:var(--paper)}.project-reader-chevron{z-index:4;color:#d0d0d0;opacity:.58;cursor:pointer;background:0 0;border:0;place-items:center;width:50px;min-width:44px;height:70px;min-height:44px;margin:0;padding:0;transition:opacity .16s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.project-reader-chevron--previous{left:-4px}.project-reader-chevron--next{right:-4px}.project-reader-chevron svg{width:40px;height:66px;display:block;overflow:visible}.project-reader-chevron polyline{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.project-reader-chevron:hover,.project-reader-chevron:focus-visible{opacity:.82}.project-reader-chevron:focus-visible{outline-offset:-5px;outline:1px solid}.project-reader-chevron:disabled{opacity:.18;pointer-events:none;cursor:default}.project-reader-meta{text-align:center;min-height:25px;margin:11px 0 0;position:relative}.project-reader-counter{color:#7d7d7d;letter-spacing:.16em;text-align:center;margin:0;font-size:9px;line-height:1.5}.project-reader [data-open-original-pdf]{color:#666;letter-spacing:.1em;text-transform:uppercase;font-size:8px;line-height:1.5;position:absolute;top:0;right:0}.project-reader-counter strong{color:#b8b8b8;font-weight:500}.project-reader[data-reader-state=loading] [data-page-image]{opacity:0}.project-reader[data-reader-state=rendering] [data-page-image],.project-reader.is-rendering [data-page-image]{opacity:.5}.project-reader[data-reader-state=ready] [data-page-image],.project-reader.is-ready [data-page-image]{opacity:1}.project-reader[data-reader-state=ready] [data-reader-status],.project-reader[data-reader-state=error] [data-reader-status],.project-reader[data-reader-state=loading] .project-reader-chevron,.project-reader[data-reader-state=error] .project-reader-chevron{opacity:0;pointer-events:none}.project-number{color:var(--paper);margin:0 0 22px;font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,3.2vw,52px);font-style:italic}.project-type{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:9px;font-weight:650;line-height:1.5}.project-copy h3{letter-spacing:-.045em;margin:16px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(39px,4.4vw,72px);font-style:italic;font-weight:400;line-height:.95}.project-summary{color:#c2c2c2;margin:30px 0 0;font-size:clamp(15px,1.25vw,19px);line-height:1.75}.project-role{color:var(--muted);grid-template-columns:52px 1fr;gap:16px;margin:28px 0 0;font-size:11px;line-height:1.65;display:grid}.project-role span{color:var(--paper);letter-spacing:.14em;text-transform:uppercase;font-size:9px}.project-tags{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.project-tags li{color:#8b8b8b;letter-spacing:.12em;text-transform:uppercase;border:1px solid #303030;padding:7px 10px 6px;font-size:8px}.documents{background:linear-gradient(125deg,#0a0a0a 0%,#111 100%);border:1px solid #292929;width:min(100% - clamp(48px,10.4vw,184px),1416px);margin:clamp(30px,4vw,66px) auto;padding:clamp(44px,6vw,92px)}.documents-kicker{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:9px;font-weight:650}.documents h2{letter-spacing:-.045em;max-width:800px;margin:22px 0 clamp(42px,6vw,76px);font-family:Georgia,Times New Roman,serif;font-size:clamp(40px,5vw,82px);font-style:italic;font-weight:400;line-height:.98}.document-links{border-top:1px solid #292929}.document-links a{color:#aaa;letter-spacing:.08em;border-bottom:1px solid #292929;justify-content:space-between;gap:24px;padding:22px 0;font-size:12px;transition:color .18s,padding .18s;display:flex}.document-links a:hover{color:var(--paper);padding-left:8px}.document-links strong{color:var(--accent);letter-spacing:.16em;font-size:9px}.contact{flex-direction:column;justify-content:space-between;min-height:80svh;padding-bottom:42px;display:flex}.contact-grid{grid-template-columns:1fr 1fr;gap:clamp(42px,8vw,130px);padding:clamp(52px,8vw,120px) 0;display:grid}.contact-grid>p{color:#b0b0b0;max-width:620px;margin:0;font-size:clamp(18px,2vw,30px);line-height:1.6}.contact-meta{flex-direction:column;align-items:flex-start;gap:17px;display:flex}.contact-meta a{border-bottom:1px solid var(--accent);font-family:Georgia,Times New Roman,serif;font-size:clamp(22px,3vw,46px);font-style:italic}.contact-meta span{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:10px}.site-footer{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;border-top:1px solid #242424;justify-content:space-between;gap:24px;padding-top:20px;font-size:9px;display:flex}@keyframes text-reveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (max-width:760px){.hero{min-height:100svh;padding-bottom:64px}.hero-scene{height:100svh;position:relative;inset:auto}.identity{width:calc(100% - 44px);top:22px;left:22px}.role{letter-spacing:.11em;gap:8px;margin-top:10px;font-size:8px}.role:before{width:20px}.identity nav{gap:16px;margin-top:15px;font-size:9px}.portrait-stage{width:128vw;top:105px;bottom:45px;left:-14vw}.portrait-base{opacity:0}.headline-wrap{width:calc(100% - 44px);bottom:42px;right:22px}.headline{font-size:clamp(43px,13vw,61px)}.headline-wrap small{letter-spacing:.12em;margin-top:14px;font-size:8px}.hero-index{display:none}.hero-chat{width:100%;max-height:none;margin:0;padding:0 22px;position:relative;top:auto;bottom:auto;left:auto}.chat-scroll-region{overflow-y:visible}.chat-transcript{max-height:240px}.portfolio-section{padding:92px 22px}.section-heading{grid-template-columns:1fr;gap:28px;padding-bottom:46px}.section-heading h2{font-size:clamp(47px,14vw,68px)}.about-grid{grid-template-columns:1fr;gap:60px;padding-top:54px}.education{grid-template-columns:1fr;margin-top:58px}.education h3,.education p:not(.education-label),.education time{grid-column:1}.education-label{margin-bottom:12px}.capability{grid-template-columns:1fr;gap:12px}.project-list{padding-top:54px}.project-card,.project-card:nth-child(2n){grid-template-columns:1fr;gap:32px;padding:62px 0}.project-card:nth-child(2n) .project-media,.project-card:nth-child(2n) .project-copy{order:initial}.project-reader-chevron svg{width:36px;height:60px}.project-reader-chevron--previous{left:-6px}.project-reader-chevron--next{right:-6px}.project-reader-meta{margin-top:9px}.project-number{margin-bottom:16px}.project-copy h3{margin-top:12px}.project-summary{margin-top:22px}.documents{width:calc(100% - 44px);margin:22px auto;padding:40px 22px}.contact{min-height:100svh;padding-bottom:28px}.contact-grid{grid-template-columns:1fr;gap:42px;padding:54px 0 88px}.site-footer{flex-direction:column}}@media (max-width:760px) and (max-height:680px){.identity{top:12px}.portrait-stage{top:80px;bottom:18px}.headline-wrap{bottom:18px}.headline{font-size:clamp(38px,12vw,52px)}.headline-wrap small{margin-top:8px}}@media (prefers-reduced-motion:reduce){.identity,.headline,.hero-index{animation:none}.project-reader [data-page-image],.project-reader [data-reader-status],.project-reader-chevron,.chat-transcript,.chat-status,.chat-recommendation,.chat-send{transition:none}.chat-cursor{animation:none}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
