@import url(https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300&family=Space+Grotesk:wght@400;500;600;700&display=swap);*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.flex{display:flex}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--ink:#f5f3ee;--ink-m:#a7a9ae;--ink-f:#777d87;--paper:#101113;--paper-2:#191b1f;--rule:#30343a;--blue:#a6bfff;--blue-dim:#a6bfff1a;--terminal:#17191d;--terminal-2:#23262c;--terminal-green:#28c840;--serif:"Space Grotesk","DM Sans",system-ui,sans-serif;--sans:"DM Sans",system-ui,sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--max-width:1240px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:56px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);min-height:100vh}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}@keyframes blinkCursor{0%,45%{opacity:1}46%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.pf-tech-card,.pf-tech-card-logo,.pf-tech-card-name,.pf-tech-card:after{transition:none}}.pf-layout{align-items:center;display:flex;flex-direction:column;width:100%}.pf-container{margin:0 auto;max-width:var(--max-width);padding:0 32px;width:100%}.pf-nav{align-items:center;background:var(--paper);border-bottom:1px solid var(--rule);display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;transition:box-shadow .3s;z-index:100}.pf-nav.scrolled{box-shadow:0 1px 12px #0000000f}.pf-nav-inner{align-items:center;display:flex;height:52px;justify-content:space-between;margin:0 auto;max-width:var(--max-width);padding:0 32px;width:100%}.pf-logo{background:none;border:none;color:var(--ink);cursor:pointer;font-family:var(--serif);font-size:17px;letter-spacing:-.02em;text-decoration:none}.pf-nav-links{align-items:center;display:flex;gap:28px;list-style:none}.pf-nav-links button{background:none;border:none;border-bottom:1.5px solid #0000;color:var(--ink-m);cursor:pointer;font-size:12px;font-weight:400;letter-spacing:.12em;padding:4px 0;text-transform:uppercase;transition:color .2s,border-color .2s}.pf-nav-links button:hover{color:var(--blue)}.pf-nav-links button.active{border-bottom-color:var(--blue);color:var(--blue)}.pf-hamburger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:4px}.pf-hamburger span{background:var(--ink);display:block;height:1.5px;transform-origin:center;transition:transform .3s,opacity .3s;width:22px}.pf-hamburger.open span:first-child{transform:rotate(45deg) translate(4.5px,4.5px)}.pf-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.pf-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}.pf-mobile-menu{align-items:center;background:var(--paper);border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:36px;inset:52px 0 0;justify-content:center;position:fixed;z-index:90}.pf-mobile-menu button{background:none;border:none;color:var(--ink);cursor:pointer;font-family:var(--serif);font-size:32px;letter-spacing:-.02em;transition:color .2s}.pf-mobile-menu button:hover{color:var(--blue)}.pf-hero{display:flex;flex-direction:column;justify-content:center;min-height:100svh;padding-top:120px}.pf-hero,.pf-hero-body{align-items:center;width:100%}.pf-hero-body{grid-gap:0 56px;display:grid;gap:0 56px;grid-template-columns:1fr 300px;padding:32px 0 24px}.pf-internship-badge{align-items:center;background:none;color:var(--ink-m);display:inline-flex;font-family:var(--sans);font-size:11px;font-weight:500;gap:8px;letter-spacing:.14em;margin-bottom:28px;padding:0;text-transform:uppercase}.pf-internship-badge:before{animation:pulse 1.8s ease-in-out infinite;background:#34c759;border-radius:50%;content:"";display:block;height:7px;width:7px}.pf-window{background:var(--terminal);border:1px solid var(--rule);box-shadow:0 18px 40px #0f0e0d24;overflow:hidden}.pf-window-bar{align-items:center;background:var(--terminal-2);border-bottom:1px solid #ffffff1a;display:flex;gap:7px;height:34px;padding:0 13px}.pf-window-dot{border-radius:50%;display:block;height:11px;width:11px}.pf-window-dot-red{background:#ff5f57}.pf-window-dot-yellow{background:#ffbd2e}.pf-window-dot-green{background:#28c840}.pf-headline{color:var(--ink);font-family:var(--serif);font-size:clamp(15px,5.5vw,50px);letter-spacing:-.03em;line-height:1.08;margin-bottom:24px;min-height:2.16em;text-align:left}.pf-headline em{color:var(--blue);font-size:clamp(16px,5.8vw,55px);font-style:normal}.pf-headline-cursor{animation:blinkCursor 1s steps(2,start) infinite;color:var(--blue);display:inline-block;margin-left:4px}.pf-hero-contact{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.pf-hero-contact-btn{align-items:center;background:#0000;border:1px solid var(--rule);border-radius:50%;color:var(--ink);cursor:pointer;display:inline-flex;font-family:var(--sans);height:42px;justify-content:center;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);width:42px}.pf-hero-contact-icon{align-items:center;color:var(--ink-m);display:flex;justify-content:center;transition:color .25s,transform .25s}.pf-hero-contact-icon svg{height:16px;width:16px}.pf-hero-contact-btn:hover{background:var(--blue-dim);border-color:var(--blue);box-shadow:0 4px 12px #1a48c41a;color:var(--blue);transform:translateY(-2px)}.pf-hero-contact-btn:hover .pf-hero-contact-icon{color:var(--blue);transform:scale(1.1)}.pf-hero-contact-btn:active{box-shadow:none;transform:translateY(0)}.pf-btn-primary{align-items:center;background:var(--ink);border:none;color:var(--paper);cursor:pointer;display:inline-flex;font-family:var(--sans);font-size:12px;font-weight:500;gap:8px;letter-spacing:.1em;padding:13px 26px;text-decoration:none;text-transform:uppercase;transition:background .2s}.pf-btn-primary:hover{background:var(--blue)}.pf-tilt-wrapper{cursor:pointer;perspective:800px;width:100%}.pf-tilt-card{aspect-ratio:3/4;background:var(--terminal);border:1px solid var(--rule);box-shadow:0 15px 35px #00000024,0 5px 15px #0000000f;overflow:hidden;position:relative;transform-style:preserve-3d;transition:transform .08s linear,box-shadow .25s ease;width:100%}.pf-tilt-card.tilting,.pf-tilt-wrapper:hover .pf-tilt-card{box-shadow:0 25px 50px #00000038,0 10px 25px #0000001a}.pf-tilt-card:after{background:radial-gradient(circle at 50% 50%,#ffffff24 0,#0000 70%);background:radial-gradient(circle at var(--mx,50%) var(--my,50%),#ffffff24 0,#0000 70%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .3s}.pf-tilt-card.tilting:after{opacity:1}.pf-hero-photo{display:block;filter:grayscale(10%);height:calc(100% - 34px);object-fit:cover;transform:translateZ(0);width:100%}.pf-section{align-items:center;display:flex;flex-direction:column;padding:80px 0;width:100%}.pf-section-header{align-items:baseline;display:flex;justify-content:space-between;padding:22px 0 40px;width:100%}.pf-section-title{font-family:var(--serif);font-size:clamp(36px,4.5vw,28px);letter-spacing:-.02em;line-height:1}.pf-section-title:before{color:var(--ink);content:attr(data-prompt) " ";font-family:var(--mono);font-size:.72em;letter-spacing:0}.pf-profile-about{margin-top:-32px;padding:0 0 72px;width:100%}.pf-about-content{grid-gap:40px;display:grid;gap:40px;width:100%}.pf-about-grid{display:block;width:100%}.pf-about-text{color:var(--ink-m);font-size:15px;line-height:1.9;max-width:760px}.pf-about-text p+p{margin-top:18px}.pf-tech-showcase{background:radial-gradient(circle at 50% 46%,#222226 0,#18181a 48%,#141416 100%);border:1px solid #303033;border-radius:24px;box-shadow:0 30px 70px #0f0e0d2b;color:#f7f7f6;overflow:hidden;padding:64px 36px 42px;position:relative}.pf-tech-intro{position:relative;text-align:center;z-index:1}.pf-tech-intro h2{font-family:var(--sans);font-size:clamp(32px,5.5vw,60px);letter-spacing:-.07em;line-height:1.04}.pf-tech-intro p{color:#a7a7ad;font-size:14px;margin-top:15px}.pf-tech-columns{align-items:center;display:flex;gap:12px;justify-content:center;margin:60px auto 64px}.pf-tech-card,.pf-tech-column{display:flex;flex-direction:column;gap:12px}.pf-tech-card{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(145deg,#262629,#1d1d20);border:1px solid #454549;border-radius:14px;box-shadow:inset 0 1px 1px #ffffff1c,0 2px 3px #00000080,0 12px 18px #0000002e;color:#f7f7f6;cursor:pointer;font:inherit;height:96px;justify-content:center;padding:12px 6px;position:relative;width:96px}.pf-tech-card:after{border:1px solid #0000;border-radius:inherit;content:"";inset:-1px;pointer-events:none;position:absolute;transition:border-color .2s,box-shadow .2s}.pf-tech-card:hover:after,.pf-tech-card[aria-pressed=true]:after{border-color:#7597ffa6;box-shadow:0 0 22px #3a5fd845}.pf-tech-card:focus-visible{outline:2px solid #a9bfff;outline-offset:4px}.pf-tech-card-logo{display:block;height:40px;object-fit:contain;transition:filter .2s;width:40px}.pf-tech-card-logo-java{height:56px;width:56px}.pf-tech-card:hover .pf-tech-card-logo{filter:drop-shadow(0 3px 9px rgba(255,255,255,.18))}.pf-tech-card-name{bottom:10px;color:#c8c8cd;font-size:10px;font-weight:500;max-width:calc(100% - 12px);opacity:0;overflow:hidden;position:absolute;text-overflow:ellipsis;transform:translateY(4px);transition:opacity .2s,transform .2s;white-space:nowrap}.pf-tech-card:focus-visible .pf-tech-card-name,.pf-tech-card:hover .pf-tech-card-name,.pf-tech-card[aria-pressed=true] .pf-tech-card-name{opacity:1;transform:translateY(0)}.pf-tech-detail{align-items:center;color:#a7a7ad;display:flex;font-size:13px;gap:12px;justify-content:center;min-height:24px;text-align:center}.pf-tech-detail-marker{background:#8ba9ff;border-radius:50%;box-shadow:0 0 9px #6386eb;flex:0 0 auto;height:6px;width:6px}.pf-tech-detail strong{color:#f7f7f6;font-weight:500}.pf-project-window{background:#ffffff75;border:1px solid var(--rule);box-shadow:0 24px 60px #0f0e0d24,0 8px 18px #0f0e0d0f;overflow:hidden}.pf-project-window-title{color:#d6dce8;flex:1 1;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;margin-right:54px;text-align:center;text-transform:uppercase}.pf-proj-table{background:var(--paper);border-collapse:collapse;width:100%}.pf-proj-row{border-top:1px solid var(--rule);transition:background .15s,transform .15s}.pf-proj-row.clickable{cursor:pointer}.pf-proj-row.clickable:hover{background:var(--blue-dim);transform:translateX(2px)}.pf-proj-row td{padding:22px 18px;vertical-align:middle}.pf-proj-num{color:var(--ink-f);font-size:12px;letter-spacing:.04em;width:62px}.pf-proj-title{font-family:var(--serif);font-size:clamp(18px,2.2vw,26px);letter-spacing:-.01em;padding-right:20px}.pf-proj-year{color:var(--ink-m);font-size:12px;width:60px}.pf-proj-status{text-align:right;width:320px}.pf-proj-comment{color:var(--ink-m);display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.04em;line-height:1.4}.pf-badge{align-items:center;display:inline-flex;font-family:var(--mono);font-size:10px;font-weight:500;gap:6px;letter-spacing:.12em;padding:5px 10px;text-transform:uppercase}.pf-badge-done{background:#e8f5e9;color:#2e7d32}.pf-badge-wip{background:#fff8e1;color:#e65100}.pf-badge-wip-dot{animation:pulse 1.8s ease-in-out infinite;background:#e65100;border-radius:50%;display:inline-block;flex-shrink:0;height:6px;width:6px}.pf-contact-grid{align-items:start;display:grid;grid-template-columns:minmax(0,100%);width:100%}.pf-contact-panel{background:var(--paper-2);border:1px solid var(--rule);box-shadow:0 24px 60px #0f0e0d2e,0 8px 18px #0f0e0d14;overflow:hidden}.pf-contact-login{color:var(--ink-m);font-family:var(--mono);font-size:clamp(12px,1.8vw,16px);line-height:1.6;padding:12px 16px 8px}.pf-contact-prompt{align-items:center;border-top:1px solid var(--rule);display:flex;min-height:38px;overflow-x:auto;padding:0 14px 0 0}.pf-contact-item{align-items:center;background:#3149c9;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 50%,calc(100% - 18px) 100%,0 100%,18px 50%);color:#fff;display:inline-flex;flex:0 0 auto;gap:10px;height:34px;margin-left:8px;min-width:148px;padding:0 24px 0 18px;position:relative;text-decoration:none;transition:filter .2s,transform .2s}.pf-contact-item+.pf-contact-item{margin-left:-12px}.pf-contact-item:hover{filter:brightness(1.12);transform:translateY(-1px)}.pf-contact-item:nth-of-type(2){background:#253db8}.pf-contact-item:nth-of-type(3){background:#d6d6da;color:#171719;min-width:184px}.pf-contact-icon{align-items:center;background:none;border:none;color:currentColor;display:flex;flex-shrink:0;height:18px;justify-content:center;width:18px}.pf-contact-label{color:currentColor;font-family:var(--mono);font-size:14px;letter-spacing:.02em}.pf-contact-cursor{animation:blinkCursor 1s steps(2,start) infinite;background:var(--ink);flex:0 0 auto;height:34px;margin-left:4px;width:16px}.pf-footer{border-top:1px solid var(--rule);flex-wrap:wrap;gap:16px;justify-content:space-between;padding:28px 0;width:100%}.pf-footer,.pf-footer-links{align-items:center;display:flex}.pf-footer-links{gap:20px}.pf-footer-links a{color:var(--ink-m);font-size:12px;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;transition:color .2s}.pf-footer-links a:hover{color:var(--blue)}.pf-footer-copy{color:var(--ink-f);font-size:11px}.pf-back-top{align-items:center;background:none;border:1px solid var(--rule);color:var(--ink-m);cursor:pointer;display:flex;font-family:var(--sans);font-size:16px;height:36px;justify-content:center;transition:border-color .2s,color .2s;width:36px}.pf-back-top:hover{border-color:var(--blue);color:var(--blue)}.pf-lightbox{align-items:center;background:#030812f0;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:300}.pf-lightbox img{border:1px solid var(--rule);max-height:88vh;max-width:90vw;object-fit:contain}.pf-lightbox-close{align-items:center;background:none;border:1px solid #555;color:#fff;cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:absolute;right:24px;top:20px;transition:border-color .2s;width:40px}.pf-lightbox-close:hover{border-color:#fff}.pf-modal-backdrop{align-items:center;background:#0f0e0dcc;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:200}.pf-modal{background:var(--paper);border:1px solid var(--rule);box-shadow:0 24px 70px #0f0e0d3d;margin:0 auto;max-height:90vh;max-width:820px;overflow-y:auto;width:100%}.pf-modal-header{align-items:start;border-bottom:1px solid var(--rule);display:flex;gap:16px;justify-content:space-between;padding:24px 32px 20px}.pf-modal-title{font-family:var(--serif);font-size:28px;letter-spacing:-.02em}.pf-modal-meta{gap:10px;margin-top:10px}.pf-modal-close,.pf-modal-meta{align-items:center;display:flex}.pf-modal-close{background:none;border:1px solid var(--rule);color:var(--ink-m);cursor:pointer;flex-shrink:0;height:36px;justify-content:center;transition:border-color .2s,color .2s;width:36px}.pf-modal-close:hover{border-color:var(--blue);color:var(--blue)}.pf-modal-body{display:grid;grid-template-columns:240px 1fr}.pf-modal-video{border-right:1px solid var(--rule);padding:24px}.pf-modal-video video{border:1px solid var(--rule);width:100%}.pf-modal-video-caption{color:var(--ink-f);font-size:11px;letter-spacing:.06em;margin-top:10px}.pf-modal-screens{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:14px}.pf-modal-screens img{aspect-ratio:1;border:1px solid var(--rule);cursor:pointer;display:block;object-fit:cover;transition:transform .2s ease,border-color .2s ease;width:100%}.pf-modal-screens img:hover{border-color:var(--blue);transform:translateY(-2px)}.pf-modal-info{padding:24px 32px}.pf-modal-info p{color:var(--ink-m);font-size:14px;line-height:1.8;margin-bottom:24px}.pf-modal-sublabel{color:var(--ink-f);font-size:10px;font-weight:500;letter-spacing:.16em;margin-bottom:12px;text-transform:uppercase}.pf-modal-features{list-style:none;margin-bottom:24px}.pf-modal-features li{border-bottom:1px solid var(--rule);color:var(--ink-m);display:flex;font-size:13px;gap:12px;line-height:1.6;padding:8px 0}.pf-modal-features li:before{color:var(--blue);content:"—";flex-shrink:0}.pf-modal-tags{display:flex;flex-wrap:wrap;gap:8px}.pf-tag{align-items:center;display:inline-flex;height:34px;justify-content:center;width:34px}.pf-tag img{height:20px;object-fit:contain;width:20px}.pf-tag-initials{color:var(--ink-m);font-size:10px;font-weight:500;letter-spacing:.06em}.pf-modal-footer{align-items:center;background:var(--paper-2);border-top:1px solid var(--rule);display:flex;justify-content:space-between;padding:20px 32px}.pf-modal-footer-label{color:var(--ink-f);font-size:12px;letter-spacing:.06em}.pf-private-repo-sign{background:var(--paper);border:1px solid var(--rule);color:var(--ink-m);font-family:var(--mono);font-size:10px;letter-spacing:.12em;padding:7px 12px;text-transform:uppercase}.pf-scroll-top{align-items:center;background:var(--ink);border:none;bottom:32px;color:var(--paper);cursor:pointer;display:flex;font-family:var(--sans);font-size:18px;height:42px;justify-content:center;position:fixed;right:32px;transition:background .2s;width:42px;z-index:99}.pf-scroll-top:hover{background:var(--black)}@media (max-width:900px){.pf-tech-columns{flex-wrap:wrap;max-width:540px}.pf-tech-column{display:contents}.pf-tech-card{aspect-ratio:1;flex-basis:calc(20% - 9.6px);flex-grow:0;flex-shrink:0;height:auto;width:calc(20% - 9.6px)}}@media (max-width:768px){.pf-container{padding:0 20px}.pf-hero-body{gap:32px 0;grid-template-columns:1fr;padding:24px 0 32px}.pf-hero-sidebar{order:-1}.pf-tilt-card{aspect-ratio:4/3}.pf-headline{font-size:40px}.pf-internship-badge{font-size:10px}.pf-profile-about{margin-top:0;padding-bottom:56px}.pf-about-content{gap:32px}.pf-tech-showcase{padding:46px 18px 34px}.pf-tech-columns{gap:9px;margin:48px auto 62px;max-width:420px}.pf-tech-card{border-radius:12px;flex-basis:calc(25% - 6.75px);width:calc(25% - 6.75px)}.pf-tech-card-logo{height:42%;width:42%}.pf-tech-card-logo-java{height:58%;width:58%}.pf-tech-card-name{display:none}.pf-tech-detail{flex-wrap:wrap;gap:6px 9px;line-height:1.5}.pf-proj-year{display:none}.pf-contact-grid{gap:32px}.pf-contact-grid,.pf-modal-body{grid-template-columns:1fr}.pf-modal-video{border-bottom:1px solid var(--rule);border-right:none}.pf-nav-links{display:none}.pf-hamburger{display:flex}.pf-footer{align-items:flex-start;flex-direction:column}.pf-scroll-top{bottom:20px;right:20px}.pf-tilt-wrapper{perspective:none}.pf-tilt-card{transform:none!important}.pf-tilt-card:after{display:none}}body{overflow-x:hidden}html{scroll-padding-top:76px}::selection{background:#a6bfff;color:#101113}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.pf-container{padding-inline:clamp(24px,4vw,64px)}.pf-layout{overflow:clip}.pf-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#10111333;border-bottom-color:#0000;transition:background .25s,border-color .25s}.pf-nav.scrolled{background:#101113eb;border-bottom-color:var(--rule);box-shadow:none}.pf-nav-inner{height:76px;padding-inline:clamp(24px,4vw,64px)}.pf-logo{font-size:27px;font-weight:700;letter-spacing:-.09em}.pf-logo-dot{color:var(--blue)}.pf-nav-links{gap:clamp(18px,2.5vw,36px)}.pf-nav-links button{border:0;color:#c3c5ca;font-size:11px;font-weight:600;letter-spacing:.09em}.pf-nav-links button.active,.pf-nav-links button:hover{color:var(--ink)}.pf-nav-links .pf-nav-contact{border:1px solid #717782;color:var(--ink);padding:11px 16px}.pf-nav-links .pf-nav-contact:hover{border-color:var(--blue);color:var(--blue)}.pf-mobile-menu{inset:76px 0 0}.pf-mobile-menu button{font-size:34px;font-weight:500}.pf-hero{background:linear-gradient(180deg,#0d0e11 0,#0d0e11 80%,#111215);min-height:min(680px,100svh);padding-top:76px;position:relative}.pf-hero:before{background-image:radial-gradient(hsla(0,0%,100%,.026) 1px,#0000 0);background-size:31px 31px;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 35%,#000);mask-image:linear-gradient(90deg,#0000 35%,#000)}.pf-hero:after,.pf-hero:before{content:"";pointer-events:none;position:absolute}.pf-hero:after{background:linear-gradient(180deg,#11121500,#111215);height:clamp(160px,18vw,280px);inset:auto 0 0}.pf-hero>.pf-container{display:flex;flex:1 1;flex-direction:column;justify-content:center;max-width:1120px;position:relative;z-index:1}.pf-hero-body{align-items:end;gap:clamp(34px,4vw,72px);grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);padding:36px 0 16px}.pf-eyebrow,.pf-section-index{color:var(--blue);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.pf-hero-copy{min-width:0}.pf-hero-role{color:var(--blue);font:10px var(--mono);letter-spacing:.12em;margin-bottom:15px;text-transform:uppercase}.pf-hero-heading{color:var(--ink);font:500 clamp(48px,4vw,64px)/1.08 var(--serif);letter-spacing:-.075em;margin:0 0 25px;overflow:hidden}.pf-hero-name,.pf-hero-word,.pf-hero-word-mask{display:inline-block}.pf-hero-word-mask{overflow:hidden;vertical-align:bottom}.pf-hero-description{color:#b9bbc3;font-size:clamp(17px,1.35vw,22px);line-height:1.6;margin:0;max-width:580px}.pf-hero-socials{display:flex;flex-wrap:wrap;gap:10px clamp(16px,1.6vw,24px);margin-top:clamp(30px,3vw,42px)}.pf-hero-socials a{color:#a9acb6;font:clamp(14px,1.1vw,17px) var(--mono);position:relative;text-decoration:none;transition:color .2s}.pf-hero-socials a:after{background:var(--blue);content:"";height:1px;inset:auto 0 -5px;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .2s}.pf-hero-socials a:focus-visible,.pf-hero-socials a:hover{color:var(--blue)}.pf-hero-socials a:focus-visible:after,.pf-hero-socials a:hover:after{transform:scaleX(1)}.pf-hero-socials a span{display:inline-block;font-size:15px;margin-left:3px;transition:transform .2s}.pf-hero-socials a:focus-visible span,.pf-hero-socials a:hover span{transform:translate(2px,-2px)}.pf-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.pf-button{align-items:center;display:inline-flex;font-size:13px;font-weight:600;gap:26px;justify-content:space-between;min-height:52px;min-width:174px;padding:14px 18px;text-decoration:none;transition:transform .2s,background .2s,border-color .2s}.pf-button:hover{transform:translateY(-3px)}.pf-button-primary{background:var(--blue);color:#101113}.pf-button-primary:hover{background:#c4d3ff}.pf-button-ghost{border:1px solid #777d86;color:var(--ink)}.pf-button-ghost:hover{border-color:var(--blue)}.pf-hero-sidebar{justify-self:start;padding-top:18px;position:relative;width:min(100%,460px)}.pf-hero .pf-tilt-card{aspect-ratio:1;background:#0b0c10;border:1px solid #343943;box-shadow:0 18px 40px #0000002e;overflow:hidden}.pf-hero .pf-tilt-wrapper:hover .pf-tilt-card{box-shadow:none}.pf-hero .pf-window-bar{display:none}.pf-hero-photo{background:#0000;filter:none;height:100%;mix-blend-mode:screen;object-fit:contain;object-position:center bottom}.pf-hero-bottom{align-items:center;color:#828993;display:grid;font:10px var(--mono);grid-template-columns:1fr auto 1fr;letter-spacing:.14em;padding:25px 0;text-transform:uppercase;width:100%}.pf-hero-bottom a{color:inherit;text-decoration:none;transition:color .2s,transform .2s;width:fit-content}.pf-hero-bottom a:hover{color:var(--blue)}.pf-scroll-arrow{color:var(--blue)!important;font-size:22px;grid-column:2;line-height:1;padding:6px 10px}.pf-scroll-arrow:hover{transform:translateY(4px)}.pf-hero-bottom>span:last-child{grid-column:3;justify-self:end}.pf-text-reveal{overflow:hidden}.pf-text-reveal-inner{display:inline-block;margin-bottom:-.1em;padding-bottom:.1em}.pf-section-index{display:inline-block}.pf-section{padding:clamp(90px,10vw,150px) 0}.pf-section-heading{margin-bottom:46px}.pf-section-heading h2{font:500 clamp(50px,6vw,84px)/1 var(--serif);letter-spacing:-.075em;margin-top:15px}.pf-section-heading em{color:var(--blue);font-style:normal}.pf-section-heading-split{align-items:end;display:flex;gap:50px;justify-content:space-between}.pf-section-heading-split>p{color:var(--ink-m);line-height:1.7;max-width:320px;padding-bottom:5px}.pf-projects-section{background:#111215;padding-top:clamp(48px,5vw,72px)}.pf-project-deck{height:535px;isolation:isolate;perspective:1400px;position:relative}.pf-project-deck:before{background:radial-gradient(ellipse at center,#707fa829,#0000 68%);content:"";inset:9% 12%;pointer-events:none;position:absolute}.pf-deck-card{background:#18191d;border:1px solid #42454e;border-radius:30px;box-shadow:0 22px 55px #00000057;color:var(--ink);cursor:default;left:50%;min-height:410px;outline:none;padding:0;position:absolute;top:49%;transform-origin:center;transition:transform .65s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .35s;width:min(50vw,560px);z-index:1}.pf-deck-card[role=button]{cursor:pointer}.pf-deck-card[data-position=center]{transform:translate(-50%,-50%) rotate(0deg) scale(1);z-index:2}.pf-deck-card[data-position=left]{transform:translate(-105%,-46%) rotate(-11deg) scale(.9);z-index:1}.pf-deck-card[data-position=right]{transform:translate(5%,-46%) rotate(11deg) scale(.9);z-index:1}.pf-deck-card[data-active=true]{border-color:#777b87;box-shadow:0 32px 80px #0000008c;z-index:3}.pf-deck-card[data-position=left][data-active=true]{transform:translate(-105%,-46%) rotate(-2deg) scale(.97)}.pf-deck-card[data-position=right][data-active=true]{transform:translate(5%,-46%) rotate(2deg) scale(.97)}.pf-deck-card:focus-visible{outline:2px solid var(--blue);outline-offset:6px}.pf-deck-card-surface{background:radial-gradient(circle at 50% 50%,#a6bfff1a,#0000 52%),#18191d;background:radial-gradient(circle at var(--spot-x,50%) var(--spot-y,50%),#a6bfff1a,#0000 52%),#18191d;border-radius:inherit;display:flex;flex-direction:column;min-height:410px;overflow:hidden;padding:34px 38px 30px;position:relative;transform:perspective(1000px) rotateX(0deg) rotateY(0deg);transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .18s ease-out}.pf-deck-card-surface:after{border:1px solid hsla(0,0%,100%,.045);border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute}.pf-deck-card-top{align-items:flex-start;display:flex;flex-wrap:wrap;font:10px var(--mono);gap:8px;justify-content:space-between;letter-spacing:.08em;text-transform:uppercase}.pf-deck-card-number{border:1px solid #565963;border-radius:30px;color:#e2e3e8;padding:8px 11px}.pf-deck-card-status{border:1px solid #3e424b;border-radius:30px;color:#a2a7b0;padding:8px 11px}.pf-deck-card-identity{align-items:center;display:flex;gap:20px;margin-top:52px}.pf-deck-card-mark{background:#95c9ac;border-radius:18px;color:#101216;display:grid;flex:0 0 auto;font:700 42px var(--serif);height:72px;letter-spacing:-.09em;place-items:center;width:72px}.pf-deck-card-coral .pf-deck-card-mark{background:#e89f99}.pf-deck-card-violet .pf-deck-card-mark{background:#b2a5e4}.pf-deck-card-identity h3{font:500 clamp(27px,3vw,40px)/1.08 var(--serif);letter-spacing:-.065em}.pf-deck-card-identity span:not(.pf-deck-card-mark){color:#a4a8b0;display:block;font-size:12px;margin-top:7px}.pf-deck-card-summary{color:#b5b9c0;font-size:clamp(16px,1.5vw,20px);line-height:1.55;margin:24px 0 30px;max-width:430px}.pf-deck-card-bottom{align-items:flex-end;display:flex;gap:20px;justify-content:space-between;margin-top:auto}.pf-deck-card-tags{display:flex;flex-wrap:wrap;gap:7px}.pf-deck-card-tags span{border:1px solid #41454d;border-radius:20px;color:#aeb3bb;font:10px var(--mono);padding:7px 9px}.pf-deck-card-cta{color:#d9e4ff;flex:0 0 auto;font:12px var(--mono)}.pf-deck-card[data-active=true] .pf-deck-card-cta{color:var(--blue)}.pf-deck-hint{color:#878d97;font:11px var(--mono);margin-top:-5px;text-align:center}.pf-deck-hint span{color:var(--blue)}.pf-deck-hint .pf-deck-hint-desktop{color:inherit}.pf-deck-hint-mobile{display:none}.pf-more-projects{margin-top:95px}.pf-more-title{color:#9a9da5;display:flex;font:11px var(--mono);justify-content:space-between;letter-spacing:.12em;padding-bottom:18px;text-transform:uppercase}.pf-more-row{grid-gap:15px;align-items:center;border-top:1px solid var(--rule);color:#8d949d;display:grid;font:11px var(--mono);gap:15px;grid-template-columns:60px 1fr 130px 30px;min-height:92px}.pf-more-row:last-child{border-bottom:1px solid var(--rule)}.pf-more-row h3{color:var(--ink);font:500 clamp(21px,2.4vw,30px) var(--serif);letter-spacing:-.045em}.pf-more-row p{color:#9297a0;font-size:11px;margin-top:3px}.pf-more-row>a{color:var(--ink);font-size:21px;text-decoration:none}.pf-more-row>a:hover{color:var(--blue)}.pf-about-section{background:linear-gradient(180deg,#111215 0,#191b1f 16%,#191b1f 84%,#111215);border:0}.pf-about-layout{grid-gap:clamp(40px,8vw,120px);display:grid;gap:clamp(40px,8vw,120px);grid-template-columns:1.2fr .8fr}.pf-about-lead{font:400 clamp(28px,3.3vw,46px)/1.25 var(--serif);letter-spacing:-.06em;max-width:660px}.pf-about-side p{color:#b5b9c0;font-size:15px;line-height:1.85}.pf-about-facts{grid-gap:0;display:grid;gap:0;margin-top:28px}.pf-about-facts span{border-top:1px solid #3b4048;color:#d9dce1;display:block;font:11px var(--mono);padding:13px 0}.pf-about-gallery{margin:64px auto 0;max-width:880px;padding:0}.pf-gallery-heading{grid-gap:24px;align-items:end;color:#9a9fa7;display:grid;gap:24px;grid-template-columns:minmax(0,1fr) minmax(260px,390px);margin-bottom:24px}.pf-gallery-heading p{color:#aeb4bd;font-size:14px;line-height:1.65;margin:0}.pf-tech-section{background:#111215}.pf-tech-showcase{background:radial-gradient(circle at 50% 55%,#1d2129 0,#111215 62%);border:0;border-radius:0;box-shadow:none;padding:32px 0 15px}.pf-tech-intro h2{font-family:var(--serif);font-size:clamp(52px,6vw,82px);font-weight:500;letter-spacing:-.075em}.pf-tech-intro p{color:var(--ink-m)}.pf-tech-card-name{color:#aeb2b9;font:9px var(--mono);opacity:1;position:static;transform:none}.pf-tech-card{gap:8px}.pf-tech-card-logo-java{height:50px;width:50px}.pf-tech-detail{color:var(--ink-m)}.pf-tech-detail strong{color:var(--ink)}.pf-tech-intro .pf-section-index{display:block;margin-bottom:20px}.pf-tech-context{border-left:1px solid #4a5360;color:#b7c7f1;margin-left:8px;padding-left:18px}.pf-contact-section{background:linear-gradient(180deg,#111215 0,#16191f 24%,#16191f 72%,#101113);padding-bottom:80px}.pf-contact-heading{align-items:center;border-bottom:1px solid #a8b3ca36;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;padding-bottom:24px}.pf-contact-availability{align-items:center;color:#b6c2d4;display:inline-flex;font:11px var(--mono);gap:10px}.pf-contact-availability>span{background:#a7e5b6;border-radius:50%;box-shadow:0 0 13px #85dba2;height:7px;width:7px}.pf-contact-layout{grid-gap:clamp(42px,7vw,110px);align-items:start;display:grid;gap:clamp(42px,7vw,110px);grid-template-columns:minmax(0,1.12fr) minmax(335px,.88fr);padding-top:clamp(48px,6vw,86px)}.pf-contact-copy h2{font:500 clamp(60px,5.7vw,86px)/.99 var(--serif);letter-spacing:-.078em}.pf-contact-copy h2 .pf-contact-accent{color:var(--blue)}.pf-contact-copy>p{color:#b7beca;font-size:16px;line-height:1.75;margin-top:30px;max-width:510px}.pf-contact-primary{align-items:center;background:var(--blue);color:#111419;display:inline-flex;font-size:13px;font-weight:700;gap:75px;justify-content:space-between;margin-top:34px;min-width:215px;padding:17px 19px;text-decoration:none;transition:background .2s,transform .2s}.pf-contact-primary:hover{background:#c7d5ff;transform:translateY(-3px)}.pf-contact-primary span:last-child{font-size:19px;line-height:1}.pf-contact-directory{background:linear-gradient(150deg,#4453703d,#171c26cc);border:1px solid #495366;border-radius:20px;box-shadow:0 25px 70px #0003;min-width:0;padding:clamp(24px,3vw,38px)}.pf-contact-direct-top{align-items:center;color:#aab6ca;display:flex;font:11px var(--mono);justify-content:space-between;letter-spacing:.12em;text-transform:uppercase}.pf-contact-direct-top span:last-child{color:var(--blue);font-size:25px;line-height:1}.pf-contact-address{color:var(--ink);display:block;font:500 clamp(22px,2.35vw,31px)/1.15 var(--serif);letter-spacing:-.045em;margin:28px 0 16px;overflow-wrap:anywhere;text-decoration:none}.pf-contact-address:hover{color:var(--blue)}.pf-contact-copy-button{align-items:center;background:#0000;border:0;border-bottom:1px solid #49505d;color:#bdc9db;cursor:pointer;display:flex;font:11px var(--mono);gap:18px;justify-content:space-between;padding:11px 0 20px;text-align:left;width:100%}.pf-contact-copy-button:hover{color:var(--blue)}.pf-contact-copy-status{color:#b9d8c6;font:11px var(--mono);margin-top:10px}.pf-contact-social-heading{color:#aab6ca;font:11px var(--mono);letter-spacing:.12em;margin:35px 0 10px;text-transform:uppercase}.pf-contact-socials a{align-items:center;border-bottom:1px solid #3e4653;color:#f1f3f7;display:flex;font-size:14px;gap:12px;padding:15px 0;text-decoration:none;transition:color .2s,padding .2s}.pf-contact-socials a:hover{color:var(--blue);padding-left:6px}.pf-contact-socials a>span:last-child{font-size:19px;margin-left:auto}.pf-contact-social-icon{align-items:center;display:inline-flex;height:20px;justify-content:center;width:20px}.pf-contact-social-icon svg{height:18px!important;width:18px!important}.pf-contact-location{color:#8895a8;font:11px/1.6 var(--mono);margin-top:30px}.pf-contact-location span{color:var(--blue);padding:0 5px}.pf-footer{border-top:0;padding:12px 0 40px}.pf-scroll-top{background:var(--blue);border-radius:50%;color:#111}.pf-modal{background:#1a1c20;border-radius:12px;box-shadow:0 35px 90px #0000008c}.pf-modal-footer{background:#22252b}.pf-private-repo-sign{background:#292c32}.pf-btn-primary{background:var(--blue);color:#111}.pf-btn-primary:hover{background:#c4d3ff}.pf-case-backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050609d1;padding:24px}.pf-case-modal{--case-accent:#a4d7b6;background:#191b20;border:1px solid #535963;border-radius:22px;box-shadow:0 40px 110px #000000a6;display:flex;flex-direction:column;margin:auto;max-height:min(92dvh,900px);overflow:auto;width:min(1120px,100%)}.pf-case-coral{--case-accent:#f1aaa3}.pf-case-topbar{align-items:center;background:#191b20f7;border-bottom:1px solid #373b43;color:#a9afb9;display:flex;font:11px var(--mono);justify-content:space-between;letter-spacing:.12em;min-height:62px;padding:10px 20px 10px 32px;position:sticky;text-transform:uppercase;top:0;z-index:5}.pf-case-close{background:#0000;border:1px solid #555b66;border-radius:50%;color:var(--ink);cursor:pointer;display:grid;font:27px/1 var(--sans);height:40px;place-items:center;transition:background .2s,transform .2s;width:40px}.pf-case-close:hover{background:#323741;transform:rotate(90deg)}.pf-case-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);min-height:585px}.pf-case-media{background:radial-gradient(circle at 55% 35%,#6fb58733,#0000 50%),#141a19;border-right:1px solid #363a42;min-width:0;padding:34px}.pf-case-coral .pf-case-media{background:radial-gradient(circle at 55% 35%,#d8685f33,#0000 54%),#191517}.pf-case-stage{background:#0c1010;border:1px solid #48554d;border-radius:16px;display:grid;min-height:405px;overflow:hidden;place-items:center}.pf-case-coral .pf-case-stage{border-color:#594440}.pf-case-stage video{border-radius:8px;display:block;max-height:405px;max-width:100%;width:auto}.pf-case-stage-landscape{aspect-ratio:1.45;min-height:0}.pf-case-stage-landscape video{max-height:none;width:100%}.pf-case-play{background:#151719;border:0;color:#fff;cursor:pointer;display:block;height:100%;padding:0;position:relative;width:100%}.pf-case-play:after{background:linear-gradient(180deg,#0000 30%,#000000bf);content:"";inset:0;pointer-events:none;position:absolute}.pf-case-play img{aspect-ratio:1.45;display:block;height:100%;object-fit:cover;width:100%}.pf-case-play-icon{background:#141416cc;border:1px solid #ffffff8c;border-radius:50%;display:grid;font-size:20px;height:64px;left:50%;place-items:center;position:absolute;top:50%;transform:translate(-50%,-50%);transition:background .2s,scale .2s;width:64px;z-index:1}.pf-case-play:hover .pf-case-play-icon{background:#a6bfff;color:#151719;scale:1.08}.pf-case-play-label{bottom:20px;font:12px var(--mono);left:22px;letter-spacing:.06em;position:absolute;z-index:1}.pf-case-media-meta{color:#a7adb4;display:flex;font:10px var(--mono);gap:12px;justify-content:space-between;letter-spacing:.09em;margin:15px 2px 0;text-transform:uppercase}.pf-case-thumbnails{grid-gap:9px;display:grid;gap:9px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:25px}.pf-case-thumbnails button{background:#141416;border:1px solid #555159;border-radius:7px;cursor:zoom-in;overflow:hidden;padding:0}.pf-case-thumbnails button:hover{border-color:var(--case-accent)}.pf-case-thumbnails img{aspect-ratio:1.25;display:block;object-fit:cover;width:100%}.pf-case-content{display:flex;flex-direction:column;gap:27px;min-width:0;padding:42px 38px 34px}.pf-case-category{color:var(--case-accent);font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase}.pf-case-intro h3{font:500 clamp(38px,4vw,58px)/1 var(--serif);letter-spacing:-.07em;margin:13px 0 17px}.pf-case-intro p{color:#bdc1c7;font-size:15px;line-height:1.7}.pf-case-meta{display:flex;flex-wrap:wrap;gap:8px}.pf-case-meta span{border:1px solid #464c56;border-radius:20px;color:#d5d9de;font:10px var(--mono);padding:8px 10px}.pf-case-details h4,.pf-case-stack h4{color:var(--case-accent);font:11px var(--mono);letter-spacing:.12em;margin-bottom:12px;text-transform:uppercase}.pf-case-details ul{list-style:none}.pf-case-details li{border-top:1px solid #343941;color:#b9bec7;display:flex;font-size:13px;gap:12px;line-height:1.5;padding:9px 0}.pf-case-details li:before{color:var(--case-accent);content:"↗";flex:0 0 auto}.pf-case-content .pf-modal-tags{gap:8px}.pf-case-content .pf-tag{align-items:center;border:1px solid #414750;border-radius:6px;color:#d0d5dd;display:inline-flex;font:11px var(--mono);gap:7px;height:32px;justify-content:flex-start;padding:5px 9px;width:auto}.pf-case-content .pf-tag img{height:17px;width:17px}.pf-case-content .pf-tag-initials{font-size:9px}.pf-case-source{border-top:1px solid #3b4049;color:#8f96a0;font:12px var(--mono);margin-top:auto;padding-top:20px}.pf-case-source a{color:var(--ink);display:flex;justify-content:space-between;text-decoration:none}.pf-case-source a:hover{color:var(--case-accent)}@media (max-width:900px){.pf-hero-heading{font-size:clamp(46px,5.7vw,62px)}.pf-hero-body{gap:35px}.pf-project-deck{--mobile-card-width:min(76vw,460px);display:flex;gap:18px;height:auto;overflow-x:auto;overflow-y:hidden;padding:22px 4px 32px;perspective:none;scroll-snap-type:x mandatory;scrollbar-color:#59616d #0000}.pf-project-deck:before{display:none}.pf-deck-card,.pf-deck-card[data-position=center],.pf-deck-card[data-position=left],.pf-deck-card[data-position=left][data-active=true],.pf-deck-card[data-position=right],.pf-deck-card[data-position=right][data-active=true]{flex:0 0 var(--mobile-card-width);left:auto;min-height:390px;position:relative;scroll-snap-align:center;top:auto;transform:none;width:var(--mobile-card-width)}.pf-deck-card-surface{min-height:390px}.pf-deck-hint{margin-top:0}.pf-deck-hint-desktop{display:none}.pf-deck-hint-mobile{display:inline}.pf-contact-layout{gap:50px;grid-template-columns:1fr}.pf-contact-directory{max-width:620px}.pf-tech-card-name{display:block}}@media (max-width:768px){html{scroll-padding-top:68px}.pf-container,.pf-nav-inner{padding-inline:20px}.pf-nav-inner{height:68px}.pf-mobile-menu{inset:68px 0 0}.pf-hero{min-height:auto;padding-top:68px}.pf-hero-body{gap:18px;grid-template-columns:1fr;padding:34px 0 38px}.pf-hero-sidebar{justify-self:center;order:0;width:min(80%,320px)}.pf-hero-heading{font-size:clamp(46px,10vw,62px)}.pf-hero-description{font-size:17px}.pf-hero-bottom{padding:20px 0}.pf-section{padding:80px 0}.pf-projects-section{padding-top:48px}.pf-section-heading-split{display:block}.pf-section-heading-split>p{margin-top:20px}.pf-project-deck{--mobile-card-width:min(84vw,420px)}.pf-deck-card-surface{padding:28px}.pf-deck-card-identity{margin-top:44px}.pf-deck-card-identity h3{font-size:30px}.pf-deck-card-summary{font-size:16px}.pf-about-layout{gap:60px;grid-template-columns:1fr}.pf-more-projects{margin-top:75px}.pf-more-row{grid-template-columns:32px 1fr 20px;min-height:86px}.pf-more-row>span:nth-of-type(2){display:none}.pf-case-backdrop{padding:12px}.pf-case-modal{border-radius:16px;max-height:94dvh}.pf-case-topbar{min-height:56px;padding:8px 12px 8px 20px}.pf-case-layout{grid-template-columns:1fr}.pf-case-media{border-bottom:1px solid #363a42;border-right:0;padding:20px}.pf-case-stage{min-height:290px}.pf-case-stage video{max-height:350px}.pf-case-stage-landscape{min-height:0}.pf-case-content{padding:30px 24px}.pf-about-gallery{margin-top:48px}.pf-gallery-heading{gap:12px;grid-template-columns:1fr;margin-bottom:18px}.pf-gallery-heading p{font-size:13px;max-width:560px}.pf-tech-card-name{display:block;font-size:8px}.pf-tech-card{gap:5px;padding:8px 3px}.pf-tech-context{border:0;flex-basis:100%;margin:5px 0 0;padding:0}.pf-tech-columns{margin-block:44px 45px}.pf-contact-layout{padding-top:48px}}@media (max-width:480px){.pf-hero-heading{font-size:clamp(42px,10.5vw,54px);margin-bottom:26px}.pf-hero-sidebar{width:80%}.pf-project-deck{--mobile-card-width:calc(100vw - 52px)}.pf-deck-card-surface{min-height:390px;padding:25px 23px}.pf-deck-card-top{font-size:9px}.pf-deck-card-identity{gap:13px}.pf-deck-card-mark{font-size:35px;height:59px;width:59px}.pf-deck-card-identity h3{font-size:27px}.pf-deck-card-bottom{align-items:flex-start;flex-direction:column;gap:18px}.pf-case-backdrop{padding:8px}.pf-case-modal{border-radius:12px}.pf-case-media{padding:14px}.pf-case-stage{min-height:255px}.pf-case-stage-landscape{min-height:0}.pf-case-thumbnails{gap:6px}.pf-case-content{gap:24px;padding:28px 20px}.pf-case-intro h3{font-size:42px}.pf-tech-card-name{font-size:7px}.pf-hero-description{font-size:16px;line-height:1.6}.pf-hero-socials{gap:12px 18px;margin-top:30px}.pf-hero-socials a{font-size:13px}.pf-contact-heading{align-items:flex-start}.pf-contact-copy h2{font-size:clamp(44px,11.5vw,58px)}.pf-contact-copy>p{font-size:15px}.pf-contact-primary{width:100%}.pf-contact-directory{padding:24px 20px}.pf-contact-location span{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pf-internship-badge:before{animation:none}.pf-button,.pf-contact-primary,.pf-contact-socials a,.pf-hero-bottom a,.pf-hero-socials a,.pf-hero-socials a span,.pf-hero-socials a:after{transition:none}.pf-hero-socials a:focus-visible span,.pf-hero-socials a:hover span{transform:none}.pf-button:hover,.pf-contact-primary:hover,.pf-scroll-arrow:hover{transform:none}.pf-case-close,.pf-case-play-icon,.pf-deck-card,.pf-deck-card-surface{transition:none}}.pf-album-gallery{height:clamp(610px,72svh,720px);margin-top:28px;position:relative;width:100%}@media (max-width:768px){.pf-album-gallery{height:clamp(330px,46svh,440px)}}.flex-carousel{--flex-carousel-card-width:clamp(240px,35vw,470px);--flex-carousel-gap:12px;background:#0000;color:#f3f4f7;cursor:grab;height:100%;overflow:hidden;overscroll-behavior:contain;position:relative;touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%}.flex-carousel:active{cursor:grabbing}.flex-carousel:focus-visible{outline:2px solid #a6bfff;outline-offset:-4px}.flex-carousel__canvas{display:block;height:100%;inset:0;pointer-events:none;position:absolute;width:100%;z-index:1}.flex-carousel__track{align-items:center;display:flex;gap:var(--flex-carousel-gap);left:50%;position:absolute;top:50%;transition:transform .65s cubic-bezier(.2,.8,.2,1);width:max-content}.flex-carousel__card{background:#0000;border:0;cursor:pointer;flex:0 0 var(--flex-carousel-card-width);height:var(--flex-carousel-card-height);overflow:hidden;padding:0;width:var(--flex-carousel-card-width)}.flex-carousel__card img{display:block;height:100%;object-fit:contain;width:100%}.flex-carousel__card{transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1)}.flex-carousel[data-focused] .flex-carousel__card{opacity:.14}.flex-carousel[data-focused] .flex-carousel__card.is-active{opacity:1;transform:scale(1.25)}.flex-carousel__card:focus-visible{outline:2px solid #a6bfff;outline-offset:4px}.flex-carousel[data-webgl] .flex-carousel__track{clip-path:inset(50%);height:1px;overflow:hidden;pointer-events:none;position:absolute;width:1px}.flex-carousel__caption{align-items:center;bottom:clamp(24px,6vh,58px);display:flex;flex-direction:column;gap:6px;left:16px;pointer-events:none;position:absolute;right:16px;text-align:center;z-index:2}.flex-carousel__title{animation:flex-carousel-title .52s cubic-bezier(.2,.8,.2,1) both;font:500 clamp(18px,2vw,28px)/1.2 var(--sans);max-width:min(760px,90vw)}.flex-carousel__subtitle{color:#a6bfff;font:12px var(--mono)}.flex-carousel__count{color:#8d939e;font:12px var(--mono);letter-spacing:.1em}.flex-carousel__live{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@keyframes flex-carousel-title{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.flex-carousel__caption{bottom:28px}.flex-carousel[data-focused] .flex-carousel__card.is-active{transform:scale(1.06)}}@media (prefers-reduced-motion:reduce){.flex-carousel__card,.flex-carousel__track{transition:none}.flex-carousel__title{animation:none}}.pf-drift-showcase{padding-bottom:28px}.pf-drift-wall{height:clamp(600px,55vw,680px);margin:32px auto 8px;overflow:hidden;perspective:1200px;perspective-origin:50% 50%;position:relative;width:min(100%,1120px)}.pf-drift-plane{--drift-turn:-8deg;--drift-tilt:10deg;display:flex;gap:12px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) rotateX(var(--drift-tilt)) rotateY(var(--drift-turn));transform-style:preserve-3d;transition:transform .35s ease-out;width:max-content}.pf-drift-column{transform-style:preserve-3d;width:clamp(122px,13vw,178px)}.pf-drift-track{animation:pf-drift-bob 13s ease-in-out infinite alternate;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.pf-drift-column:nth-child(2n) .pf-drift-track{animation-direction:alternate-reverse;animation-duration:16s}.pf-drift-column:nth-child(3) .pf-drift-track{animation-duration:19s}.pf-drift-column:focus-within .pf-drift-track,.pf-drift-column:hover .pf-drift-track{animation-play-state:paused}.pf-drift-tile{-webkit-tap-highlight-color:transparent;background:#0000;border:0;border-radius:17px;color:#f7f7f6;cursor:pointer;display:block;height:clamp(106px,9.5vw,122px);padding:0;transform-style:preserve-3d;width:100%}.pf-drift-tile-content{align-items:center;background:linear-gradient(145deg,#2b2f39f2,#171a21f5);border:1px solid #8f97a942;border-radius:inherit;box-shadow:inset 0 1px #ffffff17,0 12px 30px #00000038;display:flex;flex-direction:column;gap:13px;height:100%;justify-content:center;opacity:.72;transform:translateZ(0);transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .3s,border-color .3s,box-shadow .3s;width:100%}.pf-drift-tile:focus-visible .pf-drift-tile-content,.pf-drift-tile:hover .pf-drift-tile-content,.pf-drift-tile[data-hovered] .pf-drift-tile-content{border-color:#a6bfffd9;box-shadow:0 22px 48px #00000061,0 0 35px #6788db3d;opacity:1;transform:translateZ(55px) scale(1.05)}.pf-drift-tile[aria-pressed=true] .pf-drift-tile-content{border-color:#a6bfffa6;opacity:1}.pf-drift-tile:focus-visible{outline:2px solid #a6bfff;outline-offset:4px}.pf-drift-logo{display:block;height:50px;object-fit:contain;width:50px}.pf-drift-logo-java{height:62px;width:62px}.pf-drift-name{color:#c9ced8;font:11px var(--mono);letter-spacing:.02em}.pf-drift-detail{min-height:48px;position:relative;z-index:1}@keyframes pf-drift-bob{0%{transform:translate3d(0,-14px,0)}to{transform:translate3d(0,14px,0)}}@media (max-width:700px){.pf-drift-wall{height:auto;margin:36px auto 28px;-webkit-mask-image:none;mask-image:none;max-width:460px;overflow:visible;perspective:none}.pf-drift-plane{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));position:static;transform:none!important;width:100%}.pf-drift-column,.pf-drift-track{display:contents}.pf-drift-track{animation:none}.pf-drift-tile{aspect-ratio:1;height:auto}.pf-drift-tile-content{border-radius:11px;gap:7px}.pf-drift-logo{height:clamp(26px,7vw,40px);width:clamp(26px,7vw,40px)}.pf-drift-logo-java{height:clamp(36px,9vw,48px);width:clamp(36px,9vw,48px)}.pf-drift-name{font-size:8px}.pf-drift-tile:focus-visible .pf-drift-tile-content,.pf-drift-tile:hover .pf-drift-tile-content,.pf-drift-tile[data-hovered] .pf-drift-tile-content{transform:translateY(-4px)}}@media (max-width:400px){.pf-drift-plane{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.pf-drift-track{animation:none}.pf-drift-plane,.pf-drift-tile-content{transition:none}}
/*# sourceMappingURL=main.788977a8.css.map*/