.accordion-gallery{gap:var(--ag-gap);perspective:1400px;width:100%;display:flex;overflow:hidden}.ag-panel{border-radius:var(--ag-radius);cursor:pointer;min-width:0;transform-style:preserve-3d;transform-origin:50%;will-change:flex-grow,transform;background:#0a0713;outline:none;flex:1 1 0;text-decoration:none;display:block;position:relative;overflow:hidden;box-shadow:0 10px 30px -18px #000}.ag-panel:focus-visible{box-shadow:0 0 0 2px #fff,0 10px 30px -18px #000}.ag-panel__frame{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.ag-panel__media{filter:grayscale();will-change:transform,filter;width:150%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ag-panel__media img{object-fit:cover;width:100%;height:100%;display:block}.ag-panel__overlay{background:linear-gradient(#0000 35%,#060010e0),#06001047;position:absolute;inset:0}.ag-panel__label{z-index:2;align-items:center;gap:12px;display:flex;position:absolute;bottom:20px;left:20px;right:20px}.ag-panel__bar{opacity:0;background:#fff;border-radius:3px;width:3px;height:28px;transition:opacity .3s}.ag-panel__text{color:#fff;opacity:0;white-space:nowrap;font-size:clamp(1rem,1.4vw,1.4rem);font-weight:600;transition:opacity .3s,transform .3s;transform:translate(-14px)}.ag-panel--active .ag-panel__bar,.ag-panel--active .ag-panel__text{opacity:1;transform:none}@media (width<=700px){.accordion-gallery{perspective:none;flex-direction:column;height:520px!important}.ag-panel{min-height:84px;transform:none!important}.ag-panel--active{flex-grow:4!important}.ag-panel__media{width:100%;height:150%}.ag-panel__text{font-size:18px}}:root{--void-black:#000;--deep-charcoal:#0d0c12;--graphite:#1e1c28;--soft-black:#060608;--deep-violet:#181522;--arch-purple:#29233d;--cool-silver:#b0aeb6;--pure-white:#fff;--bg-primary:var(--soft-black);--bg-secondary:var(--deep-charcoal);--bg-surface:var(--graphite);--border-line:#24222e;--border-line-subtle:#181622;--text-primary:var(--pure-white);--text-secondary:var(--cool-silver);--text-muted:#6c6a76;--accent-purple:var(--arch-purple);--accent-glow:#29233d66;--font-display:"Space Grotesk", -apple-system, sans-serif;--font-body:"Inter", -apple-system, sans-serif;--font-mono:"IBM Plex Mono", "DM Mono", monospace;--header-height:84px;--container-pad:5vw}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg-primary);scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);line-height:1.6;transition:background-color .3s,color .3s;overflow-x:hidden}img{max-width:100%;height:auto;display:block}button,a,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{text-decoration:none}:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px}.logo-lockup{color:var(--text-primary);-webkit-user-select:none;user-select:none;align-items:center;gap:14px;display:flex}.ivo-monogram{color:var(--text-primary);flex-shrink:0;display:block}.logo-text{flex-direction:column;display:flex}.logo-studio{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-primary);font-size:11px;font-weight:600}.logo-sub{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-muted);font-size:9px}.logo-link,.logo-btn{text-align:left;align-items:center;display:inline-flex}.architectural-grid-overlay{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.grid-lines{background-image:linear-gradient(90deg, var(--border-line-subtle) 1px, transparent 1px), linear-gradient(0deg, var(--border-line-subtle) 1px, transparent 1px);opacity:.25;background-size:80px 80px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000 20%,#0000 80%);mask-image:radial-gradient(circle at 50% 40%,#000 20%,#0000 80%)}.crop-mark{border-color:var(--border-line);width:14px;height:14px;position:absolute}.crop-mark.top-left{border-top:1px solid;border-left:1px solid;top:20px;left:20px}.crop-mark.top-right{border-top:1px solid;border-right:1px solid;top:20px;right:20px}.crop-mark.bottom-left{border-bottom:1px solid;border-left:1px solid;bottom:20px;left:20px}.crop-mark.bottom-right{border-bottom:1px solid;border-right:1px solid;bottom:20px;right:20px}.datum-markers{font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-muted);font-size:9px;position:absolute;inset:0}.datum-coord.top-coord{position:absolute;top:25px;left:50px}.datum-coord.bottom-coord{position:absolute;bottom:25px;left:50px}.datum-axis.x-axis{position:absolute;top:25px;right:50px}.datum-axis.y-axis{position:absolute;bottom:25px;right:50px}.site-header{width:100%;height:var(--header-height);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border-line);z-index:100;background:#060608d9;transition:background-color .3s;position:sticky;top:0}.header-inner{height:100%;padding:0 var(--container-pad);justify-content:space-between;align-items:center;display:flex}.desktop-nav{align-items:center;gap:32px;display:flex}.nav-link{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);align-items:center;gap:8px;padding:8px 0;font-size:11px;transition:color .2s;display:inline-flex;position:relative}.nav-index{color:var(--text-muted);font-size:9px}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-link.active:after{content:"";background:var(--text-primary);width:100%;height:1px;position:absolute;bottom:0;left:0}.header-utilities{align-items:center;gap:16px;display:flex}.mobile-menu-btn{color:var(--text-primary);padding:8px;display:none}.mobile-nav-drawer{top:var(--header-height);background:var(--bg-primary);border-bottom:1px solid var(--border-line);opacity:0;pointer-events:none;z-index:99;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s;position:fixed;bottom:0;left:0;right:0;transform:translateY(-100%)}.mobile-nav-drawer.open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-nav-content{padding:40px var(--container-pad);height:calc(100vh - var(--header-height));flex-direction:column;justify-content:space-between;display:flex}.mobile-nav-header{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-muted);border-bottom:1px solid var(--border-line);justify-content:space-between;padding-bottom:16px;font-size:11px;display:flex}.mobile-nav-links{flex-direction:column;gap:24px;display:flex}.mobile-nav-link{font-family:var(--font-display);color:var(--text-secondary);text-align:left;align-items:center;gap:16px;font-size:28px;font-weight:500;display:flex}.mobile-nav-idx{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.mobile-nav-link.active,.mobile-nav-link:hover{color:var(--text-primary)}.mobile-nav-footer{font-family:var(--font-mono);color:var(--text-muted);border-top:1px solid var(--border-line);padding-top:20px;font-size:11px}.hero-section{min-height:calc(100vh - var(--header-height));padding:10vh var(--container-pad) 8vh;border-bottom:1px solid var(--border-line);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.three-hero-wrapper,.hero-silk-wrapper{pointer-events:none;z-index:0;position:absolute;inset:0}.hero-silk-wrapper{opacity:.85}.three-hero-canvas{width:100%;height:100%;display:block}.hero-content{z-index:2;max-width:1300px;position:relative}.hero-eyebrow{font-family:var(--font-mono);letter-spacing:.18em;color:var(--cool-silver);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;font-size:11px;display:flex}.eyebrow-left{align-items:center;gap:12px;display:flex}.hero-atmosphere-switch{border:1px solid var(--border-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:#060608b3;gap:2px;padding:2px;display:inline-flex}.atmo-btn{font-family:var(--font-mono);letter-spacing:.12em;color:var(--text-muted);align-items:center;gap:6px;padding:4px 10px;font-size:9px;transition:all .2s;display:inline-flex}.atmo-btn:hover{color:var(--text-primary)}.atmo-btn.active{background:var(--bg-surface);color:var(--text-primary)}.hero-title{font-family:var(--font-display);letter-spacing:-.06em;color:var(--text-primary);margin-bottom:48px;font-size:clamp(52px,8.5vw,136px);font-weight:500;line-height:.9}.hero-title em{color:var(--text-secondary);font-style:normal}.hero-lower-grid{grid-template-columns:1fr 340px;align-items:end;gap:6vw;display:grid}.hero-copy{color:var(--text-secondary);max-width:600px;margin-bottom:36px;font-size:clamp(16px,1.4vw,20px);line-height:1.6}.hero-cta-group{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.hero-action-btn{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;padding:14px 26px;font-size:12px;transition:all .25s;display:inline-flex}.hero-action-btn.primary{background:var(--text-primary);color:var(--bg-primary)}.hero-action-btn.primary:hover{background:var(--text-secondary)}.hero-action-btn.secondary{border:1px solid var(--border-line);color:var(--text-primary)}.hero-action-btn.secondary:hover{border-color:var(--text-primary)}.hero-metrics{border-left:1px solid var(--border-line);flex-direction:column;gap:20px;padding-left:28px;display:flex}.metric-item{flex-direction:column;display:flex}.metric-val{font-family:var(--font-display);color:var(--text-primary);font-size:26px;font-weight:600}.metric-lbl{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);font-size:9px}.section-header-rule{border-top:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-muted);text-transform:uppercase;justify-content:space-between;align-items:center;padding:24px 0 16px;font-size:11px;display:flex}.rule-label{color:var(--text-secondary)}.approach-section{padding:10vh var(--container-pad);border-bottom:1px solid var(--border-line)}.approach-grid{grid-template-columns:38% 1fr;gap:6vw;margin-top:40px;display:grid}.approach-title-col h2{font-family:var(--font-display);letter-spacing:-.05em;margin-bottom:24px;font-size:clamp(38px,4.5vw,68px);font-weight:500;line-height:.95}.approach-title-col h2 span{color:var(--text-secondary)}.approach-lead{color:var(--text-secondary);font-size:18px;line-height:1.6}.approach-pillars{flex-direction:column;gap:32px;display:flex}.pillar-card{border-top:1px solid var(--border-line);padding-top:20px}.pillar-num{font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-muted);margin-bottom:8px;font-size:11px}.pillar-card h3{font-family:var(--font-display);margin-bottom:10px;font-size:22px;font-weight:500}.pillar-card p{color:var(--text-secondary);max-width:580px;font-size:15px;line-height:1.6}.spotlight-section{padding:10vh var(--container-pad);border-bottom:1px solid var(--border-line)}.spotlight-card{grid-template-columns:1.1fr 1fr;align-items:center;gap:5vw;margin-top:40px;display:grid}.spotlight-media{background:var(--bg-surface);cursor:pointer;height:520px;position:relative;overflow:hidden}.spotlight-img{object-fit:cover;filter:grayscale(.85)contrast(1.05);width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1),filter .6s}.spotlight-media:hover .spotlight-img{filter:grayscale(0);transform:scale(1.03)}.spotlight-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.12em;color:var(--pure-white);background:#060608cc;align-items:center;gap:8px;padding:8px 14px;font-size:10px;display:inline-flex;position:absolute;bottom:20px;left:20px}.spotlight-details{flex-direction:column;display:flex}.spotlight-meta-tags{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:12px;margin-bottom:16px;font-size:11px;display:flex}.tag-id{color:var(--text-primary);font-weight:600}.spotlight-title{font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:8px;font-size:clamp(34px,4vw,54px);font-weight:500;line-height:1}.spotlight-subtitle{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.08em;margin-bottom:24px;font-size:13px}.spotlight-desc{color:var(--text-secondary);margin-bottom:32px;font-size:16px;line-height:1.65}.spotlight-specs{border-top:1px solid var(--border-line);border-bottom:1px solid var(--border-line);grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:36px;padding:20px 0;display:grid}.spec-label{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:4px;font-size:9px;display:block}.spec-value{font-family:var(--font-body);color:var(--text-primary);font-size:14px;font-weight:500}.spotlight-cta{background:var(--bg-surface);border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-primary);justify-content:space-between;align-items:center;padding:16px 24px;font-size:12px;transition:all .25s;display:inline-flex}.spotlight-cta:hover{border-color:var(--text-primary);background:var(--text-primary);color:var(--bg-primary)}.works-preview-section{padding:10vh var(--container-pad);border-bottom:1px solid var(--border-line)}.view-all-link{color:var(--text-primary);align-items:center;gap:6px;transition:color .2s;display:inline-flex}.view-all-link:hover{color:var(--cool-silver)}.works-grid{grid-template-columns:repeat(2,1fr);gap:50px 32px;margin-top:40px;display:grid}.work-preview-card{cursor:pointer;flex-direction:column;display:flex}.work-preview-image{background:var(--bg-surface);height:380px;position:relative;overflow:hidden}.work-preview-image img{object-fit:cover;filter:grayscale(.9);width:100%;height:100%;transition:transform .5s,filter .5s}.work-preview-card:hover .work-preview-image img{filter:grayscale(0);transform:scale(1.03)}.work-card-num{font-family:var(--font-mono);border:1px solid var(--border-line);background:#060608b3;padding:4px 8px;font-size:11px;position:absolute;top:16px;left:16px}.work-hover-overlay{font-family:var(--font-mono);letter-spacing:.14em;opacity:0;background:#06060899;justify-content:center;align-items:center;gap:10px;font-size:11px;transition:opacity .3s;display:flex;position:absolute;inset:0}.work-preview-card:hover .work-hover-overlay{opacity:1}.work-preview-meta{justify-content:space-between;align-items:flex-start;padding-top:18px;display:flex}.work-title{font-family:var(--font-display);margin-bottom:4px;font-size:22px;font-weight:500}.work-type-loc{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px}.work-year{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.cta-banner-section{padding:12vh var(--container-pad);background:var(--bg-secondary);border-bottom:1px solid var(--border-line)}.cta-banner-content{max-width:800px}.cta-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:20px;font-size:11px}.cta-banner-content h2{font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:20px;font-size:clamp(32px,3.8vw,56px);font-weight:500;line-height:1.05}.cta-banner-content p{color:var(--text-secondary);margin-bottom:36px;font-size:17px;line-height:1.6}.cta-buttons{flex-wrap:wrap;gap:16px;display:flex}.cta-btn{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;padding:14px 28px;font-size:12px;transition:all .25s;display:inline-flex}.cta-btn.fill{background:var(--text-primary);color:var(--bg-primary)}.cta-btn.fill:hover{background:var(--text-secondary)}.cta-btn.outline{border:1px solid var(--border-line);color:var(--text-primary)}.cta-btn.outline:hover{border-color:var(--text-primary)}.projects-page{padding:8vh var(--container-pad) 12vh}.page-intro-header{margin-bottom:60px}.intro-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:20px;font-size:11px}.intro-main-row{grid-template-columns:1fr 400px;align-items:end;gap:6vw;display:grid}.intro-heading{font-family:var(--font-display);letter-spacing:-.06em;font-size:clamp(48px,6.5vw,96px);font-weight:500;line-height:.95}.intro-summary{color:var(--text-secondary);font-size:16px;line-height:1.6}.gallery-controls-bar{border-top:1px solid var(--border-line);border-bottom:1px solid var(--border-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:50px;padding:16px 0;display:flex}.category-filters{gap:12px;padding-bottom:4px;display:flex;overflow-x:auto}.filter-pill{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-secondary);white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:11px;transition:all .2s;display:inline-flex}.filter-pill:hover{color:var(--text-primary)}.filter-pill.active{background:var(--bg-surface);border-color:var(--border-line);color:var(--text-primary)}.cat-count{color:var(--text-muted);font-size:9px}.utility-filters{align-items:center;gap:16px;display:flex}.search-box{align-items:center;display:flex;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.search-box input{background:var(--bg-secondary);border:1px solid var(--border-line);font-family:var(--font-mono);color:var(--text-primary);width:220px;padding:8px 32px 8px 36px;font-size:11px;transition:all .2s}.search-box input:focus{border-color:var(--text-primary);outline:none;width:260px}.clear-search{color:var(--text-muted);font-size:16px;position:absolute;right:10px}.view-mode-toggle{border:1px solid var(--border-line);display:flex}.mode-btn{color:var(--text-muted);padding:7px 10px;transition:all .2s}.mode-btn.active{background:var(--bg-surface);color:var(--text-primary)}.projects-grid-layout{grid-template-columns:repeat(2,1fr);gap:60px 36px;display:grid}.project-grid-card{cursor:pointer;flex-direction:column;display:flex}.project-card-image{background:var(--bg-surface);height:420px;position:relative;overflow:hidden}.project-card-image img{object-fit:cover;filter:grayscale(.9);width:100%;height:100%;transition:transform .5s,filter .5s}.project-grid-card:hover .project-card-image img{filter:grayscale(0);transform:scale(1.03)}.card-top-tags{gap:8px;display:flex;position:absolute;top:16px;left:16px}.card-id-badge,.card-model-badge{font-family:var(--font-mono);border:1px solid var(--border-line);color:var(--pure-white);background:#060608cc;align-items:center;gap:4px;padding:4px 8px;font-size:10px;display:inline-flex}.card-hover-action{font-family:var(--font-mono);letter-spacing:.14em;opacity:0;background:#06060899;justify-content:center;align-items:center;gap:10px;font-size:11px;transition:opacity .3s;display:flex;position:absolute;inset:0}.project-grid-card:hover .card-hover-action{opacity:1}.project-card-content{padding-top:20px}.project-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.card-meta-line{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-muted);margin-bottom:4px;font-size:11px;display:block}.card-title{font-family:var(--font-display);font-size:24px;font-weight:500}.card-location{font-family:var(--font-mono);color:var(--text-secondary);font-size:11px}.card-summary{color:var(--text-secondary);max-width:520px;margin-bottom:16px;font-size:14px;line-height:1.6}.card-tags-list{flex-wrap:wrap;gap:8px;display:flex}.tag-chip{font-family:var(--font-mono);background:var(--bg-secondary);border:1px solid var(--border-line);color:var(--text-muted);padding:3px 8px;font-size:10px}.projects-list-layout{flex-direction:column;display:flex}.list-table-header{border-bottom:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-muted);grid-template-columns:60px 1.5fr 1fr 120px 80px 160px;padding:14px 0;font-size:10px;display:grid}.list-table-row{border-bottom:1px solid var(--border-line);cursor:pointer;grid-template-columns:60px 1.5fr 1fr 120px 80px 160px;align-items:center;padding:24px 0;transition:background-color .2s;display:grid}.list-table-row:hover{background:var(--bg-surface)}.col-idx{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.col-title strong{font-family:var(--font-display);font-size:18px;font-weight:500;display:block}.sub-type{font-family:var(--font-mono);color:var(--text-muted);font-size:11px;display:block}.col-loc,.col-scale,.col-year{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px}.col-action{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:6px;font-size:11px;display:inline-flex}.no-results-state{text-align:center;color:var(--text-secondary);padding:80px 0}.reset-filter-btn{border:1px solid var(--border-line);font-family:var(--font-mono);margin-top:16px;padding:10px 20px;font-size:11px}.project-detail-page{padding:6vh var(--container-pad) 12vh}.detail-top-nav{border-bottom:1px solid var(--border-line);justify-content:space-between;align-items:center;margin-bottom:40px;padding-bottom:24px;display:flex}.back-link-btn{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);align-items:center;gap:8px;font-size:11px;transition:color .2s;display:inline-flex}.back-link-btn:hover{color:var(--text-primary)}.print-view-btn{border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;padding:8px 16px;font-size:11px;transition:all .2s;display:inline-flex}.print-view-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.detail-header{margin-bottom:50px}.detail-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);align-items:center;gap:12px;margin-bottom:20px;font-size:11px;display:flex}.detail-title{font-family:var(--font-display);letter-spacing:-.05em;margin-bottom:10px;font-size:clamp(42px,6vw,84px);font-weight:500;line-height:1}.detail-subtitle{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.08em;margin-bottom:40px;font-size:16px}.project-meta-matrix{background:var(--border-line);border:1px solid var(--border-line);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.meta-cell{background:var(--bg-primary);padding:16px 20px}.meta-cell.wide{grid-column:span 2}.meta-cell.full{grid-column:span 4}.meta-k{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:6px;font-size:9px;display:block}.meta-v{font-family:var(--font-mono);color:var(--text-primary);font-size:12px}.media-stage-section{margin:50px 0 80px}.media-stage-tabs{gap:12px;margin-bottom:16px;display:flex}.stage-tab-btn{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border-line);color:var(--text-secondary);background:var(--bg-secondary);align-items:center;gap:8px;padding:10px 18px;font-size:11px;transition:all .2s;display:inline-flex}.stage-tab-btn.active{background:var(--bg-surface);border-color:var(--text-primary);color:var(--text-primary)}.media-stage-viewport{background:var(--bg-secondary);border:1px solid var(--border-line);min-height:540px;position:relative;overflow:hidden}.cover-stage-wrapper{height:580px;position:relative}.cover-stage-img{object-fit:cover;width:100%;height:100%}.cover-stage-caption{font-family:var(--font-mono);color:var(--cool-silver);background:#060608d9;padding:8px 16px;font-size:11px;position:absolute;bottom:20px;left:20px}.three-viewer-container{background:#0a0910;width:100%;height:580px;position:relative;overflow:hidden}.three-viewer-container.fullscreen{z-index:9999;width:100vw;height:100vh;position:fixed;inset:0}.three-canvas{display:block;width:100%!important;height:100%!important}.three-overlay-top{pointer-events:none;z-index:10;justify-content:space-between;align-items:center;display:flex;position:absolute;top:16px;left:16px;right:16px}.three-model-tag{border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-primary);background:#060608d9;align-items:center;gap:8px;padding:6px 12px;font-size:10px;display:inline-flex}.live-dot{background:#22c55e;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%{opacity:1}50%{opacity:.3}to{opacity:1}}.three-actions{pointer-events:auto;gap:8px;display:flex}.three-btn{border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-secondary);background:#060608d9;align-items:center;gap:6px;padding:6px 12px;font-size:10px;transition:all .2s;display:inline-flex}.three-btn:hover,.three-btn.active{border-color:var(--text-primary);color:var(--text-primary);background:var(--bg-surface)}.three-overlay-bottom{pointer-events:none;z-index:10;justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:16px;left:16px;right:16px}.three-caption{font-family:var(--font-mono);color:var(--cool-silver);border:1px solid var(--border-line);background:#060608cc;max-width:500px;padding:8px 14px;font-size:11px}.three-hints{font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-muted);border:1px solid var(--border-line);background:#060608cc;padding:6px 12px;font-size:9px}.three-loading-state{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);background:#0a0910;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:11px;display:flex;position:absolute;inset:0}.three-spinner{border:2px solid var(--border-line);border-top-color:var(--text-primary);border-radius:50%;width:32px;height:32px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.three-fallback-container{height:580px;position:relative}.three-fallback-img{object-fit:cover;width:100%;height:100%}.three-fallback-banner{border:1px solid var(--border-line);font-family:var(--font-mono);color:var(--cool-silver);background:#060608e6;align-items:center;gap:8px;padding:10px 16px;font-size:11px;display:inline-flex;position:absolute;bottom:20px;left:20px}.comparison-wrapper{flex-direction:column;gap:12px;display:flex}.comparison-container{-webkit-user-select:none;user-select:none;cursor:ew-resize;background:var(--bg-surface);width:100%;height:580px;position:relative;overflow:hidden}.comparison-img{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.comparison-overlay{pointer-events:none;position:absolute;inset:0}.comparison-divider{pointer-events:none;flex-direction:column;align-items:center;width:2px;display:flex;position:absolute;top:0;bottom:0;transform:translate(-50%)}.divider-line{background:var(--pure-white);flex:1;width:2px;box-shadow:0 0 8px #00000080}.divider-handle{background:var(--text-primary);width:36px;height:36px;color:var(--bg-primary);border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 10px #00000080}.comparison-label{font-family:var(--font-mono);letter-spacing:.15em;border:1px solid var(--border-line);color:var(--pure-white);pointer-events:none;background:#060608d9;padding:6px 12px;font-size:10px;transition:opacity .2s;position:absolute;bottom:20px}.comparison-label.before-tag{left:20px}.comparison-label.after-tag{right:20px}.comparison-helper{text-align:center;font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);font-size:10px}.case-study-narrative{border-top:1px solid var(--border-line);border-bottom:1px solid var(--border-line);grid-template-columns:repeat(4,1fr);gap:32px;margin-bottom:70px;padding:50px 0;display:grid}.narrative-header{margin-bottom:16px}.step-num{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:6px;font-size:10px;display:block}.narrative-header h3{font-family:var(--font-display);font-size:20px;font-weight:500}.narrative-col p{color:var(--text-secondary);font-size:14px;line-height:1.7}.drawings-gallery-section{margin-bottom:70px}.drawings-grid{grid-template-columns:repeat(3,1fr);gap:28px;margin-top:36px;display:grid}.drawing-card{cursor:pointer;background:var(--bg-secondary);border:1px solid var(--border-line);flex-direction:column;display:flex}.drawing-image-wrap{background:#111;height:280px;position:relative;overflow:hidden}.drawing-image-wrap img{object-fit:cover;filter:contrast(1.1)grayscale();width:100%;height:100%;transition:transform .4s}.drawing-card:hover .drawing-image-wrap img{transform:scale(1.04)}.drawing-zoom-hint{font-family:var(--font-mono);letter-spacing:.14em;opacity:0;background:#060608b3;justify-content:center;align-items:center;gap:8px;font-size:11px;transition:opacity .2s;display:flex;position:absolute;inset:0}.drawing-card:hover .drawing-zoom-hint{opacity:1}.drawing-caption{padding:16px}.drawing-type{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:4px;font-size:9px;display:block}.drawing-name{font-family:var(--font-display);margin-bottom:6px;font-size:16px;font-weight:500;display:block}.drawing-notes{color:var(--text-secondary);font-size:12px;line-height:1.5}.process-study-section{margin-bottom:80px}.process-study-grid{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:36px;display:grid}.study-card{background:var(--bg-secondary);border:1px solid var(--border-line);cursor:pointer;grid-template-columns:200px 1fr;gap:20px;padding:16px;display:grid}.study-card img{object-fit:cover;filter:grayscale(.8);width:100%;height:140px}.study-info strong{font-family:var(--font-display);margin-bottom:8px;font-size:16px;font-weight:500;display:block}.study-info p{color:var(--text-secondary);font-size:13px;line-height:1.5}.project-pagination{border-top:1px solid var(--border-line);justify-content:space-between;margin-top:40px;padding-top:40px;display:flex}.pag-btn{text-align:left;align-items:center;gap:16px;transition:opacity .2s;display:inline-flex}.pag-btn:hover{opacity:.8}.pag-lbl{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:4px;font-size:10px;display:block}.pag-name{font-family:var(--font-display);font-size:20px;font-weight:500}.modal-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;background:#000000eb;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0}.modal-container{background:var(--bg-secondary);border:1px solid var(--border-line);flex-direction:column;width:100%;max-width:1100px;display:flex}.modal-header{border-bottom:1px solid var(--border-line);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.modal-index{flex-direction:column;display:flex}.modal-index span:first-child{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);font-size:10px}.modal-title{font-family:var(--font-display);font-size:18px;font-weight:500}.modal-close{color:var(--text-secondary);padding:6px}.modal-close:hover{color:var(--text-primary)}.modal-image-stage{background:#060608;justify-content:center;align-items:center;height:65vh;display:flex;position:relative;overflow:hidden}.modal-image{object-fit:contain;max-width:100%;max-height:100%}.modal-nav{border:1px solid var(--border-line);width:44px;height:44px;color:var(--text-primary);background:#060608cc;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.modal-nav.prev{left:20px}.modal-nav.next{right:20px}.modal-footer{border-top:1px solid var(--border-line);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.modal-notes{color:var(--text-secondary);font-size:13px}.modal-meta{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);font-size:10px}.about-page{padding:8vh var(--container-pad) 12vh}.about-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:24px;font-size:11px}.about-hero-grid{grid-template-columns:1.1fr 1fr;align-items:center;gap:6vw;margin-bottom:80px;display:grid}.about-title{font-family:var(--font-display);letter-spacing:-.05em;margin-bottom:32px;font-size:clamp(44px,6vw,84px);font-weight:500;line-height:.95}.about-title em{color:var(--text-secondary);font-style:normal}.about-lead{color:var(--text-secondary);font-size:clamp(16px,1.3vw,20px);line-height:1.65}.about-portrait-card{flex-direction:column;display:flex}.portrait-image-wrapper{background:var(--bg-surface);height:480px;position:relative;overflow:hidden}.portrait-img{object-fit:cover;filter:grayscale()contrast(1.1);width:100%;height:100%}.portrait-stamp{border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.14em;background:#060608d9;flex-direction:column;padding:8px 16px;font-size:10px;display:flex;position:absolute;bottom:20px;left:20px}.stamp-sub{color:var(--text-muted);font-size:9px}.portrait-caption{font-family:var(--font-mono);color:var(--text-muted);justify-content:space-between;padding-top:12px;font-size:11px;display:flex}.philosophy-section{margin-bottom:80px}.philosophy-columns{grid-template-columns:repeat(3,1fr);gap:36px;margin-top:36px;display:grid}.phil-block h3{font-family:var(--font-display);margin-bottom:12px;font-size:20px;font-weight:500}.phil-block p{color:var(--text-secondary);font-size:15px;line-height:1.65}.academic-focus-section{margin-bottom:80px}.focus-grid{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:36px;display:grid}.focus-card{background:var(--bg-secondary);border:1px solid var(--border-line);padding:32px}.focus-icon{color:var(--text-primary);margin-bottom:16px}.focus-card h4{font-family:var(--font-display);margin-bottom:10px;font-size:20px;font-weight:500}.focus-card p{color:var(--text-secondary);font-size:14px;line-height:1.6}.about-footer-cta{background:var(--bg-secondary);border:1px solid var(--border-line);padding:48px}.about-cta-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px;display:flex}.about-cta-card h3{font-family:var(--font-display);margin-bottom:8px;font-size:28px;font-weight:500}.about-cta-card p{color:var(--text-secondary)}.about-cta-btns{gap:16px;display:flex}.resume-page{padding:8vh var(--container-pad) 12vh}.resume-header-section{margin-bottom:50px}.resume-header-row{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:40px;display:flex}.resume-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:16px;font-size:11px}.resume-title{font-family:var(--font-display);letter-spacing:-.05em;margin-bottom:12px;font-size:clamp(40px,5.5vw,76px);font-weight:500;line-height:1}.resume-subtitle{color:var(--text-secondary);font-size:16px}.resume-action-col{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.resume-print-btn{background:var(--text-primary);color:var(--bg-primary);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;padding:12px 24px;font-size:11px;font-weight:500;transition:opacity .2s;display:inline-flex}.resume-print-btn:hover{opacity:.85}.print-note{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);font-size:9px}.resume-nav-tabs{border-bottom:1px solid var(--border-line);gap:12px;padding-bottom:16px;display:flex;overflow-x:auto}.tab-btn{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-secondary);white-space:nowrap;border:1px solid #0000;padding:6px 14px;font-size:11px}.tab-btn.active{background:var(--bg-surface);border-color:var(--border-line);color:var(--text-primary)}.resume-content-body{flex-direction:column;gap:60px;margin-top:40px;display:flex}.resume-section-block{border-top:1px solid var(--border-line);grid-template-columns:240px 1fr;gap:5vw;padding-top:32px;display:grid}.block-label-col{color:var(--text-muted);align-items:center;gap:10px;display:flex}.block-label-col h3{font-family:var(--font-mono);letter-spacing:.16em;font-size:12px}.block-entries-col{flex-direction:column;gap:32px;display:flex}.resume-entry-card{border-bottom:1px solid var(--border-line);padding-bottom:24px}.resume-entry-card:last-child{border-bottom:none}.entry-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.entry-title{font-family:var(--font-display);margin-bottom:4px;font-size:20px;font-weight:500}.entry-sub{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px}.entry-period{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.entry-bullets{flex-direction:column;gap:6px;list-style:none;display:flex}.entry-bullets li{color:var(--text-secondary);padding-left:18px;font-size:14px;line-height:1.6;position:relative}.entry-bullets li:before{content:"—";color:var(--text-muted);position:absolute;left:0}.awards-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.award-item-card{background:var(--bg-secondary);border:1px solid var(--border-line);padding:20px}.award-year{font-family:var(--font-mono);color:var(--text-muted);margin-bottom:8px;font-size:11px;display:block}.award-title{font-family:var(--font-display);margin-bottom:6px;font-size:16px;font-weight:500;display:block}.award-issuer{font-family:var(--font-mono);color:var(--text-secondary);font-size:11px}.skills-subgroups{flex-direction:column;gap:28px;display:flex}.skill-group h4{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-muted);margin-bottom:14px;font-size:11px}.skills-list{flex-direction:column;gap:12px;display:flex}.skill-category-row{grid-template-columns:200px 1fr;align-items:center;gap:16px;display:grid}.cat-name{font-family:var(--font-mono);color:var(--text-secondary);font-size:11px}.tags-wrapper{flex-wrap:wrap;gap:8px;display:flex}.tool-chip{font-family:var(--font-mono);background:var(--bg-secondary);border:1px solid var(--border-line);color:var(--text-primary);padding:4px 10px;font-size:11px}.tool-chip.lang{background:var(--bg-surface)}.fab-list{flex-direction:column;gap:8px;list-style:none;display:flex}.fab-list li{font-family:var(--font-mono);color:var(--text-secondary);padding-left:18px;font-size:12px;position:relative}.fab-list li:before{content:"▪";color:var(--text-muted);position:absolute;left:0}.resume-footer-note{border-top:1px solid var(--border-line);font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:10px;margin-top:60px;padding-top:24px;font-size:11px;display:flex}.resume-footer-note a{color:var(--text-primary);text-decoration:underline}.contact-page{padding:8vh var(--container-pad) 12vh}.contact-layout-grid{grid-template-columns:1fr 1fr;gap:8vw;display:grid}.contact-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:24px;font-size:11px}.contact-heading{font-family:var(--font-display);letter-spacing:-.05em;margin-bottom:24px;font-size:clamp(44px,6vw,84px);font-weight:500;line-height:.95}.contact-heading em{color:var(--text-secondary);font-style:normal}.contact-description{color:var(--text-secondary);margin-bottom:40px;font-size:16px;line-height:1.65}.contact-channels{border-top:1px solid var(--border-line);flex-direction:column;gap:24px;padding-top:24px;display:flex}.channel-k{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:6px;font-size:9px;display:block}.channel-v{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:8px;font-size:13px;display:inline-flex}.channel-v.link:hover{text-decoration:underline}.social-links-row{font-family:var(--font-mono);align-items:center;gap:12px;font-size:12px;display:flex}.social-links-row a{color:var(--text-secondary);align-items:center;gap:4px;display:inline-flex}.social-links-row a:hover{color:var(--text-primary)}.social-links-row .sep{color:var(--border-line)}.form-card{background:var(--bg-secondary);border:1px solid var(--border-line);padding:40px}.form-header{margin-bottom:28px}.form-header h3{font-family:var(--font-display);margin-bottom:4px;font-size:22px;font-weight:500}.form-notice{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-muted);font-size:10px}.inquiry-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-muted);justify-content:space-between;font-size:10px;display:flex}.form-group label .req{color:#ef4444}.form-group input,.form-group textarea,.form-group select{background:var(--bg-primary);border:1px solid var(--border-line);font-family:var(--font-body);color:var(--text-primary);padding:12px 16px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--text-primary);outline:none}.form-group input.input-error,.form-group textarea.input-error{border-color:#ef4444}.field-error-msg{font-family:var(--font-mono);color:#ef4444;font-size:10px}.submit-btn{background:var(--text-primary);color:var(--bg-primary);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;gap:10px;margin-top:10px;padding:16px;font-size:12px;font-weight:600;transition:opacity .2s;display:inline-flex}.submit-btn:hover:not(:disabled){opacity:.85}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.form-privacy-note{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:8px;margin-top:12px;font-size:10px;line-height:1.5;display:flex}.form-success-state{text-align:center;padding:40px 20px}.success-icon{color:#22c55e;margin-bottom:16px}.form-success-state h4{font-family:var(--font-display);margin-bottom:12px;font-size:24px;font-weight:500}.form-success-state p{color:var(--text-secondary);margin-bottom:24px;font-size:14px;line-height:1.6}.reset-form-btn{border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.12em;padding:10px 20px;font-size:11px}.site-footer{background:var(--bg-primary);border-top:1px solid var(--border-line);padding:80px var(--container-pad) 40px}.footer-top{grid-template-columns:1.4fr 2fr;gap:6vw;margin-bottom:60px;display:grid}.footer-brand-column{flex-direction:column;gap:20px;display:flex}.footer-description{color:var(--text-secondary);max-width:440px;font-size:14px;line-height:1.65}.footer-contact-chip{flex-direction:column;gap:4px;display:flex}.chip-label{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);font-size:9px}.chip-email{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:6px;font-size:13px;display:inline-flex}.footer-links-grid{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.footer-group{flex-direction:column;gap:12px;display:flex}.group-title{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);margin-bottom:6px;font-size:10px}.footer-group button,.footer-group a{font-family:var(--font-mono);color:var(--text-secondary);text-align:left;justify-content:space-between;align-items:center;font-size:11px;transition:color .2s;display:inline-flex}.footer-group button:hover,.footer-group a:hover{color:var(--text-primary)}.footer-datum{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.1em;font-size:10px}.footer-bottom{border-top:1px solid var(--border-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding-top:28px;display:flex}.footer-legal{font-family:var(--font-mono);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;display:flex}.legal-separator{color:var(--border-line)}.back-to-top-btn{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-secondary);border:1px solid var(--border-line);align-items:center;gap:8px;padding:6px 14px;font-size:10px;transition:all .2s;display:inline-flex}.back-to-top-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}@media (width<=1024px){.hero-lower-grid{grid-template-columns:1fr;gap:40px}.hero-metrics{border-left:none;border-top:1px solid var(--border-line);flex-direction:row;justify-content:space-between;padding-top:24px;padding-left:0}.approach-grid{grid-template-columns:1fr;gap:40px}.spotlight-card{grid-template-columns:1fr}.spotlight-media{height:400px}.project-meta-matrix{grid-template-columns:repeat(2,1fr)}.meta-cell.wide,.meta-cell.full{grid-column:span 2}.case-study-narrative,.drawings-grid{grid-template-columns:repeat(2,1fr)}.about-hero-grid,.contact-layout-grid,.footer-top{grid-template-columns:1fr}}@media (width<=768px){:root{--header-height:72px}.desktop-nav{display:none}.mobile-menu-btn{display:block}.works-grid,.projects-grid-layout,.drawings-grid,.process-study-grid,.philosophy-columns,.focus-grid,.case-study-narrative{grid-template-columns:1fr}.resume-section-block{grid-template-columns:1fr;gap:20px}.awards-grid{grid-template-columns:1fr}.skill-category-row{grid-template-columns:1fr;gap:8px}.list-table-header{display:none}.list-table-row{grid-template-columns:1fr;gap:8px;padding:16px 0}.col-action{display:none}.comparison-container,.three-viewer-container,.cover-stage-wrapper{height:420px}.project-pagination{flex-direction:column;gap:24px}}.site-header{background:#060608f0;border-bottom:0;height:78px}.header-inner{padding:0 4.5vw}.desktop-nav{gap:30px}.nav-link{font-family:var(--font-sans);letter-spacing:0;text-transform:none;color:var(--text-secondary);font-size:13px}.nav-link.active:after{height:1px;bottom:2px}.logo-lockup{gap:0}.logo-art{background-image:url(/ivo-logo.png);background-position:50%;background-repeat:no-repeat;background-size:238%;width:52px;height:28px;display:block}.logo-lockup.large .logo-art{width:78px;height:42px}.logo-text{gap:2px}.logo-studio{font-family:var(--font-sans);letter-spacing:-.04em;font-size:15px;font-weight:600}.logo-sub{letter-spacing:.08em;color:var(--text-muted);font-size:8px}.mobile-nav-drawer{top:78px}@media (width<=768px){.site-header{height:72px}.header-inner{padding:0 6vw}.logo-sub{display:none}}.pure-silk-hero{min-height:100vh;padding:0 var(--container-pad) 9vh;background:var(--soft-black);flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.pure-silk-hero:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#060608b8 0%,#06060861 42%,#06060829 100%),linear-gradient(#0000 38%,#060608c7 100%);position:absolute;inset:0}.hero-silk-bg{pointer-events:none;z-index:0;opacity:.72;filter:saturate(.6)contrast(1.05);background-color:#0000;background-image:radial-gradient(at 72% 28%,#7d6aaa61 0%,#0000 28%),radial-gradient(at 54% 72%,#4136646b 0%,#0000 42%),linear-gradient(120deg,#09090d 10%,#211b2d 52%,#0a090e 92%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:140% 140%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;animation:12s ease-in-out infinite alternate visibleSilkDrift;position:absolute;inset:0}.hero-silk-bg canvas{opacity:0}@keyframes visibleSilkDrift{0%{background-position:0 35%}to{background-position:100% 65%}}body{font-size:17px}.nav-link{font-size:15px}.hero-main-copy{max-width:620px;font-size:clamp(16px,1.35vw,19px);line-height:1.65}.pill-btn{padding:13px 24px;font-size:14px}.label-tag,.section-label,.eyebrow,.footer-kicker,.col-heading{font-size:12px}.project-row-name{font-size:clamp(21px,2.2vw,30px)}.row-pill-badge,.meta-k,.drawer-subtitle{font-size:12px}.drawer-summary,.pinstripe-lead,.footer-spec,.footer-direct-email{font-size:16px}.footer-marquee{font-size:12px}.cinematic-pill{font-size:14px}.legacy-project-list,.black-box-section,.affiliations-section,.about-statement-section{display:none}.home-project-index{padding:20px 0 80px}.home-project-intro{max-width:660px;color:var(--text-secondary);margin-bottom:62px;font-size:clamp(18px,2vw,25px);line-height:1.45}.home-project-list{border-top:1px solid var(--border-line)}.home-project-row{text-align:left;border-bottom:1px solid var(--border-line);width:100%;min-height:105px;color:var(--text-primary);grid-template-columns:70px 1fr 220px 40px;align-items:center;gap:18px;transition:padding .35s,color .35s;display:grid;position:relative;overflow:hidden}.home-project-row:hover{color:var(--pure-white);padding-left:18px}.home-project-number,.home-project-meta{color:var(--text-muted);font:12px var(--font-mono);letter-spacing:.05em}.home-project-title{z-index:2;letter-spacing:-.05em;font-size:clamp(22px,3vw,42px);position:relative}.home-project-meta{z-index:2;text-align:right;position:relative}.home-project-arrow{z-index:2;place-items:center;display:grid;position:relative}.home-project-row img{z-index:1;object-fit:cover;opacity:0;filter:grayscale();pointer-events:none;width:190px;height:125px;transition:opacity .35s,transform .45s;position:absolute;top:50%;right:8%;transform:translateY(-50%)scale(.88)rotate(-4deg)}.home-project-row:hover img{opacity:.28;transform:translateY(-50%)scale(1)rotate(2deg)}.home-project-more{border-bottom:1px solid var(--text-secondary);align-items:center;gap:10px;margin-top:28px;padding-bottom:8px;font-size:14px;display:inline-flex}.also-building-section{padding:12vh var(--container-pad);border-top:1px solid var(--border-line)}.also-building-section .section-statement-title{max-width:780px;margin:30px 0 70px}.also-building-grid{grid-template-columns:repeat(2,1fr);gap:8vw;max-width:900px;display:grid}.also-building-grid h3{margin-bottom:16px;font-size:22px;font-weight:500}.also-building-grid p{color:var(--text-secondary);max-width:430px;line-height:1.7}@media (width<=700px){.also-building-grid{grid-template-columns:1fr;gap:42px}.home-project-index{padding-bottom:55px}.home-project-row{grid-template-columns:32px 1fr 28px;gap:10px;min-height:90px}.home-project-meta{display:none}.home-project-title{font-size:25px}.home-project-row img{width:120px;height:84px;right:16%}}.legacy-project-list{display:none!important}.work-page{min-height:calc(100vh - var(--header-height))}.work-page-intro,.work-empty-state{padding:13vh var(--container-pad) 10vh}.work-page-intro{border-bottom:1px solid var(--border-line)}.work-eyebrow{color:var(--text-secondary);font:12px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.work-page-intro h1{letter-spacing:-.09em;margin:55px 0 50px;font-size:clamp(70px,12vw,170px);font-weight:400;line-height:.82}.work-lead{letter-spacing:-.04em;max-width:700px;margin-bottom:30px;font-size:clamp(22px,3vw,40px);line-height:1.15}.work-page-intro>p:not(.work-eyebrow){max-width:680px;color:var(--text-secondary);font-size:17px;line-height:1.7}.work-empty-state{max-width:900px;padding-top:12vh}.work-empty-mark{color:var(--text-muted);font:22px var(--font-mono);margin-bottom:35px;display:block}.work-empty-state h2{letter-spacing:-.07em;margin-bottom:32px;font-size:clamp(36px,5vw,72px);font-weight:400;line-height:.95}.work-empty-state p{max-width:640px;color:var(--text-secondary);margin-bottom:20px;font-size:17px;line-height:1.7}.work-empty-state .work-coming-note{color:var(--text-muted);margin-top:42px}.work-contact-link{border-bottom:1px solid var(--text-secondary);align-items:center;gap:9px;margin-top:20px;padding:8px 0;font-size:15px;display:inline-flex}.about-simple-page{min-height:calc(100vh - var(--header-height))}.about-simple-intro{padding:13vh var(--container-pad) 10vh;border-bottom:1px solid var(--border-line)}.about-simple-intro h1{letter-spacing:-.09em;margin:55px 0 50px;font-size:clamp(70px,12vw,170px);font-weight:400;line-height:.82}.about-eyebrow{color:var(--text-secondary);font:12px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.about-simple-lead{letter-spacing:-.045em;max-width:760px;font-size:clamp(24px,3.4vw,48px);line-height:1.12}.about-simple-copy{max-width:760px;padding:12vh var(--container-pad) 14vh}.about-simple-copy p{color:var(--text-secondary);margin-bottom:28px;font-size:18px;line-height:1.75}.about-simple-copy strong{color:var(--text-primary);font-weight:500}.about-education{border-top:1px solid var(--border-line);color:var(--text-secondary);flex-direction:column;gap:12px;margin-top:58px;padding-top:24px;font-size:15px;line-height:1.5;display:flex}.about-education span{font:12px var(--font-mono);color:var(--text-muted);letter-spacing:.1em}.about-education strong{color:var(--text-primary);font-weight:400}.about-simple-actions{flex-wrap:wrap;gap:28px;margin-top:52px;display:flex}.about-simple-actions button{border-bottom:1px solid var(--text-secondary);align-items:center;gap:8px;padding:8px 0;font-size:15px;display:inline-flex}@media (width<=700px){.about-simple-intro{padding:80px 7vw}.about-simple-intro h1{margin:45px 0;font-size:23vw}.about-simple-copy{padding:80px 7vw}.about-simple-copy p{font-size:16px}.about-simple-lead{font-size:30px}}.cv-page{min-height:calc(100vh - var(--header-height))}.cv-intro{padding:13vh var(--container-pad) 10vh;border-bottom:1px solid var(--border-line)}.cv-eyebrow{color:var(--text-secondary);font:12px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.cv-intro h1{letter-spacing:-.09em;margin:55px 0 50px;font-size:clamp(70px,12vw,170px);font-weight:400;line-height:.82}.cv-lead{letter-spacing:-.045em;max-width:760px;margin-bottom:28px;font-size:clamp(24px,3.4vw,48px);line-height:1.12}.cv-intro>p:last-child{max-width:640px;color:var(--text-secondary);font-size:18px;line-height:1.7}.cv-content{padding:10vh var(--container-pad) 14vh;max-width:1050px}.cv-block{border-top:1px solid var(--border-line);grid-template-columns:220px 1fr;gap:50px;padding:32px 0;display:grid}.cv-block>span{font:12px var(--font-mono);letter-spacing:.1em;color:var(--text-muted)}.cv-block h2{letter-spacing:-.04em;margin:0 0 8px;font-size:clamp(22px,2.2vw,32px);font-weight:400}.cv-block p{color:var(--text-secondary);margin:0 0 28px;font-size:17px;line-height:1.6}.cv-block p:last-child{margin-bottom:0}.cv-note{color:var(--text-muted)!important}.cv-request{border-top:1px solid var(--border-line);color:var(--text-secondary);padding-top:28px;font-size:15px;line-height:1.7}.cv-request a{color:var(--text-primary);border-bottom:1px solid var(--text-secondary)}.cv-actions{margin-top:35px}.cv-actions button{border-bottom:1px solid var(--text-secondary);align-items:center;gap:8px;padding:8px 0;font-size:15px;display:inline-flex}@media (width<=700px){.cv-intro{padding:80px 7vw}.cv-intro h1{margin:45px 0;font-size:23vw}.cv-content{padding:80px 7vw}.cv-block{grid-template-columns:1fr;gap:18px}.cv-block p{font-size:16px}.work-page-intro,.work-empty-state{padding:80px 7vw}.work-page-intro h1{margin:45px 0;font-size:23vw}.work-lead{font-size:28px}.work-page-intro>p:not(.work-eyebrow),.work-empty-state p,body,.nav-link{font-size:16px}.hero-main-copy{font-size:17px}.label-tag,.section-label,.eyebrow,.footer-kicker{font-size:11px}}.hero-content-wrapper{z-index:2;max-width:920px;padding-bottom:2vh;position:relative}.hero-main-title{font-family:var(--font-display);letter-spacing:-.05em;color:var(--pure-white);text-wrap:balance;max-width:980px;margin-bottom:28px;font-size:clamp(42px,6.8vw,110px);font-weight:400;line-height:1}.hero-main-title em{color:var(--cool-silver);font-style:italic}.hero-main-copy{color:#b0aeb6e0;max-width:540px;margin-bottom:40px;font-size:clamp(14px,1.25vw,17px);line-height:1.7}.hero-buttons-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pill-btn{font-family:var(--font-body);letter-spacing:.01em;cursor:pointer;border:none;border-radius:100px;outline:none;align-items:center;gap:10px;padding:11px 22px;font-size:13px;font-weight:500;line-height:1;text-decoration:none;transition:background .22s,border-color .22s,color .22s,transform .18s;display:inline-flex}.pill-btn.primary{background:var(--pure-white);color:var(--void-black)}.pill-btn.primary:hover{background:var(--cool-silver);transform:translateY(-1px)}.pill-btn.secondary{color:var(--pure-white);background:0 0;border:1px solid #ffffff47}.pill-btn.secondary:hover{border-color:var(--pure-white);transform:translateY(-1px)}.pill-btn.light-border{color:#ffffffd1;background:0 0;border:1px solid #ffffff38}.pill-btn.light-border:hover{color:var(--pure-white);border-color:#fff9}.btn-arrow{flex-shrink:0;transition:transform .2s}.pill-btn:hover .btn-arrow{transform:translate(3px)}.section-divider-bar{padding:14px var(--container-pad);border-top:1px solid var(--border-line);border-bottom:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-muted);background:var(--bg-primary);justify-content:space-between;align-items:center;font-size:11px;display:flex}.label-tag{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase;font-size:10px}.projects-accordion-section{padding:0 var(--container-pad) 80px;background:var(--bg-primary)}.accordion-section-header{border-bottom:1px solid var(--border-line);grid-template-columns:160px 1fr;align-items:start;gap:4vw;padding:52px 0 40px;display:grid}.header-label-col{padding-top:6px}.section-statement-title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text-primary);margin:0;font-size:clamp(22px,2.8vw,40px);font-weight:400;line-height:1.18}.project-rows-list{flex-direction:column;display:flex}.project-accordion-item{border-bottom:1px solid var(--border-line)}.project-row-main{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:22px 0;transition:opacity .2s;display:flex}.project-row-main:hover{opacity:.78}.project-title-wrap{flex:1;min-width:0}.project-row-name{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:clamp(20px,3.2vw,50px);font-weight:400;line-height:1;transition:transform .3s;overflow:hidden}.project-accordion-item:hover .project-row-name{transform:translate(6px)}.project-pill-tags{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:7px;display:flex}.row-pill-badge{font-family:var(--font-mono);border:1px solid var(--border-line);color:var(--text-secondary);white-space:nowrap;letter-spacing:.06em;background:0 0;border-radius:100px;padding:4px 10px;font-size:10px}.row-pill-badge.year{color:var(--text-muted);border-color:var(--border-line-subtle)}.project-action-icon{color:var(--text-primary);opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:28px;transition:opacity .2s;display:flex}.project-accordion-item:hover .project-action-icon{opacity:1}.project-drawer-content{padding-bottom:40px;animation:.3s drawerFadeIn}@keyframes drawerFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.drawer-preview-grid{grid-template-columns:1fr 1fr;align-items:start;gap:40px;display:grid}.drawer-image-wrapper{cursor:pointer;aspect-ratio:4/3;background:var(--bg-surface);position:relative;overflow:hidden}.drawer-image-wrapper img{object-fit:cover;width:100%;height:100%;transition:transform .55s}.drawer-image-wrapper:hover img{transform:scale(1.04)}.drawer-image-badge{font-family:var(--font-mono);letter-spacing:.14em;color:var(--pure-white);background:#060608e0;border:1px solid #b0aeb633;align-items:center;gap:6px;padding:6px 12px;font-size:9px;display:inline-flex;position:absolute;bottom:12px;left:12px}.drawer-details{flex-direction:column;gap:16px;display:flex}.drawer-subtitle{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-muted);text-transform:uppercase;font-size:10px}.drawer-summary{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.7}.drawer-meta-grid{border-top:1px solid var(--border-line);grid-template-columns:repeat(3,1fr);gap:14px;padding-top:16px;display:grid}.drawer-meta-grid .meta-k{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);text-transform:uppercase;margin-bottom:5px;font-size:9px;display:block}.drawer-meta-grid .meta-v{font-family:var(--font-mono);color:var(--text-primary);font-size:11px}.drawer-cta{align-self:flex-start;margin-top:4px}.black-box-section{padding:0 var(--container-pad) 80px;background:var(--bg-primary)}.pinstripe-card{background:var(--void-black);color:var(--pure-white);overflow:hidden}.pinstripe-top-rule{background:var(--void-black);border-top:1px solid #ffffff14;height:8px}.pinstripe-bottom-rule{background:var(--void-black);border-bottom:1px solid #ffffff14;height:8px}.pinstripe-card-inner{padding:56px 60px}.card-header-row{margin-bottom:40px}.pinstripe-headline{font-family:var(--font-display);letter-spacing:-.03em;color:var(--pure-white);margin:0 0 22px;font-size:clamp(26px,3.5vw,50px);font-weight:400;line-height:1.1}.pinstripe-lead{color:#fff9;max-width:700px;margin:0 0 48px;font-size:16px;line-height:1.7}.pinstripe-pillars-grid{border-top:1px solid #ffffff1a;grid-template-columns:repeat(2,1fr);gap:28px 52px;padding-top:36px;display:grid}.pinstripe-pillar h4{font-family:var(--font-display);color:var(--pure-white);margin:0 0 10px;font-size:16px;font-weight:500}.pinstripe-pillar p{color:#ffffff8c;margin:0;font-size:13px;line-height:1.7}.affiliations-section{padding:60px var(--container-pad);border-top:1px solid var(--border-line);background:var(--bg-primary)}.affiliations-header{grid-template-columns:160px 1fr;align-items:start;gap:4vw;margin-bottom:44px;display:grid}.affiliations-grid{grid-template-columns:repeat(3,1fr);gap:28px 40px;display:grid}.affiliation-item{border-top:1px solid var(--border-line);flex-direction:column;gap:5px;padding-top:14px;display:flex}.affiliation-item strong{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-primary);text-transform:uppercase;font-size:11px;font-weight:600}.affiliation-item span{font-family:var(--font-body);color:var(--text-secondary);font-size:12px;line-height:1.5}.about-statement-section{padding:60px var(--container-pad) 80px;border-top:1px solid var(--border-line);background:var(--bg-primary)}.about-statement-header{grid-template-columns:160px 1fr;align-items:start;gap:4vw;margin-bottom:40px;display:grid}.about-statement-body{grid-template-columns:1fr 1fr;gap:40px;padding-left:calc(160px + 4vw);display:grid}.about-statement-body p{color:var(--text-secondary);margin:0;font-size:15px;line-height:1.75}.footer-cta-band{padding:72px var(--container-pad) 64px;border-top:1px solid var(--border-line);background:var(--bg-primary)}.footer-cta-header{flex-direction:column;gap:28px;display:flex}.footer-cta-title{font-family:var(--font-display);letter-spacing:-.04em;color:var(--text-primary);max-width:780px;margin:0;font-size:clamp(32px,5vw,80px);font-weight:400;line-height:1.05}.footer-cta-title em{color:var(--text-secondary);font-style:italic}.footer-pill-btn{border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-secondary);cursor:pointer;text-transform:uppercase;background:0 0;border-radius:100px;align-items:center;gap:8px;padding:8px 18px;font-size:10px;transition:border-color .2s,color .2s;display:inline-flex}.footer-pill-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.footer-main-grid{padding:52px var(--container-pad);border-top:1px solid var(--border-line);background:var(--bg-primary);grid-template-columns:1fr 1fr 1fr;gap:40px 6vw;display:grid}.footer-portrait-col{flex-direction:column;gap:20px;display:flex}.footer-avatar-wrap{align-items:center;gap:16px;display:flex}.footer-avatar-img{object-fit:cover;filter:grayscale(20%);border-radius:50%;width:58px;height:58px}.footer-avatar-info{flex-direction:column;gap:3px;display:flex}.avatar-name{font-family:var(--font-display);color:var(--text-primary);font-size:15px;font-weight:500}.avatar-role{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;font-size:10px}.footer-direct-email{font-family:var(--font-mono);color:var(--text-secondary);align-items:center;gap:5px;font-size:12px;text-decoration:none;transition:color .2s;display:inline-flex}.footer-direct-email:hover{color:var(--text-primary)}.footer-loc-tag{font-family:var(--font-mono);letter-spacing:.12em;color:var(--text-muted);font-size:10px}.footer-nav-col{flex-direction:column;gap:12px;display:flex}.col-heading{font-family:var(--font-mono);letter-spacing:.2em;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:9px}.footer-link{font-family:var(--font-body);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:14px;line-height:1.4;transition:color .2s}.footer-link:hover{color:var(--text-primary)}.footer-spec{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.02em;font-size:11px;line-height:1.6}.footer-bottom-bar{padding:20px var(--container-pad);border-top:1px solid var(--border-line);background:var(--bg-primary);justify-content:space-between;align-items:center;display:flex}.footer-bottom-left{align-items:center;gap:20px;display:flex}.footer-copy-text{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-muted);font-size:10px}.footer-socials{align-items:center;gap:20px;display:flex}.footer-socials a{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-muted);align-items:center;gap:4px;font-size:10px;text-decoration:none;transition:color .2s;display:inline-flex}.footer-socials a:hover{color:var(--text-primary)}.footer-back-top{border:1px solid var(--border-line);font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:100px;align-items:center;gap:6px;padding:7px 14px;font-size:9px;transition:border-color .2s,color .2s;display:inline-flex}.footer-back-top:hover{border-color:var(--text-primary);color:var(--text-primary)}@media (width<=900px){.accordion-section-header,.affiliations-header,.about-statement-header{grid-template-columns:1fr;gap:16px;padding-top:40px}.about-statement-body{grid-template-columns:1fr;gap:20px;padding-left:0}.drawer-preview-grid{grid-template-columns:1fr}.drawer-meta-grid,.affiliations-grid{grid-template-columns:repeat(2,1fr)}.pinstripe-pillars-grid{grid-template-columns:1fr}.pinstripe-card-inner{padding:40px 32px}.project-pill-tags{display:none}.footer-main-grid{grid-template-columns:1fr;gap:36px}.footer-cta-title{font-size:clamp(28px,8vw,52px)}}img{max-width:100%}.about-simple-copy img,.projects-grid img,.project-blog-page img,.drawing-image-wrap img,.study-card img,.modal-image,.three-fallback-img,.portrait-image-wrapper img{object-fit:contain;object-position:center;max-width:100%;height:auto}.projects-grid>article>div:first-child{min-height:180px;max-height:320px}.projects-grid>article>div:first-child img{width:100%;height:100%;object-fit:contain!important}.drawing-image-wrap,.study-card,.modal-image-wrap{background:#ffffff06;max-height:620px;overflow:hidden}.drawing-image-wrap img,.study-card img{width:100%;max-height:620px}.about-simple-copy>div:first-of-type{max-width:min(100%,420px)!important}.about-simple-copy>div:first-of-type img{object-fit:contain;width:100%;max-height:560px}.project-blog-page{max-width:1320px;padding:28px var(--container-pad) 10vh;margin:0 auto}.project-blog-header{max-width:900px;padding:10vh 0 8vh}.project-blog-header .detail-title{margin:28px 0}.project-blog-meta{color:var(--text-secondary);font:13px var(--font-mono);flex-wrap:wrap;gap:12px 34px;margin-top:42px;display:flex}.project-blog-meta span{flex-direction:column;gap:7px;display:flex}.project-blog-meta b{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:400}.project-blog-cover{margin:0}.project-blog-cover img{object-fit:contain;object-position:center;background:#ffffff06;border-radius:3px;width:100%;max-width:100%;max-height:62vh;display:block}.project-blog-cover figcaption,.project-blog-gallery figcaption{color:var(--text-muted);font:11px var(--font-mono);letter-spacing:.06em;margin-top:12px}.project-blog-body{max-width:720px;margin:12vh auto}.project-blog-body section{margin-bottom:76px}.project-blog-body h2{letter-spacing:-.06em;margin:0 0 18px;font-size:clamp(28px,4vw,48px);font-weight:400}.project-blog-body p{color:var(--text-secondary);white-space:pre-line;font-size:18px;line-height:1.75}.project-blog-body .project-blog-lead{color:var(--text-primary);letter-spacing:-.035em;font-size:clamp(22px,3vw,34px);line-height:1.25}.project-blog-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)!important;font:11px var(--font-mono)!important}.project-blog-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px;display:grid}.project-blog-gallery figure{margin:0}.project-blog-gallery img{aspect-ratio:1.35;object-fit:contain;object-position:center;background:#ffffff06;width:100%;max-height:520px;display:block}.project-blog-page .project-pagination{margin-top:12vh}@media (width<=700px){.project-blog-page{padding-top:16px}.project-blog-header{padding:8vh 0 7vh}.project-blog-meta{gap:20px}.project-blog-body{margin:9vh auto}.project-blog-gallery{grid-template-columns:1fr;gap:28px}}@media (width<=600px){.hero-main-title{font-size:clamp(34px,10vw,60px)}.affiliations-grid{grid-template-columns:1fr}.footer-bottom-bar{flex-wrap:wrap;gap:16px}.footer-socials{gap:14px}.pure-silk-hero{padding-bottom:12vh}}@media print{body{font-size:11pt;color:#000!important;background:#fff!important}.site-header,.site-footer,.mobile-menu-btn,.three-hero-wrapper,.media-stage-tabs,.three-actions,.three-overlay-top,.print-view-btn,.back-link-btn,.project-pagination,.comparison-helper,.resume-print-btn,.resume-nav-tabs,.cta-banner-section,.about-footer-cta{display:none!important}.project-detail-page,.resume-page,.home-page{padding:0!important}.project-meta-matrix{background:#eee!important;border:1px solid #999!important}.meta-cell{color:#000!important;background:#fff!important}.case-study-narrative{page-break-inside:avoid;grid-template-columns:repeat(2,1fr)!important;display:grid!important}.drawings-grid{grid-template-columns:repeat(2,1fr)!important;display:grid!important}.resume-section-block{page-break-inside:avoid;grid-template-columns:180px 1fr!important;display:grid!important}}.cinematic-footer{isolation:isolate;background:#080808;flex-direction:column;justify-content:space-between;min-height:88vh;padding:14vh 10vw 34px;display:flex;position:relative;overflow:hidden}.footer-grid-bg{z-index:-2;opacity:.28;background-image:linear-gradient(90deg,#ffffff0e 1px,#0000 1px),linear-gradient(#ffffff0e 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 30% 75%,#0000);mask-image:linear-gradient(#0000,#000 30% 75%,#0000)}.footer-aurora{z-index:-1;filter:blur(35px);background:radial-gradient(circle,#453c6833,#17132014 45%,#0000 70%);border-radius:50%;width:70vw;height:55vh;animation:8s ease-in-out infinite alternate footerBreathe;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.footer-marquee{width:106%;font:600 10px var(--font-mono);letter-spacing:.2em;white-space:nowrap;color:var(--text-secondary);background:#ffffff06;border-top:1px solid #ffffff1a;border-bottom:1px solid #ffffff1a;padding:13px 0;position:absolute;top:10%;left:-3%;overflow:hidden;transform:rotate(-2deg)}.footer-marquee div{width:max-content;animation:34s linear infinite footerMarquee}.footer-marquee span{color:#8b7ab8;margin:0 22px}.footer-giant-word{font:900 30vw/.72 var(--font-display);letter-spacing:-.1em;color:#0000;-webkit-text-stroke:1px #ffffff12;background:linear-gradient(#ffffff1a,#0000 62%);pointer-events:none;z-index:-1;-webkit-background-clip:text;background-clip:text;position:absolute;bottom:-5vh;left:50%;transform:translate(-50%)}.cinematic-footer-content{opacity:0;width:100%;max-width:900px;margin:auto;transition:opacity 1s,transform 1s;transform:translateY(40px)}.cinematic-footer.is-visible .cinematic-footer-content{opacity:1;transform:none}.footer-kicker{font:10px var(--font-mono);letter-spacing:.18em;color:var(--text-secondary)}.cinematic-footer h2{letter-spacing:-.08em;margin:36px 0 55px;font-size:clamp(55px,9vw,130px);font-weight:500;line-height:.86}.cinematic-footer h2 em{color:var(--text-secondary);font-style:normal}.footer-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.cinematic-pill{color:var(--text-primary);will-change:transform;background:linear-gradient(145deg,#ffffff12,#ffffff04);border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:10px;padding:16px 24px;font-size:12px;transition:border-color .3s,color .3s,transform .35s;display:inline-flex;box-shadow:0 15px 35px #0000004d,inset 0 1px #ffffff1f}.cinematic-pill:hover{border-color:#ffffff59}.cinematic-pill.primary{cursor:pointer;background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.cinematic-footer-bottom{color:var(--text-muted);font:10px var(--font-mono);letter-spacing:.08em;justify-content:space-between;align-items:center;gap:20px;display:flex}.footer-top-button{width:42px;height:42px;color:var(--text-secondary);border:1px solid #ffffff29;border-radius:50%;place-items:center;display:grid}@keyframes footerBreathe{to{opacity:.8;transform:translate(-50%,-50%)scale(1.1)}}@keyframes footerMarquee{to{transform:translate(-50%)}}@media (width<=700px){.cinematic-footer{min-height:82vh;padding:14vh 7vw 28px}.footer-marquee{top:8%}.cinematic-footer h2{font-size:18vw}.cinematic-footer-bottom{font-size:9px}.cinematic-footer-bottom span:nth-child(2){display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-root{animation:.7s cubic-bezier(.22,1,.36,1) both pageEnter}.motion-reveal{opacity:0;transition:opacity .8s,transform .8s cubic-bezier(.22,1,.36,1);transform:translateY(34px)}.motion-reveal-visible{opacity:1;transform:none}button,a{transition:color .25s,background-color .25s,border-color .25s,transform .25s}.project-grid-card:hover,.focus-card:hover,.affiliation-item:hover{transform:translateY(-6px)}.project-card-image img,.portrait-img{transition:transform .8s cubic-bezier(.22,1,.36,1),filter .5s}.project-grid-card:hover .project-card-image img,.portrait-image-wrapper:hover .portrait-img{transform:scale(1.04)}@keyframes pageEnter{0%{opacity:0}to{opacity:1}}.skip-link{z-index:1000;background:var(--pure-white);color:var(--soft-black);border-radius:999px;padding:10px 16px;font-size:14px;position:fixed;top:12px;left:16px;transform:translateY(-150%)}.skip-link:focus{transform:none}.mobile-nav-drawer[aria-hidden=true]{visibility:hidden;pointer-events:none}.mobile-nav-drawer.open[aria-hidden=false]{visibility:visible;pointer-events:auto}.page-transition{animation:.55s cubic-bezier(.22,1,.36,1) both pageTransition}@keyframes pageTransition{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}button{cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}button:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .2s,box-shadow .2s;position:absolute;inset:0;box-shadow:0 0 #ffffff47}button:hover:not(:disabled){transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(1px)scale(.98)}button:focus-visible{outline:2px solid var(--pure-white);outline-offset:4px}button:focus-visible:after{opacity:1;box-shadow:0 0 0 5px #ffffff1a}button:disabled{cursor:not-allowed;opacity:.55;transform:none!important}.pill-btn,.cta-btn,.submit-btn,.footer-pill-btn,.reset-form-btn,.filter-pill,.mode-btn,.tab-btn,.home-project-more,.about-simple-actions button,.cv-actions button,.work-contact-link{transition:transform .25s cubic-bezier(.22,1,.36,1),background-color .25s,border-color .25s,color .25s,opacity .25s}.pill-btn .btn-arrow,.footer-pill-btn svg,.submit-btn svg,.home-project-more svg,.about-simple-actions svg,.cv-actions svg,.work-contact-link svg{transition:transform .3s cubic-bezier(.22,1,.36,1)}.pill-btn:hover .btn-arrow,.footer-pill-btn:hover svg,.submit-btn:hover svg,.home-project-more:hover svg,.about-simple-actions button:hover svg,.cv-actions button:hover svg,.work-contact-link:hover svg{transform:translate(4px)}@media (width<=900px){.mobile-nav-drawer.open{visibility:visible!important;opacity:1!important;display:block!important;transform:translateY(0)!important}.mobile-nav-drawer.open .mobile-nav-content{visibility:visible!important;display:flex!important}}.nav-link:before{content:"";transform-origin:100%;background:currentColor;width:100%;height:1px;transition:transform .3s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-link:hover:before,.nav-link.active:before{transform-origin:0;transform:scaleX(1)}@media (width<=900px){.site-header{z-index:1000;position:relative}.header-inner{z-index:1002;position:relative}.mobile-menu-btn{color:#fff;background:#ffffff14;border:1px solid #ffffff2e;border-radius:50%;place-items:center;width:48px;height:48px;transition:background .3s,transform .3s,border-color .3s;display:grid}.mobile-menu-btn[aria-expanded=true]{color:#08080b;background:#fff;border-color:#fff;transform:rotate(90deg)}.mobile-nav-drawer{z-index:1001;visibility:hidden;opacity:0;pointer-events:none;background:radial-gradient(circle at 85% 8%,#8d82a847,#0000 32%),linear-gradient(145deg,#18181efa,#050507fc);transition:opacity .4s,transform .5s cubic-bezier(.22,1,.36,1),visibility .4s;overflow-y:auto;transform:translateY(-18px)scale(.98);width:100vw!important;height:100dvh!important;position:fixed!important;inset:0!important}.mobile-nav-drawer.open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.mobile-nav-content{flex-direction:column;min-height:100%;padding:118px 24px 28px;display:flex}.mobile-nav-header{color:#ffffff7a;font:500 10px/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border-top:1px solid #ffffff29;justify-content:space-between;gap:16px;padding-top:14px;display:flex}.mobile-nav-links{border-bottom:1px solid #ffffff29;margin:auto 0;padding:42px 0}.mobile-nav-link{color:#ffffff8c;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ffffff1a;align-items:baseline;gap:18px;width:100%;min-height:66px;padding:6px 0;transition:color .25s,padding-left .3s cubic-bezier(.22,1,.36,1);display:flex}.mobile-nav-link:last-child{border-bottom:0}.mobile-nav-link:hover,.mobile-nav-link:focus-visible,.mobile-nav-link.active{color:#fff;padding-left:10px}.mobile-nav-idx{color:#8d82a8;width:24px;font:500 10px/1 var(--font-mono)}.mobile-nav-txt{font:400 clamp(2.8rem, 13vw, 5rem)/.95 var(--font-sans);letter-spacing:-.07em}.mobile-nav-footer{color:#ffffff6b;font:500 10px/1.4 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;gap:16px;display:flex}.mobile-nav-footer p{margin:0}.mobile-nav-footer .footer-email{color:#ffffffb8;text-transform:none;letter-spacing:0}}.filter-pill:hover,.tab-btn:hover,.mode-btn:hover{color:var(--text-primary);border-color:var(--text-primary)}.filter-pill.active,.tab-btn.active,.mode-btn.active{box-shadow:inset 0 -1px var(--text-primary)}.home-project-row:hover .home-project-arrow{transform:translate(5px)rotate(-4deg)}.home-project-arrow{transition:transform .3s}.footer-top-button:hover{transform:translateY(-4px)rotate(8deg)}@media (prefers-reduced-motion:reduce){button,button:after,.pill-btn .btn-arrow,.footer-pill-btn svg,.submit-btn svg,.home-project-more svg,.about-simple-actions svg,.cv-actions svg,.work-contact-link svg{transition:none!important}}.pill-btn,.cta-btn,.submit-btn,.footer-pill-btn{min-height:48px;font-family:var(--font-body);letter-spacing:0;border:1px solid #ffffff47;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:14px;font-weight:500;display:inline-flex}.pill-btn.primary,.cta-btn.fill,.submit-btn{background:var(--pure-white);color:var(--soft-black);border-color:var(--pure-white)}.pill-btn.secondary,.cta-btn.outline,.footer-pill-btn{color:var(--text-primary);background:0 0}.pill-btn:hover:not(:disabled),.cta-btn:hover:not(:disabled),.submit-btn:hover:not(:disabled),.footer-pill-btn:hover:not(:disabled){border-color:var(--pure-white)}.filter-pill,.tab-btn{border:1px solid var(--border-line);min-height:38px;color:var(--text-secondary);border-radius:999px;padding:0 16px;font-size:13px}.mode-btn{border:1px solid var(--border-line);width:38px;height:38px;color:var(--text-secondary);border-radius:50%;place-items:center;display:inline-grid}.home-project-more,.about-simple-actions button,.cv-actions button,.work-contact-link{border-bottom:1px solid var(--text-secondary);min-height:42px;color:var(--text-primary);border-radius:0;align-items:center;gap:8px;padding:0 0 7px;display:inline-flex}.footer-top-button{border-radius:50%}@media (width<=700px){.pill-btn,.cta-btn,.submit-btn,.footer-pill-btn{min-height:50px;padding:0 20px}.filter-pill,.tab-btn{min-height:42px}}.hero-eyebrow{animation:.8s .15s both heroFade}.hero-main-title{overflow:hidden}.hero-main-title br{display:block}.hero-main-title em{animation:1s cubic-bezier(.22,1,.36,1) .35s both heroLine;display:inline-block}.hero-main-title{animation:1s cubic-bezier(.22,1,.36,1) .2s both heroLine}.hero-main-copy{animation:.8s .7s both heroFade}.hero-buttons-row{animation:.8s .9s both heroFade}.hero-silk-bg{animation:12s ease-in-out infinite alternate visibleSilkDrift,1.4s both heroAtmosphere}.project-card-image,.drawer-image-wrapper,.portrait-image-wrapper{overflow:hidden}.motion-reveal-visible .project-card-image img,.motion-reveal-visible .drawer-image-wrapper img,.motion-reveal-visible .portrait-image-wrapper img{animation:1.1s cubic-bezier(.22,1,.36,1) both imageReveal}.home-project-more:hover,.about-simple-actions button:hover,.cv-actions button:hover,.work-contact-link:hover{padding-left:10px}.accordion-gallery{animation:1s cubic-bezier(.22,1,.36,1) .25s both galleryRise}.ag-panel:hover .ag-panel__media{transform:translate(-50%,-50%)scale(1.06)}.ag-panel:hover .ag-panel__text{letter-spacing:.02em}.footer-marquee div{animation:34s linear infinite footerMarquee}.cinematic-footer-content h2{animation:1s .2s both footerTitle}.page-intro-header,.resume-header-section,.contact-info-column{animation:.8s both heroFade}@keyframes heroLine{0%{opacity:0;transform:translateY(70px)}to{opacity:1;transform:translateY(0)}}@keyframes heroFade{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes imageReveal{0%{clip-path:inset(0 100% 0 0);transform:scale(1.08)}to{clip-path:inset(0);transform:scale(1)}}@keyframes galleryRise{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes heroAtmosphere{0%{opacity:0}to{opacity:.72}}@keyframes footerTitle{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
