@font-face{font-family:League Spartan Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./league-spartan-vietnamese-wght-normal-COdtqR7n.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:League Spartan Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./league-spartan-latin-ext-wght-normal-DdUHL39C.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:League Spartan Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./league-spartan-latin-wght-normal-0z8Zi79b.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(./dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(./dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-mono-latin-ext-400-normal-C2zvOubV.woff2)format("woff2"),url(./dm-mono-latin-ext-400-normal-1aZr6b2b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2"),url(./dm-mono-latin-400-normal--0xN8mdc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-mono-latin-ext-500-normal-BtRyHRi6.woff2)format("woff2"),url(./dm-mono-latin-ext-500-normal-Dw3M13d8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2"),url(./dm-mono-latin-500-normal-CN8Miw6E.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f2ede3;--bg-2:#e9e2d4;--card:#f7f3ea;--ink:#151413;--ink-2:#2c2a27;--muted:#5a554d;--line:#15141324;--line-2:#1514134d;--blue:#1f4fbf;--red:#c4331e;--yellow:#f0b400;--on-color:#f7f3ea;--shadow:0 1px 0 #1514130f, 0 22px 44px -26px #15141366;--grain:.05;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"League Spartan Variable", "Futura", "Century Gothic", system-ui, sans-serif;--font-body:"DM Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"DM Mono", ui-monospace, Consolas, monospace;--container:1240px;--gutter:clamp(18px, 4.5vw, 44px);--section-pad:clamp(96px, 12vw, 168px);--radius:4px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1)}:root[data-theme=dark]{--bg:#111110;--bg-2:#1b1a18;--card:#181715;--ink:#f1ebe0;--ink-2:#d8d1c4;--muted:#a69f93;--line:#f1ebe021;--line-2:#f1ebe04d;--blue:#5d86ff;--red:#ff5c41;--yellow:#ffc533;--on-color:#111110;--shadow:0 1px 0 #00000080, 0 26px 52px -26px #000000d9;--grain:.07;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#111110;--bg-2:#1b1a18;--card:#181715;--ink:#f1ebe0;--ink-2:#d8d1c4;--muted:#a69f93;--line:#f1ebe021;--line-2:#f1ebe04d;--blue:#5d86ff;--red:#ff5c41;--yellow:#ffc533;--on-color:#111110;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:17.5px;line-height:1.6;transition:background-color .4s,color .4s;overflow-x:clip}body:after{content:"";z-index:90;pointer-events:none;opacity:var(--grain);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}img,svg,video,iframe,canvas{max-width:100%;display:block}a{color:inherit;text-decoration:none}p{margin:0}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:700;line-height:1}ul,ol{margin:0;padding:0;list-style:none}button{font:inherit;color:inherit}::selection{background:var(--yellow);color:#151413}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}html.lenis,html.lenis body{height:auto}.lenis.lenis-stopped{overflow:clip}.lenis [data-lenis-prevent]{overscroll-behavior:contain}.container{width:100%;max-width:var(--container);padding:0 var(--gutter);margin:0 auto}.section{padding:var(--section-pad) 0;position:relative}.skip-link{z-index:200;background:var(--ink);color:var(--bg);padding:10px 16px;font-weight:600;transition:top .2s;position:absolute;top:-60px;left:16px}.skip-link:focus{top:16px}.head{grid-template-columns:auto 1fr;align-items:end;gap:10px 28px;margin-bottom:clamp(44px,6vw,80px);padding-top:22px;display:grid;position:relative}.head:before{content:"";background:var(--ink);transform-origin:0;height:3px;transition:transform 1.3s var(--ease-out);position:absolute;top:0;left:0;right:0}.js-motion .head:not(.is-in):before{transform:scaleX(0)}.head__num{font-family:var(--font-display);letter-spacing:-.05em;grid-row:span 2;font-size:clamp(64px,9vw,128px);font-weight:800;line-height:.8}.head__label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.head__title{letter-spacing:-.035em;font-size:clamp(36px,5.6vw,78px);line-height:.95}.btn{border:2px solid var(--ink);height:52px;color:var(--ink);font-family:var(--font-display);letter-spacing:.01em;cursor:pointer;white-space:nowrap;transition:background .25s, color .25s, transform .25s var(--ease-out), box-shadow .25s;background:0 0;align-items:center;gap:10px;padding:0 24px;font-size:17px;font-weight:650;display:inline-flex}.btn:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-3px,-3px)}.btn:active{box-shadow:none;transform:none}.btn svg{flex:none;width:18px;height:18px}.btn--solid{background:var(--ink);color:var(--bg)}.btn--red{border-color:var(--red);background:var(--red);color:var(--on-color)}.btn--red:hover{box-shadow:4px 4px 0 var(--ink)}.btn--small{height:42px;padding:0 16px;font-size:15px}.shape{fill:var(--shape,currentColor);flex:none}.fill-blue{fill:var(--blue)}.fill-red{fill:var(--red)}.fill-yellow{fill:var(--yellow)}.fill-ink{fill:var(--ink)}.stroke-ink{stroke:var(--ink)}.stroke-line{stroke:var(--line-2)}.stroke-red{stroke:var(--red)}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{border:1.5px solid var(--line-2);font-family:var(--font-mono);color:var(--ink-2);white-space:nowrap;padding:4px 10px;font-size:12.5px}.mono{font-family:var(--font-mono)}.pill{border:1.5px solid var(--line-2);border-radius:999px;align-items:center;gap:10px;padding:7px 14px;font-size:14px;font-weight:550;display:inline-flex}.pulse{background:var(--blue);border-radius:50%;width:10px;height:10px;animation:2.2s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--blue) 60%, transparent)}70%{box-shadow:0 0 0 11px #0000}to{box-shadow:0 0 #0000}}.link{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);font-weight:600;transition:text-decoration-color .2s}.link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.js-motion [data-reveal]{opacity:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.nav{z-index:50;animation:nav-in .9s var(--ease-out) .1s both;border-bottom:2px solid #0000;transition:background .35s,border-color .35s;position:fixed;inset:0 0 auto}.nav--scrolled,.nav--open{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--ink)}@keyframes nav-in{0%{opacity:0;transform:translateY(-16px)}}.nav__inner{height:74px;max-width:var(--container);padding:0 var(--gutter);align-items:center;gap:20px;margin:0 auto;display:flex}.nav__brand{align-items:center;gap:12px;display:flex}.nav__logo{align-items:flex-end;gap:3px;display:flex}.nav__logo .shape{transition:transform .5s var(--ease-out)}.nav__brand:hover .nav__logo .shape:first-child{transform:translateY(-4px)}.nav__brand:hover .nav__logo .shape:nth-child(2){transform:rotate(45deg)}.nav__brand:hover .nav__logo .shape:nth-child(3){transform:translateY(-4px)rotate(180deg)}.nav__name{font-family:var(--font-display);letter-spacing:-.01em;font-size:19px;font-weight:700}.nav__links{gap:4px;margin-left:auto;display:flex}.nav__links a{font-family:var(--font-display);color:var(--muted);padding:8px 12px;font-size:16.5px;font-weight:600;transition:color .2s;position:relative}.nav__links a:after{content:"";background:var(--red);transform-origin:0;height:3px;transition:transform .35s var(--ease-out);position:absolute;bottom:2px;left:12px;right:12px;transform:scaleX(0)}.nav__links a:hover,.nav__links a.is-active{color:var(--ink)}.nav__links a:hover:after,.nav__links a.is-active:after{transform:scaleX(1)}.nav__end{align-items:center;gap:10px;display:flex}.nav__menu{border:2px solid var(--ink);cursor:pointer;background:0 0;place-items:center;width:44px;height:44px;display:none}.nav__menu svg{width:22px;height:22px}.toggle{border:2px solid var(--ink);cursor:pointer;width:44px;height:44px;transition:transform .4s var(--ease-out);background:0 0;border-radius:50%;place-items:center;display:grid}.toggle:hover{transform:rotate(-20deg)}.toggle svg{width:28px;height:28px;overflow:visible}.toggle__body{fill:var(--yellow);transition:fill .5s}.toggle__rays{fill:var(--yellow);transform-origin:16px 16px;transition:transform .5s var(--ease-out), opacity .4s}.toggle__cut{cx:34px;cy:0px;transition:cx .5s var(--ease-out), cy .5s var(--ease-out)}.toggle--dark .toggle__body{fill:var(--ink)}.toggle--dark .toggle__rays{opacity:0;transform:scale(.4)rotate(90deg)}.toggle--dark .toggle__cut{cx:21px;cy:11px}.nav__sheet{padding:24px var(--gutter);background:var(--bg);opacity:0;pointer-events:none;flex-direction:column;gap:2px;transition:opacity .3s;display:flex;position:fixed;inset:74px 0 0}.nav--open .nav__sheet{opacity:1;pointer-events:auto}.nav__sheet a{opacity:0;transition:transform .5s var(--ease-out), opacity .5s;transition-delay:calc(var(--i) * 45ms);transform:translateY(18px)}.nav--open .nav__sheet a{opacity:1;transform:none}.nav__sheet a:not(.btn){border-bottom:2px solid var(--ink);font-family:var(--font-display);align-items:center;gap:16px;padding:10px 0;font-size:clamp(34px,10vw,46px);font-weight:700;display:flex}.nav__sheet .btn{align-self:flex-start;margin-top:28px}@media (width<=1040px){.nav__links a{padding:8px 9px;font-size:15.5px}}@media (width<=900px){.nav__links,.nav__cv{display:none}.nav__end{margin-left:auto}.nav__menu{display:grid}}@media (width>=901px){.nav__sheet{display:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.play{border:2.5px solid var(--ink);background-color:var(--bg-2);background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:44px 44px;height:clamp(380px,64vh,640px);position:relative;overflow:hidden}.play canvas{width:100%;height:100%}.play__hint{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);pointer-events:none;font-size:12px;position:absolute;top:12px;left:14px}.play__shake{border:1.5px solid var(--ink);background:var(--bg);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:6px 12px;font-size:12px;transition:background .2s,color .2s;position:absolute;top:8px;right:8px}.play__shake:hover{background:var(--ink);color:var(--bg)}@media (width<=900px){.play{height:clamp(320px,56vh,440px)}}.hero{align-items:center;min-height:100svh;padding:120px 0 72px;display:flex;position:relative}.hero__grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);align-items:center;gap:clamp(32px,5vw,72px);display:grid}.hero__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:13px}.hero__name{letter-spacing:-.045em;margin-top:18px;font-size:clamp(58px,9.6vw,148px);font-weight:560;line-height:.86}.hero__line{padding-bottom:.06em;display:block;overflow:hidden}.hero__line-inner{display:block}.hero__fields{font-family:var(--font-display);flex-wrap:wrap;gap:10px 26px;margin-top:26px;font-size:clamp(22px,2.6vw,32px);font-weight:650;display:flex}.hero__fields span{align-items:center;gap:10px;display:inline-flex}.hero__intro{max-width:50ch;color:var(--muted);margin-top:22px;font-size:clamp(16.5px,1.4vw,19px)}.hero__ctas{flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:32px;display:flex}.hero__cv{font-family:var(--font-display);align-items:center;gap:8px;font-size:17px;display:inline-flex}.hero__cv svg{width:18px;height:18px}.hero .pill{margin-top:28px}@media (width<=960px){.hero{min-height:auto;padding-top:110px}.hero__grid{grid-template-columns:1fr}}@media (hover:none){.hero__name{font-weight:720}}@media (width<=420px){.hero .pill{font-size:12.5px}}.marquee-clip{padding:26px 0;overflow:hidden}.marquee{background:var(--ink);color:var(--bg);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:22px 0;overflow:hidden;transform:rotate(-1.2deg)scale(1.02)}.marquee__track{width:max-content;display:flex}.marquee__item{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:22px;padding-right:48px;font-size:clamp(34px,5vw,64px);font-weight:800;display:inline-flex}.photo{background:var(--bg-2);margin:0;position:relative;overflow:hidden}.photo--circle{aspect-ratio:1;border-radius:50%}.photo--arch{border-radius:999px 999px 0 0}.photo--half{aspect-ratio:2;border-radius:999px 999px 0 0}.photo img{object-fit:cover;filter:grayscale()contrast(1.05);mix-blend-mode:multiply;width:100%;height:100%;transition:filter .6s, transform .9s var(--ease-out)}:root[data-theme=dark] .photo img{mix-blend-mode:normal;filter:grayscale()brightness(.9)}.photo:hover img{filter:none;transform:scale(1.03)}.photo__empty{background:repeating-linear-gradient(135deg, transparent 0 11px, var(--line) 11px 12px), var(--bg-2);place-items:center;display:grid;position:absolute;inset:0}.photo__art{aspect-ratio:1;opacity:.9;width:46%;transition:transform .9s var(--ease-out);position:absolute}.photo:hover .photo__art{transform:rotate(-8deg)scale(1.05)}.photo__art--circle{background:var(--blue);border-radius:50%}.photo__art--square{background:var(--red)}.photo__art--triangle{background:var(--yellow);clip-path:polygon(50% 4%,100% 96%,0 96%)}.photo__label{background:var(--bg);border:1.5px solid var(--ink);font-family:var(--font-mono);text-align:center;gap:2px;padding:8px 12px;font-size:12px;line-height:1.35;display:grid;position:relative}.photo__label strong{letter-spacing:.06em;text-transform:uppercase;font-weight:500}.photo__label span{color:var(--muted)}.photo--circle .photo__label,.photo--half .photo__label{margin-top:18%}.about__intro{grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);align-items:end;gap:clamp(32px,6vw,96px);display:grid}.about__portrait{aspect-ratio:4/5;border:2.5px solid var(--ink)}.about__text{gap:22px;font-size:clamp(18px,1.7vw,22px);line-height:1.6;display:grid}.about__text p:nth-child(2){color:var(--muted)}.about__note{border-left:6px solid var(--yellow);background:var(--bg-2);color:var(--ink-2);padding:18px 20px;font-size:clamp(16px,1.4vw,18px)}.fields{border-top:2.5px solid var(--ink);border-left:2.5px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(80px,10vw,140px);display:grid}.field{border-right:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);padding:clamp(24px,3vw,40px);transition:background .4s}.field h3{margin-top:26px;font-size:clamp(26px,2.6vw,34px)}.field p{color:var(--muted);margin-top:10px}.field--cloud:hover{background:color-mix(in srgb, var(--blue) 9%, transparent)}.field--devops:hover{background:color-mix(in srgb, var(--red) 9%, transparent)}.field--ai:hover{background:color-mix(in srgb, var(--yellow) 14%, transparent)}.drawn{width:clamp(80px,9vw,120px);height:auto;transition:transform .8s var(--ease-out);overflow:visible}.field:hover .drawn{transform:rotate(-12deg)scale(1.06)}.drawn__path{stroke:var(--ink);stroke-width:2.5px;stroke-dasharray:100;stroke-dashoffset:0;transition:stroke-dashoffset 1.4s var(--ease-in-out), fill-opacity .8s 1s}.drawn--circle .drawn__path{fill:var(--blue)}.drawn--square .drawn__path{fill:var(--red)}.drawn--triangle .drawn__path{fill:var(--yellow)}.js-motion .field:not(.is-in) .drawn__path{stroke-dashoffset:100px;fill-opacity:0}.habits{margin-top:clamp(80px,10vw,140px)}.habits__title{margin-bottom:26px;font-size:clamp(28px,3vw,40px)}.habits__list{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.habits__list li{border-top:2.5px solid var(--ink);padding:22px 24px 8px 0}.habits__list li+li{border-left:1.5px solid var(--line-2);padding-left:24px}.habits__num{font-family:var(--font-display);color:var(--red);font-size:44px;font-weight:800;line-height:1}.habits__list h4{margin-top:14px;font-size:21px}.habits__list p{color:var(--muted);margin-top:8px;font-size:16px}@media (width<=900px){.about__intro{grid-template-columns:1fr}.about__portrait{max-width:360px}.fields{grid-template-columns:1fr}.habits__list{grid-template-columns:repeat(2,minmax(0,1fr))}.habits__list li:nth-child(3){border-left:none;padding-left:0}}@media (width<=560px){.habits__list{grid-template-columns:1fr}.habits__list li+li{border-left:none;padding-left:0}}.journey{padding-bottom:0}.journey__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,80px);display:grid}.journey__globe{width:min(100%,640px);margin:0 auto;position:relative}.journey__globe-wait{aspect-ratio:1;border:3px solid var(--ink);background:var(--bg-2);border-radius:50%}.journey__km{flex-direction:column;align-items:flex-start;margin-top:10px;font-size:22px;font-weight:500;display:flex}.journey__km-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:12px}.chapter{border-top:2px solid var(--ink);padding:26px 0}.chapter__year{font-family:var(--font-display);letter-spacing:-.05em;font-size:clamp(54px,6.4vw,92px);font-weight:800;line-height:.9}.chapter__place{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.chapter__title{margin-top:10px;font-size:clamp(26px,2.6vw,36px)}.chapter__text{max-width:46ch;color:var(--muted);margin-top:10px;font-size:17.5px}.chapter__photo{aspect-ratio:16/9;border:2px solid var(--ink);max-width:420px;margin-top:18px}.journey--pinned .journey__stage{align-items:center;height:100vh;padding-top:60px;display:flex}.journey--pinned .journey__grid{width:100%}.journey--pinned .journey__globe{width:min(100%,68vh)}.journey--pinned .journey__chapters{min-height:min(560px,74vh);position:relative}.journey--pinned .chapter{opacity:0;visibility:hidden;transition:opacity .5s, transform .7s var(--ease-out), visibility .5s;position:absolute;inset:0 0 auto;transform:translateY(40px)}.journey--pinned .chapter.is-active{opacity:1;visibility:visible;transform:none}.journey__steps{font-family:var(--font-mono);color:var(--muted);grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;font-size:13px;display:grid}.journey__steps li{gap:8px;display:grid}.journey__steps span{background:var(--line-2);height:6px;transition:background .4s}.journey__steps li.is-done{color:var(--ink)}.journey__steps li.is-done span{background:var(--ink)}.journey__steps li.is-done:last-child span{background:var(--red)}@media (width<=900px){.journey__grid{grid-template-columns:1fr}.journey__globe{width:min(100%,440px)}}.video{aspect-ratio:16/9;border:2.5px solid var(--ink);background:var(--ink);position:relative;overflow:hidden}.video iframe,.video__cover{border:0;width:100%;height:100%;position:absolute;inset:0}.video__cover{background:var(--ink);color:var(--bg);cursor:pointer;padding:0;overflow:hidden}.video__shape{transition:transform .8s var(--ease-out);position:absolute}.video__shape--a{aspect-ratio:1;background:var(--blue);border-radius:50%;width:46%;top:-18%;left:-6%}.video__shape--b{aspect-ratio:1;background:var(--red);width:30%;bottom:-10%;right:8%}.video__cover:hover .video__shape--a{transform:translate(6%,6%)}.video__cover:hover .video__shape--b{transform:rotate(14deg)}.video__play{background:var(--yellow);clip-path:polygon(0 0,100% 50%,0 100%);width:84px;height:84px;transition:transform .4s var(--ease-out);position:absolute;top:50%;left:50%;transform:translate(-38%,-50%)}.video__cover:hover .video__play{transform:translate(-38%,-50%)scale(1.12)}.video__title{font-family:var(--font-display);font-size:20px;font-weight:700;position:absolute;bottom:14px;left:16px}.video__note{letter-spacing:.1em;text-transform:uppercase;opacity:.75;font-size:11px;position:absolute;top:12px;right:14px}.case{z-index:80;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.case__backdrop{background:color-mix(in srgb, var(--ink) 55%, transparent);position:absolute;inset:0}.case__panel{background:var(--bg);border:3px solid var(--ink);overscroll-behavior:contain;border-bottom:none;width:min(1180px,100%);height:min(92vh,100%);padding:clamp(26px,4vw,56px);position:relative;overflow-y:auto}.case__close{float:right;z-index:2;border:2.5px solid var(--ink);background:var(--bg);cursor:pointer;width:48px;height:48px;transition:background .2s, color .2s, transform .3s var(--ease-out);place-items:center;margin:-8px -8px 0 16px;display:grid;position:sticky;top:0}.case__close:hover{background:var(--ink);color:var(--bg);transform:rotate(90deg)}.case__close svg{width:22px;height:22px}.case__meta{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:8px 18px;font-size:12.5px;display:flex}.case__meta span{align-items:center;gap:6px;display:inline-flex}.case__title{letter-spacing:-.045em;margin-top:16px;font-size:clamp(40px,6vw,84px);font-weight:800;line-height:.92}.case__kind{font-family:var(--font-mono);color:var(--muted);margin-top:12px;font-size:13px}.case__tagline{font-family:var(--font-display);margin-top:14px;font-size:clamp(22px,2.4vw,30px);font-weight:600}.case__grid{border-top:2.5px solid var(--ink);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,60px);margin-top:36px;padding-top:32px;display:grid}.case__summary{font-size:19px}.case__why{border-left:6px solid var(--red);background:var(--bg-2);margin:24px 0 0;padding:16px 20px}.case__why .mono{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.case__sub{margin:34px 0 16px;font-size:24px}.case__steps{gap:10px;display:grid}.case__steps li{color:var(--muted);grid-template-columns:34px 1fr;align-items:baseline;gap:12px;display:grid}.case__steps strong{color:var(--ink);font-weight:650}.case__step-num{background:var(--ink);width:30px;height:30px;color:var(--bg);font-family:var(--font-mono);place-items:center;font-size:13px;display:grid}.case__steps li:nth-last-child(2) .case__step-num{background:var(--yellow);color:#151413}.case__steps li:last-child .case__step-num{background:var(--blue);color:var(--on-color)}.case__side{align-content:start;gap:22px;display:grid}.case__stats{border-top:2px solid var(--ink);border-left:2px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;display:grid}.case__stats div{border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:14px 16px}.case__stats dt{font-family:var(--font-display);font-size:38px;font-weight:800;line-height:1}.case__stats dd{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.4}.case__links{flex-wrap:wrap;gap:10px;display:flex}.case__shots{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:40px;display:grid}.case__shot{aspect-ratio:16/10;border:2px solid var(--ink)}@media (width<=860px){.case__panel{border:none;height:100%}.case__grid{grid-template-columns:1fr}}.expo{padding-bottom:0}.expo__stage{align-items:center;min-height:100vh;display:flex;overflow:hidden}.expo__track{width:max-content;padding:40px max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));align-items:stretch;gap:28px;display:flex}.expo__intro{flex-direction:column;justify-content:space-between;width:clamp(240px,22vw,320px);padding:8px 0;font-size:clamp(19px,1.8vw,24px);line-height:1.45;display:flex}.expo__hint{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:13px;display:inline-flex}.expo__hint svg{width:18px;height:18px;animation:nudge 1.6s var(--ease-in-out) infinite}@keyframes nudge{50%{transform:translate(8px)}}.expo__hint-swipe{display:none}.poster{border:2.5px solid var(--ink);background:var(--card);width:clamp(290px,28vw,400px);transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);flex-direction:column;display:flex;position:relative}.poster:hover{box-shadow:8px 8px 0 var(--ink);transform:translate(-5px,-5px)}.poster__num{z-index:1;font-family:var(--font-display);font-size:30px;font-weight:800;position:absolute;top:12px;left:14px}.poster__art{aspect-ratio:1;border-bottom:2.5px solid var(--ink);background:var(--bg-2)}.poster__art .art{width:100%;height:100%}.poster__body{flex-direction:column;flex:1;gap:10px;padding:20px 22px 22px;display:flex}.poster__meta{letter-spacing:.1em;color:var(--muted);justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.poster__fields{gap:6px;display:inline-flex}.poster__title{font-size:clamp(24px,2.2vw,31px);line-height:1}.poster__tagline{color:var(--muted)}.poster__open{align-self:flex-start;margin-top:auto}.poster__list{color:var(--muted);gap:8px;margin-top:4px;display:grid}.poster__list li{padding-left:18px;position:relative}.poster__list li:before{content:"";background:var(--yellow);width:9px;height:9px;position:absolute;top:.55em;left:0}.art__ring{transform-origin:168px 178px;animation:22s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.art__alert{transform-origin:242px 236px;animation:1.8s ease-out infinite alert}@keyframes alert{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.5)}}.art__boxes rect{animation:hop 2.4s var(--ease-in-out) infinite}.art__boxes rect:nth-child(2){animation-delay:.2s}.art__boxes rect:nth-child(3){animation-delay:.4s}@keyframes hop{0%,60%,to{transform:none}30%{transform:translateY(-12px)}}.art__arg{animation:argue 3.6s var(--ease-in-out) infinite}.art__arg--2{animation-delay:1.8s}@keyframes argue{0%,10%{transform:none}45%,55%{transform:translate(140px)}90%,to{transform:none}}.art__route{stroke-dasharray:100;animation:route 4s var(--ease-in-out) infinite}@keyframes route{0%{stroke-dashoffset:100px}55%,80%{stroke-dashoffset:0}to{stroke-dashoffset:-100px}}.art__rise{animation:rise 3s var(--ease-in-out) infinite}@keyframes rise{50%{transform:translateY(-12px)}}@media (width>=901px) and (prefers-reduced-motion:reduce){.expo__stage{scroll-snap-type:x mandatory;min-height:0;scroll-padding-left:var(--gutter);scrollbar-width:none;overflow-x:auto}.expo__stage::-webkit-scrollbar{display:none}.expo__track{padding:8px var(--gutter) 40px}.poster,.expo__intro{scroll-snap-align:start}.poster{width:min(82vw,360px)}.expo__hint-scroll{display:none}.expo__hint-swipe{display:inline}}@media (width<=900px){.expo{padding-bottom:40px}.expo__stage{min-height:0;display:block;overflow:visible}.expo__track{width:auto;padding:8px var(--gutter) 0;flex-direction:column;gap:22px}.expo__intro{width:auto;padding:0;font-size:18px}.expo__hint{display:none}.poster{width:100%;max-width:560px}.poster:hover{box-shadow:none;transform:none}.poster__art{aspect-ratio:4/3}}.skills__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:26px;display:flex}.skills__filters{flex-wrap:wrap;gap:8px;display:flex}.chip{border:2px solid var(--ink);font-family:var(--font-display);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:9px 16px;font-size:16px;font-weight:650;transition:background .25s,color .25s;display:inline-flex}.chip:hover{background:var(--bg-2)}.chip.is-on{background:var(--ink);color:var(--bg)}.chip.is-on .shape--ink{fill:var(--bg)}.skills__count{color:var(--muted);font-size:13px}.tiles{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.tile{border:2px solid var(--ink);background:var(--card);align-content:start;gap:6px;min-height:132px;padding:16px 18px;transition:background .3s,color .3s;display:grid;position:relative}.tile.is-hidden{display:none}.tile__shape{transition:transform .5s var(--ease-out);margin-bottom:10px}.tile__name{font-family:var(--font-display);font-size:21px;font-weight:700;line-height:1.05}.tile__note{color:var(--muted);font-size:14.5px;line-height:1.4;transition:color .3s}.tile:hover .tile__shape{transform:rotate(-20deg)scale(1.15)}.tile--cloud:hover{background:var(--blue);color:var(--on-color)}.tile--devops:hover{background:var(--red);color:var(--on-color)}.tile--ai:hover{background:var(--yellow);color:#151413}.tile--code:hover,.tile--tools:hover{background:var(--ink);color:var(--bg)}.tile:hover .tile__note{color:inherit;opacity:.85}.tile--cloud:hover .tile__shape,.tile--devops:hover .tile__shape,.tile--code:hover .tile__shape,.tile--tools:hover .tile__shape{fill:currentColor}.tile--ai:hover .tile__shape{fill:#151413}.creds{grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr);gap:clamp(32px,5vw,72px);margin-top:clamp(72px,9vw,120px);display:grid}.creds__title{border-bottom:2.5px solid var(--ink);margin-bottom:4px;padding-bottom:14px;font-size:clamp(24px,2.4vw,32px)}.cert{border-bottom:1.5px solid var(--line-2);grid-template-columns:26px 1fr auto;align-items:center;gap:18px;padding:16px 0;display:grid}.cert__name{font-family:var(--font-display);font-size:20px;font-weight:700;line-height:1.15}.cert__meta{color:var(--muted);margin-top:3px;font-size:15px}.cert__link{border:2px solid var(--ink);place-items:center;width:42px;height:42px;transition:background .2s,color .2s;display:grid}.cert__link:hover{background:var(--ink);color:var(--bg)}.cert__link svg{width:18px;height:18px}.cert__badge{background:var(--yellow);color:#151413;white-space:nowrap;padding:4px 10px;font-size:12px}.creds__langs li{border-bottom:1.5px solid var(--line-2);font-family:var(--font-display);justify-content:space-between;gap:12px;padding:16px 0;font-size:20px;font-weight:650;display:flex}.creds__langs .mono{color:var(--muted);font-size:14px;font-weight:400}@media (width<=860px){.creds{grid-template-columns:1fr}}@media (width<=520px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{min-height:120px;padding:14px}.tile__name{font-size:18px}}.interview__grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:clamp(24px,4vw,56px);display:grid}.interview__lead{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;font-size:13px}.interview__questions ul{gap:8px;display:grid}.question{border:2px solid var(--ink);background:var(--card);width:100%;font-family:var(--font-display);text-align:left;cursor:pointer;transition:background .2s, color .2s, transform .3s var(--ease-out), box-shadow .3s var(--ease-out);align-items:center;gap:12px;padding:12px 14px;font-size:18px;font-weight:600;display:flex}.question:hover:not(:disabled){box-shadow:4px 4px 0 var(--ink);transform:translate(-3px,-3px)}.question:disabled{cursor:wait}.question__box{border:2px solid var(--ink);flex:none;place-items:center;width:22px;height:22px;display:grid}.question__box svg{width:16px;height:16px}.question.is-asked{color:var(--muted)}.question.is-asked .question__box{background:var(--yellow);border-color:var(--yellow);color:#151413}.chat{border:2.5px solid var(--ink);background:var(--card);flex-direction:column;height:min(620px,78vh);display:flex;position:sticky;top:96px}.chat__head{border-bottom:2.5px solid var(--ink);align-items:center;gap:12px;padding:12px 14px;display:flex}.chat__avatar{border:2px solid var(--ink);flex:none;width:44px}.chat__name{font-family:var(--font-display);font-size:18px;font-weight:700}.chat__sub{color:var(--muted);font-size:11.5px}.chat__restart{border:1.5px solid var(--ink);cursor:pointer;background:0 0;margin-left:auto;padding:6px 10px;font-size:12px}.chat__restart:disabled{opacity:.35;cursor:default}.chat__log{scrollbar-width:thin;flex-direction:column;flex:1;gap:12px;padding:18px;display:flex;overflow-y:auto}.msg{max-width:86%;animation:msg-in .35s var(--ease-out)}@keyframes msg-in{0%{opacity:0;transform:translateY(10px)}}.msg p{padding:12px 15px;font-size:16.5px;line-height:1.5}.msg--me p{border:2px solid var(--ink);background:var(--bg)}.msg--you{align-self:flex-end}.msg--you p{background:var(--blue);color:var(--on-color);font-weight:550}.msg__caret{vertical-align:-.12em;background:var(--red);width:9px;height:1em;margin-left:3px;display:inline-block}.msg--typing{border:2px solid var(--ink);background:var(--bg);gap:6px;width:fit-content;padding:14px 16px;display:flex}.msg--typing span{background:var(--blue);width:10px;height:10px;animation:bounce 1s var(--ease-in-out) infinite;border-radius:50%}.msg--typing span:nth-child(2){background:var(--red);border-radius:0;animation-delay:.15s}.msg--typing span:nth-child(3){background:var(--yellow);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;animation-delay:.3s}@keyframes bounce{0%,to{transform:none}40%{transform:translateY(-7px)}}@media (width<=860px){.interview__grid{grid-template-columns:1fr}.chat{height:400px;position:static}}.moments__grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(60px,auto);gap:20px;display:grid;position:relative}.moment .photo{border:2.5px solid var(--ink);height:100%}.moment--1{grid-area:1/1/6/7}.moment--1 .photo{aspect-ratio:4/3}.moment--2{grid-area:1/8/4/12;align-self:center}.moment--3{grid-area:5/7/9/13}.moment--3 .photo{aspect-ratio:3/2}.moment--4{grid-area:7/2/12/5}.moment--4 .photo{aspect-ratio:3/4}.moment--5{grid-area:10/7/14/12}.moment--5 .photo{aspect-ratio:4/3}.moments__deco{pointer-events:none;position:absolute}.moments__deco--tri{aspect-ratio:1;background:var(--yellow);clip-path:polygon(50% 0,100% 100%,0 100%);width:clamp(80px,11vw,150px);top:44%;left:0}.moments__deco--bar{background:var(--ink);width:clamp(140px,22vw,300px);height:18px;bottom:8%;left:36%}.moments__deco--dot{aspect-ratio:1;background:var(--red);border-radius:50%;width:clamp(40px,5vw,70px);top:2%;right:2%}@media (width<=760px){.moments__grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}.moment--1{grid-area:1/1/auto/-1}.moment--2{grid-area:2/1}.moment--4{grid-area:2/2}.moment--3{grid-area:3/1/auto/-1}.moment--5{grid-area:auto/1/auto/-1}.moments__deco{display:none}}.contact{border-top:3px solid var(--ink);overflow:hidden}.contact__label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:13px}.contact__title{letter-spacing:-.06em;white-space:nowrap;margin-top:10px;font-size:clamp(76px,17vw,260px);font-weight:800;line-height:.85}.contact__o{background:var(--blue);vertical-align:baseline;width:.54em;height:.54em;animation:breathe 3.2s var(--ease-in-out) infinite;border-radius:50%;margin-left:.05em;display:inline-block}@keyframes breathe{50%{transform:scale(.86)}}.contact__grid{border-top:2.5px solid var(--ink);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);margin-top:clamp(36px,5vw,64px);padding-top:28px;display:grid}.contact__text{font-size:clamp(18px,1.7vw,22px)}.contact__pill{margin-top:20px}.contact__time{color:var(--muted);margin-top:16px;font-size:13px}.contact__actions{align-content:start;gap:18px;display:grid}.contact__email{border:2.5px solid var(--ink);background:var(--card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 14px 14px 20px;display:flex}.contact__address{font-family:var(--font-display);overflow-wrap:anywhere;font-size:clamp(18px,2vw,26px);font-weight:700}.contact__links{flex-wrap:wrap;gap:10px;display:flex}@media (width<=860px){.contact__grid{grid-template-columns:1fr}}.footer{border-top:2.5px solid var(--ink);color:var(--muted);padding:30px 0 36px;font-size:14.5px}.footer__inner{flex-wrap:wrap;align-items:center;gap:10px 26px;display:flex}.footer__shapes{gap:4px;display:flex}.footer__built{flex:320px}.footer__top{font-family:var(--font-display);color:var(--ink);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:6px 2px;font-size:15px;font-weight:650}.cursor{z-index:120;pointer-events:none;position:fixed;top:0;left:0}.cursor__shape{background:var(--ink);width:10px;height:10px;transition:width .35s var(--ease-out), height .35s var(--ease-out), border-radius .35s, background .3s, border-color .3s, clip-path .35s, opacity .3s;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.cursor--none .cursor__shape{opacity:0}.cursor--link .cursor__shape{border:2px solid var(--ink);background:0 0;width:46px;height:46px}.cursor--cloud .cursor__shape{background:var(--blue);width:28px;height:28px}.cursor--devops .cursor__shape{background:var(--red);border-radius:0;width:24px;height:24px}.cursor--ai .cursor__shape{background:var(--yellow);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;width:30px;height:28px}.cursor--code .cursor__shape,.cursor--tools .cursor__shape{background:var(--ink);border-radius:26px 26px 0 0;width:26px;height:13px}.cursor--drag .cursor__shape{background:var(--ink);width:74px;height:74px}.cursor__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bg);opacity:0;font-size:12px;transition:opacity .25s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.cursor--drag .cursor__label{opacity:1}
