:root{--page-bg-color: #070a11;--page-base-layer: linear-gradient(180deg, #101a10 0%, #0b130c 48%, #070a09 100%);--page-glow-layer-start: none;--page-glow-layer-end: none;--page-background-layers: var(--page-glow-layer-start), var(--page-glow-layer-end), var(--page-base-layer);--line-pattern-color: rgba(248, 250, 252, .12);--dot-pattern-color: rgba(248, 250, 252, .26);--dot-pattern-size: 18px 18px;--dot-pattern-dot-size: 1.25px;--dot-hover-x: 50vw;--dot-hover-y: 50vh;--dot-hover-opacity: 0;--dot-hover-size: 120px;--line-pattern-layer: repeating-linear-gradient( 135deg, var(--line-pattern-color) 0px, var(--line-pattern-color) 1px, transparent 1px, transparent 4px );--dot-pattern-layer: radial-gradient( circle, var(--dot-pattern-color) 0 var(--dot-pattern-dot-size), transparent calc(var(--dot-pattern-dot-size) + .7px) );--noise-pattern-layer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.2'/%3E%3C/svg%3E");--page-pattern-layers: var(--dot-pattern-layer), var(--line-pattern-layer), var(--noise-pattern-layer);--page-pattern-sizes: var(--dot-pattern-size), auto, 190px 190px;--page-pattern-opacity: .46}html{background-color:var(--page-bg-color);margin:0;overscroll-behavior:none}body{background-color:var(--page-bg-color);background-image:var(--page-background-layers, var(--page-background));background-repeat:no-repeat;background-size:cover;background-attachment:fixed;min-height:100vh;margin:0;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:none}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-color:var(--page-bg-color);background-image:var(--page-pattern-layers),var(--page-background-layers);background-repeat:repeat,repeat,repeat,no-repeat,no-repeat,no-repeat;background-size:var(--page-pattern-sizes),cover,cover,cover;background-blend-mode:soft-light,soft-light,soft-light,normal,normal,normal;opacity:var(--page-pattern-opacity);z-index:-1}.dot-hover-layer{position:fixed;inset:0;pointer-events:none;background-image:var(--dot-pattern-layer);background-size:var(--dot-pattern-size);filter:brightness(1.75) saturate(1.08);mask-image:radial-gradient(circle var(--dot-hover-size) at var(--dot-hover-x) var(--dot-hover-y),rgb(0 0 0 / .72) 0%,rgb(0 0 0 / .46) 34%,rgb(0 0 0 / .18) 64%,transparent 100%);-webkit-mask-image:radial-gradient(circle var(--dot-hover-size) at var(--dot-hover-x) var(--dot-hover-y),rgb(0 0 0 / .72) 0%,rgb(0 0 0 / .46) 34%,rgb(0 0 0 / .18) 64%,transparent 100%);mix-blend-mode:screen;opacity:calc(var(--dot-hover-opacity) * .72);transition:opacity .18s ease;z-index:-1}@font-face{font-family:Rajdhani;src:url(/fonts/Rajdhani-Bold.ttf) format("truetype");font-display:block}@font-face{font-family:Lexend;src:url(/fonts/Lexend-VariableFont_wght.ttf) format("truetype");font-display:block}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{--accent-cyan: #38bdf8;--accent-lime: #a3e635;--accent-amber: #fbbf24;--accent-rose: #fb7185;--accent-plum: #c084fc;--accent-orange: #fb923c;--page-accent: #38bdf8;--text-primary: #f8fafc;--text-secondary: #e2e8f0;--font-display: "Rajdhani", sans-serif;--font-body: "Lexend", "Segoe UI", sans-serif;--font-mono: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--hairline: rgba(248, 250, 252, .14);--hairline-strong: rgba(248, 250, 252, .24);color:var(--text-primary)}body{color:var(--text-primary);font-family:var(--font-body);position:relative;isolation:isolate;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--page-accent) 35%,#ffffff26) transparent}::selection{background:color-mix(in srgb,var(--page-accent) 45%,transparent);color:#fff}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid color-mix(in srgb,var(--page-accent) 75%,#ffffff);outline-offset:2px;border-radius:4px}.page-main{width:min(1120px,92vw);margin:1.25rem auto 2.5rem}.page-main--hero{min-height:calc(100svh - 12rem);display:grid;align-content:center;gap:1rem}.page-main--hero .page-title{font-size:clamp(2.35rem,6vw,4.6rem)}.page-header{opacity:0;animation:rise-in .7s cubic-bezier(.16,1,.3,1) forwards}.kicker{margin:0;text-transform:uppercase;letter-spacing:.13em;color:color-mix(in srgb,var(--page-accent) 78%,#f8fafc);font-family:var(--font-mono);font-weight:700;font-size:.68rem}.kicker:before{content:"//";margin-right:.55rem;opacity:.55}.page-title{margin:.15rem 0 0;font-family:var(--font-display);letter-spacing:.04em;font-size:clamp(2rem,4vw,3.2rem);color:var(--text-primary)}.page-header:after{content:"";display:block;height:1px;margin:.9rem 0 1.4rem;background:linear-gradient(90deg,var(--hairline-strong),var(--hairline) 55%,transparent)}.plus-tick{font-family:var(--font-mono);color:color-mix(in srgb,var(--page-accent) 65%,#f8fafc);opacity:.6;user-select:none}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.site-footer{width:min(1120px,92vw);margin:0 auto;padding:1rem 0 1.4rem;display:flex;align-items:center;justify-content:center;gap:1rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:color-mix(in srgb,var(--text-secondary) 62%,transparent);border-top:1px solid var(--hairline)}.site-footer p{margin:0}.site-footer .footer-links{display:flex;align-items:center;gap:.75rem}.site-footer a{display:inline-flex;align-items:center;gap:.32rem;color:color-mix(in srgb,var(--text-secondary) 78%,transparent);text-decoration:none;transition:color .16s ease,transform .16s ease}.site-footer a:hover{color:color-mix(in srgb,var(--page-accent) 70%,#f8fafc);transform:translateY(-1px)}.site-footer .footer-dot{opacity:.45}.site-footer svg{width:.95rem;height:.95rem;fill:currentColor}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}html[data-theme=home]{--page-accent: #fb7185;--page-bg-color: #0f0404;--page-base-layer: linear-gradient( 180deg, #350c0c 0%, #220707 48%, #0f0404 100% );--page-glow-layer-start: radial-gradient( 100vw 60vh at 10% -10%, #fb718550, transparent 55% );--page-glow-layer-end: radial-gradient( 100vw 60vh at 85% -20%, #ef444440, transparent 60% );--line-pattern-color: rgba(255, 235, 210, .16);--dot-pattern-color: rgba(255, 235, 210, .3)}html[data-theme=home] body:after{content:"";position:fixed;inset:0;pointer-events:none;background:#070a1147;z-index:-1}html[data-theme=projects]{--page-accent: #86efac;--page-bg-color: #060c09;--page-base-layer: linear-gradient( 180deg, #0d1a13 0%, #0a1410 48%, #060c09 100% );--page-glow-layer-start: radial-gradient( 100vw 60vh at 10% -10%, #2f8f6940, transparent 55% );--page-glow-layer-end: radial-gradient( 100vw 60vh at 85% -20%, #4b9b7240, transparent 60% );--dot-pattern-color: rgba(220, 252, 231, .28)}html[data-theme=research]{--page-accent: #c084fc;--page-bg-color: #070a11;--page-base-layer: linear-gradient( 180deg, #171025 0%, #110b1a 48%, #09070d 100% );--page-glow-layer-start: radial-gradient( 100vw 60vh at 10% -10%, #8f6ad466, transparent 55% );--page-glow-layer-end: radial-gradient( 100vw 60vh at 85% -20%, #b48be652, transparent 60% );--dot-pattern-color: rgba(233, 213, 255, .28)}html[data-theme=photography]{--page-accent: #c6ab92;--page-bg-color: #0c0806;--page-base-layer: linear-gradient( 180deg, #241812 0%, #31211a 46%, #15100c 100% );--page-glow-layer-start: radial-gradient( 100vw 60vh at 10% -10%, #86634f40, transparent 55% );--page-glow-layer-end: radial-gradient( 100vw 60vh at 85% -20%, #98705a38, transparent 60% );--line-pattern-color: rgba(227, 205, 180, .1);--dot-pattern-color: rgba(227, 205, 180, .26)}html[data-theme=swimming]{--page-accent: #7dd3fc;--page-bg-color: #02050e;--page-base-layer: linear-gradient( 180deg, #091c3c 0%, #05122a 46%, #02050e 100% );--page-glow-layer-start: radial-gradient( 100vw 60vh at 10% -10%, #74a6d326, transparent 55% );--page-glow-layer-end: radial-gradient( 100vw 60vh at 85% -20%, #7fb8d81f, transparent 60% );--line-pattern-color: rgba(186, 228, 255, .16);--dot-pattern-color: rgba(186, 228, 255, .28)}.toolbar[data-astro-cid-5blmo7yk]{position:fixed;top:0;left:0;width:100%;box-sizing:border-box;margin:0;display:flex;justify-content:center;gap:.65rem;padding:.98rem 1.15rem;background:transparent;box-shadow:none;backdrop-filter:blur(0px) saturate(100%);-webkit-backdrop-filter:blur(0px) saturate(100%);z-index:3;transition:background-color .22s ease,box-shadow .22s ease,backdrop-filter .22s ease,-webkit-backdrop-filter .22s ease}.toolbar[data-astro-cid-5blmo7yk]:before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--page-accent, #f8fafc) 45%,rgba(255,255,255,.22)) 18% 82%,transparent);opacity:0;pointer-events:none;transition:opacity .22s ease}.toolbar[data-astro-cid-5blmo7yk].is-scrolled{background:color-mix(in srgb,var(--page-accent, #38bdf8) 6%,rgba(10,14,22,.52));box-shadow:0 14px 36px -18px #000000a6,inset 0 1px #ffffff21;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%)}.toolbar[data-astro-cid-5blmo7yk].is-scrolled:before{opacity:1}body{padding-top:4.2rem}.tool-btn[data-astro-cid-5blmo7yk]{font-family:Rajdhani,sans-serif;font-size:1.2rem;letter-spacing:.06em;text-transform:uppercase;color:#f8fafc;text-decoration:none;padding:.62rem .9rem .72rem;border:none;background:transparent;position:relative;line-height:1;transition:color .18s ease}.tool-btn[data-astro-cid-5blmo7yk]:after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.26rem;height:2px;border-radius:999px;background:#f8fafcf2;transform:scaleX(0);transform-origin:center;opacity:0;transition:transform .18s ease,opacity .18s ease}.tool-btn[data-astro-cid-5blmo7yk].active:after{transform:scaleX(1);opacity:1}.tool-btn[data-astro-cid-5blmo7yk]:not(.active):hover:after{transform:scaleX(.55);opacity:.55}.tool-btn[data-astro-cid-5blmo7yk]:hover{color:#fff}.tool-btn[data-astro-cid-5blmo7yk]:focus-visible{outline:2px solid color-mix(in srgb,var(--page-accent, #f8fafc) 80%,#ffffff);outline-offset:2px}.tool-btn[data-astro-cid-5blmo7yk]:before{content:attr(data-key);position:absolute;top:0;right:.15rem;font-family:var(--font-mono, monospace);font-size:.55rem;font-weight:700;color:color-mix(in srgb,var(--page-accent, #f8fafc) 70%,#f8fafc);opacity:0;transform:translateY(2px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}@media(hover:hover){.toolbar[data-astro-cid-5blmo7yk]:hover .tool-btn[data-astro-cid-5blmo7yk]:before{opacity:.65;transform:translateY(0)}}.external-mark[data-astro-cid-5blmo7yk]{display:inline-block;margin-left:.28rem;font-size:.78em;opacity:.7;transition:transform .18s ease,opacity .18s ease}.resume-link[data-astro-cid-5blmo7yk]:hover .external-mark[data-astro-cid-5blmo7yk]{transform:translate(2px,-2px);opacity:1}.resume-link[data-astro-cid-5blmo7yk]{position:absolute;right:1.15rem}.name-link[data-astro-cid-5blmo7yk]{font-family:Rajdhani,sans-serif;font-size:1.2rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#f8fafc;text-decoration:none;padding:.62rem .9rem .72rem;position:absolute;left:1.15rem;line-height:1;transition:color .18s ease,opacity .18s ease;opacity:.85}.name-link[data-astro-cid-5blmo7yk]:hover{color:#fff;opacity:1}.name-link[data-astro-cid-5blmo7yk]:focus-visible{outline:2px solid color-mix(in srgb,var(--page-accent, #f8fafc) 80%,#ffffff);outline-offset:2px}@media(max-width:980px){.name-link[data-astro-cid-5blmo7yk]{display:none}}@media(max-width:640px){.toolbar[data-astro-cid-5blmo7yk]{top:0;margin-top:0;gap:.5rem;justify-content:flex-start;padding:.72rem .65rem .66rem;overflow-x:auto;max-width:100vw;scrollbar-width:none}body{padding-top:4rem}.toolbar[data-astro-cid-5blmo7yk]::-webkit-scrollbar{display:none}.tool-btn[data-astro-cid-5blmo7yk]{font-size:1.05rem;padding:.54rem .76rem .62rem;white-space:nowrap}.resume-link[data-astro-cid-5blmo7yk]{position:relative;right:auto}}
