:root{--ink:#1d2831;--ink-deep:#162129;--ink-light:#263540;--paper:#f2f2ed;--paper-muted:#f2f2edad;--coral:#ef5b4c;--coral-dark:#d74b3e;--line:#f2f2ed33;--line-dark:#1d28313d;--font:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--sans:var(--font);--display:var(--font);--mono:var(--font)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink)}body{min-width:320px;min-height:100%;color:var(--paper);background:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}::selection{color:var(--paper);background:var(--coral)}.portfolio-shell{background:var(--ink);min-height:100svh}.skip-link{z-index:200;color:var(--ink);background:var(--paper);font:800 11px/1 var(--mono);letter-spacing:.1em;padding:12px 18px;text-decoration:none;transition:transform .18s;position:fixed;top:10px;left:50%;transform:translate(-50%,-180%)}.skip-link:focus{transform:translate(-50%)}.back-to-top{z-index:120;width:56px;height:56px;color:var(--paper);background:var(--coral);border:1px solid var(--coral);opacity:0;visibility:hidden;pointer-events:none;place-items:center;text-decoration:none;transition:color .2s,background .2s,opacity .2s,transform .2s,visibility 0s linear .2s;display:grid;position:fixed;bottom:clamp(16px,2vw,30px);right:clamp(16px,2vw,30px);transform:translateY(14px)}.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.back-to-top span{font:700 26px/1 var(--sans);transform:translateY(-1px)}.back-to-top:hover,.back-to-top:focus-visible{color:var(--ink);background:var(--paper);outline:none}.back-to-top:focus-visible{box-shadow:0 0 0 3px #ef5b4c57}.site-header{z-index:100;min-height:72px;color:var(--paper);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#1d2831f5;grid-template-columns:1fr auto;align-items:stretch;display:grid;position:sticky;top:0}.mobile-nav-toggle{display:none}.header-contact,.main-nav a{text-decoration:none}.main-nav{justify-content:flex-start;align-items:stretch;min-width:0;display:flex}.main-nav a{border-right:1px solid var(--line);min-width:156px;font:700 14px/1 var(--sans);letter-spacing:.075em;place-items:center;padding:0 24px;display:grid;position:relative}.nav-index,.nav-arrow{display:none}.main-nav a:after{content:"";background:var(--coral);transform-origin:0;height:2px;transition:transform .2s;position:absolute;bottom:17px;left:21px;right:21px;transform:scaleX(0)}.main-nav a:hover:after,.main-nav a:focus-visible:after,.main-nav a.is-active:after{transform:scaleX(1)}.main-nav a:focus-visible,.header-contact:focus-visible{outline:2px solid var(--coral);outline-offset:-4px}.header-contact{min-width:198px;color:var(--paper);background:var(--coral);font:700 14px/1 var(--sans);letter-spacing:.075em;justify-content:space-between;align-items:center;gap:28px;padding:0 26px;display:flex}.header-contact span{font-size:20px}.hero{background:var(--ink);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,46%) minmax(0,54%);min-height:calc(100svh - 72px);display:grid;position:relative;overflow:hidden}.hero-socials{z-index:20;flex-direction:column;gap:12px;display:flex;position:absolute;top:46%;left:22px;transform:translateY(-50%)}.hero-socials:before,.hero-socials:after{content:"";background:var(--line);width:1px;height:52px;margin:0 auto}.hero-socials a{width:42px;height:42px;color:var(--paper);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1621296b;border:1px solid #f2f2ed61;border-radius:50%;place-items:center;text-decoration:none;transition:color .2s,transform .2s,border-color .2s,background .2s;display:grid}.social-mark{color:currentColor;display:block}.social-mark-linkedin{font:900 16px/1 var(--font);letter-spacing:-.08em}.social-mark-mail{border:1.5px solid;border-radius:1px;width:17px;height:12px;position:relative;overflow:hidden}.social-mark-mail:before{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:10px;height:10px;position:absolute;top:-8px;left:2px;transform:rotate(45deg)}.hero-socials a:hover,.hero-socials a:focus-visible{color:var(--ink);background:var(--coral);border-color:var(--coral);outline:none;transform:scale(1.07)}.hero-socials a:focus-visible{box-shadow:0 0 0 3px #ef5b4c47}.hero-copy-stack{--planet-0-x:-100px;--planet-0-y:-100px;--planet-0-r:0px;--planet-1-x:-100px;--planet-1-y:-100px;--planet-1-r:0px;--planet-2-x:-100px;--planet-2-y:-100px;--planet-2-r:0px;--planet-3-x:-100px;--planet-3-y:-100px;--planet-3-r:0px;--planet-4-x:-100px;--planet-4-y:-100px;--planet-4-r:0px;--planet-5-x:-100px;--planet-5-y:-100px;--planet-5-r:0px;z-index:10;pointer-events:none;align-self:center;min-width:0;position:relative}.hero-copy{min-width:0;padding:54px 24px 96px clamp(78px,7vw,128px);position:relative}.hero-copy--fill{z-index:0}.hero-copy--outline{z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;display:none;position:absolute;inset:0}.hero-copy-stack.has-webgl-fallback .hero-copy--outline{display:none!important}@supports ((-webkit-mask-image:radial-gradient(circle, #000, transparent)) or (mask-image:radial-gradient(circle, #000, transparent))){.hero-copy--outline{-webkit-mask-image:radial-gradient(circle var(--planet-0-r) at var(--planet-0-x) var(--planet-0-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-1-r) at var(--planet-1-x) var(--planet-1-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-2-r) at var(--planet-2-x) var(--planet-2-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-3-r) at var(--planet-3-x) var(--planet-3-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-4-r) at var(--planet-4-x) var(--planet-4-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-5-r) at var(--planet-5-x) var(--planet-5-y), #000 calc(100% - 1px), transparent 100%);-webkit-mask-composite:source-over;-webkit-mask-image:radial-gradient(circle var(--planet-0-r) at var(--planet-0-x) var(--planet-0-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-1-r) at var(--planet-1-x) var(--planet-1-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-2-r) at var(--planet-2-x) var(--planet-2-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-3-r) at var(--planet-3-x) var(--planet-3-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-4-r) at var(--planet-4-x) var(--planet-4-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-5-r) at var(--planet-5-x) var(--planet-5-y), #000 calc(100% - 1px), transparent 100%);mask-image:radial-gradient(circle var(--planet-0-r) at var(--planet-0-x) var(--planet-0-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-1-r) at var(--planet-1-x) var(--planet-1-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-2-r) at var(--planet-2-x) var(--planet-2-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-3-r) at var(--planet-3-x) var(--planet-3-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-4-r) at var(--planet-4-x) var(--planet-4-y), #000 calc(100% - 1px), transparent 100%), radial-gradient(circle var(--planet-5-r) at var(--planet-5-x) var(--planet-5-y), #000 calc(100% - 1px), transparent 100%);display:block;-webkit-mask-composite:source-over;mask-composite:add}.hero-copy--outline .hero-heading,.hero-copy--outline .hero-role,.hero-copy--outline .hero-summary p,.hero-copy--outline .hero-summary strong{color:#0000;-webkit-text-fill-color:transparent}.hero-copy--outline .hero-heading{-webkit-text-stroke:clamp(1.5px, .12vw, 2px) var(--paper)}.hero-copy--outline .hero-heading span{-webkit-text-stroke-color:var(--coral)}.hero-copy--outline .hero-role{-webkit-text-stroke:.7px var(--paper)}.hero-copy--outline .hero-summary p{-webkit-text-stroke:.7px var(--paper-muted)}.hero-copy--outline .hero-summary p:first-child,.hero-copy--outline .hero-summary strong{-webkit-text-stroke-color:var(--paper)}}.hero .hero-heading{color:var(--paper);font:400 clamp(64px, 7.2vw, 126px) / .78 var(--sans);letter-spacing:-.075em;margin:0}.hero .hero-heading span{color:var(--coral)}.hero-role{color:var(--paper);font:800 clamp(11px, .9vw, 14px) / 1 var(--mono);letter-spacing:.16em;align-items:center;gap:12px;margin:0 0 18px;display:flex}.hero-role:before{content:"";background:var(--coral);flex:none;width:32px;height:4px}.hero-summary{max-width:620px;margin:30px 0 0}.hero-summary p{color:var(--paper-muted);font:500 clamp(14px, 1.05vw, 16px) / 1.5 var(--sans);margin:0}.hero-summary p:first-child{color:var(--paper);font:600 clamp(17px, 1.3vw, 20px) / 1.45 var(--sans)}.hero-summary p+p{margin-top:16px}.hero-summary strong{color:var(--paper);font-weight:700}.star-system{--sun-glow-x:50%;--sun-glow-y:50%;z-index:1;background:radial-gradient(circle at var(--sun-glow-x) var(--sun-glow-y), #ef5b4c14, transparent 23%), var(--ink);min-width:0;min-height:660px;position:relative;overflow:hidden}@media (width>=821px){.star-system{--sun-glow-x:68%;height:100%;min-height:0;position:absolute;inset:0}}.fixed-stars{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.star-system canvas{z-index:1;cursor:grab;touch-action:none;position:relative}.star-system canvas:active{cursor:grabbing}.webgl-interactive-scene{position:absolute;inset:0}.webgl-interactive-scene.is-hidden{visibility:hidden;pointer-events:none}.webgl-fallback{--fallback-center-x:68%;z-index:3;background:radial-gradient(circle at var(--fallback-center-x) 50%, #ef5b4c21, transparent 20%), var(--ink);position:absolute;inset:0;overflow:hidden}.webgl-fallback__art{pointer-events:none;position:absolute;inset:0;overflow:hidden}.webgl-fallback__art:before{content:"";opacity:.72;background-image:radial-gradient(circle,#cfdee3d9 0 1px,#0000 1.5px),radial-gradient(circle,#cfdee38a 0 1px,#0000 1.4px),radial-gradient(circle,#f0b06c6b 0 1px,#0000 1.5px);background-position:11px 17px,43px 29px,71px 53px;background-size:89px 73px,137px 109px,181px 151px;position:absolute;inset:0}.webgl-fallback__orbit{left:var(--fallback-center-x);border:1px solid #7e9ba847;border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(-8deg)}.webgl-fallback__orbit:first-child{width:18%;height:10%}.webgl-fallback__orbit:nth-child(2){width:30%;height:16%}.webgl-fallback__orbit:nth-child(3){width:44%;height:23%}.webgl-fallback__orbit:nth-child(4){width:58%;height:31%}.webgl-fallback__orbit:nth-child(5){width:73%;height:39%}.webgl-fallback__orbit:nth-child(6){width:90%;height:48%}.webgl-fallback__sun{left:var(--fallback-center-x);aspect-ratio:1;background:radial-gradient(circle at 36% 31%,#fff3bd 0 5%,#0000 18%),radial-gradient(circle at 42% 40%,#ffbd66,#ef5b4c 54%,#8f2c2a 100%);border-radius:50%;width:clamp(62px,8vw,118px);position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 28px #ffb259c7,0 0 76px #ef5b4c59}.webgl-fallback__planet{z-index:2;color:var(--paper);align-items:center;gap:8px;display:flex;position:absolute;transform:translate(-50%,-50%)}.webgl-fallback__planet-dot{aspect-ratio:1;background:radial-gradient(circle at 34% 29%, #ffffffe0, transparent 23%), var(--fallback-planet-color);width:25px;box-shadow:0 0 20px color-mix(in srgb, var(--fallback-planet-color) 56%, transparent);border:1px solid #ffffff85;border-radius:50%;flex:none}.webgl-fallback__planet-label{font:800 8px/1 var(--mono);letter-spacing:.11em;white-space:nowrap;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#162129d1;border:1px solid #f2f2ed4d;align-items:center;gap:7px;padding:7px 9px;display:flex}.webgl-fallback__planet-label span{color:var(--coral)}.webgl-fallback__planet--1{top:42%;left:61%}.webgl-fallback__planet--1 .webgl-fallback__planet-dot{width:21px}.webgl-fallback__planet--2{top:36%;left:75%}.webgl-fallback__planet--2 .webgl-fallback__planet-dot{width:28px}.webgl-fallback__planet--3{top:56%;left:80%}.webgl-fallback__planet--3 .webgl-fallback__planet-dot{width:34px}.webgl-fallback__planet--4{top:67%;left:55%}.webgl-fallback__planet--4 .webgl-fallback__planet-dot{width:24px}.webgl-fallback__planet--5{top:28%;left:86%}.webgl-fallback__planet--5 .webgl-fallback__planet-dot{width:31px}.webgl-fallback__planet--6{top:77%;left:74%}.webgl-fallback__planet--6 .webgl-fallback__planet-dot{width:26px}.webgl-fallback__notice{z-index:4;max-width:420px;color:var(--paper-muted);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#162129e6;border:1px solid #f2f2ed47;align-items:end;gap:18px;padding:12px;display:flex;position:absolute;bottom:22px;right:22px}.webgl-fallback__notice p{font:500 11px/1.35 var(--sans);margin:0}.webgl-fallback__notice strong,.webgl-fallback__notice span{display:block}.webgl-fallback__notice strong{color:var(--paper);font:800 9px/1 var(--mono);letter-spacing:.14em;margin-bottom:5px}.webgl-fallback__notice button{min-width:88px;min-height:38px;color:var(--ink);background:var(--coral);border:1px solid var(--coral);font:800 9px/1 var(--mono);letter-spacing:.08em;cursor:pointer;padding:0 10px}.webgl-fallback__notice button:hover,.webgl-fallback__notice button:focus-visible{color:var(--paper);background:0 0;outline:none}.webgl-fallback__notice button:focus-visible{box-shadow:0 0 0 3px #ef5b4c47}.planet-label{color:var(--paper);font:800 8px/1 var(--mono);letter-spacing:.12em;white-space:nowrap;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#162129cc;border:1px solid #f2f2ed52;align-items:center;gap:7px;padding:7px 9px;transition:color .18s,background .18s,border-color .18s;display:flex}.planet-label span{color:var(--coral)}.planet-label:hover,.planet-label:focus-visible,.planet-label.is-hovered{color:var(--ink);background:var(--paper);border-color:var(--paper);outline:none}.content{z-index:5;border-top:4px solid var(--coral);position:relative}.editorial-section{min-height:840px;color:var(--ink);background:var(--paper);border-bottom:1px solid var(--ink);grid-template-columns:236px minmax(0,1fr);scroll-margin-top:72px;display:grid}.editorial-section--games,.editorial-section--personal{background:#dbe4e5}.editorial-section--games,.editorial-section.editorial-section--architecture,.editorial-section.editorial-section--personal,.editorial-section.editorial-section--teaching,.editorial-section.editorial-section--education{grid-template-columns:minmax(0,1fr)}.editorial-section--teaching,.editorial-section--education{background:#e5dfd7}.editorial-section.editorial-section--contact{background:var(--coral);grid-template-columns:minmax(0,1fr);min-height:calc(100svh - 72px)}.section-rail{min-height:100%;color:var(--paper);background:var(--ink);border-right:1px solid var(--ink);position:relative;overflow:hidden}.section-rail>span{font:800 10px/1 var(--mono);letter-spacing:.12em;position:absolute;top:38px;left:34px}.section-rail>span:after{content:"";background:var(--coral);width:42px;height:5px;margin-top:17px;display:block}.section-rail>strong{color:var(--paper);font:900 70px/.83 var(--display);letter-spacing:-.065em;transform-origin:0 100%;white-space:nowrap;position:absolute;bottom:36px;left:37px;transform:rotate(-90deg)}.section-rail>b{color:var(--coral);font:900 20px/1 var(--mono);position:absolute;bottom:34px;right:28px}.section-body{min-width:0;padding:54px clamp(34px,4.2vw,72px) 64px}.section-intro{grid-template-columns:minmax(0,1fr) minmax(300px,470px);align-items:end;gap:50px;margin-bottom:42px;display:grid}.section-intro span,.work-card__copy>span{color:var(--coral-dark);font:900 10px/1 var(--mono);letter-spacing:.13em}.section-intro h2{color:var(--ink);font:900 clamp(52px, 5.4vw, 88px) / .83 var(--display);letter-spacing:-.07em;margin:10px 0 0}.section-intro p{color:#1d2831bf;font:500 16px/1.48 var(--sans);margin:0 0 4px}.architecture-heading{margin-bottom:20px;padding:10px 0 8px}.architecture-heading h2{color:var(--ink);font:900 clamp(34px, 6.4vw, 92px) / .82 var(--display);letter-spacing:-.065em;margin:0}.architecture-heading h2:after{content:"";background:var(--coral);width:clamp(78px,7vw,120px);height:8px;margin-top:18px;display:block}.impact-strip{color:var(--paper);background:var(--ink);border:1px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px;display:grid}.impact-strip>div{border-right:1px solid var(--line);flex-direction:column;justify-content:space-between;min-height:112px;padding:20px;display:flex}.impact-strip>div:last-child{border-right:0}.impact-strip strong{color:var(--coral);font:900 42px/.9 var(--display);letter-spacing:-.06em}.impact-strip span{color:#f2f2edd1;font:800 10px/1.4 var(--mono);letter-spacing:.1em}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.work-card{background:var(--paper);border:1px solid var(--ink);min-width:0}.work-card:first-child{grid-column:1/-1;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);display:grid}.work-card__visual{min-height:300px;color:var(--paper);background:linear-gradient(90deg, #f2f2ed0d 1px, transparent 1px), linear-gradient(#f2f2ed0d 1px, transparent 1px), var(--ink);background-size:38px 38px;position:relative;overflow:hidden}.work-card:not(:first-child) .work-card__visual{min-height:230px}.work-card__visual>span{z-index:3;font:800 9px/1 var(--mono);letter-spacing:.12em;position:absolute;top:24px;left:24px}.work-card__visual>strong{z-index:3;color:var(--coral);font:900 58px/1 var(--display);letter-spacing:-.06em;position:absolute;bottom:18px;right:24px}.work-card__orbit{aspect-ratio:1.65;border:2px solid var(--coral);border-radius:50%;width:58%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-17deg)}.work-card__orbit:before,.work-card__orbit:after{content:"";border-radius:50%;position:absolute}.work-card__orbit:before{background:var(--coral);width:36px;height:36px;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 10px #ef5b4c29}.work-card__orbit:after{background:var(--paper);width:16px;height:16px;top:16%;right:8%}.work-card__copy{border-top:1px solid var(--ink);flex-direction:column;align-items:flex-start;min-height:250px;padding:28px;display:flex}.work-card:first-child .work-card__copy{border-top:0;border-left:1px solid var(--ink)}.work-card__copy h3{color:var(--ink);font:900 clamp(26px, 2.4vw, 38px) / .92 var(--display);letter-spacing:-.055em;margin:24px 0 16px}.work-card__copy p{color:#1d2831b3;font:700 11px/1.45 var(--mono);letter-spacing:.08em;margin:0}.project-summary{color:#1d2831c7;font:500 15px/1.5 var(--sans);margin-top:25px}.project-result{border-top:1px solid var(--line-dark);margin-top:25px;padding-top:18px}.project-result small{color:var(--coral-dark);font:900 8px/1 var(--mono);letter-spacing:.12em;margin-bottom:10px;display:block}.project-result strong{color:var(--ink);font:600 13px/1.45 var(--sans);display:block}.work-card__copy a,.card-meta{width:100%;min-height:48px;color:var(--ink);border:1px solid var(--ink);font:900 9px/1 var(--mono);letter-spacing:.1em;justify-content:space-between;align-items:center;margin-top:auto;padding:0 14px;text-decoration:none;display:flex}.work-card__copy a{transition:color .2s,background .2s}.work-card__copy a:hover,.work-card__copy a:focus-visible{color:var(--paper);background:var(--ink);outline:none}.card-meta{color:#1d283194}.about-story{color:var(--paper);background:var(--ink);border:1px solid var(--ink);grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);gap:clamp(34px,5vw,86px);margin-bottom:20px;padding:38px 40px;display:grid}.about-story span{color:var(--coral);font:900 9px/1 var(--mono);letter-spacing:.12em}.about-story h3{max-width:520px;font:900 clamp(34px, 3.3vw, 56px) / .88 var(--display);letter-spacing:-.06em;margin:28px 0 0}.about-story p{color:var(--paper-muted);font:500 16px/1.55 var(--sans);margin:0}.about-story p+p{margin-top:22px}.about-story--games{align-items:center}.about-story--games h3{color:var(--paper);margin:0}.about-story__description{padding-top:0}.experience-board{background:var(--paper);border:1px solid var(--ink)}.experience-row{border-bottom:1px solid var(--ink);grid-template-columns:minmax(260px,.8fr) minmax(300px,1fr);align-items:center;gap:24px;min-height:178px;padding:28px 32px;display:grid}.experience-row:last-child{border-bottom:0}.experience-row h3{color:var(--ink);font:900 28px/.95 var(--display);letter-spacing:-.05em;margin:0}.experience-details p{color:#1d2831b8;font:500 15px/1.45 var(--sans);margin:0}.experience-links{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.experience-links a{min-height:38px;color:var(--ink);border:1px solid var(--ink);font:800 8px/1 var(--mono);letter-spacing:.1em;align-items:center;gap:18px;padding:0 13px;text-decoration:none;transition:color .18s,background .18s;display:inline-flex}.experience-links a span{color:var(--coral-dark);font:800 14px/1 var(--sans);letter-spacing:0}.experience-links a:hover,.experience-links a:focus-visible{color:var(--paper);background:var(--ink);outline:none}.experience-links a:hover span,.experience-links a:focus-visible span{color:var(--coral)}.games-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.game-card{aspect-ratio:1.24;perspective:1600px;min-width:0}.game-card__inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .72s cubic-bezier(.2,.72,.18,1);position:relative}.game-card.is-flipped .game-card__inner{transform:rotateY(180deg)}.game-card__face{border:1px solid var(--ink);backface-visibility:hidden;position:absolute;inset:0;overflow:hidden}.game-card__face[inert]{pointer-events:none}.game-card__front{color:var(--ink);background:var(--paper);grid-template-rows:minmax(0,1fr) auto;display:grid}.game-card__cover{background:var(--ink);border-bottom:1px solid var(--ink);min-height:0;position:relative;overflow:hidden}.game-card__cover:after{content:"";pointer-events:none;background:linear-gradient(#0000 52%,#1621298f);position:absolute;inset:0}.game-card__cover img{object-fit:cover;width:100%;height:100%;transition:transform .72s cubic-bezier(.2,.72,.18,1);display:block}.game-card:not(.game-card--placeholder):hover .game-card__cover img,.game-card:not(.game-card--placeholder):focus-within .game-card__cover img{transform:scale(1.045)}.game-card__cover--placeholder{background:linear-gradient(135deg, transparent 46%, #ef5b4cc7 46% 54%, transparent 54%), var(--ink-light);place-items:center;display:grid}.game-card__cover--placeholder span{z-index:2;color:var(--paper);background:var(--ink);font:900 9px/1 var(--mono);letter-spacing:.12em;border:1px solid #f2f2ed8c;padding:10px 12px;position:relative}.game-card__identity{min-height:142px;padding:20px 74px 21px 22px;position:relative}.game-card__identity>div{min-width:0}.game-card__identity h3{color:var(--ink);font:900 clamp(22px, 2vw, 34px) / .9 var(--display);letter-spacing:-.055em;margin:0}.game-card__identity ul{flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.game-card__identity li{color:#1d2831e6;font:900 9px/1.1 var(--mono);letter-spacing:.08em;border:1px solid #1d283194;padding:8px 10px}.game-card__details-trigger{width:48px;height:48px;color:var(--paper);background:var(--ink);border:1px solid var(--ink);cursor:pointer;align-content:center;place-items:center;gap:3px;padding:0;transition:color .18s,background .18s;display:grid;position:absolute;bottom:18px;right:18px}.game-card__details-trigger-label{font:900 7px/1 var(--mono);letter-spacing:.04em}.game-card__details-trigger-arrow{font:700 16px/.8 var(--sans)}.game-card__details-trigger:hover,.game-card__details-trigger:focus-visible{color:var(--paper);background:var(--coral);outline:none}.game-card__details-trigger:focus-visible{box-shadow:inset 0 0 0 3px var(--paper)}.game-card__back{color:var(--paper);background:var(--ink);flex-direction:column;padding:26px;display:flex;transform:rotateY(180deg)}.game-card__back:focus-visible{box-shadow:inset 0 0 0 3px var(--coral);outline:none}.game-card__contribution,.game-card__about:only-child{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0}.game-card__contribution+.game-card__about{padding-top:14px}.game-card__back small{color:#f2f2ed75;font:800 8px/1 var(--mono);letter-spacing:.12em;margin-bottom:10px;display:block}.game-card__back strong{color:var(--paper);font:700 17px/1.2 var(--sans);letter-spacing:.02em;display:block}.game-card__description{color:#f2f2edb8;font:500 13px/1.4 var(--sans);margin:0}.game-card__about:only-child .game-card__description{margin-top:12px}.game-card__store-link{min-height:54px;color:var(--paper);background:var(--coral);border:1px solid var(--coral);font:800 11px/1 var(--sans);letter-spacing:.08em;justify-content:space-between;align-items:center;margin-top:auto;padding:0 17px;text-decoration:none;transition:color .18s,background .18s;display:flex}.game-card__store-link span{font-size:17px}a.game-card__store-link:hover,a.game-card__store-link:focus-visible{color:var(--paper);background:0 0;outline:none}.game-card__store-link--disabled{color:#f2f2ed75;cursor:not-allowed;background:#f2f2ed0d;border-color:#f2f2ed3d}.game-card__actions{gap:8px;margin-top:auto;display:flex}.game-card__actions .game-card__store-link{flex:auto;min-width:0;margin-top:0}.game-card__details-close{min-width:68px;min-height:54px;color:var(--paper);font:900 8px/1 var(--mono);letter-spacing:.08em;cursor:pointer;background:0 0;border:1px solid #f2f2ed6b;flex:none;padding:0 10px}.game-card__details-close:hover,.game-card__details-close:focus-visible{color:var(--ink);background:var(--paper);outline:none}.game-card__details-close:focus-visible,a.game-card__store-link:focus-visible{box-shadow:inset 0 0 0 3px var(--coral)}@media (width>=1181px) and (height>=700px) and (aspect-ratio>=16/10){.editorial-section--games{height:calc(100svh - 72px);min-height:calc(100svh - 72px)}.editorial-section--games .section-body{grid-template-rows:auto minmax(0,1fr);min-height:0;padding-top:clamp(18px,2.6vh,28px);padding-bottom:clamp(18px,2.6vh,28px);display:grid}.editorial-section--games .about-story{margin-bottom:clamp(12px,1.6vh,18px);padding-top:clamp(14px,2vh,22px);padding-bottom:clamp(14px,2vh,22px)}.editorial-section--games .about-story p{font-size:clamp(13px,.85vw,15px)}.editorial-section--games .games-grid{grid-template-rows:repeat(2,minmax(0,1fr));min-height:0}.editorial-section--games .game-card{aspect-ratio:auto;height:100%;min-height:0}.editorial-section--games .game-card__identity{min-height:105px;padding:14px 74px 15px 18px}.editorial-section--games .game-card__identity h3{font-size:clamp(18px,1.65vw,28px)}.editorial-section--games .game-card__identity ul{gap:6px;margin-top:12px}.editorial-section--games .game-card__identity li{padding:6px 8px;font-size:8px}.editorial-section--games .game-card__back{padding:clamp(14px,1.35vw,22px)}.editorial-section--games .game-card__contribution,.editorial-section--games .game-card__about:only-child{padding:9px 0 11px}.editorial-section--games .game-card__back small{margin-bottom:6px}.editorial-section--games .game-card__back strong{font-size:clamp(14px,1vw,17px)}.editorial-section--games .game-card__description{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:clamp(11px,.72vw,13px);display:-webkit-box;overflow:hidden}.editorial-section--games .game-card__about:only-child .game-card__description{margin-top:9px}.editorial-section--games .game-card__store-link{min-height:clamp(44px,5.4vh,50px)}}.expertise-layout{border:1px solid var(--ink);grid-template-columns:minmax(360px,.95fr) minmax(420px,1.05fr);min-height:530px;display:grid}.capability-list{background:var(--paper);border-right:1px solid var(--ink);grid-template-rows:repeat(3,1fr);display:grid}.capability-list button{color:var(--ink);text-align:left;border:0;border-bottom:1px solid var(--ink);cursor:pointer;background:0 0;grid-template-columns:1fr auto;align-items:center;gap:24px;padding:22px 26px;transition:color .2s,background .2s;display:grid}.capability-list button:last-child{border-bottom:0}.capability-list button:hover,.capability-list button:focus-visible,.capability-list button.is-active{color:var(--paper);background:var(--coral);outline:none}.capability-list span{font:900 20px/1 var(--display);letter-spacing:-.04em}.capability-list i{font-size:18px;font-style:normal}.capability-detail{min-width:0;color:var(--paper);background:var(--ink);flex-direction:column;padding:42px;display:flex}.capability-context{color:var(--coral);font:800 10px/1.4 var(--mono);letter-spacing:.1em;margin-bottom:22px;display:block}.capability-detail h3{font:900 clamp(44px, 4.6vw, 74px) / .84 var(--display);letter-spacing:-.065em;margin:0 0 26px}.capability-detail>p{max-width:590px;color:var(--paper-muted);font:500 17px/1.52 var(--sans);margin:0}.capability-detail>div{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:auto;padding:22px 0}.capability-detail small{color:#f2f2ed6b;font:800 10px/1.4 var(--mono);letter-spacing:.1em;margin-bottom:12px;display:block}.capability-detail strong{color:var(--coral);font:800 10px/1.4 var(--mono);letter-spacing:.1em;display:block}@media (width>=1181px) and (height>=500px) and (aspect-ratio>=16/10){.editorial-section--architecture{height:calc(100svh - 72px);min-height:calc(100svh - 72px)}.editorial-section--architecture .section-body{flex-direction:column;min-height:0;padding-top:clamp(18px,2.6vh,28px);padding-bottom:clamp(18px,2.6vh,28px);display:flex}.editorial-section--architecture .architecture-heading{margin-bottom:clamp(12px,1.6vh,18px);padding-top:clamp(8px,1.2vh,14px);padding-bottom:4px}.editorial-section--architecture .impact-strip{flex:none;margin-bottom:clamp(14px,2vh,20px)}.editorial-section--architecture .impact-strip>div{min-height:clamp(92px,13vh,112px)}.editorial-section--architecture .expertise-layout{flex:auto;min-height:0}.editorial-section--architecture .capability-detail{padding:clamp(26px,3.3vh,42px)}.editorial-section--architecture .capability-detail h3{margin-bottom:clamp(18px,2.5vh,26px)}.editorial-section--architecture .capability-detail>div{padding-top:clamp(15px,2.2vh,22px);padding-bottom:clamp(15px,2.2vh,22px)}}.practice-grid{grid-template-rows:repeat(2,minmax(220px,1fr));grid-template-columns:1.2fr .8fr;gap:20px;display:grid}.practice-card{min-height:230px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);padding:30px;position:relative}.practice-card:first-child{color:var(--paper);background:var(--ink);grid-row:1/3}.practice-card>div{justify-content:space-between;align-items:center;display:flex}.practice-card b{color:var(--coral);font:900 42px/1 var(--display);letter-spacing:-.06em}.practice-card i{background:var(--coral);width:78px;height:6px}.practice-card>span{color:#1d283199;font:800 8px/1 var(--mono);letter-spacing:.11em;position:absolute;top:34px;right:30px}.practice-card:first-child>span{color:var(--paper-muted)}.practice-card h3{font:900 clamp(34px, 3.5vw, 56px) / .86 var(--display);letter-spacing:-.06em;margin:90px 0 14px}.practice-card:not(:first-child) h3{margin-top:44px;font-size:34px}.practice-card p{color:currentColor;opacity:.68;max-width:540px;font:500 15px/1.45 var(--sans);margin:0}.practice-card ul{flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none;display:flex}.practice-card li{color:currentColor;font:800 8px/1 var(--mono);letter-spacing:.08em;opacity:.72;border:1px solid;padding:8px 10px}.projects-heading{margin-bottom:42px}.projects-heading h2{color:var(--ink);font:900 clamp(46px, 5vw, 82px) / .78 var(--display);letter-spacing:-.075em;white-space:nowrap;align-items:baseline;gap:clamp(10px,1vw,18px);margin:8px 0 0;display:flex}.projects-heading h2 span{font:inherit;letter-spacing:inherit}.projects-heading h2 em{color:var(--coral);font:900 .72em/1 var(--display);letter-spacing:-.06em}.projects-heading__outline{color:var(--paper);-webkit-text-stroke:clamp(1px, .1vw, 2px) var(--ink);paint-order:stroke fill}.personal-projects-grid .practice-card h3,.personal-projects-grid .practice-card:not(:first-child) h3{margin-top:24px}.personal-projects-grid .practice-card--architecture{isolation:isolate;overflow:hidden}.personal-projects-grid .practice-card--architecture:before{content:"";z-index:0;opacity:.22;pointer-events:none;transform-origin:50%;background:url(/research/architecture-requirements-blueprint.svg) 100%/contain no-repeat;width:84%;position:absolute;top:-6%;bottom:-6%;right:-4%;transform:rotate(-.75deg);-webkit-mask-image:linear-gradient(90deg,#0000 0%,#00000047 18%,#000 46%);mask-image:linear-gradient(90deg,#0000 0%,#00000047 18%,#000 46%)}.personal-projects-grid .practice-card--architecture>*{z-index:1;position:relative}.practice-card:has(.practice-card__article-link){flex-direction:column;align-items:flex-start;display:flex}.practice-card--research{isolation:isolate;color:var(--paper);background:var(--ink);grid-row:1/3;overflow:hidden}.practice-card--research:before,.practice-card--research:after{content:"";pointer-events:none;position:absolute;inset:0}.practice-card--research:before{z-index:-2;filter:saturate(.82)contrast(1.08);background:url(/research/nova-8-console.jpg) 50%/cover no-repeat;transform:scale(1.015)}.practice-card--research:after{z-index:-1;background:linear-gradient(90deg,#12181fe0,#12181f61),linear-gradient(#0000 24%,#12181f80)}.practice-card--research p{opacity:.88;text-shadow:0 1px 12px #080d1180}.practice-card--research li{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#12181f6b}.practice-card__article-link{min-width:230px;min-height:52px;color:var(--ink);background:var(--coral);border:1px solid var(--coral);font:900 9px/1 var(--sans);letter-spacing:.11em;cursor:pointer;justify-content:space-between;align-items:center;gap:24px;margin-top:auto;padding:0 16px;transition:color .2s,background .2s;display:flex}.practice-card__article-link span{font-size:18px}.practice-card__article-link:hover,.practice-card__article-link:focus-visible{color:var(--paper);background:0 0;outline:none}.practice-card__article-link:focus-visible{box-shadow:0 0 0 3px #ef5b4c57}.research-article-dialog{width:min(1180px,100vw - 48px);max-width:none;height:min(900px,100svh - 48px);max-height:none;color:var(--ink);background:var(--paper);border:1px solid var(--ink);margin:auto;padding:0;overflow:auto;box-shadow:0 36px 100px #080d1175}.research-article-dialog::backdrop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#080d11d1}.research-article{background:var(--paper);min-height:100%}.research-article__header{min-height:560px;color:var(--paper);background:var(--ink);padding:clamp(38px,6vw,84px);position:relative}.research-article__header:after{content:"";background:var(--coral);width:clamp(80px,14vw,180px);height:9px;position:absolute;bottom:0;right:clamp(38px,6vw,84px)}.research-article__meta{gap:10px;padding-right:70px;display:flex}.research-article__meta span{color:var(--paper-muted);border:1px solid var(--line);font:800 8px/1 var(--mono);letter-spacing:.11em;padding:8px 10px}.research-article__close{z-index:2;float:right;width:52px;height:52px;color:var(--paper);border:1px solid var(--line);cursor:pointer;background:0 0;place-items:center;margin-top:-34px;margin-right:-44px;transition:color .2s,background .2s,border-color .2s;display:grid;position:sticky;top:24px}.research-article__close span{font:300 30px/1 var(--sans)}.research-article__close:hover,.research-article__close:focus-visible{color:var(--ink);background:var(--paper);border-color:var(--paper);outline:none}.research-article__close:focus-visible{box-shadow:0 0 0 3px #ef5b4c6b}.research-article__eyebrow{color:var(--coral);font:900 10px/1 var(--mono);letter-spacing:.15em;margin:clamp(82px,12vh,124px) 0 18px}.research-article__header h2{max-width:910px;color:var(--paper);font:900 clamp(50px, 7vw, 94px) / .82 var(--display);letter-spacing:-.075em;margin:0}.research-article__lead{max-width:720px;color:var(--paper-muted);font:500 clamp(17px, 1.6vw, 21px) / 1.5 var(--sans);margin:40px 0 0}.research-article__body{padding:clamp(40px,6vw,84px)}.research-article__opening{max-width:880px;margin-bottom:clamp(58px,9vw,108px)}.research-article__opening p:first-child{color:var(--coral-dark);font:800 clamp(28px, 4vw, 54px) / 1.03 var(--display);letter-spacing:-.045em;margin:0 0 28px}.research-article__opening p:last-child{max-width:690px;font:600 clamp(17px, 1.6vw, 21px) / 1.5 var(--sans);margin:0}.research-article__section{border-top:1px solid var(--ink);grid-template-columns:86px minmax(0,720px);justify-content:center;gap:clamp(22px,5vw,70px);padding:clamp(52px,8vw,96px) 0;display:grid}.research-article__index{color:var(--coral-dark);font:900 11px/1 var(--mono);letter-spacing:.12em;padding-top:8px}.research-article__section h3{font:900 clamp(31px, 4vw, 54px) / .92 var(--display);letter-spacing:-.055em;margin:0 0 28px}.research-article__section p{color:#1d2831c7;font:500 17px/1.65 var(--sans);margin:0 0 22px}.research-article__section p:last-child{margin-bottom:0}.research-article__section ul{border-top:1px solid var(--ink);border-left:1px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));margin:34px 0 0;padding:0;list-style:none;display:grid}.research-article__section li{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-height:76px;font:800 11px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;padding:18px;display:flex}.research-article__statement{color:var(--paper);background:var(--coral);margin:0 calc(-1*clamp(40px,6vw,84px));padding:clamp(52px,8vw,92px) clamp(40px,11vw,150px)}.research-article__statement span{font:900 9px/1 var(--mono);letter-spacing:.15em;margin-bottom:24px;display:block}.research-article__statement p{max-width:860px;font:800 clamp(28px, 4.5vw, 58px) / 1.02 var(--display);letter-spacing:-.05em;margin:0}.research-article__section--dark{color:var(--paper);background:var(--ink);border-top:0;margin:0 calc(-1*clamp(40px,6vw,84px));padding-left:clamp(40px,6vw,84px);padding-right:clamp(40px,6vw,84px)}.research-article__section--dark .research-article__index{color:var(--coral)}.research-article__section--dark p{color:var(--paper-muted);font-size:clamp(20px,2.2vw,28px);line-height:1.5}.research-article__conclusion{border-top:5px solid var(--coral);border-bottom:1px solid var(--ink);letter-spacing:-.035em;padding:30px 0;color:var(--ink)!important;font:800 clamp(24px, 3vw, 38px) / 1.15 var(--display)!important}.research-article__footer{border-top:1px solid var(--ink);gap:12px;padding-top:clamp(48px,7vw,84px);display:flex}.research-article__footer a,.research-article__footer button{min-height:58px;font:900 9px/1 var(--sans);letter-spacing:.11em;cursor:pointer;justify-content:space-between;align-items:center;gap:24px;padding:0 20px;text-decoration:none;display:flex}.research-article__footer a{min-width:260px;color:var(--paper);background:var(--coral);border:1px solid var(--coral)}.research-article__footer button{color:var(--ink);border:1px solid var(--ink);background:0 0}.research-article__footer a:hover,.research-article__footer a:focus-visible,.research-article__footer button:hover,.research-article__footer button:focus-visible{color:var(--paper);background:var(--ink);border-color:var(--ink);outline:none}.research-article__footer a:focus-visible,.research-article__footer button:focus-visible{box-shadow:0 0 0 3px #ef5b4c57}.education-grid{border:1px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.education-card{min-width:0;color:var(--ink);background:var(--paper);border-right:1px solid var(--ink);flex-direction:column;padding:32px;display:flex}.education-card:last-child{border-right:0}.education-card__meta{border-bottom:1px solid var(--ink);justify-content:flex-end;align-items:center;padding-bottom:24px;display:flex}.education-card time{font:900 11px/1 var(--mono);letter-spacing:.12em}.education-card__credential{color:var(--coral-dark);font:900 9px/1.2 var(--sans);letter-spacing:.1em;margin-top:clamp(56px,8vh,88px)}.education-card h3{font:900 clamp(28px, 2.6vw, 44px) / .88 var(--display);letter-spacing:-.06em;margin:14px 0 24px}.education-card__institution{border-top:1px solid var(--line-dark);padding-top:22px}.education-card__institution strong,.education-card__institution small{display:block}.education-card__institution strong{font:900 12px/1.15 var(--mono);letter-spacing:.08em;margin-bottom:9px}.education-card__institution small{color:#1d2831a3;font:500 12px/1.4 var(--sans)}.education-card__thesis{color:#1d2831b3;font:500 13px/1.42 var(--sans);margin:0;padding-top:20px}.education-card__thesis span{color:var(--coral-dark);font:900 8px/1 var(--sans);letter-spacing:.12em;margin-bottom:7px;display:block}.contact-layout{grid-template-columns:minmax(0,1fr) clamp(240px,18vw,300px);grid-template-areas:"title portrait""details portrait";align-content:center;align-items:center;gap:24px clamp(40px,5vw,84px);min-height:calc(100svh - 190px);display:grid}.contact-title{min-width:0;color:var(--ink);font:900 clamp(68px, 6.7vw, 132px) / .77 var(--display);letter-spacing:-.075em;grid-area:title;align-self:end;margin:0}.contact-title span{white-space:nowrap;display:block}.contact-title span:nth-child(2){color:var(--paper)}.contact-title span:nth-child(3){color:var(--paper);-webkit-text-stroke:clamp(1.5px, .15vw, 3px) var(--ink);paint-order:stroke fill}.contact-details{grid-area:details;align-self:start;min-width:0}.contact-details>p{max-width:710px;color:var(--paper);font:600 17px/1.45 var(--sans);margin:0}.contact-portrait{grid-area:portrait;place-self:stretch end;width:100%;min-width:0;max-width:300px;margin:0}.contact-portrait__image{background:var(--paper);border:1px solid var(--ink);height:100%;overflow:hidden}.contact-portrait img{object-fit:cover;object-position:50% 42%;width:100%;height:100%;display:block}.contact-actions{gap:14px;margin-top:38px;display:flex}.contact-actions a{min-width:270px;min-height:58px;color:var(--paper);background:var(--ink);border:1px solid var(--ink);font:900 10px/1 var(--sans);letter-spacing:.11em;justify-content:space-between;align-items:center;padding:0 22px;text-decoration:none;transition:color .2s,background .2s;display:flex}.contact-actions a:hover,.contact-actions a:focus-visible{color:var(--ink);background:var(--paper);outline:none}.contact-actions span{font-size:18px}@media (width>=821px){.contact-actions a{flex:1 1 0;min-width:0}}@media (width>=1400px) and (height>=700px){.contact-details>p{max-width:980px;font-size:18px}.contact-actions a{min-height:68px;padding-left:28px;padding-right:28px}}@media (width<=1180px){.main-nav a{min-width:0;padding:0 17px;font-size:10px}.header-contact{min-width:170px}.contact-actions a{flex:1;min-width:0}.hero{grid-template-columns:48% 52%}.hero-copy{padding-left:72px}.hero .hero-heading{font-size:clamp(58px,7.5vw,90px)}.editorial-section{grid-template-columns:190px minmax(0,1fr)}.section-rail>strong{font-size:58px}.section-intro{grid-template-columns:1fr;gap:17px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.impact-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.work-card:first-child{grid-column:1/-1}.experience-row{grid-template-columns:minmax(220px,.75fr) minmax(250px,1fr)}.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-card{aspect-ratio:1.04}.education-grid{grid-template-columns:1fr}.education-card{border-right:0;border-bottom:1px solid var(--ink);min-height:360px}.education-card:last-child{border-bottom:0}}@media (width<=1100px){.contact-layout{grid-template-columns:minmax(240px,280px) minmax(0,1fr);grid-template-areas:"title title""portrait details";align-items:start;gap:32px 40px;min-height:0}.contact-title{margin-top:24px;font-size:clamp(58px,7.5vw,82px)}.contact-portrait{place-self:start;width:100%}.contact-portrait__image{aspect-ratio:4/5;height:auto}}@media (width<=820px){.site-header{grid-template-columns:minmax(0,1fr) 62px;min-height:62px;position:sticky}.mobile-nav-toggle{min-width:0;color:var(--paper);border:0;border-right:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:16px;padding:9px 18px 8px 20px;display:flex}.mobile-nav-toggle>span{min-width:0;font:800 11px/1.05 var(--sans);letter-spacing:.075em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-nav-toggle small{color:var(--coral);font:800 7px/1 var(--mono);letter-spacing:.14em;margin-bottom:5px;display:block}.mobile-nav-toggle i{font:400 22px/1 var(--sans);flex:none;font-style:normal}.mobile-nav-toggle:focus-visible{outline:2px solid var(--coral);outline-offset:-4px}.main-nav{max-height:calc(100svh - 62px);color:var(--paper);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;pointer-events:none;background:#162129fb;grid-template-columns:1fr;align-items:stretch;transition:opacity .18s,transform .18s,visibility 0s linear .18s;display:grid;position:absolute;top:100%;left:0;right:0;overflow-y:auto;transform:translateY(-10px);box-shadow:0 24px 46px #080d1157}.main-nav.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.main-nav a{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:38px minmax(0,1fr) auto;place-items:center stretch;gap:12px;min-width:0;min-height:58px;padding:0 20px;font-size:12px}.main-nav a:last-child{border-bottom:0}.main-nav a:after{transform-origin:top;width:4px;height:auto;inset:0 auto 0 0;transform:scaleY(0)}.main-nav a:hover:after,.main-nav a:focus-visible:after,.main-nav a.is-active:after{transform:scaleY(1)}.nav-index,.nav-arrow{display:block}.nav-index{color:var(--coral);font:900 10px/1 var(--mono)}.nav-label{min-width:0}.nav-arrow{color:var(--paper-muted);font:400 17px/1 var(--sans)}.header-contact{justify-content:center;min-width:62px;padding:0;font-size:0}.header-contact span{font-size:20px}.hero{min-height:1210px;display:block}.hero-copy{min-height:650px;padding:60px 22px 40px 66px}.hero .hero-heading{font-size:clamp(58px,17vw,104px)}.hero-summary{margin-top:24px}.hero-summary p{font-size:15px}.hero-summary p:first-child{font-size:17px}.hero-socials{top:243px;left:13px}.hero-socials:before,.hero-socials:after{height:28px}.star-system{height:560px;min-height:560px}.webgl-fallback{--fallback-center-x:50%}.webgl-fallback__planet--1{top:34%;left:36%}.webgl-fallback__planet--2{top:29%;left:66%}.webgl-fallback__planet--3{top:47%;left:77%}.webgl-fallback__planet--4{top:57%;left:24%}.webgl-fallback__planet--5{top:66%;left:56%}.webgl-fallback__planet--6{top:72%;left:78%}.webgl-fallback__notice{justify-content:space-between;max-width:none;bottom:14px;left:14px;right:14px}.editorial-section{min-height:auto;scroll-margin-top:62px;display:block}.section-rail{border-right:0;border-bottom:1px solid var(--ink);height:116px;min-height:116px}.section-rail>span{font-size:8px;top:21px;left:20px}.section-rail>span:after{width:36px;height:4px;margin-top:12px}.section-rail>strong{font-size:43px;top:61px;bottom:auto;left:20px;transform:none}.section-rail>b{font-size:18px;bottom:18px;right:20px}.section-body{padding:34px 20px 44px}.section-intro{margin-bottom:28px}.section-intro h2{font-size:clamp(48px,13vw,72px)}.section-intro p{font-size:14px}.impact-strip{grid-template-columns:1fr}.impact-strip>div{border-right:0;border-bottom:1px solid var(--line);min-height:100px;padding:16px}.impact-strip>div:last-child{border-bottom:0}.impact-strip strong{font-size:34px}.work-grid{grid-template-columns:1fr}.work-card:first-child{display:block}.work-card:first-child .work-card__copy{border-top:1px solid var(--ink);border-left:0}.work-card__visual,.work-card:not(:first-child) .work-card__visual{min-height:250px}.work-card__copy{min-height:270px}.experience-row{grid-template-columns:1fr;gap:14px;min-height:230px;padding:24px 20px}.experience-details{grid-column:1}.about-story{padding:28px 24px;display:block}.about-story>div+div{margin-top:34px}.about-story p{font-size:14px}.about-story__description{padding-top:0}.games-grid{grid-template-columns:1fr}.game-card{aspect-ratio:1.22}.game-card__identity h3{font-size:clamp(24px,6vw,34px)}.expertise-layout{min-height:0;display:block}.capability-list{border-right:0;border-bottom:1px solid var(--ink)}.capability-list button{min-height:86px;padding:18px 20px}.capability-list span{font-size:17px}.capability-detail{min-height:450px;padding:30px}.practice-grid{display:block}.practice-card,.practice-card:first-child{min-height:310px;margin-bottom:16px}.practice-card>span{top:84px;left:30px;right:auto}.practice-card h3,.practice-card:not(:first-child) h3{margin-top:90px}.personal-projects-grid .practice-card h3,.personal-projects-grid .practice-card:not(:first-child) h3{margin-top:28px}.personal-projects-grid .practice-card--architecture:before{opacity:.15;background-position:54% 100%;background-size:190%;width:auto;inset:0;transform:none;-webkit-mask-image:linear-gradient(#0000 10%,#00000040 44%,#000 78%);mask-image:linear-gradient(#0000 10%,#00000040 44%,#000 78%)}.practice-card__article-link{margin-top:34px}.research-article-dialog{width:calc(100vw - 24px);height:calc(100svh - 24px)}.research-article__header{min-height:520px;padding:32px 24px 54px}.research-article__header:after{right:24px}.research-article__close{margin-top:-34px;margin-right:0;top:12px}.research-article__eyebrow{clear:both;margin-top:0;padding-top:80px}.research-article__body{padding:44px 24px}.research-article__section{grid-template-columns:36px minmax(0,1fr);gap:16px}.research-article__section ul{grid-template-columns:1fr}.research-article__statement,.research-article__section--dark{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}.research-article__footer{flex-direction:column}.research-article__footer a,.research-article__footer button{width:100%;min-width:0}.projects-heading{margin-bottom:28px}.projects-heading h2{white-space:normal;flex-wrap:wrap;gap:6px 10px;font-size:clamp(38px,10.5vw,60px)}.projects-heading__outline{flex-basis:100%}.education-card{min-height:330px;padding:26px}.education-card__credential{margin-top:42px}.education-card p{min-height:0}.contact-layout{row-gap:28px}.contact-title{font-size:clamp(27px,8.8vw,54px)}.contact-portrait{width:100%}.contact-actions{flex-direction:column}.contact-actions a{width:100%;min-width:0}}@media (width<=620px){.back-to-top{width:48px;height:48px;margin:16px calc(20px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) auto;position:static;bottom:auto;right:auto}.back-to-top span{font-size:22px}.contact-layout{grid-template-columns:1fr;grid-template-areas:"title""portrait""details"}.contact-portrait{width:min(70vw,280px)}}@media (width<=430px){.hero{min-height:1170px}.hero-copy{min-height:640px;padding-top:42px}.hero .hero-heading{font-size:clamp(56px,17.5vw,76px)}.hero-role{margin-bottom:16px;font-size:11px}.hero-summary p{font-size:14px}.hero-summary p:first-child{font-size:16px}.star-system{height:530px;min-height:530px}.webgl-fallback__planet-label{display:none}.webgl-fallback__notice{gap:12px}.webgl-fallback__notice p{font-size:10px}.planet-label{padding:6px 7px;font-size:7px}.game-card{aspect-ratio:.88}.game-card__identity{min-height:170px}.game-card__identity ul{margin-left:0}}@media (width<=360px){.game-card{aspect-ratio:auto;min-height:360px}}@media (width>=821px) and (height>=500px) and (aspect-ratio>=16/10){.editorial-section--personal{height:calc(100svh - 72px);min-height:calc(100svh - 72px)}.editorial-section--personal .section-body{flex-direction:column;min-height:0;padding-top:clamp(20px,3vh,36px);padding-bottom:clamp(20px,3vh,36px);display:flex}.editorial-section--personal .projects-heading{margin-bottom:clamp(16px,2.5vh,28px)}.editorial-section--personal .practice-grid{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));gap:clamp(12px,1.8vh,20px);min-height:0}.editorial-section--personal .practice-card{min-height:0;padding:clamp(20px,2.8vh,30px)}.editorial-section--personal .practice-card h3{margin-top:clamp(12px,2.6vh,28px);margin-bottom:clamp(10px,1.6vh,14px);font-size:clamp(34px,3.5vw,56px)}.editorial-section--personal .practice-card:not(:first-child) h3{margin-top:clamp(8px,1.8vh,18px);font-size:clamp(27px,2.4vw,36px)}.editorial-section--personal .practice-card p{font-size:clamp(12px,1.15vw,15px);line-height:1.4}.editorial-section--personal .practice-card ul{margin-top:clamp(12px,2vh,20px)}.editorial-section--personal .practice-card li{padding:7px 9px}.editorial-section--personal .practice-card__article-link{min-height:46px;margin-top:clamp(12px,2vh,20px)}.editorial-section--teaching{height:calc(100svh - 72px);min-height:calc(100svh - 72px)}.editorial-section--teaching .section-body{min-height:0;padding-top:clamp(16px,2.8vh,30px);padding-bottom:clamp(16px,2.8vh,30px)}.editorial-section--teaching .section-intro{margin-bottom:clamp(16px,2.6vh,26px)}.editorial-section--teaching .section-intro h2{margin-top:0;font-size:clamp(52px,5.2vw,82px)}.editorial-section--teaching .experience-board{grid-template-rows:repeat(2,clamp(180px,33vh,330px));display:grid}.editorial-section--teaching .experience-row{min-height:0;padding-top:clamp(18px,2.4vh,28px);padding-bottom:clamp(18px,2.4vh,28px)}}@media (width>=1440px){:root{--ui-micro:clamp(10px, .58vw, 14px);--ui-small:clamp(12px, .68vw, 16px);--ui-control:clamp(14px, .78vw, 18px)}.main-nav a,.header-contact{font-size:var(--ui-control)}.main-nav a{min-width:clamp(156px,9.5vw,228px);padding-left:clamp(24px,1.6vw,38px);padding-right:clamp(24px,1.6vw,38px)}.header-contact{min-width:clamp(198px,12vw,288px);padding-left:clamp(26px,1.8vw,44px);padding-right:clamp(26px,1.8vw,44px)}.planet-label{font-size:var(--ui-micro);gap:clamp(7px,.45vw,11px);padding:clamp(7px,.45vw,11px) clamp(9px,.6vw,15px)}.section-intro span,.work-card__copy>span,.impact-strip span,.work-card__visual>span,.project-result small,.work-card__copy a,.card-meta,.about-story span,.experience-links a,.game-card__cover--placeholder span,.game-card__identity li,.game-card__back small,.capability-context,.capability-detail small,.capability-detail strong,.practice-card>span,.practice-card li,.education-card__credential,.education-card__thesis span,.contact-actions a{font-size:var(--ui-micro)}.education-card time,.education-card__institution strong,.education-card__institution small,.game-card__store-link{font-size:var(--ui-small)}.game-card__identity li,.practice-card li,.game-card__cover--placeholder span{padding:clamp(8px,.5vw,12px) clamp(10px,.7vw,17px)}.experience-links a{min-height:clamp(38px,2.5vw,54px);padding-left:clamp(13px,.9vw,22px);padding-right:clamp(13px,.9vw,22px)}.game-card__store-link{min-height:clamp(50px,3.2vw,68px);padding-left:clamp(17px,1.1vw,27px);padding-right:clamp(17px,1.1vw,27px)}.capability-list span{font-size:clamp(20px,1.25vw,30px)}.capability-list i,.experience-links a span,.game-card__store-link span,.contact-actions span{font-size:clamp(18px,1.1vw,26px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
