html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}:root{--tilt-perspective: 1000px;--tilt-return: 1s;--tilt-return-ease: cubic-bezier(.22, 1, .36, 1);--tilt-follow: .4s;--tilt-follow-ease: cubic-bezier(.22, 1, .36, 1);--tilt-glare-opacity: .32;--tilt-glare-fade: .3s;--tilt-glare-ease: cubic-bezier(.22, 1, .36, 1)}.t-tilt{touch-action:none}.t-tilt-card{position:relative;border-radius:12px;overflow:hidden;transform:perspective(var(--tilt-perspective)) rotateX(var(--tilt-rx, 0deg)) rotateY(var(--tilt-ry, 0deg));transform-style:preserve-3d;transition:transform var(--tilt-return) var(--tilt-return-ease);will-change:transform}.t-tilt-card.is-tilting{transition:transform var(--tilt-follow) var(--tilt-follow-ease)}.t-tilt-glare{position:absolute;inset:0;pointer-events:none;opacity:0;mix-blend-mode:screen;background:radial-gradient(circle 95px at var(--tilt-gx, 50%) var(--tilt-gy, 50%),rgba(255,255,255,.48),rgba(255,255,255,.06) 52%,rgba(255,255,255,0) 84%),radial-gradient(circle 200px at var(--tilt-gx, 50%) var(--tilt-gy, 50%),rgba(255,255,255,.22),rgba(255,255,255,.04) 58%,rgba(255,255,255,0) 78%),radial-gradient(circle 360px at var(--tilt-gx, 50%) var(--tilt-gy, 50%),rgba(255,255,255,.1),rgba(255,255,255,0) 88%);transition:opacity var(--tilt-glare-fade) var(--tilt-glare-ease)}.t-tilt.is-hover .t-tilt-glare{opacity:var(--tilt-glare-opacity)}@media(prefers-reduced-motion:reduce){.t-tilt-card{transform:none!important;transition:none!important}}:root{--stagger-dur: .5s;--stagger-distance: 12px;--stagger-stagger: 40ms;--stagger-blur: 3px;--stagger-ease: cubic-bezier(.22, 1, .36, 1)}.t-stagger-line{display:block;opacity:0;transform:translateY(var(--stagger-distance));filter:blur(var(--stagger-blur));transition:opacity var(--stagger-dur) var(--stagger-ease),transform var(--stagger-dur) var(--stagger-ease),filter var(--stagger-dur) var(--stagger-ease);will-change:transform,opacity,filter}.t-stagger-line--2{transition-delay:var(--stagger-stagger)}.t-stagger.is-shown .t-stagger-line{opacity:1;transform:translateY(0);filter:blur(0)}.t-stagger.is-hiding .t-stagger-line{opacity:0;transform:translateY(0);filter:blur(0);transition:opacity .2s ease,transform 0s linear,filter 0s linear;transition-delay:0s}@media(prefers-reduced-motion:reduce){.t-stagger-line{transition:none!important}}:root{--modal-open-dur: .25s;--modal-close-dur: .15s;--modal-scale: .96;--modal-scale-close: .96;--modal-ease: cubic-bezier(.22, 1, .36, 1)}.t-modal{transform-origin:center;transform:scale(var(--modal-scale));opacity:0;pointer-events:none;transition:transform var(--modal-open-dur) var(--modal-ease),opacity var(--modal-open-dur) var(--modal-ease);will-change:transform,opacity}.t-modal.is-open{transform:scale(1);opacity:1;pointer-events:auto}.t-modal.is-closing{transform:scale(var(--modal-scale-close));opacity:0;pointer-events:none;transition:transform var(--modal-close-dur) var(--modal-ease),opacity var(--modal-close-dur) var(--modal-ease)}@media(prefers-reduced-motion:reduce){.t-modal{transition:none!important}}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../fonts/jetbrains-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.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}:root{--bg: #f2f1ee;--ink: #121316;--ink-strong: #000;--muted-text: #666661;--line: rgba(18, 19, 22, .18);--line-strong: rgba(18, 19, 22, .42);--accent: #f38b45;--accent-rgb: 243, 139, 69;--accent-text: #b44914;--raised: #eae9e5;--header-bg: rgba(242, 241, 238, .91);--left-width: 64px;--right-width: 60px;--header-height: 56px;--section-space: clamp(28px, 3.2vw, 64px);--ease-ui: cubic-bezier(.22, 1, .36, 1);--duration-ui: .2s;--background: 45 13% 94%;--foreground: 225 10% 8%;--card: 45 13% 94%;--muted: 45 10% 89%;--muted-foreground: 45 3% 39%;--border: 45 5% 79%;color-scheme:light}[data-theme=dark]{--bg: #121316;--ink: #f2f1ee;--ink-strong: #fff;--muted-text: #a4a4a2;--line: rgba(242, 241, 238, .15);--line-strong: rgba(242, 241, 238, .4);--accent-text: #f38b45;--raised: #191a1e;--header-bg: rgba(18, 19, 22, .91);--background: 225 10% 8%;--foreground: 45 13% 94%;--card: 225 10% 8%;--muted: 225 10% 12%;--muted-foreground: 45 2% 64%;--border: 225 5% 23%;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:106px;font-family:Inter,Arial,sans-serif}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:#121316}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{background:none;border:0}button:disabled{cursor:wait;opacity:.65}button:active,.button:active{transform:scale(.97)}:focus-visible{outline:2px solid var(--accent-text);outline-offset:4px}img,svg{display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Archivo,Arial,sans-serif;font-weight:600;letter-spacing:-.045em}h2{font-size:clamp(36px,4.1vw,64px);line-height:1.04}p{color:var(--muted-text);line-height:1.75}.accent-text{color:var(--accent-text)}.eyebrow,.section-label,.main-nav,.button,.header-cv,.hero-socials,.tags,.project-top,.explore-link,.signature-caption,.ruler,.left-rail,.form-heading,.education-top,.education-note,.skill-index,.certificate-info small{font-family:JetBrains Mono,Consolas,monospace;font-weight:400}.eyebrow{line-height:1.55;display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-text)}.availability-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#10a68a;box-shadow:0 0 0 4px #10a68a1a;flex-shrink:0}.skip-link{position:fixed;top:-80px;left:12px;z-index:100;background:var(--ink);color:var(--bg);padding:12px 20px}.skip-link:focus{top:8px}.site-header{display:flex;position:fixed;inset:0 0 auto;height:var(--header-height);z-index:60;background:var(--header-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.monogram{width:var(--left-width);display:grid;place-items:center;border-right:1px solid var(--line);flex-shrink:0}.monogram svg{width:30px;height:28px;transition:transform var(--duration-ui) var(--ease-ui)}.main-nav{display:flex;align-items:stretch;flex:1}.main-nav a{display:grid;place-items:center;padding:0 clamp(10px,1.2vw,22px);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-text)}.main-nav a span{padding:3px 5px;transition:background-color .16s,color .16s}.main-nav a[aria-current] span{background:var(--ink);color:var(--bg)}.header-actions{display:flex;flex-shrink:0}.icon-button{display:inline-flex;justify-content:center;align-items:center;width:49px;min-height:44px;border-left:1px solid var(--line);transition:background-color var(--duration-ui),color var(--duration-ui)}.header-cv{display:flex;align-items:center;gap:14px;padding:0 25px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--bg);background:var(--ink);transition:background-color var(--duration-ui)}.menu-toggle{display:none}.left-rail{position:fixed;top:var(--header-height);bottom:0;left:0;width:var(--left-width);display:flex;align-items:center;justify-content:space-between;flex-direction:column;padding:25px 0;font-size:9px;letter-spacing:.14em;color:var(--muted-text)}.left-rail span{writing-mode:vertical-rl;transform:rotate(180deg)}.page-frame{margin:var(--header-height) var(--right-width) 0 var(--left-width);border-left:1px solid var(--line);border-right:1px solid var(--line)}section{position:relative;scroll-margin-top:var(--header-height)}.section-label{position:sticky;top:var(--header-height);z-index:25;display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:44px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 var(--section-space);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-text);background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.section-label:before,.section-label:after{content:"+";position:absolute;font:12px Consolas,monospace;color:var(--muted-text);top:-8px}.section-label:before{left:-4px}.section-label:after{right:-4px}.hero-body{padding:76px var(--section-space) 76px;display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(30px,5vw,90px);align-items:center}.hero-copy h1{color:var(--ink-strong);margin-top:28px;font-size:clamp(62px,7.6vw,116px);line-height:.95;letter-spacing:-.065em;font-weight:600}.hero-copy h1 span{color:var(--accent-text)}.hero-role{font-family:Archivo,Arial,sans-serif;font-size:clamp(20px,2.1vw,30px);letter-spacing:-.035em;color:var(--ink);line-height:1.3;margin-top:24px}.hero-description{font-size:16px;max-width:450px;margin-top:17px}.hero-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.button{min-height:48px;padding:14px 21px;border:1px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;transition:background-color var(--duration-ui),color var(--duration-ui),border-color var(--duration-ui),transform .1s}.button-solid{color:var(--bg);background:var(--ink);border-color:var(--ink)}.hero-socials{display:flex;gap:22px;flex-wrap:wrap;margin-top:27px;font-size:12px;color:var(--muted-text)}.hero-socials a,.hero-socials>span{display:flex;align-items:center;gap:7px}.hero-visual{align-self:center}.signature-panel{padding:0 10px}.signature-caption{display:flex;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.12em;color:var(--muted-text)}.signature-caption>span:first-child{color:var(--accent-text)}.signature-stage{position:relative;display:grid;place-items:center;aspect-ratio:1.35;overflow:hidden}.signature{width:110%;max-width:none;height:auto;filter:brightness(0);-webkit-user-select:none;user-select:none;pointer-events:none}[data-theme=dark] .signature{filter:brightness(0) invert(1)}.signature-cross{position:absolute;color:var(--accent-text);font:18px JetBrains Mono,monospace}.signature-cross--top{top:22px;left:0}.signature-cross--bottom{bottom:22px;right:0}.signature-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted-text);font-size:12px;line-height:1.65}.signature-footer .signature-name{color:var(--ink-strong);font-family:Archivo,Arial,sans-serif;font-size:20px;line-height:1.1;letter-spacing:-.035em}.signature-name strong{color:var(--accent-text);font-weight:inherit}.work-intro{padding:48px var(--section-space) 36px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.work-intro p,.section-intro p{font-size:16px;margin-top:15px}.filter-tabs{display:inline-flex;border:1px solid var(--line);flex-shrink:0}.filter-tabs button{min-height:44px;display:flex;gap:10px;align-items:center;padding:12px 13px;font-size:12px;transition:background-color .18s,color .18s}.filter-tabs button+button{border-left:1px solid var(--line)}.filter-tabs button span{font-size:12px;opacity:.55;font-family:Consolas,monospace}.filter-tabs .is-active{background:var(--ink);color:var(--bg)}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.project-cell,.next-project{min-width:0;border-top:1px solid var(--line);border-right:1px solid var(--line)}.project-cell:nth-child(4n),.next-project:last-child{border-right:0}.project-card{display:flex;flex-direction:column;text-align:left;width:100%;height:100%;position:relative;padding:0;background:var(--bg)}.project-card:after{position:absolute;top:-1px;left:0;right:0;height:2px;content:"";background:var(--project-color);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease-ui)}.project-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 18px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-text);min-height:49px}.project-top>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-number{padding:4px 7px;background:var(--project-color);color:#121316;font-size:10px}.project-art{width:100%;overflow:hidden;aspect-ratio:1.38}.project-art>div{height:100%;transition:transform .6s var(--ease-ui)}.project-copy{padding:0 24px 28px;display:flex;flex-direction:column;flex:1;width:100%}.project-icon{margin-top:-29px;margin-bottom:22px;position:relative;width:56px;height:56px;border-radius:12px;display:grid;place-items:center;color:#121316;background:var(--project-color);box-shadow:0 7px 16px #0002;transition:transform .3s var(--ease-ui)}.project-copy h3{font-size:clamp(22px,2vw,30px);line-height:1.08;overflow-wrap:anywhere}.project-copy p{font-size:16px;margin-top:15px;line-height:1.7;min-height:88px}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:18px}.tags span{border:1px solid var(--line);padding:3px 6px;font-size:11px;text-transform:uppercase;color:var(--muted-text);background:var(--raised)}.tags .status-tag{color:var(--accent-text)}.explore-link{display:flex;gap:12px;align-items:center;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin-top:auto;padding-top:30px}.explore-link svg,.text-link svg{transition:transform .25s var(--ease-ui)}.next-project{padding:32px 24px;display:flex;flex-direction:column;overflow:hidden}.next-project h3{font-size:30px;line-height:1.08;margin:24px 0 18px}.next-project p{font-size:16px}.text-link{display:inline-flex;align-items:center;gap:10px;font-size:12px;line-height:1.5;padding:10px 0}.next-project .text-link{margin-top:20px}.next-cross{font-size:120px;font-weight:200;color:var(--line);margin-top:auto;align-self:flex-end;line-height:1}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;padding:72px var(--section-space)}.about-heading h2{margin-top:24px}.about-degree{margin-top:48px}.about-degree>span{font-size:22px;font-family:Archivo,Arial,sans-serif;font-weight:600}.about-degree p{margin-top:7px;font-size:14px}.about-copy p{margin-bottom:20px;font-size:16px}.about-copy .lead{color:var(--ink);font-size:21px;line-height:1.5;letter-spacing:-.03em}.about-copy .text-link{color:var(--accent-text)}.principles-grid{display:grid;grid-template-columns:repeat(3,1fr)}.principle{padding:32px;border-top:1px solid var(--line);border-right:1px solid var(--line)}.principle:last-child{border-right:0}.principle h3{font-size:23px;margin-top:26px;margin-bottom:12px}.principle p{font-size:16px;max-width:340px}.section-intro{padding:54px var(--section-space) 40px}.skills-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.skill-cell{min-width:0;border-top:1px solid var(--line);border-right:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:25px 20px;font-size:14px;position:relative;transition:background-color .2s}.skill-cell:nth-child(5n){border-right:0}.skill-icon{width:27px;height:27px;flex-shrink:0;transition:transform .25s var(--ease-ui)}.skill-index{position:absolute;top:5px;left:7px;font-size:7px;color:var(--muted-text)}.skill-plus{font-size:14px;margin-left:auto;color:var(--muted-text);opacity:.5}.education-grid{display:grid;grid-template-columns:repeat(3,1fr)}.education-cell{padding:35px 32px;border-right:1px solid var(--line)}.education-cell:last-child{border-right:0}.education-top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted-text);font-size:11px}.education-cell h3{margin-top:30px;font-size:28px;line-height:1.13}.education-cell p{margin-top:14px;font-size:16px}.education-note{display:block;font-size:11px;line-height:1.6;margin-top:27px;color:var(--muted-text)}.certificate-grid{display:grid;grid-template-columns:1fr 1fr}.certificate-cell{border-top:1px solid var(--line)}.certificate-cell:nth-child(odd){border-right:1px solid var(--line)}.certificate-cell>button{width:100%;display:flex;align-items:center;text-align:left;gap:20px;min-height:132px;padding:24px 30px;transition:background-color var(--duration-ui)}.certificate-logo{width:64px;height:64px;display:grid;place-items:center;flex-shrink:0;background:#fff;border:1px solid #e1e1df;color:#121316}.certificate-logo img{max-width:54px;max-height:54px;object-fit:contain}.certificate-info{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0}.certificate-info small{color:var(--muted-text);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.certificate-info strong{line-height:1.35;overflow-wrap:anywhere;font-size:18px;font-weight:500;letter-spacing:-.03em}.certificate-info>span{font-size:14px;color:var(--muted-text)}.certificate-cell>button>svg{flex-shrink:0}.certificate-more{padding:28px;display:flex;justify-content:center;border-top:1px solid var(--line)}.contact-grid{display:grid;grid-template-columns:1fr 1fr}.contact-copy{padding:64px var(--section-space)}.contact-copy h2{margin-top:30px}.contact-copy p{font-size:16px;margin-top:25px;max-width:420px}.contact-email{display:flex;align-items:center;gap:12px;font-family:Archivo,Arial,sans-serif;font-size:clamp(18px,2vw,28px);letter-spacing:-.04em;margin-top:36px;overflow-wrap:anywhere}.contact-email svg{flex-shrink:0}.contact-links{display:flex;gap:25px;flex-wrap:wrap;margin-top:23px;font-size:14px;color:var(--muted-text)}.contact-links a,.contact-links button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0}.contact-socials{display:flex;gap:28px;margin-top:25px;font-size:14px}.contact-socials a{display:inline-flex;gap:8px;align-items:center}.contact-form-wrap{border-left:1px solid var(--line);padding:42px var(--section-space)}.form-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.contact-form label{display:flex;flex-direction:column;gap:12px;font-size:14px;margin-bottom:24px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form input,.contact-form textarea{background:transparent;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;padding:0 0 12px;font-size:16px;color:var(--ink);width:100%;min-width:0;transition:border-color .15s}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--muted-text);opacity:.85}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);outline:0;box-shadow:0 1px var(--accent)}.contact-form textarea{resize:vertical;min-height:95px}.send-button{width:100%;justify-content:space-between}.form-status{min-height:38px;margin-top:12px;font-size:14px}.form-status[data-state=error]{color:#d04131}.form-status[data-state=success]{color:#09806a}[data-theme=dark] .form-status[data-state=error]{color:#ff998b}[data-theme=dark] .form-status[data-state=success]{color:#61d5ba}.spinner{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}footer{padding:34px var(--section-space);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-brand{font-family:Archivo,Arial,sans-serif;font-size:18px;font-weight:600;letter-spacing:-.04em}.footer-brand span{display:block;color:var(--muted-text);font-family:Inter,Arial,sans-serif;font-size:12px;font-weight:400;letter-spacing:0;margin-top:7px}footer>div{display:flex;gap:30px;align-items:center;font-size:12px;color:var(--muted-text)}footer>div a{display:inline-flex;gap:8px;align-items:center}.scroll-rail{position:fixed;top:var(--header-height);bottom:0;right:0;width:var(--right-width);z-index:40}.ruler{position:absolute;inset:8px 0 24px;overflow:hidden}.ruler-track{position:absolute;inset:0 0 auto;will-change:transform}.ruler-tick{position:absolute;right:0;height:1px;width:9px;background:var(--line)}.ruler-tick--major{width:19px;background:var(--line-strong)}.ruler-tick span{position:absolute;font-size:9px;line-height:1;right:24px;top:-4px;color:var(--muted-text)}.ruler-marker{position:absolute;top:0;right:0;width:100%;height:2px;background:var(--accent);box-shadow:0 0 10px rgba(var(--accent-rgb),.33);will-change:transform}.ruler-readout{position:absolute;top:7px;right:3px;display:inline-flex;align-items:center;gap:2px;color:var(--accent-text);font-size:10px;line-height:1;font-variant-numeric:tabular-nums}.ruler-digits{display:inline-flex}.ruler-digit-slot{display:block;height:1em;overflow:hidden}.ruler-digit-col{display:flex;flex-direction:column;transition:transform .28s cubic-bezier(.2,.9,.2,1)}.ruler-digit-col>span{height:1em;flex:0 0 1em;line-height:1}.mobile-page-progress{display:none;position:fixed;top:var(--header-height);left:0;right:0;height:2px;background:var(--accent);transform-origin:left;z-index:61;pointer-events:none}.rail-links{position:absolute;bottom:20px;right:70px;display:flex;align-items:flex-end;flex-direction:column;gap:4px;pointer-events:auto}.rail-links a{text-transform:uppercase;font-family:Archivo,Arial,sans-serif;color:var(--muted-text);font-size:12px;opacity:.5;white-space:nowrap;transition:opacity .18s,color .18s}.rail-links .is-active{color:var(--accent-text);opacity:1}.cursor-ring,.cursor-dot{position:fixed;top:0;left:0;z-index:90;pointer-events:none;opacity:0;will-change:transform}.cursor-ring{width:28px;height:28px;border:1px solid var(--accent);border-radius:50%;background:rgba(var(--accent-rgb),.04);display:grid;place-items:center;transition:width .2s var(--ease-ui),height .2s var(--ease-ui),opacity .15s,background-color .2s}.cursor-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);transition:opacity .15s}.cursor-system[data-visible=true] .cursor-ring,.cursor-system[data-visible=true] .cursor-dot{opacity:1}.cursor-system[data-interactive=true] .cursor-ring{width:43px;height:43px;background:rgba(var(--accent-rgb),.09)}.cursor-system[data-view=true] .cursor-ring{width:58px;height:58px;background:var(--accent);color:#fff}.cursor-ring span{font:8px JetBrains Mono,Consolas,monospace;letter-spacing:.08em}.cursor-system[data-view=true] .cursor-dot{opacity:0}.detail-dialog{will-change:auto;width:min(740px,calc(100vw - 40px));max-height:calc(100dvh - 56px);padding:0;background:var(--bg);color:var(--ink);border:1px solid var(--line-strong);overflow:hidden}.detail-dialog[open]{display:flex;flex-direction:column}.detail-dialog::backdrop{background:#060607ad;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;min-height:56px;border-bottom:1px solid var(--line);padding-left:24px;gap:12px}.dialog-header h2{font-size:22px;letter-spacing:-.03em}.dialog-header .icon-button{align-self:stretch}.dialog-body{min-height:0;overscroll-behavior:contain;overflow:auto;max-height:calc(100dvh - 115px)}.project-detail{padding:28px}.project-detail>.art-window{height:265px;margin-bottom:26px}.project-detail h3{font-size:30px;line-height:1.12;margin:15px 0}.project-detail>p{font-size:16px}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.certificate-detail{padding:32px}.certificate-artwork{display:grid;place-items:center;width:100%;min-height:228px;padding:24px;margin-bottom:28px;background:#fff;border:1px solid #deded8;color:#121316}.certificate-artwork img{display:block;width:100%;max-width:520px;height:180px;object-fit:contain}.certificate-artwork-fallback{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;font-size:18px}.certificate-artwork-fallback svg{color:#b44914}.certificate-detail h3{line-height:1.2;overflow-wrap:anywhere;margin:15px 0;font-size:32px}.certificate-detail p{font-size:16px;margin-bottom:24px}.dialog-wide{width:min(1000px,calc(100vw - 40px))}.cv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px;font-size:12px;border-bottom:1px solid var(--line)}.cv-toolbar>div{display:flex;align-items:center;gap:7px}.cv-toolbar button{padding:10px;font-family:Consolas,monospace;min-width:36px;min-height:44px}.cv-toolbar .button{min-height:40px;padding:10px 14px;gap:8px}.cv-viewer{background:var(--raised);overflow:auto;padding:24px;max-height:calc(100dvh - 200px)}.cv-viewer img{display:block;margin:auto;height:auto}.reveal.will-reveal{opacity:0;transform:translateY(18px);filter:blur(4px);transition:opacity .6s var(--ease-ui),transform .6s var(--ease-ui),filter .6s var(--ease-ui)}.reveal.is-visible{opacity:1;transform:none;filter:none}.t-stagger:not(.will-reveal) .t-stagger-line{opacity:1;transform:none;filter:none}.reveal.t-stagger{opacity:1;transform:none;filter:none}.t-stagger-line--3{transition-delay:calc(var(--stagger-stagger) * 2)}.t-stagger-line--4{transition-delay:calc(var(--stagger-stagger) * 3)}.t-stagger-line--5{transition-delay:calc(var(--stagger-stagger) * 4)}.t-stagger-line--6{transition-delay:calc(var(--stagger-stagger) * 5)}.hero-buttons.t-stagger-line,.hero-socials.t-stagger-line{display:flex}.t-tilt{touch-action:pan-y}.t-tilt-card{border-radius:0}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:0}.art-window{background:#101317;color:#d9dce2;position:relative;overflow:hidden;width:100%;font-family:Inter,Arial,sans-serif}.art-toolbar{display:flex;align-items:center;height:22px;background:#21252b;padding:0 9px;gap:4px}.art-toolbar>span{width:3px;height:3px;border-radius:50%;background:#7a818c}.art-toolbar small{font:5px Consolas,monospace;letter-spacing:.08em;margin-left:7px}.art-toolbar b{font-size:7px;margin-left:auto;color:#7a818c}.art-canvas{height:calc(100% - 22px);position:relative;padding:15px;overflow:hidden;background-image:radial-gradient(#ffffff12 1px,transparent 1px);background-size:14px 14px}.neural-art{width:100%;height:calc(100% - 17px)}.art-bottom{position:absolute;bottom:12px;left:15px;right:15px;display:flex;justify-content:space-between;gap:5px;font:6px Consolas,monospace;color:var(--project-color)}.art-1 .art-canvas{display:flex;gap:15px;padding:18px}.document-paper{background:#eeede7;color:#131416;padding:12px;width:62%;transform:rotate(-4deg);box-shadow:0 7px 15px #0005}.doc-region{border:1px solid #f2543d;position:relative;padding:4px}.doc-title{font:700 8px Consolas,monospace;margin-bottom:7px}.doc-columns{display:grid;grid-template-columns:1fr 1fr;gap:6px}.doc-lines i{display:block;height:2px;background:#9d9c97;margin:5px 0}.doc-lines i:nth-child(3n){width:68%}.doc-figure{background:#deddd7;margin-top:7px;display:grid;place-items:center;font:28px Georgia,serif;height:58px}.ocr-sidebar{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:35%;font:5px Consolas,monospace;color:#b4b7bc}.ocr-sidebar b{font-weight:400;color:#f2543d;margin-bottom:5px}.ocr-sidebar strong{font-size:clamp(16px,2vw,28px);line-height:1.1;margin-top:10px;color:#fff;letter-spacing:-.05em}.ocr-sidebar small{font-size:5px}.kanban-head{font-size:17px;font-weight:600;letter-spacing:-.05em;padding-bottom:15px;display:flex;justify-content:space-between;align-items:center}.kanban-head span{font:5px Consolas,monospace;color:#8d55ff}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.kanban>div>span{display:block;font:5px Consolas,monospace;margin-bottom:10px;color:#bfb9d2}.kanban-note{padding:8px 7px;margin-bottom:7px;background:#23202c;border:1px solid #ffffff0a;position:relative}.kanban-note i{display:block;width:18px;height:2px;background:#8d55ff;margin-bottom:6px}.kanban-note b{display:block;font-size:5px;font-weight:500}.kanban-note small{font:4px Consolas,monospace;color:#a6a0b6}.kanban-note em{display:block;width:7px;height:7px;border-radius:50%;background:#746394;margin-top:7px}.art-3 .art-canvas{display:flex;gap:20px}.eid-card{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;width:70%;background:#f4e5bb;color:#4d491f;transform:rotate(-3deg);border:5px solid #e9d595;box-shadow:0 8px 20px #0003}.eid-card>span{font:4px Consolas,monospace;letter-spacing:.1em}.eid-card strong{font-family:Georgia,serif;font-weight:400;font-size:clamp(27px,3.5vw,45px);text-align:center;line-height:.95;margin:15px 0 8px}.eid-card strong em{font-size:.65em;font-weight:400}.eid-card small{font:4px Consolas,monospace;margin-top:7px}.eid-moon{position:absolute;top:10px;right:13px;width:18px;height:18px;border-radius:50%;box-shadow:-5px 2px #b29345}.eid-stars{letter-spacing:7px;color:#b29345;font-size:9px}.eid-controls{width:27%;display:flex;flex-direction:column;justify-content:center;gap:10px;font:5px Consolas,monospace;color:#f0a600}.eid-controls b{font:28px Georgia,serif;color:#eee}.eid-controls i{width:100%;height:3px;background:#515052}.eid-controls div{font-size:14px}.energy-label{font-size:13px;font-weight:300;position:relative;z-index:1;line-height:1.4}.energy-label strong{color:#10a68a;font-weight:500}.energy-chart{position:absolute;bottom:15px;width:calc(100% - 30px);height:68%}.type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:10px 0}.type-grid span{display:grid;place-items:center;font:42px Nirmala UI,serif;border:1px solid #e3329177;background:#e332911a;height:80px;color:#f78ac4}.type-grid span:nth-child(2n){font-weight:700}.type-label{display:flex;align-items:center;justify-content:space-between;padding-top:12px}.type-label strong{font-size:20px;letter-spacing:-.04em;font-weight:500}.type-label span{font:5px Consolas,monospace;color:#e33291}.type-scan{position:absolute;top:40%;left:15px;right:15px;background:#e33291;height:1px;box-shadow:0 0 8px #e33291}.hardware-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:17px 12px}.detection-box{border:1px solid #79b51c;position:relative;background:#79b51c0b}.detection-box>span{position:absolute;left:-1px;top:-10px;padding:3px 5px;font:5px Consolas,monospace;background:#79b51c;color:#121316}.detection-box svg{height:90px;width:100%;color:#bac5a6}@media(hover:hover)and (pointer:fine){.monogram:hover svg{transform:rotate(-8deg)}.main-nav a:hover span{color:var(--bg);background:var(--ink)}.icon-button:hover{background:var(--raised);color:var(--accent-text)}.button:hover,.header-cv:hover{background:var(--accent);color:#121316;border-color:var(--accent)}.hero-socials a:hover,.contact-links a:hover,.contact-socials a:hover,footer a:hover{color:var(--accent-text)}.project-card:hover:after{transform:scaleX(1)}.project-card:hover .project-art>div{transform:scale(1.045)}.project-card:hover .project-icon{transform:translateY(-5px) rotate(-4deg)}.project-card:hover .explore-link{color:var(--accent-text)}.project-card:hover .explore-link svg,.text-link:hover svg{transform:translate(3px,-3px)}.skill-cell:hover{background:var(--raised)}.skill-cell:hover .skill-icon{transform:translateY(-3px)}.certificate-cell>button:hover{background:var(--raised)}.rail-links a:hover{opacity:1}}@media(min-width:1700px){.hero-body{padding-top:90px;padding-bottom:65px}.hero-visual{max-width:530px}.hero-copy h1{font-size:140px}.project-copy p{font-size:16px}}@media(max-width:1190px){:root{--left-width: 36px;--right-width: 40px}.main-nav a{padding:0 8px;font-size:12px}.header-cv{padding:0 18px}.hero-body{gap:35px}.hero-copy h1{font-size:clamp(60px,8vw,90px)}.hero-description{font-size:16px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-cell:nth-child(2n){border-right:0}.project-art{aspect-ratio:1.9}.project-copy h3{font-size:30px}.project-copy p{min-height:60px}.next-project h3{font-size:38px}.work-intro{align-items:flex-start;flex-direction:column}.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.skill-cell:nth-child(5n){border-right:1px solid var(--line)}.skill-cell:nth-child(4n){border-right:0}.about-grid{gap:40px}.principle{padding:28px}.rail-links{display:none}.certificate-cell>button{padding:24px 20px;gap:14px}}@media(max-width:860px){:root{--left-width: 20px;--right-width: 20px;--section-space: 28px}.left-rail,.scroll-rail{display:none}.mobile-page-progress{display:block}.monogram{width:60px}.main-nav{display:none}.header-actions{margin-left:auto}.menu-toggle{display:flex}.main-nav.is-open{display:flex;flex-direction:column;position:absolute;top:var(--header-height);left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 10px 20px #0002;padding:12px 20px;animation:menu-enter .2s var(--ease-ui)}.main-nav a{min-height:45px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font-size:14px}.main-nav a:last-child{border-bottom:0}.main-nav a:after{content:"↗";font-size:16px}.hero-body{grid-template-columns:1.15fr 1fr;gap:28px;padding-top:42px}.hero-copy h1{font-size:64px}.hero-copy .eyebrow{font-size:11px}.hero-role{font-size:22px}.hero-socials{gap:15px}.hero-buttons .button{padding:12px;gap:10px;font-size:12px}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-cell:nth-child(4n){border-right:1px solid var(--line)}.skill-cell:nth-child(3n){border-right:0}.contact-grid{grid-template-columns:1fr}.contact-form-wrap{border-left:0;border-top:1px solid var(--line)}.contact-copy h2{font-size:64px}.contact-copy{padding-top:48px;padding-bottom:44px}.contact-email{font-size:25px}.contact-copy p{max-width:520px}.education-cell{padding:28px 22px}.education-cell h3{font-size:23px}}@keyframes menu-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:620px){:root{--left-width: 14px;--right-width: 14px;--section-space: 22px}html{scroll-padding-top:100px}.section-label{min-height:40px;font-size:10px;letter-spacing:.09em}.section-label>span:last-child{display:none}.hero-body{display:flex;flex-direction:column;align-items:stretch;padding-top:40px;gap:36px}.hero-copy h1{font-size:clamp(44px,13.8vw,84px);margin-top:24px}.hero-role{font-size:25px}.hero-description{font-size:16px;line-height:1.7}.hero-copy .eyebrow{font-size:11px;letter-spacing:.04em}.hero-buttons .button{padding:14px 18px;min-height:48px;font-size:12px}.hero-socials{gap:20px;font-size:12px}.hero-visual{width:100%;max-width:380px;align-self:center}.work-intro{padding-top:38px;padding-bottom:28px;gap:25px}.work-intro h2{font-size:42px}.filter-tabs{width:100%}.filter-tabs button{justify-content:center;flex:1;padding:12px 8px;font-size:12px}.project-grid{grid-template-columns:1fr}.project-cell{border-right:0}.project-art{aspect-ratio:1.6}.project-copy{padding:0 24px 27px}.project-copy h3{font-size:32px}.project-copy p{font-size:16px;min-height:0}.project-top,.project-copy .tags span{font-size:11px}.explore-link{font-size:12px;padding-top:25px}.next-project{padding:32px 24px;min-height:280px}.next-cross{display:none}.about-grid{display:block;padding-top:44px;padding-bottom:40px}.about-heading h2{font-size:40px}.about-degree{margin-top:26px}.about-copy{margin-top:34px}.about-copy .lead{font-size:20px}.principles-grid{grid-template-columns:1fr}.principle{padding:27px 24px;border-right:0}.principle h3{margin-top:16px}.principle p{max-width:none}.section-intro{padding-top:40px;padding-bottom:30px}.section-intro h2{font-size:40px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-cell{gap:10px;padding:25px 15px;font-size:14px}.skill-plus{display:none}.skill-cell:nth-child(3n){border-right:1px solid var(--line)}.skill-cell:nth-child(2n){border-right:0}.education-grid{grid-template-columns:1fr}.education-cell{border-right:0;border-top:1px solid var(--line);padding:28px 24px}.education-cell:first-child{border-top:0}.education-cell h3{margin-top:22px;font-size:28px}.education-note{margin-top:15px}.certificate-grid{grid-template-columns:1fr}.certificate-cell:nth-child(odd){border-right:0}.certificate-cell>button{min-height:118px;padding:22px 20px}.certificate-info strong{font-size:18px}.certificate-info small{font-size:11px;line-height:1.5}.certificate-logo{width:52px;height:52px}.certificate-logo img{max-width:44px;max-height:44px}.contact-copy{padding:42px 22px}.contact-copy h2{font-size:clamp(40px,10vw,55px)}.contact-copy .eyebrow{font-size:11px}.contact-email{font-size:20px;gap:10px}.contact-links{gap:15px;font-size:14px}.contact-form-wrap{padding:30px 22px}.form-row{grid-template-columns:1fr;gap:0}.contact-form input,.contact-form textarea{font-size:16px}footer{align-items:flex-start;flex-direction:column;padding:28px 22px}footer>div{gap:20px;font-size:12px}.detail-dialog,.dialog-wide{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.dialog-body{max-height:calc(100dvh - 85px)}.dialog-header{padding-left:18px}.project-detail,.certificate-detail{padding:20px}.certificate-artwork{min-height:180px;padding:18px;margin-bottom:22px}.certificate-artwork img{height:144px}.certificate-detail h3{font-size:28px}.certificate-detail>.button{width:100%}.project-detail>.art-window{height:220px}.project-detail h3{font-size:25px}.cv-toolbar{flex-wrap:wrap;padding:12px}.cv-toolbar>span{font-size:10px}.cv-toolbar>div{flex-wrap:wrap;gap:2px}.cv-toolbar .button{padding:10px;font-size:12px}.cv-viewer{padding:12px;max-height:calc(100dvh - 190px)}.ocr-sidebar strong{font-size:27px}.eid-card strong{font-size:44px}.type-grid span{font-size:42px}}@media(hover:none),(pointer:coarse){.cursor-system{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}.cursor-system{display:none}.reveal.will-reveal,.t-stagger-line{opacity:1!important;transform:none!important;filter:none!important}.project-art>div,.project-icon,.skill-icon{transform:none!important}}@media(prefers-reduced-transparency:reduce){.site-header,.section-label{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-contrast:more){:root{--muted-text: #363633;--line: #777}[data-theme=dark]{--muted-text: #d8d8d6;--line: #999}}.skill-cell>span:not(.skill-index):not(.skill-plus){min-width:0;overflow-wrap:anywhere}
