@font-face{font-family:KH Teka Mono;src:url(/fonts/KHTekaMonoTRIAL-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:KH Teka Mono;src:url(/fonts/KHTekaMonoTRIAL-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:KH Teka Mono;src:url(/fonts/KHTekaMonoTRIAL-Semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:optional}@font-face{font-family:KH Teka Mono;src:url(/fonts/KHTekaMonoTRIAL-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}body{border:0;color:var(--text-primary);background:var(--bg-primary);font-family:Roboto,sans-serif}html{scroll-behavior:smooth}.portfolio-page{--bg-primary: #ffffff;--surface: #ffffff;--surface-soft: #eff5fb;--surface-pale: #fafafa;--surface-muted: #f4f6f8;--text-primary: #0f172a;--text-secondary: #475569;--border: #dbe5f1;--accent: #0ea5a4;--accent-dark: #0f766e}.section{padding:5.5rem 1.25rem}.container{width:min(1100px,100%);margin:0 auto}.section-label{font-family:KH Teka Mono,monospace;font-size:.78rem;letter-spacing:.2em;color:var(--accent);font-weight:600;margin-bottom:.8rem}h2{font-size:clamp(1.8rem,4vw,3rem);line-height:1.15;margin-bottom:1.25rem}p{color:var(--text-secondary);line-height:1.72}a{color:inherit}.social-dock{position:fixed;top:50%;left:0;width:64px;transform:translateY(-50%) translate(calc(-100% + 40px));z-index:30;display:flex;flex-direction:column;transition:transform .3s ease-out}.social-dock:hover,.social-dock:focus-within,.social-dock.is-open{transform:translateY(-50%) translate(0)}.social-dock-tab{width:100%;height:140px;flex-shrink:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-left:none;border-radius:0 18px 18px 0;background:#1414148c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 32px #00000059;color:#28ddbc;cursor:pointer;transition:border-radius .3s ease-out}.social-dock:hover .social-dock-tab,.social-dock:focus-within .social-dock-tab,.social-dock.is-open .social-dock-tab{border-radius:0 18px 0 0}.social-dock-tab-icon{transition:transform .3s ease-out}.social-dock:hover .social-dock-tab-icon,.social-dock:focus-within .social-dock-tab-icon,.social-dock.is-open .social-dock-tab-icon{transform:rotate(180deg)}.social-dock-panel{position:relative;display:flex;flex-direction:column;align-items:center;gap:.95rem;padding:1.1rem .75rem;background:#1414148c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.14);border-left:none;border-top:none;border-radius:0 0 18px;box-shadow:0 8px 32px #00000059;opacity:0;pointer-events:none;transition:opacity .3s ease-out}.social-dock:hover .social-dock-panel,.social-dock:focus-within .social-dock-panel,.social-dock.is-open .social-dock-panel{opacity:1;pointer-events:auto}.social-dock-panel a{width:40px;height:40px;display:grid;place-items:center;text-decoration:none;color:#28ddbc;transition:color .2s ease,transform .2s ease,filter .2s ease}.social-dock-panel a:hover,.social-dock-panel a:focus-visible{transform:scale(1.08);filter:drop-shadow(0 2px 10px rgba(40,221,188,.55));outline:none}.social-dock-panel svg{width:18px;height:18px;fill:currentColor}.social-dock-tooltip{position:absolute;top:37.6px;left:100%;margin-left:14px;opacity:0;pointer-events:none;transform-origin:left center;transform:translateY(0) translate(-8px) scale(.92);transition:transform .28s ease-out,opacity .2s ease-out}.social-dock-tooltip-arrow{position:absolute;left:-5px;top:50%;width:10px;height:10px;background:#1414148c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1.5px solid rgba(40,221,188,.65);border-right:1.5px solid rgba(40,221,188,.65);transform:translateY(-50%) rotate(-135deg)}.social-dock-tooltip-card{display:block;padding:.5rem .85rem;border-radius:14px;background:#1414148c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 32px #00000059;color:#f5f7fa;font-size:.8rem;white-space:nowrap}.social-dock-panel a:nth-child(1):hover~.social-dock-tooltip,.social-dock-panel a:nth-child(1):focus-visible~.social-dock-tooltip{opacity:1;pointer-events:none;transform:translateY(0) translate(0) scale(1)}.social-dock-panel a:nth-child(1):hover~.social-dock-tooltip .social-dock-tooltip-card:after,.social-dock-panel a:nth-child(1):focus-visible~.social-dock-tooltip .social-dock-tooltip-card:after{content:"LinkedIn"}.social-dock-panel a:nth-child(2):hover~.social-dock-tooltip,.social-dock-panel a:nth-child(2):focus-visible~.social-dock-tooltip{opacity:1;pointer-events:none;transform:translateY(55.2px) translate(0) scale(1)}.social-dock-panel a:nth-child(2):hover~.social-dock-tooltip .social-dock-tooltip-card:after,.social-dock-panel a:nth-child(2):focus-visible~.social-dock-tooltip .social-dock-tooltip-card:after{content:"GitHub"}.social-dock-panel a:nth-child(3):hover~.social-dock-tooltip,.social-dock-panel a:nth-child(3):focus-visible~.social-dock-tooltip{opacity:1;pointer-events:none;transform:translateY(110.4px) translate(0) scale(1)}.social-dock-panel a:nth-child(3):hover~.social-dock-tooltip .social-dock-tooltip-card:after,.social-dock-panel a:nth-child(3):focus-visible~.social-dock-tooltip .social-dock-tooltip-card:after{content:"Discord"}.social-dock-panel a:nth-child(4):hover~.social-dock-tooltip,.social-dock-panel a:nth-child(4):focus-visible~.social-dock-tooltip{opacity:1;pointer-events:none;transform:translateY(165.6px) translate(0) scale(1)}.social-dock-panel a:nth-child(4):hover~.social-dock-tooltip .social-dock-tooltip-card:after,.social-dock-panel a:nth-child(4):focus-visible~.social-dock-tooltip .social-dock-tooltip-card:after{content:"Bluesky"}.social-dock-panel a:nth-child(5):hover~.social-dock-tooltip,.social-dock-panel a:nth-child(5):focus-visible~.social-dock-tooltip{opacity:1;pointer-events:none;transform:translateY(220.8px) translate(0) scale(1)}.social-dock-panel a:nth-child(5):hover~.social-dock-tooltip .social-dock-tooltip-card:after,.social-dock-panel a:nth-child(5):focus-visible~.social-dock-tooltip .social-dock-tooltip-card:after{content:"X"}@media(prefers-reduced-motion:reduce){.social-dock,.social-dock-tab-icon,.social-dock-panel,.social-dock-tooltip{transition:none}}.social-sidebar-mobile{display:none}.hero{position:relative;min-height:100vh;display:grid;align-items:center;padding-bottom:0;overflow:hidden}.hero-media{position:absolute;inset:0;z-index:0}.hero-image{display:none;position:absolute;inset:0}.hero-image img,.hero-video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.hero-image img{display:block}.hero-video{position:absolute;inset:0}@media(max-width:1024px),(prefers-reduced-motion:reduce){.hero-image{display:block}.hero-video{display:none}}.hero-overlay{position:absolute;inset:0;background:#0000006b;pointer-events:none}.hero-content{position:relative;display:grid;justify-items:center;text-align:center;z-index:1;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.eyebrow{font-family:KH Teka Mono,monospace;font-size:1rem;font-weight:600;color:#28ddbc;margin-bottom:.8rem;border:none;box-shadow:none;text-shadow:0 1px 3px rgba(0,0,0,.4)}#hero h1{display:grid;gap:.35rem;font-size:clamp(2.1rem,6.6vw,5.8rem);line-height:.98;margin-bottom:1.4rem;max-width:24ch}#hero-title span{color:#fff}#hero-title .hero-title-sub{font-size:.42em;font-weight:600;line-height:1.15;color:#ffffffd1}.hero-copy{max-width:60ch;margin-bottom:1.7rem;color:#fff;text-rendering:optimizeSpeed}.scroll-cta{font-family:KH Teka Mono,monospace;display:inline-flex;gap:.55rem;align-items:center;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--text-primary)}.scroll-cta span{color:#fff}.scroll-indicator{width:22px;height:34px;border:1px solid var(--border);border-radius:999px;position:relative}.scroll-indicator:after{content:"";width:4px;height:7px;border-radius:99px;background:var(--accent);position:absolute;left:50%;transform:translate(-50%);top:6px;animation:scrollPulse 1.5s infinite}.intro .container,.profile .container{background:color-mix(in srgb,var(--surface) 95%,transparent);border:1px solid var(--border);border-radius:22px;padding:clamp(1.1rem,3vw,2.2rem)}.intro{background-color:#2b2b2b;color:#1c1c1c;position:relative;overflow:hidden;padding-top:4rem;padding-bottom:4rem}.intro-deco{position:absolute;height:170%;width:auto;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}.intro-deco--left{left:-14%;bottom:-75%}.intro-deco--right{right:-14%;top:-75%}@media(prefers-reduced-motion:reduce){.intro-deco--left,.intro-deco--right{animation:none}}.intro .container{background:transparent;border-color:transparent;-o-border-image:none;border-image:none;text-align:center;position:relative;z-index:2;width:min(780px,100%)}.intro .section-label{color:#28ddbc;font-size:18px}.intro h2{color:#f8fafc}.intro p{color:#e2e8f0}.intro .inline-link{color:#28ddbc}.inline-link{font-family:KH Teka Mono,monospace;display:inline-block;margin-top:1.1rem;color:var(--accent-dark);text-decoration:none;font-weight:600}.profile-grid{display:grid;grid-template-columns:1fr;gap:2.5rem}.profile{background:#d7d7d9}.profile .container{background:transparent;border:none;border-radius:0;padding-top:0;padding-bottom:0}.profile-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.profile-intro-grid h2{font-size:clamp(2rem,4.2vw,3.1rem);font-weight:500;line-height:1.2;margin:0}.profile-intro-grid p{font-size:1.02rem;max-width:52ch;margin:0}.profile-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.profile-stat{padding-top:1.1rem;border-top:1px solid color-mix(in srgb,var(--text-primary) 30%,transparent)}.profile-stat-label{font-family:KH Teka Mono,monospace;font-size:15px;letter-spacing:.08em;margin-bottom:1.1rem;color:color-mix(in srgb,var(--text-primary) 55%,transparent)}.profile-stat-value{font-family:KH Teka Mono,monospace;font-size:clamp(3rem,7vw,5rem);font-weight:700;color:var(--text-primary);line-height:1;margin:0}.stat-plus{color:#28ddbc}.tech-stack{padding-top:1.5rem;text-align:center}.tech-stack-label{font-family:KH Teka Mono,monospace;font-size:15px;letter-spacing:.15em;color:color-mix(in srgb,var(--text-primary) 40%,transparent);font-weight:600;margin-bottom:1rem}.tech-stack-icons{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:center}.tech-icon{width:36px;height:36px;display:grid;place-items:center;color:color-mix(in srgb,var(--text-primary) 55%,transparent);border-radius:10px;background:color-mix(in srgb,var(--text-primary) 6%,transparent);padding:7px;transition:transform .2s ease,background .2s ease,color .2s ease}.tech-icon:hover{transform:translateY(-2px);color:var(--text-primary);background:color-mix(in srgb,var(--text-primary) 12%,transparent)}.tech-icon svg{width:100%;height:100%;fill:color-mix(in srgb,var(--text-primary) 55%,transparent);transition:fill .2s ease}.tech-icon:hover svg{fill:var(--text-primary)}.tech-icon--outline svg,.tech-icon--outline svg *{fill:none!important}.profile-bottom-statement p{font-size:clamp(1.9rem,3vw,2.125rem);line-height:1.2;font-weight:500;max-width:none;width:100%;margin:0;text-align:center;color:var(--text-primary)}.footer{background:#0a0a0a;border-top:1px solid rgba(255,255,255,.1);padding:4.5rem 1.25rem 2rem}.footer-shell{position:relative;overflow:visible;isolation:isolate;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:linear-gradient(135deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:clamp(1.2rem,3vw,2.3rem)}.cursor-ring{position:fixed;top:0;left:0;width:30px;height:30px;border:1.5px solid #ffffff;border-radius:999px;transform:translate(-50%,-50%);pointer-events:none;z-index:99999;mix-blend-mode:difference;opacity:0;transition:opacity .12s ease}.cursor-ring.is-visible{opacity:1}.footer-main{position:relative;display:grid;grid-template-columns:1fr;gap:1.5rem}.footer-brand-block{padding-right:clamp(190px,25vw,340px)}.footer .section-label{color:#28ddbc}.footer-name{font-size:clamp(1.3rem,2.5vw,1.7rem);font-weight:700;color:#f8fafc;margin-bottom:.65rem}.footer-tagline{max-width:38ch;font-size:.94rem;color:#f8fafcbf;margin:0}.footer-image-block{position:absolute;top:-18px;left:498px;width:min(240px,28vw);display:flex;align-items:flex-start;justify-content:flex-end}.footer-image{display:block;width:100%;max-width:240px;height:auto;-o-object-fit:contain;object-fit:contain;opacity:.92;pointer-events:none;transform:translateY(0) rotate(-106deg);animation:footerImageFloat 5.5s ease-in-out infinite;will-change:transform}.footer-image:hover{animation-play-state:paused}@keyframes footerImageFloat{0%,to{transform:translateY(0) rotate(-106deg)}50%{transform:translateY(-12px) rotate(-106deg)}}.footer-legal{margin-top:.9rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:space-between;gap:1rem}.footer-legal-actions{display:flex;align-items:center;gap:.75rem}.footer-legal p,.footer-legal a{margin:0;font-size:.82rem;color:#f8fafca8;text-decoration:none}.footer-legal a:hover,.footer-legal a:focus-visible{color:#28ddbc}.footer-backtop{display:inline-flex;align-items:center;gap:.42rem;padding:.42rem .75rem;border:1px solid rgba(248,250,252,.9);border-radius:999px;color:#f8fafc;line-height:1;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.footer-backtop:before{content:"↑";font-size:.8rem;line-height:1;transform:translateY(-1px)}.footer-legal a.footer-backtop:hover,.footer-legal a.footer-backtop:focus-visible{color:#f8fafc;background:#f8fafc1a;border-color:#fff}.footer-terminal-badge{position:absolute;top:clamp(1.2rem,3vw,2.3rem);right:clamp(1.2rem,3vw,2.3rem);z-index:2;font-size:.82rem;text-decoration:none}.footer-terminal-badge:before{content:none}.footer-terminal-badge:hover,.footer-terminal-badge:focus-visible{color:#f8fafc;background:#f8fafc1a;border-color:#fff}@media(max-width:1024px){.footer-terminal-badge{position:static;align-self:flex-start;margin-bottom:1.25rem}}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .85s ease,transform .85s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}@media(max-width:1024px){.social-dock{display:none}.social-sidebar-mobile{display:flex;flex-direction:row;gap:.75rem;justify-content:center;margin-top:1.5rem}.social-sidebar-mobile a{width:40px;height:40px;border:1px solid rgba(255,255,255,.18);background:#1f1f1f4a;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:999px;display:grid;place-items:center;text-decoration:none;color:#28ddbc;box-shadow:0 4px 16px #00000026;transition:color .2s ease,border-color .2s ease}.social-sidebar-mobile a:hover,.social-sidebar-mobile a:focus-visible{color:#28ddbc;border-color:#28ddbc;outline:none}.social-sidebar-mobile svg{width:18px;height:18px;fill:currentColor}.profile-grid{grid-template-columns:1fr}.profile-intro-grid{grid-template-columns:1fr;gap:1rem}.footer-main{grid-template-columns:1fr 1fr;position:static}.footer-brand-block{padding-right:0}.footer-image-block{position:static;top:auto;right:auto;width:auto;align-items:center;justify-content:center}.intro-deco{height:110%}.intro-deco--left{left:-18%;bottom:-20%}.intro-deco--right{right:-18%;top:-20%}}@media(max-width:760px){.section{padding:4rem 1rem}.profile-stat-grid{grid-template-columns:1fr}.services-pin-inner{flex-direction:column;height:auto;padding:4rem 1rem}.services-left{width:100%;min-width:unset;height:auto;padding-left:0;padding-bottom:2rem;flex-direction:column;align-items:flex-start}.services-indicator,.services-nav{display:none}.services-right{position:relative;width:100%;height:auto;display:flex;flex-direction:column;gap:1.5rem}.service-panel{position:relative;width:100%;aspect-ratio:auto;opacity:1;visibility:visible;padding:1.5rem}.projects-showcase{grid-template-columns:1fr}.showcase-media{min-height:250px}.footer-main{grid-template-columns:1fr}.footer-legal{flex-direction:column;align-items:flex-start}.intro-deco{display:none}}
