:root{--color-bg: #ffffff;--color-bg-alt: #f6f7f9;--color-text: #111111;--color-muted: #4f4f4f;--color-border: #d7d7d7;--color-accent: #0057ff;--shadow-subtle: 0 8px 30px rgba(0, 0, 0, .04);--space-8: 8px;--space-16: 16px;--space-24: 24px;--space-32: 32px;--space-40: 40px;--space-56: 56px;--space-72: 72px;--transition-fast: .22s ease;--shell-width: 1280px;--shell-gutter: clamp(16px, 3vw, 40px)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--color-bg)}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:Inter,Helvetica Neue,Nimbus Sans,sans-serif;line-height:1.55;text-rendering:geometricPrecision}a{color:inherit}img{max-width:100%;display:block}.skip-link{position:absolute;top:-40px;left:var(--shell-gutter);z-index:100;background:var(--color-accent);color:#fff;padding:var(--space-8) var(--space-16)}.skip-link:focus-visible{top:var(--space-16)}.site-shell{width:min(var(--shell-width),calc(100% - (2 * var(--shell-gutter))));margin:0 auto}.site-header{position:sticky;top:0;z-index:20;background:#ffffffed;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--color-border)}.header-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;-moz-column-gap:var(--space-24);column-gap:var(--space-24);min-height:72px}.brand{grid-column:span 4;margin:0;font-size:.75rem;font-weight:700;letter-spacing:.18em}.site-nav{grid-column:span 8;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-24)}.text-link{position:relative;display:inline-block;font-size:.9rem;font-weight:500;letter-spacing:.01em;color:var(--color-text);text-decoration:none;transition:color var(--transition-fast)}.text-link:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:var(--color-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-fast)}.text-link:hover,.text-link:focus-visible{color:var(--color-accent)}.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(1)}.strong-link{font-weight:600;letter-spacing:0}.text-link:focus-visible,button:focus-visible,.skip-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.section{padding:var(--space-72) 0;border-bottom:1px solid var(--color-border)}.section-alt{background:var(--color-bg-alt)}.layout-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));-moz-column-gap:var(--space-24);column-gap:var(--space-24);row-gap:var(--space-24)}.col-1{grid-column:span 1}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-10{grid-column:span 10}.col-11{grid-column:span 11}.col-12{grid-column:span 12}.hero{padding-top:clamp(72px,11vw,136px)}.hero-grid{align-items:end;row-gap:var(--space-32)}.hero-profile{margin:0;display:flex;justify-content:flex-end;align-items:flex-start}.hero-profile img{width:min(100%,248px);aspect-ratio:1;-o-object-fit:cover;object-fit:cover;border-radius:0;border:1px solid var(--color-border);padding:0;background:var(--color-bg);box-shadow:12px 12px #e8ecf3}.hero-title{margin:0;font-family:Shrikhand,Inter,Helvetica Neue,Nimbus Sans,sans-serif;font-size:clamp(3.5rem,8.4vw,8rem);line-height:.96;font-weight:400;text-transform:lowercase}.hero-facts{margin:0;display:grid;gap:var(--space-16);align-content:start}.hero-facts div{border-top:1px solid var(--color-border);padding-top:var(--space-8)}.hero-facts dt{margin:0;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--color-muted)}.hero-facts dd{margin:var(--space-8) 0 0;font-size:.95rem}.hero-actions{display:grid;justify-items:start;align-content:start;gap:var(--space-16);padding-left:var(--space-16);border-left:1px solid var(--color-border)}.photo-wheel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;isolation:isolate;overflow:hidden;background:transparent;animation:photo-wheel-overlay-in .42s cubic-bezier(.16,1,.3,1) both}.photo-wheel-overlay:before{content:"";position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;z-index:0;pointer-events:none;background:radial-gradient(circle at 20% 22%,#0057ff1a,#0057ff00 46%),radial-gradient(circle at 78% 72%,#11111112,#1110 52%),linear-gradient(128deg,#ffffff05,#0057ff0b 45%,#ffffff05)}.photo-wheel-overlay:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(17,17,17,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,17,.08) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:radial-gradient(circle at 50% 50%,rgba(0,0,0,.9) 0%,rgba(0,0,0,0) 78%);mask-image:radial-gradient(circle at 50% 50%,#000000e6,#0000 78%)}.photo-wheel-overlay.is-closing{animation:photo-wheel-overlay-out .76s cubic-bezier(.65,0,.35,1) both}.photo-wheel-stage{width:min(94vw,1320px);height:min(90vh,860px);margin:5vh auto 0;position:relative;z-index:2;--pointer-x: 0;--pointer-y: 0;animation:photo-wheel-stage-in .56s cubic-bezier(.22,1,.36,1) both}.photo-wheel-overlay.is-closing .photo-wheel-stage{animation:photo-wheel-stage-out .76s cubic-bezier(.65,0,.35,1) both}.photo-wheel-constellation{position:relative;width:100%;height:100%;transform-style:preserve-3d}.photo-wheel-card{position:absolute;top:var(--y);left:var(--x);margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.28);background:#0c0c106b;box-shadow:0 26px 54px #0000006b;transform:translate(-50%,-50%) translate3d(calc(var(--pointer-x) * var(--depth) * 44px),calc(var(--pointer-y) * var(--depth) * 30px),calc(var(--depth) * 120px)) rotate(var(--rotation));transition:transform .18s linear;animation:photo-wheel-card-in .72s cubic-bezier(.22,1,.36,1) both,photo-wheel-card-float 8s ease-in-out infinite;animation-delay:var(--stagger),calc(var(--stagger) + .76s);will-change:transform}.photo-wheel-card:hover{transform:translate(-50%,-50%) translate3d(calc(var(--pointer-x) * var(--depth) * 54px),calc(var(--pointer-y) * var(--depth) * 36px),calc(var(--depth) * 160px)) rotate(var(--rotation)) scale(1.02)}.photo-wheel-overlay.is-closing .photo-wheel-card{animation:photo-wheel-card-out .62s cubic-bezier(.65,0,.35,1) both}.photo-wheel-card--large{width:294px}.photo-wheel-card--medium{width:238px}.photo-wheel-card--small{width:190px}.photo-wheel-card img{width:100%;height:auto}@keyframes photo-wheel-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes photo-wheel-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes photo-wheel-stage-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes photo-wheel-stage-out{0%{opacity:1;transform:scale(1);filter:blur(0)}to{opacity:0;transform:scale(.7);filter:blur(12px)}}@keyframes photo-wheel-card-in{0%{opacity:0;filter:blur(12px);transform:translate(-50%,-50%) translateZ(0) rotate(calc(var(--rotation) - 10deg)) scale(.72)}to{opacity:1;filter:blur(0);transform:translate(-50%,-50%) translate3d(calc(var(--pointer-x) * var(--depth) * 44px),calc(var(--pointer-y) * var(--depth) * 30px),calc(var(--depth) * 120px)) rotate(var(--rotation))}}@keyframes photo-wheel-card-out{0%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) translate3d(calc(var(--pointer-x) * var(--depth) * 44px),calc(var(--pointer-y) * var(--depth) * 30px),calc(var(--depth) * 120px)) rotate(var(--rotation))}to{opacity:0;filter:blur(15px);transform:translate(-50%,-50%) translateZ(0) rotate(calc(var(--rotation) - 12deg)) scale(.18)}}@keyframes photo-wheel-card-float{0%{transform:translate(-50%,-50%) translate3d(calc(var(--pointer-x) * var(--depth) * 44px),calc(var(--pointer-y) * var(--depth) * 30px),calc(var(--depth) * 120px)) rotate(var(--rotation)) translateY(0)}50%{transform:translate(-50%,-50%) translate3d(calc(var(--pointer-x) * var(--depth) * 44px),calc(var(--pointer-y) * var(--depth) * 30px),calc(var(--depth) * 120px)) rotate(var(--rotation)) translateY(calc(var(--depth) * -8px))}to{transform:translate(-50%,-50%) translate3d(calc(var(--pointer-x) * var(--depth) * 44px),calc(var(--pointer-y) * var(--depth) * 30px),calc(var(--depth) * 120px)) rotate(var(--rotation)) translateY(0)}}.section-intro{margin-bottom:var(--space-32)}.section-title{margin:0;font-family:Shrikhand,Inter,Helvetica Neue,Nimbus Sans,sans-serif;font-size:clamp(1.75rem,3vw,2rem);line-height:1.15;font-weight:400}.project-list{margin:0;padding:0;list-style:none}.project-item{border-top:1px solid var(--color-border);padding-top:var(--space-40);padding-bottom:var(--space-40)}.project-item:last-child{padding-bottom:var(--space-16)}.project-grid{row-gap:var(--space-24)}.project-number{margin:0;font-size:1.35rem;font-weight:600;color:var(--color-accent)}.project-header{display:grid;gap:var(--space-24);align-content:start}.project-title{margin:0;font-size:clamp(1.5rem,2.4vw,2.15rem);line-height:1.15}.project-meta{margin:0;display:grid;gap:var(--space-16)}.project-meta div{border-top:1px solid var(--color-border);padding-top:var(--space-8)}.project-meta dt{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;color:var(--color-muted)}.project-meta dd{margin:var(--space-8) 0 0;font-size:.95rem}.project-links{display:flex;flex-wrap:wrap;gap:var(--space-24)}.project-visual{position:relative;min-height:232px;border:1px solid var(--color-border);background:linear-gradient(160deg,#fff,#edf2ff);box-shadow:var(--shadow-subtle);overflow:hidden}.project-visual-media{width:100%;height:100%;min-height:232px;-o-object-fit:cover;object-fit:cover;display:block}.project-visual-badge{position:absolute;top:12px;right:12px;padding:4px 8px;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:#111111b3;border:1px solid rgba(255,255,255,.28)}.project-visual-placeholder{min-height:232px;padding:var(--space-24);display:flex;flex-direction:column;justify-content:flex-end;gap:var(--space-8)}.project-visual-placeholder p{margin:0}.project-visual-placeholder p:first-child{font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent)}.project-visual-placeholder p:last-child{color:var(--color-muted);max-width:28ch}.project-block{border-top:1px solid var(--color-border);padding-top:var(--space-16)}.project-block h4{margin:0 0 var(--space-8);font-size:.75rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted)}.project-block p{margin:0;color:var(--color-text)}.experience-list{margin:0;padding:0;list-style:none}.experience-item{border-top:1px solid var(--color-border);padding-top:var(--space-24);padding-bottom:var(--space-24)}.experience-index,.experience-date{margin:0;font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}.experience-content h3{margin:0;font-size:1.2rem}.experience-content p{margin:var(--space-8) 0 0;color:var(--color-muted);max-width:68ch}.capability-grid{row-gap:var(--space-32)}.capability-group{border-top:1px solid var(--color-border);padding-top:var(--space-16)}.capability-group h3{margin:0;font-size:1.05rem;line-height:1.3}.capability-group ul{margin:var(--space-16) 0 0;padding:0;list-style:none;display:grid;gap:var(--space-8)}.capability-group li{margin:0;color:var(--color-muted)}.article-list{margin:0;padding:0;list-style:none}.article-item{border-top:1px solid var(--color-border);padding-top:var(--space-24);padding-bottom:var(--space-24)}.article-index{margin:0;font-size:.85rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}.article-content{display:grid;gap:var(--space-8)}.article-date{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.13em;color:var(--color-muted)}.article-content h3{margin:0;font-size:1.2rem;line-height:1.35}.article-content p{margin:0;color:var(--color-muted);max-width:72ch}.contact-grid{row-gap:var(--space-32)}.contact-content{display:grid;gap:var(--space-16)}.contact-content p{margin:0;color:var(--color-muted)}.contact-links{display:flex;flex-wrap:wrap;gap:var(--space-24)}.site-footer{padding:var(--space-24) 0 var(--space-40)}.footer-copy{margin:0;color:var(--color-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.1em}@media (max-width: 1080px){.hero-title{max-width:100%}.hero-profile{justify-content:flex-start}.hero-profile img{width:180px}.site-nav{gap:var(--space-16)}}@media (max-width: 1023px){.photo-wheel-overlay{display:none}}@media (min-width: 1024px){.hero-profile{cursor:pointer}}@media (max-width: 880px){.layout-grid,.header-grid{grid-template-columns:repeat(6,minmax(0,1fr));-moz-column-gap:var(--space-16);column-gap:var(--space-16)}.brand,.site-nav,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{grid-column:span 6}.site-nav{justify-content:flex-start;flex-wrap:wrap;row-gap:var(--space-8);padding-bottom:var(--space-16)}.hero-actions{display:flex;flex-wrap:wrap;padding-left:0;padding-top:var(--space-16);border-left:none;border-top:1px solid var(--color-border)}.project-number,.experience-index,.article-index{color:var(--color-accent)}.project-visual{min-height:180px}}@media (max-width: 560px){:root{--shell-gutter: 16px}.section{padding:var(--space-56) 0}.layout-grid,.header-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.brand,.site-nav,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{grid-column:span 4}.hero-title{font-size:clamp(2.5rem,13vw,3.25rem)}.hero-profile img{width:132px}.hero-actions,.project-links,.contact-links{gap:var(--space-16)}.footer-copy{font-size:.74rem}}
