:root{font-family:DM Sans,Arial,sans-serif;color:#191d22;background:#fffdf7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth}html.embedded-document{scrollbar-width:none;overflow:hidden}html.embedded-document::-webkit-scrollbar{display:none}html.embedded-document body{height:100vh;overflow:hidden}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #e0aa10;outline-offset:4px}.portfolio{position:relative;isolation:isolate;min-height:100vh}.skip-link{position:fixed;z-index:50;top:10px;left:10px;transform:translateY(-150%);padding:10px 14px;background:#ffd34e;color:#191d22;font-weight:700}.skip-link:focus{transform:translateY(0)}.mobile-nav,.mobile-projects{display:none}.experience-scene{position:fixed;z-index:1;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:auto;overflow:hidden}.experience-scene canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}.experience-scene.dragging canvas{cursor:grabbing}.experience-scene.scene-unavailable{display:none}.screen-css-renderer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.screen-object{width:1200px;height:678px;overflow:hidden;background:#1b1f23;pointer-events:auto;backface-visibility:hidden}.screen-web{position:relative;width:100%;height:100%;overflow:hidden;background:#1b1f23;color:#1a1d21;font-family:DM Sans,Arial,sans-serif}.screen-browser-bar{height:45px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 20px;background:#f5f2e9;border-bottom:2px solid #d9d6cb}.screen-browser-dots{display:flex;gap:9px}.screen-browser-dots i{width:9px;height:9px;border-radius:50%;background:#22272c}.screen-browser-dots i:nth-child(2){opacity:.5}.screen-browser-dots i:nth-child(3){opacity:.25}.screen-browser-address{min-width:290px;padding:5px 18px;background:#fffdf7;border:1px solid #dedbd1;color:#4f5355;text-align:center;font:700 15px Space Mono,monospace}.screen-browser-symbol{font:700 23px Space Mono,monospace}.screen-browser-viewport{position:relative;height:633px;overflow:hidden;background:#171b20}.screen-browser-viewport iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:#fffdf7;opacity:0;transition:opacity .26s ease;pointer-events:none}.screen-browser-viewport iframe.is-loaded{opacity:1}.screen-iframe-wheel-guard{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;pointer-events:auto;touch-action:pan-y;background:transparent}.screen-project-poster img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;image-rendering:auto}.screen-home-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;background:#fffdf7}.screen-home-loading span{font-size:90px;font-weight:700;letter-spacing:-.08em}.screen-home-loading small{font:700 19px Space Mono,monospace;text-transform:uppercase}.screen-project-poster{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffdf7}.screen-project-poster.addeus-poster{background:#101b48}.screen-project-poster.bekorean-poster img{object-position:center 18%}.screen-project-poster.tcgptracker-poster img{object-position:center top}.recursive-home{position:relative;width:1200px;height:633px;overflow:hidden;background:#fffdf7;color:#191d22;font-family:DM Sans,Arial,sans-serif}.recursive-home:before{content:"";position:absolute;right:0;top:0;width:43%;height:100%;background:#f7db79;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%)}.recursive-home:after{content:"";position:absolute;right:5%;top:18%;width:28%;height:64%;border:1px solid rgba(25,29,34,.2);transform:rotate(-8deg)}.recursive-home-header{position:relative;z-index:1;height:74px;padding:0 68px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(25,29,34,.19);background:#fffdf7f0}.recursive-home-logo{font-size:29px;font-weight:700;letter-spacing:-.08em}.recursive-home-nav{margin-left:130px;font-size:14px;font-weight:600;word-spacing:22px}.recursive-home-lang{font-size:13px;font-weight:700}.recursive-home-copy{position:absolute;z-index:1;left:70px;top:151px;width:490px;display:flex;flex-direction:column;align-items:flex-start}.recursive-home-role{font:700 11px Space Mono,monospace;letter-spacing:.04em}.recursive-home-role:before{content:"";display:inline-block;width:26px;height:3px;margin-right:12px;vertical-align:middle;background:#eabf37}.recursive-home-copy>strong{margin:23px 0 19px;font-size:105px;line-height:.85;letter-spacing:-.078em}.recursive-home-lead{max-width:445px;font-size:29px;font-weight:700;line-height:1.13;letter-spacing:-.035em}.recursive-home-description{max-width:410px;margin-top:12px;color:#515558;font-size:16px;line-height:1.4}.recursive-home-action{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-top:25px;padding:14px 17px;border:1px solid #191d22;background:#ffd34e;box-shadow:4px 4px #191d22;font-size:14px;font-weight:700}.recursive-home-action span{font-size:21px;line-height:1}.recursive-computer{position:absolute;z-index:2;left:682px;top:142px;width:430px;height:400px;transform-origin:center 38%;transform:translate(calc(var(--home-recursion-progress, 0) * -455px)) perspective(900px) rotateY(var(--home-recursion-yaw, 0rad)) rotateX(var(--home-recursion-pitch, 0rad));transition:transform .08s linear}.recursive-monitor{position:absolute;left:0;top:0;width:430px;height:270px;border:7px solid #171b20;border-radius:12px;background:#2b3036;box-shadow:0 16px 28px #0f13172e}.recursive-monitor-screen{position:absolute;top:8px;right:8px;bottom:24px;left:8px;overflow:hidden;background:#171b20}.recursive-browser-bar{height:16px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:#f5f2e9;color:#30343a;font:700 7px Space Mono,monospace}.recursive-browser-bar span:first-child{font-size:5px;letter-spacing:1px}.recursive-browser-viewport{width:400px;height:210px;overflow:hidden;background:#fffdf7}.recursive-browser-scale{width:1200px;height:633px;transform:scale(.3333333);transform-origin:top left}.recursive-stand{position:absolute;left:195px;top:270px;width:40px;height:58px;background:#20242a;clip-path:polygon(17% 0,83% 0,100% 100%,0 100%)}.recursive-stand-base{position:absolute;left:123px;top:326px;width:185px;height:12px;border-radius:4px;background:#171b20}.recursive-keyboard{position:absolute;left:58px;top:365px;width:260px;height:24px;border:5px solid #20242a;border-radius:5px;background:repeating-linear-gradient(90deg,#30363c 0,#30363c 14px,#f4c84a 14px,#f4c84a 17px,#20242a 17px,#20242a 20px);transform:skew(-16deg)}.recursive-mouse{position:absolute;left:339px;top:357px;width:43px;height:31px;border-radius:50% 50% 43% 43%;background:#d3d6d8;box-shadow:inset 0 -5px #a9adb0}.recursive-end{width:1200px;height:633px;display:flex;flex-direction:column;justify-content:center;padding:60px 78px;background:#191d22;color:#fffdf7}.recursive-end span{color:#ffd34e;font:700 17px Space Mono,monospace;letter-spacing:.12em}.recursive-end strong{margin:26px 0 20px;font-size:105px;line-height:.87;letter-spacing:-.08em}.recursive-end small{font-size:30px;font-weight:700}.screen-wipe{position:absolute;z-index:5;top:45px;bottom:0;left:0;width:100%;display:grid;place-items:center;background:#ffd34e;pointer-events:none;animation:screen-sweep .72s cubic-bezier(.65,0,.22,1) both}.screen-wipe span{color:#191d22;font:700 32px Space Mono,monospace;letter-spacing:.18em}@keyframes screen-sweep{0%{transform:translate(-102%)}36%,61%{transform:translate(0)}to{transform:translate(102%)}}.screen-kicker{font:700 20px Space Mono,monospace;letter-spacing:.08em}.screen-journey{height:100%;display:flex;flex-direction:column;padding:31px 46px 30px;background:#181d22;color:#fffdf7;animation:screen-detail-in .42s ease}.screen-journey-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:2px solid #596066;color:#ffd34e;font:700 23px Space Mono,monospace;letter-spacing:.04em}.screen-timeline-years{display:grid;grid-template-columns:105px repeat(6,1fr);align-items:end;height:44px;color:#aeb5b6;font:700 21px Space Mono,monospace}.screen-timeline-years span:not(:first-child){text-align:center}.screen-timeline-group{margin-top:8px}.screen-timeline-group p{margin:0 0 5px;color:#ffd34e;font:700 19px Space Mono,monospace;letter-spacing:.06em}.screen-timeline-group.is-education{margin-top:18px}.screen-timeline-group.is-education p{color:#fffdf7}.screen-timeline-row{display:grid;grid-template-columns:105px 1fr;align-items:center;height:37px}.screen-timeline-row>span{color:#aeb5b6;font:700 21px Space Mono,monospace}.screen-timeline-track{position:relative;height:100%;background:repeating-linear-gradient(to right,rgba(255,255,255,.16) 0 1px,transparent 1px calc(100% / 6))}.screen-timeline-track:after{content:"";position:absolute;left:0;right:0;bottom:4px;border-bottom:1px solid rgba(255,255,255,.09)}.screen-timeline-bar{position:absolute;z-index:1;top:7px;height:23px;background:#57616a;transition:background .35s,box-shadow .35s}.screen-timeline-bar.is-current{background:#ffd34e;box-shadow:0 0 20px #ffd34e57}.is-education .screen-timeline-bar{background:#5c6469}.is-education .screen-timeline-bar.is-current{background:#fffdf7;box-shadow:0 0 18px #fffdf745}.screen-journey-focus{display:flex;flex-direction:column;justify-content:center;flex:1;min-height:0;margin-top:15px;padding:15px 20px;border-left:6px solid #ffd34e;background:#282e34;animation:screen-detail-in .38s ease}.screen-journey-focus span{color:#ffd34e;font:700 19px Space Mono,monospace;letter-spacing:.05em}.screen-journey-focus strong{margin-top:8px;font-size:37px;line-height:1.13;letter-spacing:-.025em}.screen-journey-focus small{margin-top:5px;color:#c5cacc;font-size:21px}@keyframes screen-detail-in{0%{opacity:.45;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.skill-dashboard{height:100%;display:grid;grid-template-columns:32% 68%;overflow:hidden;background:#f6f3e9;color:#1b2024;animation:screen-detail-in .4s ease}.skill-dashboard-side{display:flex;flex-direction:column;min-width:0;padding:33px 31px;background:#20272d;color:#fffdf7}.skill-dashboard-kicker{color:#ffd34e;font:700 14px Space Mono,monospace;letter-spacing:.045em}.skill-dashboard-number{margin-top:30px;color:#ffd34e;font-size:121px;font-weight:700;line-height:.9;letter-spacing:-.08em}.skill-dashboard-number span{font:700 24px Space Mono,monospace;letter-spacing:0}.skill-dashboard-side h3{margin:23px 0 8px;font-size:clamp(37px,3.3vw,61px);line-height:.98;letter-spacing:-.06em;overflow-wrap:anywhere}.skill-dashboard-side h3 span{color:#ffd34e}.skill-dashboard-side p{margin:0;color:#c6ced0;font-size:20px;line-height:1.31}.skill-dashboard-icon-stack{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:20px}.skill-dashboard-icon-stack .skill-logo{width:55px;height:55px;background:#fffdf7}.skill-dashboard-icon-stack .skill-logo img{width:37px;height:37px}.skill-dashboard-progress{display:flex;gap:7px;margin-top:25px}.skill-dashboard-progress i{flex:1;height:5px;background:#586167}.skill-dashboard-progress i.is-current{background:#ffd34e}.skill-dashboard-main{display:flex;flex-direction:column;min-width:0;padding:28px 33px 22px}.skill-dashboard-main header,.skill-dashboard-main footer{display:flex;align-items:center;justify-content:space-between;gap:20px;font:700 15px Space Mono,monospace;letter-spacing:.035em}.skill-dashboard-main header{min-height:43px;padding-bottom:14px;border-bottom:2px solid #1b2024}.skill-dashboard-main header span:last-child{color:#755b14}.skill-chart-scale{display:grid;grid-template-columns:245px repeat(3,minmax(0,1fr)) 145px;align-items:center;gap:14px;min-height:49px;color:#737b7e;font:700 12px Space Mono,monospace;text-align:center;text-transform:uppercase}.skill-chart-rows{flex:1;min-height:0;display:grid;grid-auto-rows:minmax(0,1fr)}.skill-chart-row{display:grid;grid-template-columns:245px minmax(0,1fr) 145px;align-items:center;gap:14px;min-height:0;border-top:1px solid #d7d8d3;animation:skill-row-in .42s both}.skill-chart-name{display:flex;align-items:center;min-width:0;gap:12px}.skill-chart-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:21px;letter-spacing:-.025em}.skill-logo{flex:none;display:grid;place-items:center;width:43px;height:43px;border-radius:9px;background:#fffdf7;box-shadow:inset 0 0 0 1px #191d221a}.skill-logo img{display:block;width:31px;height:31px;object-fit:contain}.skill-chart-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:center;height:27px}.skill-chart-track i{height:100%;background:#e0e1dc}.skill-chart-track i.is-filled{background:#ffd34e;box-shadow:inset 0 -4px #deb039}.skill-chart-level{color:#5c6467;text-align:right;font:700 14px Space Mono,monospace}.skill-dashboard-main footer{min-height:43px;margin-top:8px;padding-top:12px;border-top:2px solid #1b2024;color:#777f80;font-size:12px}@keyframes skill-row-in{0%{opacity:0;transform:translate(17px)}to{opacity:1;transform:translate(0)}}.screen-contact{height:100%;display:flex;flex-direction:column;padding:30px 40px;background:#f4f1e8}.screen-contact-heading,.screen-contact-foot{display:flex;align-items:center;justify-content:space-between}.screen-contact-heading{padding-bottom:22px;border-bottom:2px solid #1b1f23}.screen-online{display:inline-flex;align-items:center;gap:10px;font:700 16px Space Mono,monospace}.screen-online i{width:12px;height:12px;border-radius:50%;background:#19a679;box-shadow:0 0 0 7px #19a67924}.screen-compose{flex:1;display:flex;flex-direction:column;margin-top:30px;background:#fffdf7;border:2px solid #1b1f23;box-shadow:12px 12px #ffd34e}.screen-compose-line{min-height:70px;display:flex;align-items:center;gap:24px;padding:0 26px;border-bottom:2px solid #d8d8d3}.screen-compose-line>span{width:68px;color:#666a6a;font:700 18px Space Mono,monospace}.screen-compose-line strong,.screen-compose-line input{flex:1;font-size:26px;font-weight:700}.screen-compose-line input{min-width:0;border:0;background:none;outline:none}.screen-compose textarea{flex:1;width:100%;resize:none;border:0;padding:25px 26px;color:#303338;background:none;font-size:27px;line-height:1.4;outline:none}.screen-compose button{align-self:flex-end;display:flex;align-items:center;gap:22px;margin:0 25px 24px;padding:18px 22px;border:0;background:#1b1f23;color:#fffdf7;font-size:22px;font-weight:700}.screen-compose button:hover{background:#393f43}.screen-contact-foot{padding-top:22px;font:700 17px Space Mono,monospace}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;height:74px;padding:0 clamp(30px,6.2vw,125px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid rgba(25,29,34,.19);background:#fffdf7f0;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px)}.portfolio[data-section=projects] .site-header{background:#171b20f2;color:#fffdf7;border-color:#fffdf733}.portfolio[data-section=about] .site-header{background:#fffdf7f2}.portfolio[data-section=skills] .site-header{background:#171b20f5;color:#fffdf7;border-color:#fffdf733}.portfolio[data-section=contact] .site-header{background:#ffd34ef2}.brand{display:inline-flex;align-items:center;width:max-content}.brand-mark{display:block;width:56px;height:48px;background:#191d22;-webkit-mask:url(/logo.png) center/contain no-repeat;mask:url(/logo.png) center/contain no-repeat;transition:background-color .3s}.portfolio[data-section=projects] .brand-mark,.portfolio[data-section=skills] .brand-mark{background:#fff}.site-header nav{display:flex;align-items:center;justify-content:center;gap:clamp(20px,3vw,52px)}.site-header nav a{position:relative;padding:7px 0;color:inherit;text-decoration:none;font-size:15px;font-weight:600;white-space:nowrap;opacity:.6;transition:opacity .2s}.site-header nav a.active,.site-header nav a:hover{opacity:1}.site-header nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:4px;background:#ffd34e}.portfolio[data-section=contact] .site-header nav a.active:after{background:#191d22}.language{justify-self:end;padding:8px 0 8px 18px;border:0;background:none;color:inherit;font-size:13px;font-weight:700;letter-spacing:.06em}.language:hover{opacity:.65}.page-section{position:relative;min-height:100svh;pointer-events:none;background:#fffdf7;overflow:hidden}.embedded .page-section:not(.hero){display:none}.section-inner{position:relative;z-index:4;min-height:100svh;width:100%;max-width:1920px;margin:0 auto;padding:113px clamp(30px,6.2vw,125px) 55px;pointer-events:none}.hero-copy,.work-copy,.about-copy,.contact-copy,.contact footer{pointer-events:auto}.eyebrow{display:flex;align-items:center;gap:13px;margin:0;font:700 12px Space Mono,monospace;letter-spacing:.04em;text-transform:uppercase}.eyebrow:before{content:"";display:inline-block;flex:none;width:30px;height:3px;background:#eabf37}.eyebrow-separator{padding:0 3px;color:#9a9b98}.primary-action{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:58px;padding:0 20px;border:1px solid #191d22;border-radius:0;background:#ffd34e;color:#191d22;text-decoration:none;font-size:16px;font-weight:700;box-shadow:5px 5px #191d22;transition:background .2s,transform .2s,box-shadow .2s}.primary-action:hover{background:#ffe37f;transform:translate(2px,2px);box-shadow:3px 3px #191d22}.hero{background:#fffdf7}.hero:before{content:"";position:absolute;right:0;top:0;width:43%;height:100%;background:#f7db79;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%)}.hero:after{content:"";position:absolute;right:5%;top:18%;width:28%;height:64%;border:1px solid rgba(25,29,34,.2);transform:rotate(-8deg);pointer-events:none}.hero-inner{display:flex;align-items:center}.hero-copy{width:min(600px,43vw)}.hero h1{display:flex;flex-direction:column;margin:27px 0 25px;font-size:clamp(81px,8vw,137px);font-weight:700;line-height:.86;letter-spacing:-.078em}.hero h1 span{display:block;white-space:nowrap}.hero-lead{max-width:540px;margin:0 0 11px;font-size:clamp(25px,2.45vw,37px);font-weight:700;line-height:1.14;letter-spacing:-.04em}.hero-text{max-width:500px;margin:0;color:#515558;font-size:18px;line-height:1.46}.hero .primary-action{margin-top:31px}.work{background:#171b20;color:#fffdf7}.work:before{content:"";position:absolute;left:0;top:0;width:49%;height:100%;background:linear-gradient(122deg,rgba(255,211,78,.1),transparent 49%),repeating-linear-gradient(0deg,transparent 0 35px,rgba(255,253,247,.035) 36px)}.work-inner{display:flex;align-items:center;justify-content:flex-end}.work-copy{width:min(575px,44vw);animation:content-in .34s ease both}.work .eyebrow{color:#ffd34e}.work h2{max-width:650px;margin:25px 0 21px;font-size:clamp(62px,5.5vw,94px);font-weight:700;line-height:.96;letter-spacing:-.065em;overflow-wrap:anywhere}.work-summary{max-width:535px;margin:0;font-size:clamp(21px,1.9vw,28px);font-weight:600;line-height:1.34}.work-actions{min-height:95px;display:flex;align-items:center}.private-note{color:#b5b7b9;font-size:14px}.project-controls{display:flex;align-items:center;gap:15px;margin-top:22px}.project-controls button{width:47px;height:47px;display:grid;place-items:center;border:1px solid #c6c7c4;background:transparent;color:#fffdf7}.project-controls button:hover{background:#ffd34e;border-color:#ffd34e;color:#191d22}.project-controls span{min-width:70px;text-align:center;font:700 14px Space Mono,monospace;color:#ffd34e}.project-image-fallback{position:absolute;left:7vw;top:26%;width:min(44vw,700px);max-height:50vh;object-fit:contain;border:7px solid #fffdf7;box-shadow:0 20px 60px #00000061}.about{background:#fffdf7}.about:before{content:"";position:absolute;right:0;top:0;width:43%;height:100%;background:#f9ecbb;clip-path:polygon(0 0,100% 0,100% 100%,15% 100%)}.about-inner{display:flex;align-items:center}.about-copy{width:min(570px,44vw);pointer-events:auto}.about-intro{max-width:535px;margin:18px 0 16px;color:#4f5558;font-size:16px;line-height:1.45}.about-stage{min-height:305px;animation:content-in .36s ease both}.about-years{display:block;margin:25px 0 0;color:#75540b;font:700 13px Space Mono,monospace;text-transform:uppercase}.about-years span{padding:0 7px;color:#b9a25e}.about h2{margin:13px 0 11px;font-size:clamp(64px,6vw,102px);line-height:.94;letter-spacing:-.075em;overflow-wrap:anywhere}.about h2 span{color:#e9b925}.about-role{margin:0;font-size:clamp(22px,2.15vw,31px);font-weight:700;letter-spacing:-.035em}.about-story{max-width:540px;margin:22px 0 0;color:#484e52;font-size:18px;line-height:1.49}.about-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px}.about-progress{display:flex;align-items:center;gap:8px}.about-progress button{display:block;width:35px;height:20px;padding:0;border:0;background:linear-gradient(#c8c8bf,#c8c8bf) center/100% 4px no-repeat}.about-progress button.current{background-image:linear-gradient(#191d22,#191d22)}.about-progress button:hover{background-image:linear-gradient(#e4b92c,#e4b92c)}.about-arrows{display:flex;gap:8px}.about-arrows button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #191d22;background:transparent;color:#191d22}.about-arrows button:hover{background:#ffd34e}.about-mobile-list{display:none}.skills{background:#171b20;color:#fffdf7}.skills:before{content:"";position:absolute;left:0;top:0;width:50%;height:100%;background:radial-gradient(circle at 42% 40%,rgba(255,211,78,.1),transparent 43%),repeating-linear-gradient(0deg,transparent 0 43px,rgba(255,255,255,.025) 44px);pointer-events:none}.skills-inner{display:flex;align-items:center;justify-content:flex-end;pointer-events:none}.skills-copy{position:relative;width:min(580px,44vw);min-width:0;pointer-events:auto}.skills .eyebrow{color:#ffd34e}.skills-copy h2{margin:18px 0 10px;font-size:clamp(52px,5.25vw,86px);line-height:.92;letter-spacing:-.072em}.skills-intro{max-width:550px;margin:0;color:#c3c9ca;font-size:clamp(14px,1.2vw,17px);line-height:1.4}.skills-chapter-head{display:flex;align-items:center;justify-content:space-between;margin-top:23px;padding-top:14px;border-top:1px solid rgba(255,255,255,.32)}.skills-chapter-head>span{color:#ffd34e;font:700 13px Space Mono,monospace}.skills-chapter-head>span i{padding:0 8px;color:#889095;font-style:normal}.skills-chapter-head>div{display:flex;gap:7px}.skills-chapter-head button{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fffdf7}.skills-chapter-head button:hover{border-color:#ffd34e;background:#ffd34e;color:#191d22}.skills-chapter{animation:content-in .32s ease}.skills-chapter h3{margin:6px 0 3px;font-size:clamp(36px,3.2vw,54px);line-height:1;letter-spacing:-.055em}.skills-chapter h3 span{color:#ffd34e}.skills-chapter p{margin:0;color:#bdc5c6;font-size:14px}.skills-domains{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:20px}.skills-domains button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:0;min-height:58px;padding:8px 6px;border:1px solid rgba(255,255,255,.21);background:#252b31;color:#bfc5c5;text-align:left;transition:background .2s,color .2s}.skills-domains button:hover{border-color:#ffd34e;color:#fffdf7}.skills-domains button.is-selected{border-color:#ffd34e;background:#ffd34e;color:#191d22}.skills-domains button strong{font:700 14px Space Mono,monospace}.skills-domains button span{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700}.skills-mobile-chart{display:none}.skills-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin-top:20px;animation:content-in .35s ease}.skill-item{display:grid;grid-template-columns:41px minmax(0,1fr);align-items:center;column-gap:10px;min-width:0;min-height:67px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.18)}.skill-item .skill-logo{grid-row:1 / 3;width:39px;height:39px}.skill-item .skill-logo img{width:29px;height:29px}.skill-item>div{min-width:0}.skill-item h4{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.2}.skill-item p{margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aeb8b9;font-size:11px}.skill-item>span:last-child{grid-column:2;color:#ffd34e;font:700 10px Space Mono,monospace}.skills-scroll-hint{margin:15px 0 0;color:#a8b0b1;font:700 10px Space Mono,monospace;text-transform:uppercase}.contact{background:#ffd34e}.contact:before{content:"";position:absolute;right:0;top:0;width:46%;height:100%;background:repeating-linear-gradient(135deg,transparent 0 60px,rgba(25,29,34,.07) 61px,transparent 62px)}.contact-inner{display:flex;align-items:center;justify-content:flex-start}.contact-copy{width:min(570px,44vw);padding-bottom:25px}.contact .eyebrow:before{background:#191d22}.contact h2{display:flex;flex-direction:column;margin:23px 0 20px;font-size:clamp(72px,7vw,119px);font-weight:700;line-height:.9;letter-spacing:-.073em}.contact h2 span{display:block;white-space:nowrap}.contact-copy>p:not(.eyebrow){max-width:490px;margin:0;font-size:clamp(20px,1.6vw,24px);line-height:1.42}.contact-button{display:flex;align-items:center;justify-content:space-between;gap:32px;min-width:260px;width:max-content;margin-top:34px;padding:16px 19px;border:1px solid #191d22;background:#191d22;color:#fffdf7;text-decoration:none;font-size:19px;font-weight:700;box-shadow:5px 5px #fffdf7}.contact-button:hover{transform:translate(2px,2px);box-shadow:3px 3px #fffdf7}.contact-address{display:inline-block;margin-top:25px;color:#191d22;font:700 14px Space Mono,monospace;text-underline-offset:4px}.contact-socials{display:flex;gap:23px;margin-top:18px}.contact-socials a{color:#191d22;text-decoration:none;font-size:14px;font-weight:700}.contact-socials a:hover{text-decoration:underline;text-underline-offset:4px}.contact footer{position:absolute;left:clamp(30px,6.2vw,125px);right:clamp(30px,6.2vw,125px);bottom:25px;display:flex;justify-content:space-between;gap:20px;padding-top:15px;border-top:1px solid rgba(25,29,34,.35);font:700 11px Space Mono,monospace}.contact footer a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes content-in{0%{opacity:.55;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1200px){.site-header{padding-inline:42px}.site-header nav{gap:34px}.section-inner{padding-inline:45px}.hero-copy,.work-copy,.about-copy,.skills-copy,.contact-copy{width:46vw}.hero h1{font-size:clamp(70px,8vw,110px)}.about h2{font-size:clamp(53px,5vw,75px)}.contact footer{left:45px;right:45px}}@media(min-width:901px)and (max-width:1300px){.skills-copy h2{font-size:clamp(48px,4.9vw,70px)}.skills-domains button{padding-inline:4px}.skills-domains button span{font-size:9px}}@media(min-width:901px)and (max-height:730px){.skills-inner{padding-top:82px;padding-bottom:22px}.skills-copy h2{margin:10px 0 7px;font-size:clamp(40px,4.4vw,68px)}.skills-intro{font-size:13px;line-height:1.3}.skills-chapter-head{margin-top:13px;padding-top:10px}.skills-chapter h3{font-size:36px}.skills-domains{margin-top:12px}.skills-domains button{min-height:48px}.skills-list{margin-top:10px}.skill-item{min-height:55px;padding-block:5px}.skills-scroll-hint{margin-top:10px}}@media(min-width:901px)and (max-width:1450px){.hero-copy,.work-copy,.about-copy,.skills-copy,.contact-copy{width:min(500px,42vw)}}@media(max-width:900px){html{scroll-padding-top:62px}.site-header{height:62px;padding:0 20px;grid-template-columns:1fr auto;gap:12px}.site-header nav{display:none}.brand-mark{width:44px;height:38px}.language{min-width:46px;min-height:40px;padding:0 8px;border:1px solid currentColor;font:700 12px Space Mono,monospace}.mobile-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;min-height:calc(65px + env(safe-area-inset-bottom));padding:4px 8px calc(4px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,253,247,.2);background:#171b20;box-shadow:0 -12px 30px #0000001f}.mobile-nav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:55px;color:#d7d5ce;text-align:center;text-decoration:none;font-size:9px;font-weight:700;overflow-wrap:anywhere}.mobile-nav a.active{color:#ffd34e}.mobile-nav a.active:before{content:"";position:absolute;top:-4px;left:25%;right:25%;height:3px;background:#ffd34e}.page-section{min-height:auto;pointer-events:auto}.section-inner{min-height:auto;padding:96px 20px 70px}.eyebrow{font-size:10px;line-height:1.5;letter-spacing:.02em}.eyebrow:before{width:19px;height:2px}.primary-action{min-height:50px;padding:0 16px;font-size:14px}.hero:before{right:0;top:auto;bottom:0;width:100%;height:52%;clip-path:polygon(0 18%,100% 0,100% 100%,0 100%)}.hero:after{display:none}.hero-inner{display:block;padding-bottom:80px}.hero-copy{width:100%;max-width:530px}.hero h1{margin:21px 0 19px;font-size:clamp(59px,16.8vw,88px)}.hero-lead{max-width:420px;margin-bottom:10px;font-size:clamp(24px,6.4vw,30px)}.hero-text{max-width:430px;font-size:15px;line-height:1.5}.hero .primary-action{margin-top:21px}.hero-visual{position:relative;left:50%;width:min(calc(100% + 40px),600px);height:clamp(360px,105vw,470px);margin:20px 0 0;overflow:hidden;transform:translate(-50%);pointer-events:none}.hero-visual .experience-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.hero-visual .screen-css-renderer,.hero-visual .screen-object{pointer-events:none}.hero-scene-fallback{position:absolute;z-index:1;left:7%;right:7%;top:20%;bottom:11%;display:flex;flex-direction:column;justify-content:center;padding:24px;border:12px solid #1b1f23;border-bottom-width:24px;border-radius:10px;background:#fffdf7;box-shadow:0 15px 0 -8px #1b1f23,0 28px 0 -10px #1b1f23}.hero-scene-fallback span{font:700 10px Space Mono,monospace}.hero-scene-fallback strong{margin-top:15px;font-size:clamp(40px,12vw,64px);line-height:.86;letter-spacing:-.08em}.hero-scene-fallback i{display:block;width:56px;height:6px;margin-top:22px;background:#ffd34e}.hero-scroll-cue{position:absolute;z-index:2;left:20px;right:20px;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#191d22;font:700 10px Space Mono,monospace;text-transform:uppercase}.hero-scroll-cue span:last-child{display:inline-flex;align-items:center;gap:7px}.work-inner{display:none}.mobile-projects{display:block;padding:95px 0 92px}.mobile-section-heading{padding:0 20px 27px}.mobile-section-heading h2{margin:15px 0 8px;font-size:clamp(50px,14vw,72px);line-height:.95;letter-spacing:-.065em}.mobile-section-heading h2 span{color:#ffd34e}.mobile-section-heading>p:last-child{max-width:420px;margin:0;color:#d4d4d0;font-size:16px;line-height:1.4}.mobile-project-rail{position:relative;display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:20px;padding:0 20px 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.mobile-project-rail::-webkit-scrollbar{display:none}.mobile-project-card{flex:0 0 min(430px,calc(100% - 56px));display:flex;flex-direction:column;min-width:0;overflow:hidden;scroll-snap-align:start;border:1px solid rgba(255,253,247,.25);background:#262c32;box-shadow:6px 6px #0000002b}.mobile-project-preview{overflow:hidden;background:#111519}.mobile-browser-bar{height:29px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 11px;background:#f4f0e6;color:#34383b}.mobile-browser-bar>span{display:flex;gap:4px}.mobile-browser-bar i{width:6px;height:6px;border-radius:50%;background:#44494d}.mobile-browser-bar i:nth-child(2){opacity:.55}.mobile-browser-bar i:nth-child(3){opacity:.3}.mobile-browser-bar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 9px Space Mono,monospace}.mobile-project-preview img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:center top}.mobile-project-detail{flex:1;display:flex;flex-direction:column;padding:18px 18px 19px}.mobile-project-meta{display:flex;align-items:center;gap:10px;margin:0;color:#c5c8c7;font:700 9px Space Mono,monospace;text-transform:uppercase;line-height:1.5}.mobile-project-meta span{color:#ffd34e;white-space:nowrap}.mobile-project-detail h3{margin:14px 0 8px;font-size:clamp(31px,8vw,40px);line-height:.98;letter-spacing:-.06em;overflow-wrap:anywhere}.mobile-project-summary{margin:0 0 15px;font-size:16px;line-height:1.35}.mobile-project-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 20px}.mobile-project-tags span{padding:5px 7px;border:1px solid rgba(255,253,247,.22);color:#d1d4d4;font:700 9px Space Mono,monospace}.mobile-project-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;margin-top:auto;padding:0 13px;background:#ffd34e;color:#191d22;text-decoration:none;font-size:14px;font-weight:700}.mobile-project-private{display:flex;align-items:center;min-height:46px;margin-top:auto;color:#d1d4d4;font-size:13px}.mobile-project-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 20px 0}.mobile-project-footer>span{color:#d1d4d4;font:700 10px Space Mono,monospace;text-transform:uppercase}.mobile-project-pagination{display:flex;align-items:center;gap:8px}.mobile-project-pagination>span{min-width:60px;margin-right:2px;color:#ffd34e;font:700 12px Space Mono,monospace}.mobile-project-pagination button{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,253,247,.65);background:transparent;color:#fffdf7}.mobile-project-pagination button:disabled{opacity:.4;cursor:default}.about:before{right:0;top:0;width:63%;height:340px;clip-path:polygon(38% 0,100% 0,100% 100%,0 100%)}.about-inner{display:block;padding-top:96px;padding-bottom:90px}.about-copy{display:none}.about-mobile-list{display:block;width:min(100%,590px);pointer-events:auto}.about .mobile-about-title{margin:16px 0 14px;font-size:clamp(48px,12vw,68px);line-height:.98;letter-spacing:-.065em}.about-mobile-list>.about-intro{max-width:420px;margin:0 0 36px;font-size:16px;line-height:1.48}.about-mobile-card{position:relative;margin-left:9px;padding:0 0 34px 25px;border-left:2px solid #d5c8a0}.about-mobile-card:last-child{border-left-color:transparent;padding-bottom:0}.about-mobile-card:before{content:"";position:absolute;top:1px;left:-8px;width:12px;height:12px;border:2px solid #191d22;border-radius:50%;background:#ffd34e}.about-mobile-card .about-years{margin:0;color:#74580d;font-size:10px;line-height:1.5}.about-mobile-card h2{margin:10px 0 7px;font-size:clamp(38px,10vw,54px);line-height:1;letter-spacing:-.065em}.about-mobile-card .about-role{font-size:20px;line-height:1.2}.about-mobile-card .about-story{max-width:480px;margin:13px 0 0;color:#42484b;font-size:15px;line-height:1.5}.about-mobile-school{display:flex;flex-direction:column;gap:4px;margin:16px 0 0;padding:11px 13px;border-left:3px solid #e4b92c;background:#ffd34e2e;color:#555a5b;font-size:12px;line-height:1.4}.about-mobile-school strong{color:#75540b;font:700 10px Space Mono,monospace;text-transform:uppercase}.skills-inner{display:block;padding-top:96px;padding-bottom:126px}.skills-copy{width:100%;max-width:590px}.skills-copy h2{margin:17px 0 11px;font-size:clamp(47px,11vw,72px)}.skills-intro{max-width:550px;font-size:16px;line-height:1.45}.skills-chapter-head{margin-top:26px}.skills-chapter h3{font-size:clamp(37px,8vw,52px)}.skills-domains{display:flex;gap:6px;margin:19px -20px 0;padding:0 20px 10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.skills-domains::-webkit-scrollbar{display:none}.skills-domains button{flex:0 0 69px;min-height:55px;scroll-snap-align:start}.skills-mobile-chart{display:block;overflow:hidden;margin:24px -20px 0}.skill-dashboard{height:auto;display:block;animation:none}.skill-dashboard-side{min-height:200px;padding:20px}.skill-dashboard-kicker{font-size:10px}.skill-dashboard-number{margin-top:14px;font-size:68px}.skill-dashboard-number span{font-size:15px}.skill-dashboard-side h3{margin:8px 0 4px;font-size:37px}.skill-dashboard-side p{font-size:14px}.skill-dashboard-icon-stack{margin-top:20px;padding-top:0}.skill-dashboard-icon-stack .skill-logo{width:38px;height:38px}.skill-dashboard-icon-stack .skill-logo img{width:27px;height:27px}.skill-dashboard-progress{margin-top:17px}.skill-dashboard-main{padding:16px 20px 13px}.skill-dashboard-main header{min-height:36px;font-size:9px}.skill-chart-scale{display:none}.skill-chart-rows{display:block}.skill-chart-row{grid-template-columns:minmax(0,1fr) minmax(100px,37%);gap:10px;min-height:59px;padding:8px 0}.skill-chart-name{gap:7px}.skill-chart-name .skill-logo{width:31px;height:31px}.skill-chart-name .skill-logo img{width:23px;height:23px}.skill-chart-name strong{font-size:13px}.skill-chart-track{gap:4px;height:16px}.skill-chart-level{display:none}.skill-dashboard-main footer{margin-top:2px;font-size:8px}.skills-list{gap:0 12px;margin-top:17px}.skill-item{min-height:68px}.skill-item h4{font-size:14px}.skill-item p{font-size:10px}.skills-scroll-hint{display:none}.contact:before{right:0;top:auto;bottom:0;width:100%;height:42%}.contact-inner{display:flex;align-items:flex-start;justify-content:flex-start;min-height:max(690px,100svh);padding-bottom:170px}.contact-copy{width:100%;max-width:530px;padding:0}.contact h2{margin:22px 0 14px;font-size:clamp(65px,15.5vw,88px)}.contact-copy>p:not(.eyebrow){max-width:420px;font-size:19px;line-height:1.4}.contact-button{width:max-content;max-width:100%;min-width:225px;margin-top:27px;padding:13px 16px;font-size:17px}.contact-address{max-width:100%;margin-top:22px;overflow-wrap:anywhere;font-size:13px}.contact-socials{flex-wrap:wrap;gap:18px;margin-top:25px}.contact-socials a{font-size:14px}.contact footer{left:20px;right:20px;bottom:93px;font-size:10px}.contact footer span:nth-child(2){display:none}.embedded .hero-inner{min-height:100svh}}@media(max-width:360px){.skills-copy h2{font-size:42px;overflow-wrap:normal}.mobile-nav a[href="#skills"] span{font-size:8px;letter-spacing:-.04em;white-space:nowrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
