:root{--paper: #ffffff;--blue: #1547fc;--ink: #2358fc;--deep: #052385;--navy: #001451;--edge: #8c9def;--mist: #c6d1f1;--line: #363731;--water: #e3e4e6;--text: #000000;--soft: #2e2e2e;--hair: #cfd1d6;--f: "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;--m: clamp(16px, 4.2vw, 84px);--gap: clamp(16px, 1.8vw, 32px);--water-y: 50svh;--fs: 30vw;--bshift: .14em}html{background:var(--paper);color:var(--text);scroll-behavior:smooth}body{font:400 18px/1.5 var(--f);background:var(--paper);color:var(--text);overflow-x:hidden;-webkit-hyphens:manual;hyphens:manual}a{color:inherit}::selection{background:var(--blue);color:#fff}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}main:focus{outline:none}.skip{position:absolute;left:12px;top:-80px;z-index:50;background:var(--blue);color:#fff;padding:12px 16px;font-weight:600;text-decoration:none}.skip:focus{top:12px;outline-color:#000}.hero{position:relative;height:100svh;min-height:540px;overflow:hidden;background:var(--paper);isolation:isolate}.hero-title{margin:0}.word{position:absolute;left:var(--m);top:0;height:var(--water-y);z-index:2;display:flex;align-items:flex-end;font:800 var(--fs)/1 var(--f);letter-spacing:-.048em;color:var(--blue);clip-path:inset(-20% -8% 0 -8%);pointer-events:none;-webkit-user-select:none;user-select:none}.word-in{position:relative;display:block;white-space:nowrap;transform:translateY(var(--bshift))}.ch{display:inline-block;will-change:transform}.ch-x{position:absolute;top:0;left:0;transform:translateY(1.05em)}html.js .hero:not(.ready) .word{visibility:hidden}.hero.felix .ch-k,.hero.felix .ch-s{transform:translateY(1.1em)}.hero.felix .ch-x{transform:none}.water{position:absolute;left:0;right:0;top:var(--water-y);bottom:0;z-index:1}.ink{width:100%;height:100%;touch-action:pan-y;cursor:crosshair;-webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent 99%);mask-image:linear-gradient(to bottom,#000 70%,transparent 99%)}.ink-still{display:none;position:absolute;inset:0;width:100%;height:100%}.hero.no-gl .ink{display:none}.hero.no-gl .ink-still{display:block}.hero.no-gl .water{background:linear-gradient(#e2e3e6 0,#f4f5f6 26px,#fff 55%)}.waterline{position:absolute;left:0;right:0;top:-2px;height:3px;pointer-events:none;background:linear-gradient(#9a9ca0,var(--line) 50%,#77797c)}.waterline:after{content:"";position:absolute;left:0;right:0;top:3px;height:1px;background:#ffffffd9}.spread{position:absolute;z-index:3;margin:0;left:54%;right:var(--m);top:calc(var(--water-y) + (100% - var(--water-y)) * .5);display:flex;justify-content:space-between;gap:1em;font:600 clamp(15px,1vw,19px)/1.2 var(--f);letter-spacing:-.01em;color:var(--blue);pointer-events:none}.smallprint{position:absolute;z-index:3;left:var(--m);bottom:clamp(18px,3.4vh,40px);pointer-events:none}.sp-block{margin:0;color:var(--blue);font:800 15px/.92 var(--f);letter-spacing:-.035em}.sp-block span{display:block}.sp-date{margin:10px 0 0;font:400 clamp(17px,1.25vw,23px)/1 var(--f);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums}.lang{display:flex;gap:0}.lang button{appearance:none;background:none;border:0;cursor:pointer;min-width:44px;min-height:44px;padding:0 9px;font:600 16px/1 var(--f);letter-spacing:-.01em;color:var(--blue);text-decoration:underline 2px transparent;text-underline-offset:6px}.lang button:hover{text-decoration-color:currentColor}.lang button[aria-pressed=true]{color:var(--text);text-decoration-color:var(--text)}.lang-hero{position:absolute;z-index:4;top:clamp(8px,2vh,22px);right:calc(var(--m) - 9px)}.sec{padding-top:clamp(110px,16vh,200px)}.sec-head{padding:0 var(--m);position:relative;display:flow-root}.sec-word{position:relative;margin:0 0 -.26em;padding-bottom:.26em;font:800 clamp(58px,11.2vw,216px)/.8 var(--f);letter-spacing:-.042em;background:linear-gradient(to bottom,var(--blue) calc(100% - .29em),#6f86f7 calc(100% - .29em));-webkit-background-clip:text;background-clip:text;color:transparent;overflow-wrap:normal;word-break:keep-all;-webkit-hyphens:none;hyphens:none}.sec-word:after{content:"";position:absolute;left:calc(var(--m) * -1);right:calc(var(--m) * -1);bottom:.29em;height:3px;background:linear-gradient(#9a9ca0,var(--line) 50%,#77797c)}.sec-head:after{content:"";position:absolute;left:0;right:0;bottom:calc(-1*clamp(40px,6vw,90px));height:clamp(40px,6vw,90px);background:linear-gradient(#e6e7ea,#fff0);z-index:-1}.sec{position:relative;isolation:isolate}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);padding:0 var(--m)}.minor{margin:0 0 28px;font:700 clamp(24px,1.9vw,34px)/1.1 var(--f);letter-spacing:-.03em;color:var(--text)}.meta{margin:0;color:var(--blue);font:600 16px/1.3 var(--f);letter-spacing:-.005em;font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;min-height:48px;padding:12px 20px;background:var(--blue);color:#fff;border:2px solid var(--blue);font:600 17px/1.1 var(--f);letter-spacing:-.01em;text-decoration:none;cursor:pointer}.btn:hover{background:var(--deep);border-color:var(--deep)}.btn:focus-visible{outline-color:var(--text)}.btn-line{background:#fff;color:var(--blue)}.btn-line:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.lnk{color:var(--blue);font-weight:600;text-decoration:underline 2px;text-underline-offset:5px}.lnk:hover{color:var(--deep)}.tag{display:inline-block;padding:4px 10px 5px;border:2px solid var(--blue);color:var(--blue);font:600 15px/1.1 var(--f)}.about{margin-top:clamp(80px,10vw,150px);align-items:start}.dive{grid-column:1 / span 4;margin:0}.dive-stage{--wl: 71%;position:relative;height:min(84vh,900px);aspect-ratio:542 / 1600;margin:0 auto}.dive-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.dive-up{clip-path:inset(0 0 calc(100% - var(--wl)) 0);z-index:2}.dive-down{clip-path:inset(var(--wl) 0 0 0);transform:translate(2.5%) scaleX(1.035);transform-origin:50% var(--wl);filter:saturate(.55) brightness(1.05) contrast(.9);opacity:.92;z-index:1}.dive-water{position:absolute;z-index:3;top:var(--wl);bottom:-3%;left:-40%;right:-40%;background:linear-gradient(#1547fc29,#1547fc12 40%,#1547fc00);mix-blend-mode:multiply;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent)}.dive-water:before{content:"";position:absolute;left:0;right:0;top:-2px;height:3px;background:linear-gradient(#9a9ca0,var(--line) 50%,#77797c)}.dive-cap{margin-top:18px;text-align:center;color:var(--blue);font:600 15px/1.3 var(--f)}.about-text{grid-column:6 / -1;padding-top:clamp(0px,4vh,60px)}.about-text p{margin:0 0 .8em;max-width:30ch;font:500 clamp(24px,2.25vw,42px)/1.2 var(--f);letter-spacing:-.025em;color:var(--text)}.facts-wrap{margin-top:clamp(80px,10vw,150px)}.facts-wrap .minor{grid-column:1 / -1}.facts{grid-column:1 / -1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:44px var(--gap)}.facts li{border-top:3px solid var(--blue);padding-top:16px}.facts h4{margin:0 0 8px;font:700 21px/1.2 var(--f);letter-spacing:-.02em;color:var(--blue)}.facts p{margin:0;font-size:18px;line-height:1.45;color:var(--text);max-width:34ch}.projects{margin-top:clamp(80px,10vw,150px);display:grid;row-gap:clamp(80px,9vw,150px)}.proj{align-items:center}.proj h3{margin:10px 0 18px;font:800 clamp(38px,3.6vw,68px)/.95 var(--f);letter-spacing:-.045em;color:var(--text);display:flex;align-items:center;gap:.3em}.proj h3 img{width:.9em;height:.9em}.proj p.txt{margin:0 0 26px;font-size:clamp(18px,1.15vw,21px);line-height:1.5;max-width:44ch}.proj-media{margin:0}.proj-media img{width:100%;height:auto}.proj--feature .proj-media{grid-column:1 / span 7}.proj--feature .proj-body{grid-column:9 / -1}.proj--tall .proj-body{grid-column:1 / span 6;grid-row:1}.proj--tall .proj-media{grid-column:8 / span 4;grid-row:1}.proj--tall .proj-media img{max-height:78vh;width:auto;max-width:100%;margin-left:auto}.proj--small{align-items:start}.proj--small .proj-media{grid-column:1 / span 3}.proj--small .proj-body{grid-column:5 / span 6}.proj--small h3{font-size:clamp(28px,2.2vw,40px)}.certs-earned{margin-top:clamp(80px,10vw,150px);row-gap:64px}.cert{grid-column:span 6}.cert-img{border:1px solid var(--hair)}.cert-img img{width:100%;height:auto}.cert h3{margin:22px 0 6px;font:700 clamp(24px,1.7vw,30px)/1.15 var(--f);letter-spacing:-.025em}.cert .issuer{margin:0;font-size:18px}.cert .date{margin:4px 0 20px;font-size:18px}.cert .date time{font-weight:600}.actions{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center}.certs-next{margin-top:clamp(64px,7vw,110px)}.certs-next .minor{grid-column:1 / -1}.next-list{grid-column:1 / -1;list-style:none;margin:0;padding:0}.next-list li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) auto auto;gap:12px var(--gap);align-items:center;padding:22px 0;border-top:1px solid var(--text)}.next-list li:last-child{border-bottom:1px solid var(--text)}.next-list strong{font:700 22px/1.2 var(--f);letter-spacing:-.02em}.cv-block{margin-top:clamp(64px,7vw,110px)}.cv-block:first-child{margin-top:clamp(80px,10vw,150px)}.cv-block>.minor{grid-column:1 / span 3;color:var(--blue)}.cv-block>.cv-body{grid-column:4 / -1}.rows{list-style:none;margin:0;padding:0}.rows li{display:grid;grid-template-columns:170px minmax(0,1fr);gap:4px var(--gap);padding:18px 0;border-top:1px solid var(--text)}.rows li:last-child{border-bottom:1px solid var(--text)}.rows .when{color:var(--blue);font-weight:600;font-variant-numeric:tabular-nums;padding-top:2px}.rows .what{margin:0;font:700 21px/1.25 var(--f);letter-spacing:-.02em}.rows .detail{margin:4px 0 0;font-size:18px;color:var(--soft)}.rows .right{justify-self:start}.skills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px var(--gap)}.skills h4{margin:0 0 6px;font:700 19px/1.2 var(--f);padding-bottom:10px;border-bottom:3px solid var(--blue)}.skills ul{list-style:none;margin:0;padding:0}.skills li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;padding:12px 0;border-bottom:1px solid var(--hair)}.skills .lvl{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-weight:600}.meter{display:inline-flex;gap:3px}.meter i{width:10px;height:10px;border:2px solid var(--blue)}.meter i.on{background:var(--blue)}.pairs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 var(--gap)}.pairs li{padding:16px 0;border-top:1px solid var(--text)}.pairs strong{display:block;font:700 21px/1.2 var(--f);letter-spacing:-.02em}.pairs span{color:var(--blue);font-weight:600}.pairs--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.pairs--wide span{color:var(--soft);font-weight:400}.contact{margin-top:clamp(80px,10vw,150px)}.contact-body{grid-column:1 / -1}.contact .lead{margin:0 0 18px;font:500 clamp(22px,1.8vw,32px)/1.2 var(--f);letter-spacing:-.02em}.mail{display:inline-block;font:800 clamp(24px,5.6vw,108px)/1 var(--f);letter-spacing:-.045em;color:var(--blue);text-decoration:none;overflow-wrap:anywhere}.mail:hover{color:var(--deep);text-decoration:underline 4px;text-underline-offset:.12em}.contact .actions{margin-top:28px}.insta{font-size:clamp(20px,1.5vw,26px)}.foot{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px var(--gap);padding:clamp(120px,16vh,200px) var(--m) 96px}.foot .sp-date{grid-column:1}.foot .lang{grid-column:2;grid-row:1 / span 2;align-self:end;margin-right:-9px}@media(max-width:1100px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.skills{grid-template-columns:1fr}.pairs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){body{font-size:17px}.spread{left:var(--m);top:auto;bottom:calc(clamp(18px,3.4vh,40px) + 72px)}.dive,.about-text,.proj--feature .proj-media,.proj--feature .proj-body,.proj--tall .proj-body,.proj--tall .proj-media,.proj--small .proj-body,.cert,.cv-block>.minor,.cv-block>.cv-body{grid-column:1 / -1;grid-row:auto}.proj--small .proj-media{grid-column:1 / span 6}.dive-stage{height:min(70vh,640px)}.about-text{margin-top:40px;padding-top:0}.proj-body{margin-top:24px}.proj--tall .proj-media img{max-height:60vh;margin:0}.next-list li{grid-template-columns:1fr auto}.next-list li>:nth-child(2){grid-column:1}.rows li{grid-template-columns:1fr}.cv-block>.minor{margin-bottom:16px}}@media(max-width:560px){.facts,.pairs,.pairs--wide{grid-template-columns:1fr}.sec-word{font-size:clamp(44px,13.4vw,80px)}.lang-hero{top:4px}}@media(forced-colors:active){.sec-word{color:CanvasText;background:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
