@font-face{font-family:'DM Sans';src:url('assets/fonts/dm-sans.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}@font-face{font-family:'Manrope';src:url('assets/fonts/manrope.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
:root{--navy:#101a2a;--ink:#142133;--muted:#627080;--teal:#39bcb5;--mint:#5de0db;--paper:#f5f7f6;--white:#fff;--line:#d9e0e2;--font:'Manrope','Helvetica Neue',Arial,sans-serif;--body:'DM Sans',Arial,sans-serif;scroll-behavior:smooth}
*{box-sizing:border-box}html{scroll-padding-top:86px}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--body);-webkit-font-smoothing:antialiased}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--teal);outline-offset:4px}img{max-width:100%;display:block}.container{width:min(100% - 80px,1320px);margin:auto}.skip-link{position:absolute;top:-100px;left:12px;background:#fff;padding:10px;z-index:40}.skip-link:focus{top:10px}.site-header{position:sticky;top:0;z-index:20;background:rgba(245,247,246,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(18,33,48,.12)}.nav-shell{height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:16px;min-width:0}.brand-mark{font:800 26px/1 var(--font);letter-spacing:-.11em;white-space:nowrap}.brand-dot{color:var(--teal)}.brand-name{font:800 12px/1.25 var(--font);letter-spacing:.14em;white-space:nowrap}.brand-name small{display:block;font:600 9px/1.3 var(--font);letter-spacing:.12em;margin-top:4px;color:#71808d}.main-nav{display:flex;align-items:center;gap:32px;font:700 13px var(--font)}.main-nav a:hover{color:#168e8a}.main-nav .nav-contact{border:1px solid #b7c5c9;padding:12px 16px}.nav-contact span{margin-left:14px;color:#168e8a}.menu-toggle{display:none;background:none;border:0;padding:10px}.menu-toggle span{display:block;width:25px;height:2px;background:var(--ink);margin:5px}
h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:var(--font)}h1{font-size:clamp(48px,5.1vw,80px);line-height:1.11;letter-spacing:-.065em;font-weight:700;margin:24px 0 28px}h1 em,h2 em{font-style:normal;color:#259d99}h2{font-size:clamp(37px,4vw,61px);line-height:1.17;letter-spacing:-.055em;font-weight:700;margin:18px 0 0}.eyebrow,.section-kicker{font:800 11px/1.3 var(--font);letter-spacing:.18em;color:#1d9590}.eyebrow{display:flex;align-items:center;gap:10px}.signal{width:8px;height:8px;border-radius:50%;background:#41bab3;box-shadow:0 0 0 5px rgba(65,186,179,.16)}.hero{display:grid;grid-template-columns:1.18fr .82fr;min-height:685px;gap:7%;padding-top:70px;padding-bottom:80px;align-items:center}.hero-copy{padding-top:5px}.hero-lede{font-size:20px;max-width:605px;line-height:1.62;color:#536272}.hero-actions{display:flex;gap:32px;align-items:center;margin:37px 0 69px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:16px 20px;font:800 13px var(--font);letter-spacing:.01em;transition:transform .2s,background .2s,color .2s;border:1px solid transparent}.button:hover,.contact-orb:hover{transform:translateY(-3px)}.button-primary{background:var(--navy);color:white}.button-primary:hover{background:#254154}.button span{font-size:20px;font-weight:400}.text-link{font:800 13px var(--font);border-bottom:1px solid #939fa8;padding:7px 0}.text-link span{margin-left:17px;color:#1b9a95}.hero-foot{display:flex;gap:17px;flex-wrap:wrap;color:#6f7d8b;font:800 10px var(--font);letter-spacing:.12em}.hero-foot span+span:before{content:'·';margin-right:17px;color:#26a9a3}.hero-portrait{height:min(42vw,540px);min-height:430px;position:relative;background:#d5d6d0;overflow:hidden;box-shadow:20px 20px 0 #e0e9e7}.hero-portrait>img{height:100%;width:100%;object-fit:cover;object-position:center 27%;filter:saturate(.84) contrast(1.05)}.hero-portrait:after{content:'';position:absolute;inset:58% 0 0;background:linear-gradient(transparent,rgba(9,19,30,.45))}.portrait-label{position:absolute;z-index:1;left:30px;bottom:28px;display:flex;gap:12px;color:#fff;font:800 20px/1.22 var(--font);letter-spacing:.035em}.portrait-label span{color:var(--mint)}.portrait-index{position:absolute;z-index:1;right:27px;top:26px;color:#fff;font:800 10px var(--font);letter-spacing:.15em}
.marquee{background:var(--navy);color:#eef7f4;overflow:hidden;height:54px;display:flex;align-items:center;white-space:nowrap}.marquee-inner{min-width:max-content;animation:slide 36s linear infinite;font:700 11px var(--font);letter-spacing:.16em}.marquee-inner span{color:var(--mint);padding:0 48px}@keyframes slide{to{transform:translateX(-45%)}}.section{padding:115px 0}.section-intro{display:flex;justify-content:space-between;gap:80px;align-items:end;margin-bottom:52px}.section-intro>p{max-width:330px;color:var(--muted);line-height:1.7;margin:0 0 8px}.research-section{background:#ecf1f0}.research-interface{display:grid;grid-template-columns:35% 65%;min-height:570px;border:1px solid #d3dcde;background:#f9fbfa}.stage-list{display:flex;flex-direction:column;border-right:1px solid #d3dcde}.stage{flex:1;display:flex;align-items:center;gap:20px;text-align:left;border:0;border-bottom:1px solid #d3dcde;background:transparent;padding:25px 35px;color:#7c8a96;font:700 clamp(20px,2.3vw,32px) var(--font);letter-spacing:-.035em;transition:background .2s,color .2s}.stage:last-child{border-bottom:0}.stage span{align-self:flex-start;font:800 10px var(--font);letter-spacing:.1em;margin-top:9px}.stage b{font-size:17px;font-weight:500;margin-left:auto;opacity:0}.stage:hover,.stage.active{background:var(--navy);color:#fff}.stage.active span,.stage.active b{color:var(--mint);opacity:1}.stage-panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:570px;overflow:hidden}.panel-topline{display:flex;justify-content:space-between;margin:30px 38px;font:800 10px var(--font);letter-spacing:.15em;color:#6b7f8b}.stage-graphic{height:285px;display:grid;place-items:center;position:relative;isolation:isolate}.graphic-ring{border:1px solid rgba(40,141,139,.28);border-radius:50%;position:absolute;inset:0;margin:auto;aspect-ratio:1}.ring-one{width:260px}.ring-two{width:375px}.graphic-ring:before,.graphic-ring:after{content:'';position:absolute;background:#45b5af;border-radius:50%;width:7px;height:7px}.ring-one:before{top:12%;left:18%}.ring-one:after{bottom:14%;right:16%}.ring-two:before{right:8%;top:28%}.ring-two:after{bottom:20%;left:10%}.graphic-core{width:172px;height:172px;background:#daeae8;display:grid;place-items:center;transform:rotate(-16deg);border:1px solid #85c3bf;box-shadow:25px 25px 0 rgba(29,155,150,.07)}.graphic-core span{font:300 115px/.8 var(--font);color:#168d8b;transform:rotate(16deg)}.graphic-coordinate,.graphic-caption{position:absolute;font:800 10px var(--font);letter-spacing:.14em;color:#61928f}.coord-a{left:17%;top:17%}.coord-b{right:13%;bottom:30%}.graphic-caption{bottom:4px}.panel-bottom{padding:28px 38px 36px;border-top:1px solid #dbe3e3}.panel-bottom h3{font-size:27px;letter-spacing:-.045em;margin-bottom:9px}.panel-bottom p{max-width:610px;margin:0;color:#667582}
.work-section{background:#fff}.work-intro{margin-bottom:30px}.filter-bar{display:flex;gap:8px;border-bottom:1px solid #dce3e3;padding-bottom:18px;margin-bottom:26px}.filter{border:1px solid #d9e1e1;background:#fff;color:#667583;padding:8px 16px;font:700 12px var(--font)}.filter.active,.filter:hover{background:var(--navy);border-color:var(--navy);color:#fff}.filter span{opacity:.6;margin-left:6px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-card{border:1px solid #dce3e3;background:#fff;min-width:0;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-4px);box-shadow:0 18px 32px rgba(18,33,44,.08)}.project-card[hidden]{display:none}.project-card.featured{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}.project-card.featured[hidden]{display:none}.project-art{height:270px;position:relative;overflow:hidden;color:#fff}.featured .project-art{height:410px}.art-topline,.art-bottomline,.art-number{position:absolute;z-index:2;font:800 10px var(--font);letter-spacing:.16em}.art-topline{top:25px;left:28px;right:28px;display:flex;justify-content:space-between}.art-bottomline{left:28px;bottom:25px}.art-number{top:23px;left:28px}.twin-art{background:#152b3b}.twin-visual{position:absolute;inset:45px 30px 50px;perspective:800px}.twin-grid,.window-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(77,199,192,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(77,199,192,.1) 1px,transparent 1px);background-size:25px 25px;mask-image:linear-gradient(90deg,transparent,#000 40%,#000)}.twin-plane{position:absolute;left:20%;top:18%;width:58%;height:62%;border:2px solid #5bd9d3;background:linear-gradient(135deg,rgba(44,134,136,.45),rgba(38,61,76,.5));transform:skewY(-15deg) rotate(-3deg);box-shadow:16px -13px 0 -2px #203f4e,17px -14px 0 #5bd9d3,0 45px 45px rgba(0,0,0,.2)}.twin-plane:before,.twin-plane:after{content:'';position:absolute;border:1px solid rgba(110,225,218,.48)}.twin-plane:before{inset:18% 10%}.twin-plane:after{inset:18% 10%;background:repeating-linear-gradient(90deg,transparent 0 23%,rgba(95,217,207,.3) 23% 24%)}.sensor,.room-sensor{position:absolute;width:12px;height:12px;border-radius:50%;background:#a9f1dd;border:3px solid #0d585f;box-shadow:0 0 0 9px rgba(93,224,219,.14);z-index:2}.s1{left:13%;top:23%}.s2{left:64%;top:22%}.s3{left:46%;top:70%}.s4{left:83%;top:78%}.s5{left:23%;top:76%}.model-label{position:absolute;z-index:2;top:42%;left:28%;font:800 19px/1.25 var(--font);letter-spacing:.12em;color:#e6fbf7}.model-label small{font-size:8px;color:#8de1dc}.project-body{padding:31px 31px 34px;display:flex;flex-direction:column}.featured .project-body{padding:54px 52px;justify-content:center}.project-meta{display:flex;justify-content:space-between;gap:10px;color:#318e8b;font:800 10px/1.5 var(--font);letter-spacing:.12em}.project-meta span:last-child{color:#80909a;text-align:right}.project-body h3{font-size:clamp(23px,2.3vw,35px);line-height:1.22;letter-spacing:-.05em;margin:24px 0 12px}.project-body p{color:#657381;max-width:540px}.project-open{display:flex;align-items:center;justify-content:space-between;align-self:flex-start;gap:35px;margin-top:auto;padding:15px 0 3px;border:0;border-bottom:1px solid #7d939c;background:transparent;color:#132437;font:800 12px var(--font)}.project-open span{color:#159893;font-size:21px;font-weight:400}.transfer-art{background:#dae8e7;color:#193e48}.transfer-network{position:absolute;inset:30px;display:flex;align-items:center;justify-content:space-around}.network-node{width:67px;height:67px;border:1px solid #147f81;border-radius:50%;display:grid;place-items:center;font:800 24px var(--font);z-index:1;background:#e5f2f0}.n2{transform:translateY(-40px)}.n3{transform:translateY(30px)}.network-path{position:absolute;left:12%;right:12%;border-top:1px dashed #4c9d9c;transform:rotate(-7deg)}.facade-art{background:#203b49}.facade-visual{position:absolute;inset:18% 19%;display:flex;justify-content:center;gap:13px;transform:skewY(-12deg)}.facade-visual i{height:100%;width:11%;background:#57cbc5;border-right:7px solid #276b72;box-shadow:8px 12px 0 rgba(0,0,0,.15)}.cooling-art{background:radial-gradient(circle at 80% 20%,#387e83,#183649 65%)}.cooling-visual{position:absolute;left:15%;right:15%;top:25%;display:flex;flex-direction:column;gap:13px}.cooling-visual span{border:1px solid rgba(151,234,220,.55);padding:8px 15px;font:800 13px var(--font);letter-spacing:.17em}.cooling-visual span:nth-child(2){margin-left:13%;margin-right:-13%}.design-art{background:#dce6e7;color:#1c4450}.design-visual{position:absolute;inset:17% 20%;transform:skewY(-11deg)}.design-outline{position:absolute;inset:0;border:2px solid #358f91}.design-axis{position:absolute;inset:20% 35%;border:2px solid #358f91}.design-square{position:absolute;width:45%;height:47%;right:0;bottom:0;background:#64bfb9;opacity:.75}
.twin-section{padding:105px 0;background:#101a2a;color:#fff;overflow:hidden}.twin-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:7%;align-items:center}.twin-section h2 em,.contact-section h2 em{color:var(--mint)}.twin-copy>p:not(.section-kicker){max-width:450px;color:#b1c1c9;line-height:1.7;margin:25px 0 34px}.button-light{background:var(--mint);color:#092331}.button-light:hover{background:#a2f7e4}.twin-window{border:1px solid #42616a;background:#172d3d;min-height:455px;box-shadow:25px 25px 0 rgba(68,196,191,.08)}.window-top{border-bottom:1px solid #3d5661;display:flex;align-items:center;justify-content:space-between;padding:15px 18px;font:700 9px var(--font);letter-spacing:.13em;color:#91b4ba}.window-dots{display:flex;gap:5px}.window-dots i{display:block;width:6px;height:6px;border-radius:50%;background:#5ad2c6}.window-content{height:405px;position:relative;overflow:hidden}.window-room{position:absolute;left:23%;top:17%;width:57%;height:65%;border:2px solid #56bab7;background:linear-gradient(130deg,rgba(52,136,138,.28),rgba(22,49,63,.82));transform:skewY(-16deg) rotate(-4deg);box-shadow:18px -18px 0 -2px #234a58,19px -19px 0 #468d93}.window-room:before{content:'';position:absolute;inset:19% 13%;border:1px dashed #6fd0c8;background:linear-gradient(90deg,transparent 49.5%,rgba(94,202,191,.27) 50%,transparent 50.5%),linear-gradient(transparent 49.5%,rgba(94,202,191,.27) 50%,transparent 50.5%)}.r1{top:22%;left:18%}.r2{top:34%;left:70%}.r3{top:66%;left:45%}.r4{top:78%;left:84%}.r5{top:76%;left:19%}.window-key{position:absolute;bottom:21px;left:23px;right:23px;border-top:1px solid #40606a;padding-top:14px;color:#83aaad;font:700 10px var(--font);letter-spacing:.13em}.window-key b{color:var(--mint)}.window-key span{padding:0 15px}
.about-section{background:#fff}.about-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:11%}.about-rule{height:1px;background:#dbe2e2;margin:38px 0}.about-layout p{color:#677583}.about-lede{font:500 clamp(20px,2.2vw,28px)/1.5 var(--font);letter-spacing:-.025em;color:#26394b!important}.about-link{display:inline-block;margin-top:18px}.about-details{border-top:1px solid #d9e1e2}.about-details>div{border-bottom:1px solid #d9e1e2;padding:24px 0}.about-details span{font:800 10px var(--font);letter-spacing:.17em;color:#279894;display:block;margin-bottom:19px}.about-details strong{display:block;font:700 16px var(--font);margin-top:14px}.about-details small{display:block;color:#788590;font-size:13px;margin-top:3px}.about-details p{margin:0}.resume-section{background:#e9efee;padding:95px 0}.resume-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.button-outline{background:transparent;border-color:#91a4ab}.button-outline:hover{background:#fff}.resume-card{background:#fff;border:1px solid #d7e1e0;padding:40px 48px}.resume-identity{display:flex;gap:27px;align-items:center;border-bottom:1px solid #dce5e4;padding-bottom:28px}.resume-identity img{width:100px;height:119px;object-fit:cover;object-position:center 22%}.resume-identity span{font:800 12px var(--font);letter-spacing:.16em;color:#268d8a}.resume-identity h3{font-size:26px;letter-spacing:-.035em;margin:6px 0 2px}.resume-identity p{margin:0 0 6px;color:#667681}.resume-identity a{font-weight:700;color:#198d8a}.resume-columns{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:24px}.resume-columns h4{font:800 11px var(--font);letter-spacing:.15em;color:#218b88;margin:21px 0 8px;text-transform:uppercase}.resume-columns p{color:#586875;margin:0}.resume-columns b{color:#253747}.contact-section{background:#142839;color:#fff;padding:100px 0}.contact-layout{display:flex;justify-content:space-between;align-items:center;gap:70px}.contact-layout p:not(.section-kicker){color:#b0c1c9;max-width:450px;margin:26px 0 0}.contact-orb{width:210px;height:210px;flex:none;border-radius:50%;background:#63ded6;color:#102c37;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font:800 17px/1.35 var(--font);letter-spacing:.04em;transition:transform .2s}.contact-orb span{font-size:27px;font-weight:400;margin-top:8px}.site-footer{background:#0b1927;color:#a8b9c0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:85px;font:700 10px var(--font);letter-spacing:.13em}.footer-inner a:hover{color:var(--mint)}
.project-dialog{border:0;padding:0;width:min(790px,calc(100% - 28px));max-height:min(88vh,900px);color:var(--ink);background:#f8fbfa;box-shadow:0 30px 100px rgba(0,0,0,.35)}.project-dialog::backdrop{background:rgba(5,17,27,.72);backdrop-filter:blur(6px)}.dialog-shell{padding:28px 46px 48px}.dialog-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d6dfdf;padding-bottom:17px;font:800 10px var(--font);letter-spacing:.16em;color:#328e8b}.dialog-close{border:0;background:none;font-size:32px;line-height:1;color:#203846}.dialog-content{padding-top:36px}.dialog-content h2{margin:14px 0 16px}.dialog-lede{font:500 20px/1.5 var(--font);color:#455765}.dialog-detail{display:grid;grid-template-columns:1fr 1fr;gap:0 35px;margin:28px 0;border-top:1px solid #d8e3e1}.dialog-detail>div{padding-top:18px}.dialog-detail h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#268f8b}.dialog-detail p{color:#637581}.dialog-detail>div:last-child{grid-column:1/-1}.dialog-external{display:inline-block;border-bottom:1px solid #3c918e;padding:8px 0;font-weight:700;color:#176e71}
@media(max-width:1050px){.container{width:min(100% - 48px,1320px)}.main-nav{gap:18px}.hero{gap:4%}.hero-foot{font-size:9px}.section-intro{gap:35px}.featured .project-body{padding:30px}.twin-layout{gap:4%}}
@media(max-width:760px){html{scroll-padding-top:70px}.container{width:calc(100% - 36px)}.nav-shell{height:68px}.brand-name{font-size:10px}.brand-name small{font-size:8px}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--paper);border-bottom:1px solid #cbd7d8;padding:20px 18px 25px;flex-direction:column;align-items:stretch;gap:0}.main-nav.open{display:flex}.main-nav a{padding:13px 7px}.main-nav .nav-contact{margin-top:10px;padding:13px}.hero{grid-template-columns:1fr;gap:35px;min-height:0;padding-top:48px;padding-bottom:54px}.hero h1{font-size:clamp(42px,9vw,65px)}.hero-lede{font-size:18px}.hero-actions{margin:28px 0 35px}.hero-foot{gap:5px 13px}.hero-foot span+span:before{margin-right:13px}.hero-portrait{height:490px;min-height:0;box-shadow:11px 11px 0 #e0e9e7}.section{padding:75px 0}.section-intro{display:block;margin-bottom:30px}.section-intro>p{margin-top:22px}.research-interface{display:block;min-height:0}.stage-list{display:grid;grid-template-columns:1fr 1fr;border-right:0}.stage{min-height:75px;padding:17px;border-right:1px solid #d3dcde;font-size:20px}.stage span{margin-top:4px}.stage-panel{min-height:480px}.stage-graphic{height:250px}.ring-one{width:190px}.ring-two{width:270px}.graphic-core{width:125px;height:125px}.graphic-core span{font-size:78px}.panel-topline{margin:22px}.panel-bottom{padding:24px}.project-grid{grid-template-columns:1fr}.project-card.featured{grid-column:auto;display:block}.featured .project-art{height:300px}.project-art{height:245px}.project-body,.featured .project-body{padding:25px}.twin-section{padding:75px 0}.twin-layout{grid-template-columns:1fr;gap:43px}.twin-window{min-height:340px}.window-content{height:290px}.about-layout{grid-template-columns:1fr;gap:45px}.resume-section{padding:70px 0}.resume-heading{align-items:flex-start;flex-direction:column}.resume-card{padding:25px}.contact-section{padding:75px 0}.contact-layout{align-items:flex-start;gap:35px}.contact-orb{width:150px;height:150px;font-size:12px}.dialog-shell{padding:20px 25px 28px}.dialog-detail{display:block}.dialog-detail>div:last-child{grid-column:auto}}
@media(max-width:520px){.hero-portrait{height:400px}.hero-actions{align-items:flex-start;flex-direction:column;gap:15px}.hero-foot{line-height:1.6}.hero-foot span{display:block;width:100%}.hero-foot span+span:before{display:none}.section-kicker{font-size:10px}.filter-bar{overflow-x:auto}.filter{white-space:nowrap}.project-meta{font-size:9px}.twin-window{min-height:270px}.window-content{height:230px}.window-top span:nth-child(2){display:none}.window-key{font-size:8px}.resume-identity{gap:15px;align-items:flex-start}.resume-identity img{width:76px;height:95px}.resume-identity h3{font-size:20px}.resume-identity p{font-size:13px}.resume-columns{grid-template-columns:1fr;gap:0}.contact-layout{display:block}.contact-orb{margin-top:32px}.footer-inner{flex-wrap:wrap;padding:23px 0}.footer-inner span:nth-child(2){display:none}.dialog-content h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.site-header,.hero,.marquee,.research-section,.work-section,.twin-section,.about-section,.contact-section,.site-footer,.resume-heading button,.project-dialog{display:none!important}body,.resume-section{background:#fff}.resume-section{padding:0}.container{width:100%}.resume-heading{margin:0 0 18px}.resume-heading h2{font-size:24px}.resume-heading .section-kicker{display:none}.resume-card{border:0;padding:0}.resume-identity img{width:90px;height:110px}.resume-columns{gap:8%}a{color:#132437!important} @page{size:A4;margin:18mm}}

/* Interactive room model and orbit controls. */
.twin-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:36px}.twin-heading>p{color:#aec1c9;max-width:460px;margin:0 0 7px}.model-shell{border:1px solid #446370;background:#0b1e29;box-shadow:24px 24px 0 rgba(78,215,204,.075)}.model-toolbar,.model-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:58px;padding:13px 22px;font:800 10px/1.5 var(--font);letter-spacing:.12em;color:#a4bec7}.model-toolbar{border-bottom:1px solid #385363}.model-toolbar button{border:1px solid #587680;color:#c1dedf;background:transparent;padding:8px 10px;font:800 10px var(--font);letter-spacing:.08em}.model-toolbar button:hover{background:#28505b}.model-live{color:#a1ece1}.model-live i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#53dfc2;margin-right:9px;box-shadow:0 0 0 5px rgba(83,223,194,.14)}.model-stage{height:min(55vw,650px);min-height:460px;position:relative;overflow:hidden}.model-stage canvas{width:100%;height:100%;display:block;touch-action:none}.model-loading{position:absolute;inset:0;display:grid;place-items:center;background:#0b1e29;color:#97c8c5;font:700 14px var(--font);letter-spacing:.05em;text-align:center;padding:30px}.model-loading[hidden]{display:none}.model-sensor-info{position:absolute;left:22px;bottom:22px;min-width:260px;max-width:calc(100% - 44px);background:rgba(10,29,42,.84);backdrop-filter:blur(12px);border:1px solid rgba(128,211,210,.4);padding:17px 20px;pointer-events:none}.model-sensor-info span{display:block;font:800 9px var(--font);letter-spacing:.15em;color:#72d9cf}.model-sensor-info strong{display:block;font:700 20px var(--font);letter-spacing:-.04em;margin-top:4px}.model-sensor-info small{display:block;font-size:12px;color:#b3c4cb}.model-sensor-chips{display:flex;flex-wrap:wrap;gap:7px;padding:15px 22px;border-top:1px solid #385363}.model-sensor-chips button{background:#203949;border:1px solid #3b5a62;color:#bbd6d8;padding:8px 12px;font:800 10px var(--font);letter-spacing:.06em;transition:background .2s,transform .2s}.model-sensor-chips button:hover,.model-sensor-chips button.active{background:#5cdbce;color:#08272d;transform:translateY(-2px)}.model-footer{border-top:1px solid #385363}.model-footer a{color:#5bdfd2}.model-footer a:hover{text-decoration:underline}
.project-photo{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1);filter:saturate(.75)}.project-card:hover .project-photo,.design-gallery figure:hover img{transform:scale(1.07)}.design-art:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(7,28,41,.7));pointer-events:none}.design-art .art-number,.design-art .art-bottomline{color:white}.design-gallery{border:1px solid #dce3e3;display:grid;grid-template-columns:.8fr 1fr 1fr;gap:20px;align-items:center;margin-top:24px;padding:22px}.design-gallery[hidden]{display:none}.design-gallery>div{padding:10px}.design-gallery>div span{font:800 10px var(--font);letter-spacing:.12em;color:#26918d}.design-gallery>div p{font:700 20px/1.3 var(--font);letter-spacing:-.03em;margin:12px 0 0}.design-gallery figure{margin:0;overflow:hidden;position:relative;background:#d4e3e2}.design-gallery img{width:100%;height:180px;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.22,1,.36,1)}.design-gallery figcaption{position:absolute;left:10px;bottom:10px;background:#122639d9;color:white;padding:4px 7px;font:800 9px var(--font);letter-spacing:.1em}
.hero-portrait img{transition:transform .65s cubic-bezier(.22,1,.36,1)}.hero-portrait:hover img{transform:scale(1.045)}.hero-portrait{transition:box-shadow .3s;transform-style:preserve-3d}.hero-portrait:hover{box-shadow:26px 26px 0 #d5e9e5}.project-card{transform-style:preserve-3d;will-change:transform}.button,.nav-contact,.contact-orb{transition:transform .25s cubic-bezier(.22,1,.36,1),background .2s,color .2s}.button:hover,.nav-contact:hover{transform:translateY(-4px)}
@media (pointer:fine) and (prefers-reduced-motion:no-preference){body.cursor-ready,body.cursor-ready a,body.cursor-ready button,body.cursor-ready canvas{cursor:none!important}.cursor-ring{position:fixed;top:0;left:0;z-index:1000;width:31px;height:31px;border:1.5px solid var(--cursor-color,#36bbb6);border-radius:50%;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:width .25s,height .25s,background .25s,border-color .25s,opacity .3s}.cursor-ring span{position:absolute;left:50%;top:50%;width:5px;height:5px;transform:translate(-50%,-50%);background:var(--cursor-color,#36bbb6);border-radius:50%}.cursor-ready.cursor-visible .cursor-ring{opacity:1}.cursor-ready.cursor-over .cursor-ring{width:56px;height:56px;background:color-mix(in srgb,var(--cursor-color,#36bbb6) 22%,transparent)}}
.cursor-ring{display:none}@media (pointer:fine) and (prefers-reduced-motion:no-preference){.cursor-ring{display:block}}
body.motion-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s cubic-bezier(.22,1,.36,1)}body.motion-ready .reveal.in-view{opacity:1;transform:translateY(0)}
@media(max-width:900px){.twin-heading{display:block}.twin-heading>p{margin-top:22px}.model-stage{height:510px}.model-hint{display:none}.design-gallery{grid-template-columns:1fr 1fr}.design-gallery>div{grid-column:1/-1}.design-gallery img{height:170px}}
@media(max-width:600px){.model-toolbar,.model-footer{font-size:9px;flex-wrap:wrap;padding:12px}.model-toolbar button{margin-left:auto}.model-stage{height:410px;min-height:410px}.model-sensor-info{left:10px;bottom:10px;min-width:0;max-width:calc(100% - 20px);padding:10px 13px}.model-sensor-info strong{font-size:16px}.model-sensor-chips{gap:5px;padding:10px}.model-sensor-chips button{font-size:9px;padding:7px 8px}.design-gallery{gap:8px;padding:8px}.design-gallery img{height:110px}.design-gallery>div p{font-size:18px}}
@media(prefers-reduced-motion:reduce){body.motion-ready .reveal{opacity:1;transform:none}.project-card,.hero-portrait{transform:none!important}}
@media print{.cursor-ring{display:none!important}}

/* New visual direction: cinematic architecture, bright signal colours, clear CV. */
:root{--navy:#121725;--ink:#182135;--teal:#ed4e88;--mint:#ff77a7;--paper:#f7f1f2;--line:#d9d4dd}
.site-header{background:rgba(17,22,36,.94);color:#fff;border-bottom:1px solid rgba(255,255,255,.11)}.brand-dot{color:#ff4e91}.brand-name small{color:#b7bac9}.main-nav .nav-contact{border-color:#566073}.nav-contact span{color:#ff70a4}.main-nav a:hover{color:#ff87b1}.menu-toggle span{background:white}
.hero{position:relative;min-height:min(830px,calc(100svh - 84px));display:block;padding:0;background:#111827;color:white;isolation:isolate;overflow:hidden}.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:7%;align-items:center;min-height:inherit;padding-top:80px;padding-bottom:95px}.hero-backdrop{position:absolute;inset:-3%;z-index:0;background:linear-gradient(90deg,rgba(15,20,35,.95) 0%,rgba(15,20,35,.82) 46%,rgba(15,20,35,.83) 100%),url('assets/media/2024/07/Slide1-1024x576.jpg') center/cover;filter:saturate(.5);transform:scale(1.07);animation:hero-drift 25s ease-in-out infinite alternate}.hero-glow{position:absolute;inset:0;z-index:1;background:radial-gradient(500px circle at var(--mx,55%) var(--my,48%),rgba(239,59,125,.19),transparent 70%);pointer-events:none}.hero-orbit{position:absolute;z-index:1;pointer-events:none;border:1px solid rgba(255,255,255,.12);border-radius:50%;transition:transform .35s ease-out}.orbit-a{width:620px;height:620px;right:-175px;top:-220px;transform:translate(var(--orbit-x,0px),var(--orbit-y,0px))}.orbit-b{width:420px;height:420px;right:22%;bottom:-270px;transform:translate(calc(var(--orbit-x,0px) * -.7),calc(var(--orbit-y,0px) * -.7))}@keyframes hero-drift{to{transform:scale(1.14) translate(-1.7%,1.2%)}}
.hero .eyebrow{color:#ff9bc0}.hero .signal{background:#ff5590;box-shadow:0 0 0 5px rgba(255,85,144,.17)}.hero h1{font-size:clamp(58px,6vw,100px);font-weight:500;line-height:1.06;letter-spacing:-.07em;max-width:830px;margin:28px 0}.hero h1 em{color:#ff5593}.hero-period{color:#ff5593}.hero-lede{color:#d5d8e1;max-width:650px;font-size:20px}.hero-actions{margin:37px 0 65px}.hero .button-primary{background:#fb4d8c;color:#131825}.hero .button-primary:hover{background:#ff8bb5}.hero .text-link{color:#e0e2ec;border-color:#787e90}.hero .text-link span{color:#ff80a9}.hero-foot{color:#a2acbf}.hero-foot span+span:before{color:#ff5895}.hero-portrait{height:min(43vw,590px);min-height:430px;background:white;box-shadow:22px 22px 0 #d94c6a;border-radius:3px;overflow:hidden}.hero-portrait>img{object-fit:cover;object-position:center 13%;filter:none}.hero-portrait:after{inset:75% 0 0;background:linear-gradient(transparent,rgba(18,24,37,.72))}.hero-portrait:hover{box-shadow:28px 28px 0 #fc6f91}.portrait-label span{color:#ff8fac}.portrait-index{background:#151d30;padding:6px 8px}.hero-scroll{position:absolute;z-index:2;left:40px;bottom:25px;font:800 10px var(--font);letter-spacing:.15em;color:#aebad1}.hero-scroll span{color:#ff67a0;margin-left:17px}
.marquee{background:#ff5a94;color:#171d2a}.marquee-inner span{color:#742443}.twin-section{background:linear-gradient(155deg,#243456,#141c34 70%);padding:110px 0 120px}.twin-section .section-kicker{color:#ff82b3}.twin-section h2 em{color:#86e9e6}.model-shell{border-color:#7b83a1;box-shadow:25px 25px 0 rgba(250,89,146,.12)}.model-toolbar{background:#151c31}.model-footer a{color:#ff8bb4}.model-sensor-chips button:hover,.model-sensor-chips button.active{background:#ff77aa;color:#15223c}.model-sensor-info{border-color:rgba(255,125,170,.47)}.model-sensor-info span{color:#ff87ae}
.research-section{background:#f6e8ee}.research-section .section-kicker,.work-section .section-kicker,.about-section .section-kicker,.resume-section .section-kicker{color:#cc3670}.research-interface{border-color:#decbd4;background:#fff9fb}.stage-list,.stage{border-color:#e3d2da}.stage:hover,.stage.active{background:#64284c}.stage.active span,.stage.active b{color:#ffafc9}.graphic-ring{border-color:rgba(196,60,109,.28)}.graphic-ring:before,.graphic-ring:after{background:#e65d89}.graphic-core{background:#f5dce7;border-color:#de82a6;box-shadow:25px 25px 0 rgba(204,62,112,.08)}.graphic-core span{color:#b94076}.graphic-coordinate,.graphic-caption{color:#ab6684}.work-section{background:#f8f7f8}.filter.active,.filter:hover{background:#b83470;border-color:#b83470}.project-card{background:#fff}.project-meta,.project-open span,.design-gallery>div span{color:#ba3974}.project-open{border-color:#c483a0}.about-section{background:#212c40;color:#fff}.about-section h2 em{color:#ff77aa}.about-section p,.about-section .about-lede{color:#d1d7e1!important}.about-section .about-details{border-color:#536076}.about-details>div,.about-rule{border-color:#4c5970;background-color:#4c5970}.about-details>div{background:transparent}.about-details span{color:#ff8fbb}.about-details small{color:#b7c0d0}.about-link{color:#fff}.resume-section{background:#f4edf1}.resume-heading{align-items:end}.resume-heading>div>p:last-child{color:#657081;margin:12px 0 0}.resume-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.resume-actions .button-primary{background:#ec4c85}.resume-actions .text-link{white-space:nowrap}.cv-document{background:white;border:1px solid #e3dce0;padding:clamp(25px,5vw,70px);box-shadow:18px 18px 0 #eadbe2}.cv-head{border-bottom:2px solid #222a3d;padding-bottom:20px}.cv-name{font:700 clamp(30px,3vw,45px)/1.1 var(--font);letter-spacing:-.05em;color:#182034;margin-bottom:10px}.cv-title{font:800 13px/1.5 var(--font);letter-spacing:.1em;color:#c03d77;margin-bottom:12px}.cv-head p:last-child{margin:0;color:#49576d;font-size:14px}.cv-head a{color:#333c53;text-decoration:underline;text-decoration-color:#ebb3ca;text-underline-offset:3px}.cv-block{padding:24px 0 7px;border-bottom:1px solid #e8e0e5}.cv-block:last-child{border:0}.cv-block h3{color:#c13974;font-size:15px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 12px}.cv-block p,.cv-block li{color:#465269;line-height:1.7}.cv-block p{margin:0 0 13px}.cv-block strong{color:#25324a}.cv-role{padding-bottom:11px}.cv-role h4{font:800 16px/1.45 var(--font);margin:12px 0 3px;color:#26314a}.cv-role>p{font-size:14px;color:#667289}.cv-role ul{margin:4px 0 12px;padding-left:23px}.cv-role li{margin:0 0 8px}.contact-section{background:#d7427b}.contact-section .section-kicker{color:#ffe4ed}.contact-section h2 em{color:#fff}.contact-layout p:not(.section-kicker){color:#fff3f7}.contact-orb{background:#151c31;color:#fff}.site-footer{background:#141b2b;color:#c5cbd6}
@media(pointer:fine) and (prefers-reduced-motion:no-preference){.cursor-ring{box-shadow:0 0 16px color-mix(in srgb,var(--cursor-color,#ff70a3) 65%,transparent),0 0 34px color-mix(in srgb,var(--cursor-color,#ff70a3) 32%,transparent)}.cursor-ring span{box-shadow:0 0 13px var(--cursor-color,#ff70a3)}}
@media(max-width:900px){.hero-inner{gap:4%}.hero h1{font-size:clamp(48px,7vw,80px)}}
@media(max-width:760px){.main-nav{background:#161d2e;border-color:#515970}.hero{min-height:0}.hero-inner{grid-template-columns:1fr;padding-top:70px;padding-bottom:80px}.hero h1{font-size:clamp(46px,10vw,75px)}.hero-portrait{height:500px;min-height:0;max-width:500px;margin:0 auto 0 0}.hero-scroll{left:18px;bottom:18px}.orbit-a{right:-400px}.resume-actions{align-items:flex-start}.cv-document{box-shadow:9px 9px 0 #eadbe2}}
@media(max-width:520px){.hero-inner{padding-top:50px}.hero h1{font-size:clamp(42px,11vw,61px)}.hero-lede{font-size:17px}.hero-portrait{height:440px}.hero .hero-actions{margin-bottom:38px}.cv-name{font-size:30px}.cv-title{font-size:11px}.cv-head p:last-child{overflow-wrap:anywhere}.cv-role h4{font-size:15px}.cv-block p,.cv-block li{font-size:14px}}
@media(prefers-reduced-motion:reduce){.hero-backdrop{animation:none}.hero-orbit{transition:none}}
@media print{.cv-document{box-shadow:none;border:0;padding:0}.resume-section{background:white}.cv-block{break-inside:avoid}.cv-head{break-inside:avoid}}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:11px;margin-top:24px}.contact-links a{font:700 14px var(--font);text-decoration:underline;text-underline-offset:5px;text-decoration-color:rgba(255,255,255,.48)}.contact-links a:hover{color:#25203e;text-decoration-color:#25203e}
/* Compact home and dedicated project / CV pages. */
.page-home .research-section{background:#281e34;color:#fff;padding:90px 0 100px}.page-home .research-section .section-intro>p{color:#ddd0dc}.page-home .research-section h2 em{color:#ff83b4}.page-home .research-interface{background:#151e32;border-color:#664965;display:grid;grid-template-columns:minmax(225px,.34fr) 1fr;min-height:0}.page-home .stage-list{background:#281d35;border-right:1px solid #704e6d;display:flex;flex-direction:column}.page-home .stage{color:#f5eaf1;border-bottom:1px solid #644764;border-right:0;min-height:77px;font-size:25px}.page-home .stage:hover,.page-home .stage.active{background:#7e315c}.page-home .stage.done span:after{content:'✓';margin-left:7px;color:#77e7d8;font-size:12px}.page-home .stage b{color:#e79fbd}.game-progress{margin-top:auto;padding:27px 25px;background:#231b30;color:#f5c9d9;font:800 10px var(--font);letter-spacing:.1em}.game-progress strong{float:right;color:#fff;font-size:15px}.progress-track{height:5px;background:#67465f;margin:17px 0 12px}.progress-track i{display:block;width:0;height:100%;background:#6bdfcf;transition:width .5s}.game-progress small{display:block;color:#cbb9c6;font:500 11px/1.5 var(--font);letter-spacing:0}.model-panel{padding:0;min-width:0;min-height:0;background:#101c2e;color:#fff}.model-panel .panel-topline{margin:0;padding:19px 24px;background:#18243a;border-bottom:1px solid #354759}.model-panel .model-toolbar{min-height:45px;padding:8px 20px;background:#102135}.model-panel .model-toolbar button{padding:6px 9px}.model-panel .model-stage{height:clamp(320px,36vw,480px);min-height:320px}.model-panel .model-sensor-info{left:17px;bottom:17px;min-width:210px;padding:12px 15px}.model-panel .model-sensor-info strong{font-size:17px}.model-panel .model-sensor-chips{padding:11px 16px}.model-panel .model-sensor-chips button{padding:7px 9px;font-size:9px}.game-task{display:flex;align-items:center;justify-content:space-between;gap:25px;background:#1b2a3f;padding:22px 24px;border-top:1px solid #354759}.game-task>div:first-child{max-width:540px}.game-task span#task-label{font:800 10px var(--font);letter-spacing:.14em;color:#ff8eb8}.game-task h3{font:650 clamp(21px,2vw,29px)/1.15 var(--font);margin:8px 0}.game-task p{color:#bfccd7;margin:0;font-size:13px;line-height:1.5}.task-controls{display:flex;gap:7px;flex-wrap:wrap;max-width:250px;justify-content:flex-end}.task-controls button{border:1px solid #ff83b4;background:#eb4b8c;color:#171b2e;padding:10px 12px;font:800 11px var(--font);white-space:nowrap}.task-controls button:hover,.task-controls button[aria-pressed=true]{background:#75e5d8;border-color:#75e5d8}.task-controls span{font:600 11px/1.4 var(--font);color:#86e7db}.model-panel .model-footer{background:#121d30;padding:9px 20px;min-height:40px;font-size:9px}.page-home .about-section{padding:90px 0}.page-home .contact-section{padding:85px 0}.page-home .hero{min-height:min(740px,calc(100svh - 84px))}
.projects-page{background:#f8f3f6;min-height:100svh;padding:100px 0}.projects-hero{max-width:1100px}.projects-hero h1,.story-page h1{font:550 clamp(46px,5.4vw,82px)/1.08 var(--font);letter-spacing:-.065em;margin:18px 0 25px;color:#1b2336}.projects-hero h1 em,.story-page h1 em{color:#dc4480;font-weight:500}.projects-hero>p:last-child{max-width:610px;font-size:18px;color:#576175}.portfolio-tabs{display:flex;border-bottom:1px solid #d9cbd4;gap:26px;margin:60px 0 26px;overflow-x:auto}.portfolio-tab{background:none;border:0;border-bottom:3px solid transparent;padding:14px 3px 17px;color:#697184;font:800 15px var(--font);white-space:nowrap}.portfolio-tab.active{color:#d13d78;border-color:#d13d78}.portfolio-tab span{font-size:11px;color:#9c6a83;margin-left:5px}.portfolio-panel[hidden],.story-card[hidden]{display:none!important}.story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.story-card{background:#fff;border:1px solid #e9dce3;box-shadow:8px 8px 0 #eee3e9;transition:box-shadow .3s}.story-card:hover{box-shadow:14px 14px 0 #e6d3de}.story-image{height:260px;display:block;position:relative;overflow:hidden;background:#18243a}.story-image:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#19203399)}.story-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}.story-card:hover .story-image img{transform:scale(1.045)}.story-image span{position:absolute;right:20px;bottom:17px;z-index:1;color:#fff;font:800 10px var(--font);letter-spacing:.11em}.story-body{padding:25px 27px 29px}.story-body small{color:#ca3976;font:800 10px var(--font);letter-spacing:.1em}.story-body h3{font:650 clamp(22px,2.1vw,31px)/1.15 var(--font);letter-spacing:-.04em;margin:12px 0}.story-body p{color:#637083;min-height:47px;font-size:14px}.story-link{color:#ad2764;display:inline-block;margin-top:8px;border-bottom:1px solid #d797b2;padding-bottom:6px;font-weight:750}.behance-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin:90px 0 25px}.behance-heading h2,.archive-intro h2{font-size:clamp(32px,3.2vw,52px);letter-spacing:-.06em;margin:0}.behance-heading p,.archive-intro p{max-width:450px;color:#617084;margin:0}.behance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.behance-card{background:#fff;border:1px solid #eadce2;overflow:hidden;display:block}.behance-card img{width:100%;height:190px;object-fit:cover;display:block;transition:transform .4s}.behance-card:hover img{transform:scale(1.05)}.behance-card span{display:block;padding:14px;font:750 13px/1.35 var(--font)}.archive-intro{display:flex;align-items:end;gap:30px;justify-content:space-between;margin:35px 0}.archive-intro a{color:#b63270;font:750 13px var(--font);white-space:nowrap}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.archive-photo{margin:0;min-width:0;background:#fff;border:1px solid #e7dce2;padding:7px}.archive-photo a{display:block;height:210px;overflow:hidden;position:relative;background:#e7dee2}.archive-photo img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.archive-photo:hover img{transform:scale(1.07)}.archive-photo a span{position:absolute;right:8px;bottom:8px;background:#18243acb;color:#fff;font:800 9px var(--font);padding:7px}.archive-photo figcaption{padding:10px 4px 4px;color:#7a6171;font:750 10px var(--font);letter-spacing:.07em}.story-page{padding-top:85px;padding-bottom:110px}.back-link{display:inline-block;color:#c33c77;font:800 11px var(--font);letter-spacing:.1em;margin-bottom:45px}.story-page h1{max-width:1000px}.story-intro{font-size:clamp(20px,2.3vw,29px);color:#59667b;max-width:820px;line-height:1.4}.story-hero-photo{height:min(54vw,610px);min-height:310px;overflow:hidden;background:#222c3f;margin:45px 0 60px}.story-hero-photo img{width:100%;height:100%;object-fit:cover}.story-essay{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;border-top:1px solid #d1c5ce;padding-top:42px}.story-essay span{font:800 10px var(--font);letter-spacing:.13em;color:#c64077}.story-essay h2{font:700 23px/1.2 var(--font);letter-spacing:-.04em}.story-essay p{color:#5b677a;line-height:1.7}.story-gallery-title{margin:90px 0 25px;font:600 clamp(34px,4vw,55px)/1.1 var(--font);letter-spacing:-.05em}.story-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.story-gallery a{background:#e5dce2;display:block;overflow:hidden}.story-gallery img{width:100%;height:340px;object-fit:cover;display:block;transition:transform .5s}.story-gallery a:hover img{transform:scale(1.05)}.story-end{display:flex;align-items:center;gap:30px;flex-wrap:wrap;margin-top:60px}.page-cv .resume-section{padding-top:95px;min-height:100svh}.page-cv .resume-heading{margin-bottom:38px}
@media(max-width:950px){.page-home .research-interface{grid-template-columns:200px 1fr}.game-task{display:block}.task-controls{justify-content:flex-start;margin-top:14px;max-width:none}.archive-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.page-home .research-section{padding:70px 0}.page-home .research-interface{display:block}.page-home .stage-list{display:grid;grid-template-columns:repeat(4,1fr)}.page-home .stage{font-size:14px;min-height:68px;padding:11px 8px;border-right:1px solid #604763}.page-home .stage span{font-size:9px}.page-home .stage b{display:none}.game-progress{grid-column:1/-1;padding:14px}.model-panel .model-stage{height:390px;min-height:390px}.projects-page{padding:70px 0}.story-grid{grid-template-columns:1fr}.behance-grid{grid-template-columns:repeat(2,1fr)}.archive-intro{display:block}.archive-intro p{margin:15px 0}.story-essay{grid-template-columns:1fr;gap:15px}.story-gallery img{height:230px}}
@media(max-width:520px){.page-home .stage{font-size:12px}.model-panel .panel-topline,.model-panel .model-toolbar{font-size:9px;padding:10px}.model-panel .model-stage{height:310px;min-height:310px}.model-panel .model-sensor-info{padding:8px 10px;left:8px;bottom:8px;min-width:0}.model-panel .model-sensor-info strong{font-size:14px}.model-panel .model-sensor-info small{font-size:10px}.model-panel .model-sensor-chips{padding:8px}.model-panel .model-sensor-chips button{font-size:8px;padding:6px}.game-task{padding:17px}.model-panel .model-footer{flex-direction:column;align-items:flex-start}.projects-hero h1{font-size:44px}.behance-grid,.archive-grid{grid-template-columns:1fr 1fr;gap:8px}.behance-card img{height:115px}.archive-photo a{height:115px}.archive-photo figcaption{font-size:8px}.story-gallery{grid-template-columns:1fr}.story-gallery img{height:230px}.story-hero-photo{min-height:260px}.portfolio-tabs{gap:15px}.portfolio-tab{font-size:13px}}
@media(prefers-reduced-motion:reduce){.story-image img,.archive-photo img,.behance-card img{transition:none}}

.media-page{padding-top:84px;padding-bottom:100px;min-height:70vh}.media-page h1{font:700 clamp(42px,6vw,82px)/1.06 var(--font);letter-spacing:-.05em;margin:10px 0 20px}.media-lede{max-width:720px;color:#566270;font-size:18px}.media-lede a{text-decoration:underline;text-underline-offset:4px}.media-filters{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.media-filters button{border:1px solid #bfcbd2;background:transparent;color:inherit;border-radius:100px;padding:9px 17px;font-size:14px}.media-filters button[aria-pressed="true"]{background:#19243a;color:#fff;border-color:#19243a}.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.media-card{margin:0;min-width:0;background:#fff;border:1px solid #e4e9ed;overflow:hidden}.media-card img,.media-card video{width:100%;aspect-ratio:16/10;object-fit:cover;background:#101827}.media-card figcaption{padding:5px 16px 16px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.media-card small{display:block;padding:13px 16px 5px;color:#8b476d;font-size:12px;letter-spacing:.08em}.media-more{display:block;margin:36px auto 0}.media-more[hidden]{display:none}@media(max-width:900px){.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.media-grid{grid-template-columns:1fr}.media-page{padding-top:46px}.media-lede{font-size:16px}}
