.pf{--ink: #0E1013;--ink-2: #15181C;--ink-3: #1C2024;--paper: #ECE7DD;--paper-dim: #B7B2A8;--grey: #6B6F75;--grey-line: #2A2E33;--grey-line2: #353A40;--accent: #2BD4D9;--accent-ink: #0E1013;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Space Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--maxw: 1400px;--gut: clamp(20px, 5vw, 64px);--rule: 1px solid var(--grey-line);--ease: cubic-bezier(.22,.61,.36,1);--dur: .6s}.pf[data-theme=informal]{--accent: #FF4D2E;--ease: cubic-bezier(.34,1.56,.4,1);--dur: .55s}.pf[data-secret=on]{--accent: #C8FF3D}.pf *,.pf *:before,.pf *:after{box-sizing:border-box}.pf{-webkit-text-size-adjust:100%;margin:0;background:var(--ink);color:var(--paper);font-family:var(--font-body);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}.pf h1,.pf h2,.pf h3,.pf h4,.pf p,.pf figure,.pf ul{margin:0;padding:0}.pf ul{list-style:none}.pf a{color:inherit;text-decoration:none}.pf img{display:block;max-width:100%}.pf button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}.pf ::-moz-selection{background:var(--accent);color:var(--accent-ink)}.pf ::selection{background:var(--accent);color:var(--accent-ink)}.pf:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9000;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:screen}.pf .skip{position:fixed;left:12px;top:-60px;z-index:10000;background:var(--accent);color:var(--accent-ink);padding:10px 16px;font-family:var(--font-mono);font-size:12px;border-radius:2px;transition:top .2s var(--ease)}.pf .skip:focus{top:12px}.pf :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.pf .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}.pf .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}.pf .mono{font-family:var(--font-mono);font-weight:400;letter-spacing:.04em}.pf .label{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey)}.pf .accent{color:var(--accent)}.pf .sec-head{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:20px;padding-block:22px;border-top:1px solid var(--grey-line2);margin-bottom:clamp(36px,6vw,72px)}.pf .sec-num{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;color:var(--accent)}.pf .sec-title{font-family:var(--font-display);font-weight:500;font-size:clamp(28px,5vw,56px);letter-spacing:-.02em;line-height:1}.pf .sec-meta{font-family:var(--font-mono);font-size:11px;color:var(--grey);text-align:right}.pf section{position:relative}.pf .pad{padding-block:clamp(80px,12vw,160px)}.pf .reveal{will-change:transform,opacity}.pf header.site{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:16px var(--gut);mix-blend-mode:difference}.pf .brand{font-family:var(--font-mono);font-weight:700;font-size:15px;letter-spacing:.02em;color:#fff;display:inline-flex;align-items:center;gap:8px}.pf .brand .dot{width:7px;height:7px;background:var(--accent);border-radius:50%;mix-blend-mode:normal}.pf nav.main{display:flex;gap:26px}.pf nav.main a{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:#fff;opacity:.8;position:relative}.pf nav.main a:after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:currentColor;transition:right .35s var(--ease)}.pf nav.main a:hover{opacity:1}.pf nav.main a:hover:after{right:0}.pf .theme-toggle{display:inline-flex;align-items:center;gap:0;border:1px solid #fff;border-radius:2px;overflow:hidden;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em}.pf .theme-toggle span{padding:6px 10px;color:#fff;transition:background .3s var(--ease),color .3s var(--ease)}.pf .theme-toggle .on{background:#fff;color:#000}@media(max-width:760px){.pf nav.main{display:none}}.pf #hero{min-height:100svh;display:flex;align-items:stretch}.pf .hero-grid{flex:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-template-rows:auto 1fr auto 1fr auto;align-items:end;padding-top:92px;padding-bottom:40px;position:relative}.pf .hero-meta-top{grid-column:1 / 2;grid-row:1 / 2;align-self:start;display:flex;flex-direction:column;gap:6px;padding-top:8px}.pf .hero-canvas-wrap{grid-column:2 / 3;grid-row:1 / 5;position:relative;align-self:stretch;min-height:56svh}.pf #hero-canvas{position:absolute;inset:0;width:100%;height:100%}.pf .hero-canvas-frame{position:absolute;inset:0;border:1px solid var(--grey-line);pointer-events:none}.pf .hero-canvas-frame:before,.pf .hero-canvas-frame:after{content:"";position:absolute;width:9px;height:9px;border:1px solid var(--accent)}.pf .hero-canvas-frame:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.pf .hero-canvas-frame:after{bottom:-1px;right:-1px;border-left:0;border-top:0}.pf .canvas-cap{position:absolute;bottom:10px;left:12px;font-family:var(--font-mono);font-size:10px;color:var(--grey);letter-spacing:.08em}.pf .hero-headline{grid-column:1 / 2;grid-row:3 / 4;z-index:2;position:relative}.pf .hero-name{font-family:var(--font-display);font-weight:500;font-size:clamp(56px,13.5vw,200px);line-height:.86;letter-spacing:-.035em;text-transform:uppercase}.pf .hero-name .l2{display:block}.pf .hero-name .l2:empty{display:none}.pf .hero-headline{margin-right:-14%}.pf .hero-line{max-width:46ch;margin-top:26px;font-size:clamp(15px,1.5vw,19px);color:var(--paper-dim);line-height:1.55}.pf .hero-line strong{color:var(--paper);font-weight:500}.pf .hero-foot{grid-column:1 / 3;grid-row:5 / 6;display:flex;justify-content:space-between;align-items:end;margin-top:34px;padding-top:16px;border-top:var(--rule);gap:20px}.pf .hero-foot .col{display:flex;flex-direction:column;gap:3px}.pf .scrollcue{display:flex;align-items:center;gap:10px}.pf .scrollcue .bar{width:46px;height:1px;background:var(--grey);position:relative;overflow:hidden}.pf .scrollcue .bar:after{content:"";position:absolute;inset:0;background:var(--accent);transform:translate(-100%);animation:cue 2.4s var(--ease) infinite}@keyframes cue{0%{transform:translate(-100%)}55%,to{transform:translate(100%)}}@media(max-width:900px){.pf .hero-grid{grid-template-columns:1fr;grid-template-rows:auto auto auto;align-items:start;gap:8px}.pf .hero-canvas-wrap{grid-column:1;grid-row:1;min-height:44svh;order:-1}.pf .hero-meta-top{grid-column:1;grid-row:2}.pf .hero-headline{grid-column:1;grid-row:3;margin-right:0}.pf .hero-foot{grid-column:1;grid-row:4;flex-direction:column;align-items:flex-start}}.pf #marquee{border-block:1px solid var(--grey-line2);padding-block:22px;overflow:hidden;background:var(--ink-2)}.pf .marquee-track{display:flex;gap:0;width:-moz-max-content;width:max-content;will-change:transform}.pf .marquee-item{display:inline-flex;align-items:center;gap:26px;padding-inline:26px;font-family:var(--font-display);font-weight:500;font-size:clamp(22px,3.4vw,44px);letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap;color:var(--paper)}.pf .marquee-item .sep{color:var(--accent);font-family:var(--font-mono);font-size:.5em}.pf .marquee-item:nth-child(odd){color:var(--paper-dim);-webkit-text-stroke:1px var(--grey-line2)}.pf .exp-row{display:grid;grid-template-columns:64px 1.4fr 1fr;gap:clamp(16px,4vw,56px);padding-block:clamp(28px,4vw,44px);border-top:var(--rule);align-items:start;transition:background .4s var(--ease)}.pf .exp-row:last-child{border-bottom:var(--rule)}.pf .exp-row:hover{background:linear-gradient(90deg,var(--ink-2),transparent 70%)}.pf .exp-idx{font-family:var(--font-mono);font-size:12px;color:var(--accent);padding-top:6px}.pf .exp-role{font-family:var(--font-display);font-weight:500;font-size:clamp(22px,3vw,34px);letter-spacing:-.02em;line-height:1.04}.pf .exp-co{font-family:var(--font-mono);font-size:12px;color:var(--paper-dim);margin-top:8px;letter-spacing:.03em}.pf .exp-date{font-family:var(--font-mono);font-size:12px;color:var(--grey);margin-top:4px}.pf .exp-desc{color:var(--paper-dim);font-size:15px;line-height:1.6;max-width:44ch}.pf .tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.pf .tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;padding:4px 9px;border:1px solid var(--grey-line2);border-radius:2px;color:var(--paper-dim)}@media(max-width:760px){.pf .exp-row{grid-template-columns:40px 1fr}.pf .exp-row .exp-desc-wrap{grid-column:1 / 3}}.pf .skills-layout{display:grid;grid-template-columns:1fr;gap:clamp(40px,6vw,72px)}.pf .principles{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--grey-line2)}.pf .principle{padding:22px 18px;border-right:1px solid var(--grey-line2);border-bottom:1px solid var(--grey-line2);position:relative;overflow:hidden}.pf .principle:nth-child(4n){border-right:0}.pf .principle:nth-child(n+5){border-bottom:0}.pf .principle .p-num{font-family:var(--font-mono);font-size:11px;color:var(--grey)}.pf .principle .p-name{font-family:var(--font-display);font-weight:500;font-size:clamp(15px,1.6vw,20px);margin-top:28px}.pf .principle:after{content:"";position:absolute;left:18px;bottom:16px;width:0;height:2px;background:var(--accent);transition:width .5s var(--ease)}.pf .principle:hover:after{width:28px}@media(max-width:760px){.pf .principles{grid-template-columns:repeat(2,1fr)}.pf .principle:nth-child(4n){border-right:1px solid var(--grey-line2)}.pf .principle:nth-child(2n){border-right:0}.pf .principle:nth-child(n+5){border-bottom:1px solid var(--grey-line2)}.pf .principle:nth-child(7),.pf .principle:nth-child(8){border-bottom:0}}.pf #projects{padding-top:clamp(36px,5vw,80px)}.pf .gallery-pin{position:relative;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;outline:none}.pf .gallery-pin::-webkit-scrollbar{display:none}.pf .gallery-pin:focus-visible{box-shadow:inset 0 0 0 1px var(--accent)}.pf .gallery-prog{max-width:var(--maxw);margin:22px auto 0;padding-inline:var(--gut)}.pf .gallery-prog>span{display:block;height:1px;background:var(--grey-line2);position:relative}.pf .gallery-prog>span>i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(0);background:var(--accent);height:1px}.pf .gallery-track{display:flex;align-items:stretch;gap:clamp(20px,3vw,40px);padding-inline:var(--gut);width:-moz-max-content;width:max-content}.pf .pcard{flex:none;position:relative;scroll-snap-align:start;border:1px solid var(--grey-line2);background:var(--ink-2);display:flex;flex-direction:column;justify-content:space-between;padding:22px;overflow:hidden;transition:border-color .4s var(--ease)}.pf .pcard:hover{border-color:var(--accent)}.pf .pcard.tall,.pf .pcard.wide{width:clamp(380px,33vw,500px);height:60vh}.pf .pcard-plate{position:absolute;inset:0;z-index:0;background:repeating-linear-gradient(0deg,transparent 0 23px,var(--grey-line) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,var(--grey-line) 23px 24px);opacity:.5;-webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent)}.pf .pcard-big{position:relative;z-index:1;font-family:var(--font-display);font-weight:700;font-size:clamp(46px,8vw,120px);line-height:.9;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px var(--grey-line2);align-self:flex-end;margin-top:auto;transition:-webkit-text-stroke-color .4s var(--ease),color .4s var(--ease)}.pf .pcard:hover .pcard-big{-webkit-text-stroke-color:var(--accent)}.pf .pcard-top{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:start;gap:12px}.pf .pcard-idx{font-family:var(--font-mono);font-size:12px;color:var(--accent)}.pf .pcard-type{font-family:var(--font-mono);font-size:10.5px;color:var(--grey);letter-spacing:.1em;text-transform:uppercase;text-align:right}.pf .pcard-info{position:relative;z-index:1;margin-top:16px}.pf .pcard-title{font-family:var(--font-display);font-weight:500;font-size:clamp(18px,2vw,26px);letter-spacing:-.01em}.pf .pcard-desc{color:var(--paper-dim);font-size:13.5px;line-height:1.5;margin-top:8px;max-width:40ch}.pf .pcard-foot{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:end;gap:12px;margin-top:18px;padding-top:12px;border-top:var(--rule)}.pf .pcard-tech{font-family:var(--font-mono);font-size:11px;color:var(--paper-dim)}.pf .pcard-link{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--accent);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.pf .pcard-link .arrow{transition:transform .3s var(--ease)}.pf .pcard-link:hover .arrow{transform:translate(3px,-3px)}.pf .gallery-end{flex:none;width:clamp(220px,24vw,360px);height:60vh;display:flex;flex-direction:column;justify-content:center;gap:14px}.pf .gallery-end .big{font-family:var(--font-display);font-weight:500;font-size:clamp(28px,4vw,52px);letter-spacing:-.02em;line-height:1}.pf .gallery-hint{font-family:var(--font-mono);font-size:11px;color:var(--grey);margin-top:18px}@media(max-width:760px){.pf .pcard.tall,.pf .pcard.wide{width:82vw;height:64vh}.pf .gallery-end{width:60vw}}.pf .gh-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(20px,3vw,36px)}.pf .panel{border:1px solid var(--grey-line2);background:var(--ink-2);padding:22px}.pf .panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.pf .panel-head .t{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim)}.pf .panel-head .s{font-family:var(--font-mono);font-size:11px;color:var(--grey)}.pf .counters{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--grey-line2);margin-bottom:clamp(20px,3vw,36px)}.pf .counter{padding:22px 18px;border-right:1px solid var(--grey-line2)}.pf .counter:last-child{border-right:0}.pf .counter .num{font-family:var(--font-display);font-weight:500;font-size:clamp(28px,4vw,48px);letter-spacing:-.02em;line-height:1}.pf .counter .num .suffix{color:var(--accent)}.pf .counter .cap{font-family:var(--font-mono);font-size:10.5px;color:var(--grey);letter-spacing:.08em;text-transform:uppercase;margin-top:8px}@media(max-width:760px){.pf .counters{grid-template-columns:repeat(2,1fr)}.pf .counter:nth-child(2n){border-right:0}.pf .counter{border-bottom:1px solid var(--grey-line2)}.pf .gh-grid{grid-template-columns:1fr}}.pf .heat{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:3px}.pf .heat .cell{width:100%;aspect-ratio:1;border-radius:1px;background:var(--ink-3)}.pf .heat-scale{display:flex;align-items:center;gap:6px;margin-top:14px;font-family:var(--font-mono);font-size:10px;color:var(--grey)}.pf .heat-scale .sw{width:11px;height:11px;border-radius:1px}.pf .lang{margin-bottom:16px}.pf .lang:last-child{margin-bottom:0}.pf .lang-top{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:12px;margin-bottom:6px}.pf .lang-top .pct{color:var(--paper-dim)}.pf .lang-bar{height:6px;background:var(--ink-3);border-radius:2px;overflow:hidden}.pf .lang-fill{height:100%;width:0;background:var(--accent);border-radius:2px}.pf .lang:nth-child(2) .lang-fill{opacity:1}.pf .lang:nth-child(3) .lang-fill{opacity:.82}.pf .lang:nth-child(4) .lang-fill{opacity:.6}.pf .lang:nth-child(5) .lang-fill{opacity:.42}.pf .lang:nth-child(6) .lang-fill{opacity:.28}.pf .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}.pf .contact-headline{font-family:var(--font-display);font-weight:500;font-size:clamp(34px,6vw,72px);letter-spacing:-.03em;line-height:.95}.pf .contact-body{color:var(--paper-dim);font-size:16px;line-height:1.6;max-width:38ch;margin-top:22px}.pf .contact-links{margin-top:32px;display:flex;flex-direction:column;gap:0;border-top:var(--rule)}.pf .contact-link{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:var(--rule);font-family:var(--font-mono);font-size:13px;transition:padding .3s var(--ease),color .3s var(--ease)}.pf .contact-link:hover{padding-left:12px;color:var(--accent)}.pf .contact-link .k{color:var(--grey)}.pf .contact-link .v{display:inline-flex;gap:10px;align-items:center}.pf form.contact{display:flex;flex-direction:column;gap:18px}.pf .field{display:flex;flex-direction:column;gap:8px}.pf .field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--grey)}.pf .field input,.pf .field textarea{background:var(--ink-2);border:1px solid var(--grey-line2);border-radius:2px;color:var(--paper);font-family:var(--font-body);font-size:15px;padding:13px 14px;transition:border-color .3s var(--ease)}.pf .field input:focus,.pf .field textarea:focus{outline:none;border-color:var(--accent)}.pf .field textarea{resize:vertical;min-height:120px}.pf .submit{display:inline-flex;align-items:center;justify-content:center;gap:12px;align-self:flex-start;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:14px 26px;border-radius:2px;transition:transform .25s var(--ease),opacity .25s var(--ease)}.pf .submit:hover{transform:translateY(-2px)}.pf .submit:disabled{opacity:.5;pointer-events:none}.pf .form-status{font-family:var(--font-mono);font-size:12px;min-height:1.2em;color:var(--accent);opacity:0;transition:opacity .3s var(--ease)}.pf .form-status.show{opacity:1}.pf .form-status.err{color:#ff6b5e}@media(max-width:760px){.pf .contact-grid{grid-template-columns:1fr}}.pf footer.site{border-top:1px solid var(--grey-line2);padding-block:40px;display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center}.pf footer .f-mono{font-family:var(--font-mono);font-size:11px;color:var(--grey);letter-spacing:.04em}.pf footer .f-center{text-align:center;font-family:var(--font-display);font-weight:500;font-size:14px}.pf footer .f-right{text-align:right}.pf footer a:hover{color:var(--accent)}@media(max-width:640px){.pf footer.site{grid-template-columns:1fr;text-align:left}.pf footer .f-center,.pf footer .f-right{text-align:left}}.pf .cursor,.pf .cursor-ring{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;mix-blend-mode:difference}.pf .cursor{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:#fff;border-radius:50%}.pf .cursor-ring{width:26px;height:26px;margin:-13px 0 0 -13px;border:1px solid #fff;border-radius:50%;transition:width .25s var(--ease),height .25s var(--ease),margin .25s var(--ease),border-radius .25s var(--ease)}.pf .cursor-ring.snap{width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border-color:var(--accent)}.pf.has-cursor,.pf.has-cursor a,.pf.has-cursor button,.pf.has-cursor input,.pf.has-cursor textarea{cursor:none}.pf .term{position:fixed;inset:0;z-index:9500;display:none;background:#0e1013eb;backdrop-filter:blur(2px);align-items:center;justify-content:center;padding:24px}.pf .term.show{display:flex}.pf .term-box{width:min(560px,92vw);border:1px solid var(--accent);background:var(--ink);font-family:var(--font-mono);font-size:13px;line-height:1.7}.pf .term-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--grey-line2)}.pf .term-bar .d{width:9px;height:9px;border-radius:50%;background:var(--grey-line2)}.pf .term-bar .d.a{background:var(--accent)}.pf .term-bar .t{margin-left:8px;color:var(--grey);font-size:11px}.pf .term-body{padding:18px 16px 22px;color:var(--paper-dim)}.pf .term-body .p{color:var(--accent)}.pf .term-body b{color:var(--paper);font-weight:500}.pf .term-close{margin-top:16px;color:var(--grey)}.pf.loading{overflow:hidden}.pf #preloader{position:fixed;inset:0;z-index:9800;background:var(--ink);display:flex;flex-direction:column;justify-content:flex-end;gap:18px;padding:var(--gut)}.pf .pl-bar{height:1px;width:100%;background:var(--grey-line2)}.pf .pl-bar>i{display:block;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%}.pf .pl-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.pf #plLines{display:flex;flex-direction:column;gap:5px;font-family:var(--font-mono);font-size:clamp(11px,1.2vw,13px);color:var(--paper-dim)}.pf #plLines .l{opacity:0}.pf #plLines .l .p{color:var(--accent)}.pf .pl-count{font-family:var(--font-display);font-weight:500;font-size:clamp(64px,13vw,180px);line-height:.78;letter-spacing:-.04em}.pf .pl-count .pct{color:var(--grey);font-size:.3em;vertical-align:super}.pf .reg{position:fixed;width:13px;height:13px;z-index:800;pointer-events:none;border:1px solid var(--grey-line2)}.pf .reg.tl{top:13px;left:13px;border-right:0;border-bottom:0}.pf .reg.tr{top:13px;right:13px;border-left:0;border-bottom:0}.pf .reg.bl{bottom:13px;left:13px;border-right:0;border-top:0}.pf .reg.br{bottom:13px;right:13px;border-left:0;border-top:0}.pf .scroll-prog{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;z-index:8500}.pf .rail{position:fixed;left:20px;top:50%;transform:translateY(-50%);z-index:900;display:flex;flex-direction:column;gap:13px;mix-blend-mode:difference}.pf .rail a{display:flex;align-items:center;gap:11px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:#fff;opacity:.5;transition:opacity .3s var(--ease)}.pf .rail a .tick{width:14px;height:1px;background:#fff;transition:width .35s var(--ease),background .35s var(--ease)}.pf .rail a .rlabel{text-transform:uppercase;opacity:0;transform:translate(-5px);transition:opacity .3s var(--ease),transform .35s var(--ease)}.pf .rail a:hover{opacity:1}.pf .rail a:hover .rlabel{opacity:1;transform:none}.pf .rail a.active{opacity:1}.pf .rail a.active .tick{width:30px;background:var(--accent)}.pf .rail a.active .rlabel{opacity:1;transform:none}@media(max-width:1180px){.pf .rail{display:none}}@media(prefers-reduced-motion:reduce){.pf *{scroll-behavior:auto!important}.pf .scrollcue .bar:after{animation:none;transform:translate(0)}}.pf .brand{display:inline-flex;align-items:center;gap:9px}.pf .brand-logo{height:56px;width:auto;display:block;filter:brightness(0) invert(.92);transition:filter .3s var(--ease)}.pf .brand-logo.li,.pf[data-theme=informal] .brand-logo.lf{display:none}.pf[data-theme=informal] .brand-logo.li{display:block}.pf .pcard-img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;z-index:0;opacity:.5;filter:grayscale(.25) contrast(1.03);transition:opacity .4s var(--ease)}.pf .pcard-img-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#0e101373,#0e1013d1 68%,#0e1013f2)}.pf .pcard>*:not(.pcard-img):not(.pcard-img-scrim){position:relative;z-index:2}.pf .pcard:hover .pcard-img{opacity:.62}.pf .skills-layout{display:block}@media(max-width:860px){.pf .skills-layout{grid-template-columns:1fr;gap:32px}}.pf .tech-arsenal{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:1px;background:var(--grey-line);border:1px solid var(--grey-line)}.pf .tech-chip{background:var(--ink);padding:16px 15px 15px;display:flex;flex-direction:column;gap:11px;min-height:102px;transition:background .35s var(--ease)}.pf .tech-chip:hover{background:var(--ink-2)}.pf .tc-num{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--grey)}.pf .tech-chip img{width:26px;height:26px;filter:grayscale(1) brightness(1.7) opacity(.6);transition:filter .35s var(--ease)}.pf .tech-chip:hover img{filter:none}.pf .tc-name{font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;color:var(--paper-dim);margin-top:auto}.pf a,.pf .accent,.pf .tag,.pf .pcard-link,.pf .submit,.pf .sec-num,.pf .rail a,.pf .label,.pf .lang-fill,.pf .cursor-ring,.pf .brand .dot{transition:color .55s var(--ease),background-color .55s var(--ease),border-color .55s var(--ease),fill .55s var(--ease)}.pf .sec-desc{grid-column:2 / -1;max-width:64ch;margin-top:12px;font-family:var(--font-mono);font-size:13px;line-height:1.65;color:var(--paper-dim)}@media(max-width:700px){.pf .sec-desc{grid-column:1 / -1;font-size:12px}}.pf footer.site{display:block;border-top:1px solid var(--grey-line2);padding:clamp(48px,6vw,72px) 0 28px;margin-top:clamp(40px,8vw,120px)}.pf .foot-top{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut);display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:clamp(28px,4vw,72px);align-items:start}@media(max-width:760px){.pf .foot-top{grid-template-columns:1fr;gap:34px}}.pf .foot-logo{display:inline-flex}.pf .foot-brand .brand-logo{height:40px}.pf .foot-tagline{margin-top:18px;max-width:40ch;color:var(--paper-dim);font-size:14px;line-height:1.6}.pf .foot-status{margin-top:14px;font-size:12px;color:var(--grey)}.pf .foot-status a{color:var(--paper-dim)}.pf .foot-status a:hover{color:var(--accent)}.pf .foot-col{display:flex;flex-direction:column;gap:11px}.pf .foot-col .label{margin-bottom:5px}.pf .foot-col a{font-family:var(--font-mono);font-size:13px;color:var(--paper-dim);width:-moz-fit-content;width:fit-content;transition:color .3s var(--ease)}.pf .foot-col a:hover{color:var(--accent)}.pf .foot-bottom{max-width:var(--maxw);margin:clamp(36px,5vw,60px) auto 0;padding:20px var(--gut) 0;border-top:1px solid var(--grey-line);display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center}.pf .foot-bottom .f-mono{font-family:var(--font-mono);font-size:11px;color:var(--grey)}.pf .foot-bottom .f-right{text-align:right}.pf .foot-bottom .f-center{font-family:var(--font-display);font-weight:500;font-size:18px;letter-spacing:-.01em}@media(max-width:760px){.pf .foot-bottom{grid-template-columns:1fr;text-align:left;gap:10px}.pf .foot-bottom .f-right{text-align:left}}
