:root { --ink:#151515; --muted:#5d5d5a; --paper:#fbfbfa; --line:#d9d9d5; --blank:#e9e9e5; --side:clamp(1.25rem,3.1vw,3.5rem); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--paper); color:var(--ink); font-family:"Farizy New","Helvetica Neue",Arial,sans-serif; line-height:1.25; } a { color:inherit; text-decoration:none; } button { font:inherit; }
.site-header { position:sticky; top:0; z-index:100; background:rgba(251,251,250,.92); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); display:flex; justify-content:space-between; align-items:baseline; padding:1rem var(--side); border-bottom:1px solid var(--line); }.wordmark { font-size:1.05rem; font-weight:500; letter-spacing:-.005em; transition:font-style .15s ease, color .15s ease; }
.wordmark:hover, .wordmark:focus-visible { font-style:italic; }
.discipline,.eyebrow { margin:0; color:var(--muted); font-size:.68rem; letter-spacing:.07em; text-transform:uppercase; }
.intro { min-height:min(65vw,44rem); padding:clamp(1.5rem,3vw,3.5rem) var(--side) 3rem; display:flex; flex-direction:column; align-items:start; }.intro h1 { margin:auto 0; font-size:clamp(2.7rem,7.1vw,7.75rem); font-weight:400; line-height:.92; letter-spacing:-.075em; }.intro-link { border-bottom:1px solid var(--ink); padding-bottom:.25rem; font-size:.84rem; }
.projects { padding:0 var(--side); }.project { padding:.8rem 0 2.4rem; border-top:1px solid var(--line); }.project-trigger { width:100%; padding:0; border:0; background:none; cursor:pointer; text-align:left; }.project-placeholder { position:relative; display:block; width:100%; margin:0; padding:0; overflow:hidden; background:var(--blank); isolation:isolate; transition:transform .4s cubic-bezier(0.25,1,0.5,1); }.project-placeholder img { display:block; width:100%; height:auto; }.project-trigger:hover .project-placeholder,.project-trigger:focus-visible .project-placeholder { transform:scale(.998); }.project-trigger:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }.project-caption { display:flex; justify-content:space-between; gap:1rem; padding-top:.8rem; font-size:.85rem; }.project-caption strong { font-weight:500; }.project-caption span { color:var(--muted); }
.about { margin-top:clamp(4rem,12vw,12rem); padding:1rem var(--side) clamp(5rem,11vw,10rem); border-top:1px solid var(--line); }.about-content { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(16rem,.75fr); gap:12%; margin-top:clamp(6rem,15vw,14rem); }.about-statement { max-width:12ch; margin:0; font-size:clamp(2rem,4.8vw,5rem); line-height:.95; letter-spacing:-.065em; }.about-detail { max-width:30ch; color:var(--muted); }.about-detail p { margin-top:0; }.about-detail a { display:inline-block; margin-top:2.5rem; padding-bottom:.2rem; color:var(--ink); border-bottom:1px solid var(--ink); }
footer { display:flex; justify-content:space-between; align-items:baseline; padding:1rem var(--side); border-top:1px solid var(--line); font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
.footer-contact { display:flex; gap:1.5rem; color:var(--muted); text-transform:none; font-size:.78rem; letter-spacing:0; }
.footer-contact a { color:inherit; transition:color .15s ease; }
.footer-contact a:hover { color:var(--ink); }
@media (max-width:640px) {
  .footer-contact { flex-direction:column; gap:.2rem; font-size:.74rem; }
}
.project-dialog { width:100%; max-width:none; min-height:100dvh; padding:0; border:0; background:var(--paper); color:var(--ink); }.project-dialog::backdrop { background:var(--paper); }.dialog-header { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; padding:1rem var(--side); border-bottom:1px solid var(--line); background:var(--paper); }.close-dialog { padding:0; border:0; background:none; cursor:pointer; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; }.dialog-hero { min-height:min(62vw,48rem); margin:var(--side); display:grid; place-items:center; background:var(--blank); color:#898985; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }.dialog-project-info { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin:0 var(--side); padding-bottom:1rem; border-bottom:1px solid var(--line); }.dialog-project-info h2 { margin:0; font-size:clamp(2.5rem,7vw,7rem); font-weight:400; line-height:.9; letter-spacing:-.075em; }.dialog-project-info dl { display:flex; gap:3rem; margin:0; font-size:.75rem; }.dialog-project-info dt { margin-bottom:.25rem; color:var(--muted); }.dialog-project-info dd { margin:0; }.dialog-description { max-width:52rem; margin:clamp(4rem,10vw,10rem) var(--side); font-size:clamp(1.4rem,2.4vw,2.7rem); line-height:1.05; letter-spacing:-.04em; }.dialog-description p { margin:0 0 1.5em; }.dialog-gallery { display:grid; grid-template-columns:1fr 1fr; gap:var(--side); margin:var(--side); }.dialog-gallery div { display:grid; aspect-ratio:4/3; place-items:center; background:var(--blank); color:#898985; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
@media (max-width:640px) { .header-nav { gap:1rem; font-size:.6rem; }.intro { min-height:78svh; }.intro h1 { font-size:clamp(2.7rem,12vw,4.4rem); }.projects { padding:0 var(--side); }.project { padding-bottom:4.5rem; }.project-caption { font-size:.75rem; }.about-content { display:block; margin-top:5rem; }.about-detail { margin-top:4rem; font-size:.85rem; }.dialog-hero { min-height:55svh; }.dialog-project-info { display:block; }.dialog-project-info dl { gap:2.5rem; margin-top:2rem; }.dialog-description { margin-top:4.5rem; font-size:1.4rem; }.dialog-gallery { grid-template-columns:1fr; } }

.header-nav { display:flex; gap:2rem; color:var(--muted); font-size:.68rem; letter-spacing:.07em; text-transform:uppercase; }
.header-nav a { color:var(--ink); transition:font-style .15s ease, color .15s ease; }
.header-nav a:hover, .header-nav a:focus-visible { font-style:italic; }
.project-back { color:var(--muted); font-size:.68rem; letter-spacing:.07em; text-transform:uppercase; transition:font-style .15s ease, color .2s ease; }
.project-back:hover,.project-back:focus-visible { color:var(--ink); font-style:italic; }
.projects { max-width:90rem; margin:0 auto; padding:0 calc(var(--side) * 1.8); }
.project { padding:.8rem 0 clamp(4.5rem,10vw,10rem); border-top:0; }

.identity { display:flex; align-items:baseline; gap:.7rem; }
.discipline { color:var(--muted); font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
.projects { max-width:72rem; padding:0 var(--side); }
.project { padding:0 0 clamp(7rem,14vw,15rem); }
.project-placeholder::after { content:""; position:absolute; inset:0; z-index:1; background:rgba(255,255,255,.38); opacity:0; transition:opacity .35s ease; pointer-events:none; }
.project-hover-title { position:absolute; inset:50% auto auto 50%; z-index:2; width:90%; max-width:90%; color:var(--ink); font-family:"Helvetica Neue",Arial,sans-serif; font-size:clamp(1.4rem,2.5vw,2.75rem); font-weight:400; line-height:1.05; letter-spacing:-.02em; text-align:center; opacity:0; transform:translate(-50%,calc(-50% + .25rem)); transition:opacity .35s ease,transform .35s ease; pointer-events:none; }
.project-trigger:hover .project-placeholder::after,.project-trigger:focus-visible .project-placeholder::after { opacity:1; }
.project-trigger:hover .project-hover-title,.project-trigger:focus-visible .project-hover-title { opacity:1; transform:translate(-50%,-50%); }
@media (max-width:640px) { .projects { padding:0 var(--side); }.project { padding-bottom:7rem; }.discipline { font-size:.6rem; } }

/* Page-specific layout */
.projects { padding-top:clamp(4rem,9vw,9rem); }
.about-main { min-height:calc(100svh - 6rem); padding:clamp(2rem,5vw,6rem) var(--side) clamp(6rem,12vw,12rem); }
.about-label { margin:0; color:var(--muted); font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
.about-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr); gap:10%; align-items:start; margin-top:clamp(5rem,12vw,12rem); }
.about-copy { max-width:18ch; font-size:clamp(2rem,4.2vw,4.75rem); line-height:.96; letter-spacing:-.065em; }
.about-copy p { margin:0 0 1.15em; text-wrap:pretty; }
.about-image { margin:0; background:var(--blank); }
.about-image img { display:block; width:100%; height:auto; }
@media (max-width:640px) { .projects { padding-top:4rem; }.about-layout { display:block; margin-top:4.5rem; }.about-copy { max-width:16ch; font-size:clamp(2rem,9.5vw,3.4rem); }.about-image { margin-top:4rem; } }

/* About page: comfortable reading scale */
.about-copy { max-width:31rem; font-size:clamp(1.2rem,1.65vw,1.7rem); line-height:1.18; letter-spacing:-.025em; text-wrap:pretty; }
@media (max-width:640px) { .about-copy { max-width:24rem; font-size:1.2rem; line-height:1.22; } }

/* Final About refinements */
.discipline { font-size:.57rem; }
.about-main { padding-top:clamp(1.25rem,2.5vw,2.5rem); }
.about-layout { margin-top:clamp(2.5rem,5vw,5rem); }
.about-aside { display:flex; flex-direction:column; gap:1.25rem; }
.about-contact { margin:0; color:var(--muted); font-size:.85rem; line-height:1.45; letter-spacing:-.015em; }
.about-contact p { margin:0; }
.prizes { margin-top:4rem; max-width:34rem; color:var(--muted); font-size:.78rem; line-height:1.38; letter-spacing:0; }
.prizes h2 { margin:0 0 1rem; color:var(--ink); font-size:.68rem; font-weight:500; letter-spacing:.07em; text-transform:uppercase; }
.prizes ul { margin:0; padding:0; list-style:none; }
.prizes li { padding:.45rem 0; }
@media (max-width:640px) { .discipline { font-size:.52rem; }.about-main { padding-top:1.25rem; }.about-layout { margin-top:2.5rem; }.about-aside { margin-top:4rem; gap:1rem; }.about-contact { font-size:.82rem; }.prizes { margin-top:3rem; font-size:.74rem; } }

/* Project page: text first, then image sequence */
.project-main { padding:clamp(1.25rem,3vw,2.5rem) var(--side) clamp(4rem,8vw,8rem); }
.project-introduction { max-width:72rem; margin:0 auto; }
.project-kicker { margin:0; color:var(--muted); font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
.project-introduction h1 { margin:clamp(1.25rem,2.5vw,2.5rem) 0 0; font-size:clamp(1.75rem,3.2vw,3.25rem); font-weight:500; line-height:.98; letter-spacing:-.02em; }
.project-text { display:grid; grid-template-columns:minmax(16rem,32rem) auto; gap:clamp(2.5rem,5vw,5rem); align-items:end; margin-top:clamp(1.5rem,3vw,3rem); }
.project-text p { max-width:32rem; margin:0; font-size:clamp(1.15rem,1.55vw,1.55rem); line-height:1.2; letter-spacing:-.02em; text-wrap:pretty; }
.project-text p strong { display:block; margin-bottom:.75rem; font-weight:500; }
.project-text p span { display:block; }
.project-text dl { display:flex; gap:3rem; margin:0; font-size:.72rem; }.project-text dt { margin-bottom:.3rem; color:var(--muted); }.project-text dd { margin:0; }
.project-gallery { display:flex; flex-direction:column; gap:clamp(.75rem,1.5vw,1.5rem); width:100%; max-width:90rem; margin:clamp(3.5rem,7vw,7rem) auto 0; }
.project-large-image { display:block; margin:0; width:100%; overflow:hidden; background:var(--blank); }
.project-large-image img { display:block; width:100%; height:auto; }
.project-detail-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:clamp(.75rem,1.5vw,1.5rem); width:100%; margin:0; }
.detail-image { display:block; margin:0; width:100%; overflow:hidden; background:var(--blank); }
.detail-image img { display:block; width:100%; height:auto; }
@media (max-width:640px) {
  .project-main { padding-top:1.25rem; }
  .project-introduction h1 { margin-top:1rem; font-size:clamp(1.5rem,6.5vw,2.2rem); font-weight:500; }
  .project-text { display:block; margin-top:1.5rem; }
  .project-text p { font-size:1.05rem; line-height:1.25; }
  .project-text dl { margin-top:1.5rem; gap:2rem; }
  .project-gallery { margin-top:3rem; gap:.85rem; }
  .project-detail-grid { grid-template-columns:1fr; gap:.85rem; }
}

