.portfolio-shell{--gold:#e7c96f;--obs-ink:#171819;--obs-muted:#656561;--obs-line:#17181926;--copper:#e7c96f;--ember:#f1d994;--font-display:var(--font-inter), Arial, sans-serif;--iri-sky:#8fd9ef;--iri-lilac:#b9a6f1;--iri-rose:#f2b3d5;--iri-butter:#f1dc8e;--iri-mint:#9ee0cd;--iri:linear-gradient(100deg, var(--iri-sky), var(--iri-lilac) 27%, var(--iri-rose) 52%, var(--iri-butter) 76%, var(--iri-mint));color:var(--obs-ink);background:#f1f0e9}.portfolio-shell ::selection{color:#111;background:var(--iri-lilac)}.portfolio-shell :focus-visible{outline-offset:5px;outline:2px solid #a08024}.observatory{isolation:isolate;position:relative;overflow:clip}.observatory h1,.observatory h2,.observatory h3,.observatory p{margin:0}.observatory h1,.observatory h2,.observatory h3{font-family:var(--font-body);letter-spacing:-.06em;font-weight:750}.observatory h2{text-transform:uppercase;font-size:clamp(3rem,6.3vw,6.8rem);line-height:.95}.observatory em{font-style:normal;font-weight:inherit}.observatory a{transition:color .25s,background .25s}.observatory section[id]{scroll-margin-top:95px}.obs-label{font:10px/1.6 var(--font-label);text-transform:uppercase;letter-spacing:.025em;align-items:center;gap:12px;display:flex}.obs-label>span:first-child:before{content:"";vertical-align:middle;background:currentColor;width:4px;height:4px;margin-right:7px;display:inline-block}.obs-rule{opacity:.35;background:currentColor;width:32px;height:1px}.obs-hero{color:#f5f2e9;background:#101116;position:relative}.obs-hero-stage{background:radial-gradient(at 68% 40%,#e7c96f12,#0000 55%),#101116;height:100svh;min-height:880px;max-height:1300px;position:relative;overflow:hidden}.obs-hero-frame{pointer-events:none;z-index:4;border:1px solid #ffffff26;border-radius:10px;position:absolute;inset:18px}.obs-hero-frame:before{content:"";border-left:1px solid #ffffff20;position:absolute;top:0;bottom:0;left:65px}.obs-hero-copy{z-index:3;width:min(400px,34vw);position:absolute;top:140px;left:8.5%}.obs-hero-copy>.obs-label{color:var(--gold);font-size:9px}.obs-hero-statement{letter-spacing:-.035em;max-width:400px;font-size:clamp(22px,2.3vw,34px);font-weight:550;line-height:1.18;margin-top:22px!important}.obs-hero-location{color:#b8b6bf;font:10px/1.6 var(--font-label);margin-top:18px!important}.obs-status{font:10px/1.6 var(--font-label);align-items:center;gap:8px;display:inline-flex}.obs-status:before{content:"";background:var(--gold);border-radius:50%;flex-shrink:0;width:5px;height:5px}.obs-hero-copy .obs-status{color:var(--gold);margin-top:22px}.obs-hero-title{z-index:3;pointer-events:none;text-transform:uppercase;font-size:clamp(2rem,min(6.4vw,10.5vh),8.5rem);line-height:.88;position:absolute;bottom:96px;left:8.4%;right:5%;letter-spacing:-.075em!important}.obs-hero-title>span{white-space:nowrap;display:block}.obs-hero-title>span:last-child{text-align:right;margin-top:12px}.obs-title-dot{color:var(--gold)}.obs-hero-marker{color:var(--gold);z-index:4;font-size:42px;position:absolute;top:47%;left:33px}.obs-hero-bottom{z-index:5;height:64px;font:10px/1.6 var(--font-label);text-transform:uppercase;justify-content:space-between;align-items:center;gap:20px;display:flex;position:absolute;bottom:18px;left:8.4%;right:4.5%}.obs-hero-bottom a{align-items:center;gap:20px;display:inline-flex}.obs-hero-bottom a:hover{color:var(--gold)}.obs-hero-bottom>span{color:#b5b3be}.obs-astrolabe-panel{aspect-ratio:1;z-index:2;width:min(48vw,62vh,760px);position:absolute;top:44%;left:67%;transform:translate(-50%,-50%)}.observatory .obs-astrolabe-panel .astrolabe-scene{visibility:visible;filter:none;z-index:1;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:none;mask-image:none;opacity:1!important;transform:none!important}.observatory .obs-astrolabe-panel .astrolabe-scene__instrument.orrery{pointer-events:auto}.observatory .obs-astrolabe-panel .orrery-map-switch,.observatory .obs-astrolabe-panel .orrery__reset,.observatory .obs-astrolabe-panel .orrery__instruction{opacity:1;visibility:visible;pointer-events:auto}.observatory .obs-astrolabe-panel .orrery__readout{font-size:8px;display:block;top:2%;left:18%}.observatory .obs-astrolabe-panel .orrery-map-switch{background:#111219d9;top:7%;bottom:auto;right:0}.observatory .obs-astrolabe-panel .orrery-map-switch button{min-height:35px;font-size:9px}.observatory .obs-astrolabe-panel .orrery__reset{width:35px;height:35px;inset:calc(7% + 46px) 0 auto auto}.observatory .obs-astrolabe-panel .orrery__guide{display:grid;top:8%;bottom:auto;left:40%}.observatory .obs-astrolabe-panel .orrery__instruction{font-size:9px}.obs-section{border-inline:1px solid var(--obs-line);border-bottom:1px solid var(--obs-line);margin-inline:18px;padding:84px 5.5% 90px 7.2%;position:relative}.obs-section:before{content:"";border-left:1px solid var(--obs-line);pointer-events:none;position:absolute;top:0;bottom:0;left:65px}.obs-section>.obs-label{margin-bottom:34px}.obs-section-heading{justify-content:space-between;align-items:end;gap:40px;margin-bottom:62px;display:flex}.obs-section-heading>p{max-width:300px;color:var(--obs-muted);font-size:13px;line-height:1.7}.obs-work{padding-bottom:65px}.obs-work .obs-section-heading h2{font-size:clamp(4rem,10vw,10rem)}.obs-projects{grid-template-columns:repeat(12,1fr);align-items:start;gap:85px 28px;display:grid}.obs-project{grid-column:span 7;display:block}.obs-project:nth-child(2){grid-column:9/13;margin-top:170px}.obs-project:nth-child(3){grid-column:1/6;margin-top:-80px}.obs-project:nth-child(4){grid-column:7/13;margin-top:75px}.obs-project{--plate-tone:#dedfd7;--plate-clip:polygon(0 0, 68% 0, 72% 22px, 100% 22px, 100% 100%, 18px 100%, 0 calc(100% - 18px))}.obs-project:nth-child(2){--plate-tone:#dfd8c7}.obs-project:nth-child(3){--plate-tone:#d5dcde}.obs-project:nth-child(4){--plate-tone:#dcd6e4}.obs-project-image{background:var(--plate-tone);clip-path:var(--plate-clip);padding:18px 22px 28px;transition:background .3s;position:relative}.obs-project-bar{font:9px/1.5 var(--font-label);text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;min-height:70px;padding:20px 0;display:flex}.obs-project-bar>span:first-child{max-width:80%}.obs-project-image img{aspect-ratio:1.42;object-fit:cover;object-position:top;width:100%;height:auto;transition:transform .55s cubic-bezier(.2,.7,.2,1);box-shadow:0 8px 20px #00000013}.obs-project:nth-child(2) .obs-project-image img{aspect-ratio:1}.obs-project:hover .obs-project-image img{transform:scale(1.035)}.obs-project-open{z-index:2;color:#fff;background:#171819;border-radius:50%;place-items:center;width:42px;height:42px;transition:transform .3s;display:grid;position:absolute;bottom:16px;right:16px;translate:0 0 44px;box-shadow:0 14px 22px -10px #000a}.obs-project:hover .obs-project-open{transform:rotate(45deg)}.obs-project-title{align-items:baseline;gap:15px;margin:23px 0 12px;display:flex}.obs-project-title h3{letter-spacing:-.045em;flex:1;font-size:clamp(1.35rem,2.2vw,2.2rem);line-height:1.08}.obs-project-title>svg{flex-shrink:0}.obs-project>p{color:var(--obs-muted);max-width:470px;font-size:13px;line-height:1.75}.obs-project-meta{flex-wrap:wrap;gap:8px 28px;margin:0 0 14px;display:flex}.obs-project-meta div{gap:3px;display:grid}.obs-project-meta dt{font:9px/1.4 var(--font-label);text-transform:uppercase;letter-spacing:.04em;color:var(--obs-muted)}.obs-project-meta dd{letter-spacing:-.015em;margin:0;font-size:13px;font-weight:550}.obs-project>.obs-project-outcome{border-left:2px solid var(--gold);color:var(--obs-ink);margin-top:12px;padding-left:14px}.obs-tags{flex-wrap:wrap;gap:6px 12px;margin-top:20px;display:flex}.obs-tags span{font:9px/1.6 var(--font-label);text-transform:uppercase;color:var(--obs-muted)}.obs-tags span:not(:last-child):after{content:"/";opacity:.5;margin-left:12px}.obs-archive{border-top:1px solid var(--obs-line);margin-top:80px}.obs-archive>p{padding:28px 0}.obs-archive>a{border-bottom:1px solid var(--obs-line);align-items:center;gap:22px;padding:25px 0;display:flex}.obs-archive>a>span{letter-spacing:-.03em;flex:1;font-size:18px;font-weight:550}.obs-archive small{color:var(--obs-muted);font:9px var(--font-label)}.obs-archive>a:hover{color:#8b6816}.obs-about{background:#e4e3db}.obs-about-grid{grid-template-columns:1fr 1fr;gap:8vw;display:grid}.obs-about h2{font-size:clamp(3.5rem,7vw,7rem)}.obs-about-portrait{margin-top:40px;position:relative}.obs-plate{perspective:1500px;perspective-origin:50% 35%}.obs-plate-tilt,.obs-plate-depth{transform-style:preserve-3d;position:relative}.obs-plate-tilt{transform:rotateX(7deg) rotateY(var(--rest-y,-6deg))}.obs-project:nth-child(2n){--rest-y:6deg}.obs-plate-slab{clip-path:var(--plate-clip);background:color-mix(in srgb, var(--plate-tone) 50%, #050608);pointer-events:none;position:absolute;inset:0;transform:translateZ(-16px)}.obs-plate-slab--far{background:color-mix(in srgb, var(--plate-tone) 22%, #050608);transform:translateZ(-34px)}.obs-project:focus-visible{outline:none}.obs-project:focus-visible .obs-project-image:after{border:2px solid var(--gold)}.obs-plate--portrait{--plate-tone:#cbccc3;--plate-clip:polygon(0 0,85% 0,100% 15%,100% 100%,0 100%)}.obs-portrait-panel{background:var(--plate-tone);height:420px;clip-path:var(--plate-clip);display:block}.obs-portrait-figure{object-fit:contain;object-position:bottom;filter:grayscale()drop-shadow(0 22px 26px #0005);pointer-events:none;width:100%;height:112%;position:absolute;bottom:0;left:0;translate:0 0 46px}.obs-about-caption{z-index:1;background:#e4e3db;justify-content:space-between;align-items:center;margin-top:15px;padding-top:12px;display:flex;position:relative}.obs-about-caption span{text-align:right;font:10px/1.6 var(--font-label)}.obs-about-copy{padding-top:6px}.obs-about-copy>p:first-child{letter-spacing:-.045em;font-size:clamp(1.4rem,2.5vw,2.6rem);font-weight:500;line-height:1.35}.obs-about-copy>p+p{color:var(--obs-muted);max-width:480px;margin-top:30px;font-size:15px;line-height:1.8}.obs-text-link{border-bottom:1px solid;align-items:center;gap:28px;padding:12px 0;font-size:12px;display:inline-flex}.obs-about-copy .obs-text-link{margin-top:30px}.obs-skills{color:#f1efe6;--obs-line:#ffffff26;--obs-muted:#adadb3;background:#18191d}.obs-skills>.obs-label{color:var(--gold)}.obs-capabilities{border-block:1px solid var(--obs-line);grid-template-columns:repeat(4,1fr);display:grid}.obs-capabilities article{border-right:1px solid var(--obs-line);padding:32px 24px}.obs-capabilities article:first-child{padding-left:0}.obs-capabilities article:last-child{border-right:0;padding-right:0}.obs-capabilities h3{justify-content:space-between;align-items:center;margin:28px 0 18px;font-size:30px;display:flex}.obs-capabilities h3 span{color:var(--gold);font-size:35px;font-weight:400}.obs-capabilities p{color:var(--obs-muted);font-size:12px;line-height:1.8}.obs-system-band{color:#f1efe6;background:#25262a;justify-content:space-between;align-items:center;gap:30px;margin-inline:18px;padding:45px 5.5% 45px 7.2%;display:flex}.obs-system-band h2{margin-top:20px;font-size:clamp(1.5rem,3vw,3rem)}.obs-system-band p:last-child{font:11px/1.8 var(--font-label);color:#b9b7b0;margin-top:17px}.obs-system-band .obs-label{color:var(--gold)}.obs-button{background:var(--gold);color:#171819;font:11px/1.5 var(--font-label);text-transform:uppercase;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);justify-content:space-between;align-items:center;gap:28px;padding:18px 24px;display:inline-flex}.obs-button:hover{background:#f2dda3}.obs-experience-list details{border-bottom:1px solid var(--obs-line)}.obs-experience-list details:first-child{border-top:1px solid var(--obs-line)}.obs-experience-list summary{cursor:pointer;grid-template-columns:170px 1fr 35px;align-items:center;gap:25px;padding:28px 0;list-style:none;display:grid}.obs-experience-list summary::-webkit-details-marker{display:none}.obs-experience-list strong{letter-spacing:-.035em;font-size:clamp(1.05rem,1.9vw,1.8rem);font-weight:600;line-height:1.2;display:block}.obs-experience-list small{color:var(--obs-muted);margin-top:10px;font-size:12px;display:block}.obs-experience-list details>p{max-width:660px;color:var(--obs-muted);margin:0 60px 30px 195px;font-size:13px;line-height:1.9}.obs-plus{font-size:25px;transition:transform .25s}.obs-experience-list details[open] .obs-plus{transform:rotate(45deg)}.obs-experience-list details[open]{background:#e8e7df}.obs-education{background:#e9e8e0}.obs-education-grid{grid-template-columns:1fr 1fr;gap:8vw;display:grid}.obs-education h2{margin-bottom:40px;font-size:clamp(2.6rem,5.2vw,5.2rem)}.obs-education h3{letter-spacing:-.035em;font-size:20px;line-height:1.3}.obs-education article{border-bottom:1px solid var(--obs-line);padding:22px 0}.obs-education article .obs-label{margin-bottom:12px}.obs-education article>p:last-child{color:var(--obs-muted);margin-top:9px;font-size:12px;line-height:1.8}.obs-contact{background:#e7c96f;padding-top:65px;padding-bottom:45px;overflow:hidden}.obs-contact .obs-status:before{background:#171819}.obs-contact h2{z-index:1;max-width:850px;margin-top:35px;font-size:clamp(4rem,10.5vw,11rem);position:relative}.obs-contact-star{opacity:.2;font-size:160px;line-height:1;position:absolute;top:24%;right:7%}.obs-contact-lead{color:#2e2a1e;max-width:520px;font-size:17px;line-height:1.6;margin-top:28px!important}.obs-contact-email{border-bottom:1px solid;align-items:center;gap:32px;margin-top:32px;padding-bottom:14px;font-size:18px;display:inline-flex}.obs-contact-bottom{border-top:1px solid var(--obs-line);justify-content:space-between;gap:30px;margin-top:65px;padding-top:25px;font-size:12px;display:flex}.obs-contact-bottom>div{flex-wrap:wrap;gap:12px 28px;display:flex}.portfolio-shell .site-nav{color:#f1efe6;-webkit-backdrop-filter:none;backdrop-filter:none;background:#111217f5;border:1px solid #ffffff26;border-radius:10px 10px 0 0;width:auto;height:64px;padding:0 4%;top:18px;left:18px;right:18px}.portfolio-shell .site-nav__inner{gap:30px;max-width:none;height:100%}.portfolio-shell .site-nav__brand{font-family:var(--font-body);letter-spacing:-.025em;font-size:13px;font-weight:650}.portfolio-shell .site-nav__wordmark small{display:none}.portfolio-shell .site-nav__links{gap:26px;font-size:9px}.portfolio-shell .site-nav__links a{color:#cfccd3}.portfolio-shell .site-nav__links a>span,.portfolio-shell .site-nav__star{display:none}.portfolio-shell .site-nav__links a:hover,.portfolio-shell .site-nav__links a.is-active{color:var(--gold);transform:none}.portfolio-shell .site-nav__links a.is-active:before{content:"";background:var(--gold);width:4px;height:4px}.portfolio-shell .site-nav__links a:after{display:none}.portfolio-shell .site-nav__actions{align-items:center;gap:22px;display:flex}.portfolio-shell .site-nav__resume{font-size:10px}.portfolio-shell .site-nav__console{color:#14151a;background:var(--gold);border:0;border-radius:0;padding:11px 16px;font-size:10px}.portfolio-shell .site-nav__menu{background:0 0;border-color:#fff3}.portfolio-shell .mobile-nav{color:#f1efe6;background:#111217}.portfolio-shell .mobile-nav__links a{font-family:var(--font-body);letter-spacing:-.045em;font-size:30px;font-weight:650}.portfolio-shell .mobile-nav__instrument{opacity:.3}.portfolio-shell .intro-loader{color:#f1efe6;background:#111217}.portfolio-shell .intro-loader>p{font-family:var(--font-body);font-size:21px;font-weight:600}.portfolio-shell .cursor-layer{display:none}.portfolio-shell .case-study-page{color:#171819;--ink:#171819;--ink-soft:#646461;--line-dark:#17181926;background:#f1f0e9}.portfolio-shell .case-study-hero{color:#f1efe6;background:#111217;padding:150px 0 60px}.portfolio-shell .case-study-hero .case-study-title{font-family:var(--font-body);letter-spacing:-.065em;text-transform:uppercase;max-width:1100px;font-size:clamp(2.7rem,6.8vw,7rem);font-weight:750;line-height:.96}.portfolio-shell .case-study-astrolabe{opacity:.2}.portfolio-shell .case-study-meta-grid{border-color:#ffffff30}.portfolio-shell .case-study-meta-label{color:#b7b3a8}.portfolio-shell .case-study-meta-value{color:#f1efe6}.portfolio-shell .case-study-banner{background:#dfded5;padding:40px 0}.portfolio-shell .case-study-body{background:#f1f0e9}.portfolio-shell .case-study-main h2,.portfolio-shell .sidebar-card h3{font-family:var(--font-body);letter-spacing:-.035em;color:#171819;font-weight:650}.portfolio-shell .case-study-main p,.portfolio-shell .architecture-list,.portfolio-shell .architecture-list li,.portfolio-shell .sidebar-note{color:#555752}.portfolio-shell .architecture-list svg{color:#a08024;flex-shrink:0;margin-top:3px}.portfolio-shell .sidebar-card{background:#e7e6de;border-color:#17181926;padding:26px 24px}.portfolio-shell .metric-item{border-top:1px solid #17181918;min-height:0;padding:14px 0}.portfolio-shell .metric-item:first-child{border-top:0;padding-top:0}.portfolio-shell .metric-item:before,.portfolio-shell .metric-item:after{display:none}.portfolio-shell .metric-value{text-align:left;color:#171819;width:auto;font-family:var(--font-body);letter-spacing:-.03em;font-size:20px;font-weight:650;line-height:1.2;position:static;transform:none}.portfolio-shell .metric-label{color:#656561;letter-spacing:.04em;order:-1;font-size:9px}.portfolio-shell .sidebar-link{color:#7a5f12}.portfolio-shell .sidebar-link:hover{color:#171819}.portfolio-shell .sidebar-link span{color:#3d3a2e;border-color:#a0802466}.portfolio-shell .tech-tag{color:#343630;background:0 0;border-color:#17181930}.portfolio-shell .case-study-next-footer{color:#171819;background:#e7c96f}.portfolio-shell .next-title{font-family:var(--font-body);letter-spacing:-.05em;font-weight:700}.portfolio-shell .next-desc,.portfolio-shell .next-label{color:#4a432f}.portfolio-shell .next-button{color:#f1efe6;background:#171819}.portfolio-shell .next-button:hover{color:#f1efe6;background:#2b2c30}.portfolio-shell .orrery-lab{color:#f1efe6;background:#111217}@media (min-width:1800px){.obs-astrolabe-panel{width:min(64vh,1000px)}}@media (max-width:1100px){.portfolio-shell .site-nav__links{gap:16px}.obs-hero-stage{min-height:800px}.obs-hero-copy{width:300px}.obs-astrolabe-panel{width:min(62vw,58vh,100vw - 48px);top:46%;left:64%}.observatory .obs-astrolabe-panel .orrery-map-switch{top:19%}.observatory .obs-astrolabe-panel .orrery__reset{top:calc(19% + 46px)}.obs-capabilities{grid-template-columns:1fr 1fr}.obs-capabilities article:nth-child(2){border-right:0}.obs-capabilities article:nth-child(3){border-top:1px solid var(--obs-line);padding-left:0}.obs-capabilities article:nth-child(4){border-top:1px solid var(--obs-line);padding-left:24px}.obs-section:before,.obs-hero-frame:before{left:38px}.obs-hero-marker{left:18px}.obs-projects{gap:55px 22px}.obs-project:nth-child(2){grid-column:8/13;margin-top:110px}.obs-project:first-child{grid-column:1/8}}@media (max-width:800px){.portfolio-shell .site-nav__links{display:none}.portfolio-shell .site-nav__menu{display:flex}.portfolio-shell .site-nav__actions{margin-left:auto}.obs-section-heading{display:block}.obs-section-heading>p{margin-top:24px}.portfolio-shell .site-nav{height:64px;padding-inline:16px;top:10px;left:10px;right:10px}.portfolio-shell .site-nav__actions{display:none}.obs-hero-stage{height:100svh;min-height:840px;max-height:none}.obs-hero-frame{inset:10px}.obs-hero-frame:before,.obs-section:before{display:none}.obs-hero-copy{width:290px;top:106px;left:7%}.obs-hero-copy>.obs-label{font-size:8px}.obs-hero-statement{max-width:290px;font-size:19px;margin-top:14px!important}.obs-hero-location{margin-top:12px!important}.obs-hero-copy .obs-status{margin-top:12px;font-size:9px}.obs-astrolabe-panel{width:min(100%,540px,40svh);top:50%;left:50%}.obs-hero-title{font-size:8.35vw;bottom:135px;left:7%;right:7%}.obs-hero-title>span:last-child{margin-top:8px}.obs-hero-marker{display:none}.obs-hero-bottom{flex-wrap:wrap;align-content:center;gap:12px;height:85px;font-size:9px;bottom:10px;left:7%;right:7%}.obs-hero-bottom>span{display:none}.obs-hero-bottom a{gap:12px}.observatory .obs-astrolabe-panel .orrery__readout{font-size:7px;top:5%;left:15%}.observatory .obs-astrolabe-panel .orrery-map-switch{top:auto;bottom:4%;right:17%}.observatory .obs-astrolabe-panel .orrery__reset{inset:auto auto 4% 16%}.observatory .obs-astrolabe-panel .orrery__guide{width:90%;top:8%;left:50%}.observatory .obs-astrolabe-panel .orrery__instruction{font-size:8px}.obs-section{margin-inline:10px;padding:55px 6% 60px}.obs-section>.obs-label{margin-bottom:25px;font-size:9px}.obs-section-heading{margin-bottom:35px}.observatory h2{font-size:clamp(2.4rem,10vw,3.8rem)}.obs-work .obs-section-heading h2{font-size:14vw}.obs-projects{display:block}.obs-project{margin:0 0 48px!important}.obs-project-image{padding:12px 15px 22px}.obs-project-image img,.obs-project:nth-child(2) .obs-project-image img{aspect-ratio:1.25}.obs-project-title h3{font-size:23px}.obs-project-bar{min-height:60px;font-size:8px}.obs-archive{margin-top:10px}.obs-archive small{display:none}.obs-archive>a>span{font-size:16px}.obs-about-grid,.obs-education-grid{grid-template-columns:1fr;gap:35px}.obs-portrait-panel{height:350px}.obs-about-copy>p:first-child{font-size:24px}.obs-capabilities article{padding:25px 14px}.obs-capabilities article:nth-child(4){padding-left:14px}.obs-capabilities h3{font-size:25px}.obs-capabilities{grid-template-columns:1fr}.obs-capabilities article,.obs-capabilities article:nth-child(n){border-right:0;border-top:1px solid var(--obs-line);padding:26px 0}.obs-capabilities article:first-child{border-top:0}.obs-capabilities p{font-size:13px}.obs-system-band{flex-direction:column;align-items:start;margin-inline:10px;padding:35px 6%}.obs-system-band h2{font-size:26px}.obs-experience-list summary{grid-template-columns:1fr 25px;gap:12px}.obs-experience-list summary>.obs-label{grid-column:1/-1}.obs-experience-list strong{font-size:19px}.obs-experience-list details>p{margin-left:0;margin-right:0}.obs-contact h2{font-size:15vw}.obs-contact .obs-status{max-width:280px;font-size:9px}.obs-contact-star{font-size:72px;top:150px;right:6%}.obs-contact-lead{font-size:15px}.obs-contact-bottom{flex-direction:column;gap:20px;margin-top:40px;font-size:11px}.obs-contact-email{font-size:16px}.portfolio-shell .case-study-meta-grid{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){.portfolio-shell *,.portfolio-shell :before,.portfolio-shell :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.portfolio-shell,.observatory,.obs-section{color:#000;background:#fff}.obs-hero-stage{height:auto;min-height:300px}.obs-hero-title,.obs-hero-copy{color:#000;margin:20px;position:static}.obs-hero-title{font-size:35px}.obs-astrolabe-panel,.obs-hero-frame,.obs-hero-bottom,.obs-hero-marker{display:none}.obs-projects{display:block}.obs-project{break-inside:avoid;margin:30px 0!important}}@media (min-width:601px) and (max-width:800px){.obs-hero-stage{min-height:1000px}.obs-astrolabe-panel{width:500px;top:52%}.obs-hero-title{bottom:110px}}.observatory .obs-astrolabe-panel .orrery__instruction{background:#111217e6;border:1px solid #e7c96f25;padding:6px 9px}.obs-instrument-scroll,.obs-instrument-pointer{pointer-events:none;position:absolute;inset:0}.obs-instrument-scroll{transform-origin:67% 44%;z-index:2}.obs-astrolabe-panel{pointer-events:auto}.obs-project-image{overflow:clip}.portfolio-shell .site-nav:after,.obs-project-image:after{content:"";z-index:5;pointer-events:none;border-radius:inherit;border:1px solid #ffffff1f;transition:border-color .3s;position:absolute;inset:0}.obs-project:hover .obs-project-image:after{border-color:#ffffff38}.obs-section:after{content:"";pointer-events:none;background:#ffffff1a;height:1px;position:absolute;bottom:0;left:0;right:0}@media (min-width:900px) and (prefers-reduced-motion:no-preference){.obs-hero{height:135svh;min-height:1120px}.obs-hero-stage{position:sticky;top:0}.obs-project-image img,.obs-plate-tilt,.obs-plate-depth{will-change:transform}.obs-project:hover .obs-project-image img{transform:none}}@media print{.portfolio-shell .site-nav:after,.obs-project-image:after,.obs-section:after{display:none}}@keyframes obs-blink{0%,49.9%{opacity:1}50%,to{opacity:0}}.obs-label.is-signal>span:first-child:before,.portfolio-shell .site-nav__links a.is-active:before{animation:.15s step-end 7 obs-blink}.portfolio-shell .site-nav__links a,.obs-hero-bottom a,.portfolio-shell .site-nav__resume{isolation:isolate;transition:color .3s;position:relative}.portfolio-shell .site-nav__links a:after,.obs-hero-bottom a:after,.portfolio-shell .site-nav__resume:after{content:"";z-index:-1;background:var(--gold);transform-origin:100%;pointer-events:none;height:auto;transition:transform .38s cubic-bezier(.7,0,.2,1);display:block;position:absolute;inset:-5px -8px;transform:scaleX(0)}.portfolio-shell .site-nav__links a:hover:after,.portfolio-shell .site-nav__links a:focus-visible:after,.obs-hero-bottom a:hover:after,.obs-hero-bottom a:focus-visible:after,.portfolio-shell .site-nav__resume:hover:after,.portfolio-shell .site-nav__resume:focus-visible:after{transform-origin:0;transform:scaleX(1)}.portfolio-shell .site-nav__links a:hover,.portfolio-shell .site-nav__links a:focus-visible,.obs-hero-bottom a:hover,.obs-hero-bottom a:focus-visible,.portfolio-shell .site-nav__resume:hover,.portfolio-shell .site-nav__resume:focus-visible{color:#121317}.portfolio-shell .site-nav__links a.is-active:hover:before{background:#121317}.obs-archive>a{isolation:isolate;transition:color .3s,padding .4s cubic-bezier(.7,0,.2,1);position:relative}.obs-archive>a:before{content:"";z-index:-1;background:var(--obs-ink);transform-origin:100%;pointer-events:none;transition:transform .45s cubic-bezier(.7,0,.2,1);position:absolute;inset:0 -16px;transform:scaleX(0)}.obs-archive>a:hover:before,.obs-archive>a:focus-visible:before{transform-origin:0;transform:scaleX(1)}.obs-archive>a:hover,.obs-archive>a:focus-visible{color:#f1f0e9}.obs-archive>a:hover small,.obs-archive>a:focus-visible small{color:var(--gold)}.portfolio-shell .site-nav__console{clip-path:polygon(0 0,100% 0,100% 100%,11px 100%,0 calc(100% - 11px))}@supports (animation-timeline:scroll()){@keyframes obs-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.portfolio-shell .site-nav:before{content:"";z-index:6;background:var(--gold);transform-origin:0;pointer-events:none;height:1px;animation:linear both obs-progress;animation-timeline:scroll(root);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.obs-label.is-signal>span:first-child:before,.portfolio-shell .site-nav__links a.is-active:before{animation:none}.portfolio-shell .site-nav__links a:after,.obs-hero-bottom a:after,.portfolio-shell .site-nav__resume:after,.obs-archive>a:before{transition:none}}.obs-stack{aspect-ratio:16/10;perspective:700px;pointer-events:none;z-index:3;width:230px;position:absolute;top:50%;left:50%;transform:translateY(-50%)}.obs-stack__plate{z-index:calc(3 - var(--i));clip-path:polygon(0 0,100% 0,100% 100%,12px 100%,0 calc(100% - 12px));opacity:0;transition:opacity .3s,transform .5s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * 55ms);background:#dcdbd3;position:absolute;inset:0;overflow:hidden;transform:translate3d(-24px,18px,-260px)rotateY(-26deg)}.obs-stack__plate img{object-fit:cover;object-position:top;width:100%;height:100%}.obs-archive>a:hover,.obs-archive>a:focus-visible{z-index:2}.obs-archive>a:hover .obs-stack__plate,.obs-archive>a:focus-visible .obs-stack__plate{opacity:calc(1 - var(--i) * .22);transform:translate3d(calc(var(--i) * 52px), calc(var(--i) * -14px), calc(var(--i) * -110px)) rotateY(-24deg)}@media not ((hover:hover) and (pointer:fine)){.obs-stack{display:none}}@media (prefers-reduced-motion:reduce){.obs-stack__plate{transition:opacity .2s}}.sign-off{color:#9d9ea6;background:#101116;border-radius:0 0 10px 10px;margin:0 18px 18px;padding:26px 5.5% 22px 7.2%;position:relative;overflow:clip}.sign-off__telemetry,.sign-off__base{z-index:1;font:10px/1.6 var(--font-label);text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 28px;display:flex;position:relative}.sign-off__telemetry{border-bottom:1px solid #ffffff1a;padding-bottom:18px}.sign-off__telemetry b{color:#f1efe6;font-weight:500}.sign-off__end{color:#f1efe6;align-items:center;gap:9px;display:inline-flex}.sign-off__end:before{content:"";background:var(--iri-mint);width:5px;height:5px}.sign-off__fleet{color:#f1efe6;align-items:center;gap:8px;display:inline-flex}.sign-off__fleet:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.sign-off__fleet--ok:before{background:var(--iri-mint);box-shadow:0 0 0 3px #9ee0cd33}.sign-off__fleet--warn:before{background:var(--iri-butter)}.sign-off__fleet--down:before{background:var(--iri-rose)}.sign-off__fleet:hover{color:var(--iri-sky)}.sign-off__stage{white-space:nowrap;margin:10px 0 -1vw}.sign-off__mark{font-family:var(--font-body);letter-spacing:-.075em;text-transform:uppercase;background:var(--iri);color:#0000;will-change:transform;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.6rem,11.8vw,14rem);font-weight:760;line-height:.86;display:inline-block}.sign-off__base{border-top:1px solid #ffffff1a;padding-top:16px}.sign-off__base nav{flex-wrap:wrap;gap:6px 22px;display:flex}.sign-off__base a{color:#d9d8de;transition:color .25s}.sign-off__base a:hover,.sign-off__base a:focus-visible{color:var(--iri-butter)}.sign-off__top{align-items:center;gap:6px;display:inline-flex}@media (max-width:800px){.sign-off{margin:0 10px 10px;padding:22px 6% 18px}.sign-off__stage{margin-inline:0}}@supports (animation-timeline:scroll()){.portfolio-shell .site-nav:before{background:var(--iri)}}.obs-section-heading h2 em,.obs-about h2 em{z-index:0;position:relative}.obs-section-heading h2 em:after,.obs-about h2 em:after{content:"";z-index:-1;background:var(--iri);opacity:.85;transform-origin:0;height:.055em;position:absolute;bottom:.12em;left:.04em;right:.02em}.obs-project:first-child .obs-plate-slab--far{background:color-mix(in srgb, var(--iri-sky) 70%, #101116)}.obs-project:nth-child(2) .obs-plate-slab--far{background:color-mix(in srgb, var(--iri-rose) 70%, #101116)}.obs-project:nth-child(3) .obs-plate-slab--far{background:color-mix(in srgb, var(--iri-mint) 70%, #101116)}.obs-project:nth-child(4) .obs-plate-slab--far{background:color-mix(in srgb, var(--iri-lilac) 70%, #101116)}.obs-plate--portrait .obs-plate-slab--far{background:color-mix(in srgb, var(--iri-butter) 65%, #101116)}.obs-stack__plate--slab{background:var(--iri)}.obs-section,.obs-system-band{isolation:isolate}.obs-marks{pointer-events:none;z-index:-1;position:absolute;inset:0;overflow:clip}.obs-mark{color:var(--mark,var(--iri-lilac));display:block;position:absolute}.obs-mark svg{width:100%;height:100%;display:block;overflow:visible}.obs-mark--label{font:9px/1.4 var(--font-label);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--obs-muted)}.obs-mark--label i{color:var(--obs-ink);border-bottom:2px solid var(--mark,var(--iri-lilac));font-style:normal}.obs-skills .obs-mark--label i,.obs-system-band .obs-mark--label i{color:#f1efe6}@keyframes obs-spin{to{transform:rotate(360deg)}}.obs-mark--spin svg{animation:22s linear infinite obs-spin}@media (max-width:800px){.obs-mark--wide{display:none}}@media (prefers-reduced-motion:reduce){.obs-mark--spin svg{animation:none}}.obs-paneled{isolation:isolate;overflow:clip;background:0 0!important}.obs-panel{z-index:-2;pointer-events:none;background:var(--panel-color);clip-path:polygon(0 0,34% 0,37% 46px,100% 46px,100% calc(100% - 54px),calc(100% - 54px) 100%,0 100%);transform-origin:50% 0;position:absolute;inset:-70px -50px}.obs-skills.obs-paneled{--panel-color:#18191d}.obs-system-band.obs-paneled{--panel-color:#25262a;position:relative}.obs-contact.obs-paneled{--panel-color:#e7c96f}.obs-contact .obs-mark{color:#17181999!important}.obs-panel,.obs-plate-tilt,.obs-section-heading h2,.obs-about h2,.obs-contact h2,.obs-mark{--k:1}@media (max-width:899px){.obs-panel,.obs-plate-tilt,.obs-section-heading h2,.obs-about h2,.obs-contact h2,.obs-mark{--k:.5}}.obs-work h2,.obs-skills h2,.obs-education h2{--slide:14%}.obs-about h2,.obs-experience h2,.obs-contact h2{--slide:-14%}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){@keyframes obs-panel-pass{0%{transform:translateY(calc(6% * var(--k))) rotate(calc(-3deg * var(--k))) scale(calc(1 - .2 * var(--k)))}30%,72%{transform:none}to{transform:translateY(calc(-3% * var(--k))) rotate(calc(1.6deg * var(--k))) scale(calc(1 - .1 * var(--k)))}}@keyframes obs-panel-arrive{0%{transform:rotate(calc(-2.2deg * var(--k))) scale(calc(1 - .16 * var(--k)))}45%,to{transform:none}}.obs-panel{animation:linear both obs-panel-pass;animation-timeline:view()}.obs-system-band .obs-panel{animation-name:obs-panel-arrive}@keyframes obs-title-slide{0%{transform:translateX(calc(var(--slide,14%) * var(--k)))}to{transform:none}}.obs-section-heading h2,.obs-about h2,.obs-contact h2{animation:linear both obs-title-slide;animation-timeline:view();animation-range:entry cover 42%}@keyframes obs-drift{0%{transform:translateY(calc(var(--depth,0) * 140px * var(--k)))}to{transform:translateY(calc(var(--depth,0) * -140px * var(--k)))}}.obs-mark[data-depth]{animation:linear both obs-drift;animation-timeline:view()}.obs-plate-tilt{--lean:-1}.obs-project:nth-child(2n) .obs-plate-tilt{--lean:1}@keyframes obs-plate-swing{0%{transform:rotateX(calc(18deg * var(--k))) rotateY(calc(13deg * var(--lean) * var(--k)))}to{transform:rotateX(calc(-7deg * var(--k))) rotateY(calc(-5deg * var(--lean) * var(--k)))}}.obs-plate-tilt{animation:linear both obs-plate-swing;animation-timeline:view()}@keyframes obs-signoff{0%{transform:translate(22%)}to{transform:none}}.sign-off__mark{animation:linear both obs-signoff;animation-timeline:view();animation-range:entry}}@media (prefers-reduced-motion:no-preference) and (min-width:900px){@keyframes obs-img-pan{0%{transform:translateY(-5%)scale(1.16)}to{transform:translateY(5%)scale(1.16)}}.obs-project-image img{animation:linear both obs-img-pan;animation-timeline:view()}}}@media (prefers-reduced-motion:no-preference){.obs-flow{transition:opacity .85s cubic-bezier(.2, .7, .2, 1) var(--flow-delay,0s), transform .95s cubic-bezier(.2, .7, .2, 1) var(--flow-delay,0s)}.obs-flow.is-pending{opacity:0;transform:translateY(18px)}}@media print{.obs-flow.is-pending{opacity:1;transform:none}}.observatory .obs-astrolabe-panel .orrery-map-switch button[aria-pressed=true]{color:#14151a;background:var(--gold)}.observatory .obs-astrolabe-panel .orrery-map-switch button[aria-pressed=true]:hover,.observatory .obs-astrolabe-panel .orrery-map-switch button[aria-pressed=true]:focus-visible{color:#14151a}.observatory .obs-astrolabe-panel .orrery__reset{color:var(--gold);box-shadow:none;background:#111219d9;border-color:#e7c96f70}.observatory .obs-astrolabe-panel .orrery__reset:hover,.observatory .obs-astrolabe-panel .orrery__reset:focus-visible{border-color:var(--gold);background:#1d1e24f2}
