/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.isolate{isolation:isolate}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.font-mono{font-family:var(--font-mono)}.uppercase{text-transform:uppercase}.blur{--tw-blur:blur(8px);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,)}.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-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--bg:#0b0f17;--bg-elevated:#121826;--surface:#121826b8;--text:#f3f5f9;--text-muted:#9aa3b2;--text-dim:#64708a;--accent:#38bdf8;--accent-dim:#0ea5e9;--accent-soft:#38bdf81f;--indigo:#6366f1;--indigo-soft:#6366f124;--secure:#34d399;--secure-soft:#34d3991f;--border:#94a3b824;--border-strong:#94a3b847;--font-sans:"Outfit", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--header-height:68px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=light]{--bg:#f2f5f9;--bg-elevated:#e7edf4;--surface:#ffffffc7;--text:#172235;--text-muted:#46556b;--text-dim:#5c6a7d;--accent:#0369a1;--accent-dim:#0284c7;--accent-soft:#0369a11a;--indigo:#4f46e5;--indigo-soft:#4f46e51a;--secure:#047857;--secure-soft:#0478571a;--border:#30425b26;--border-strong:#30425b47;--header-solid:#f4f7fbf5;--header-glass:#f4f7fbc7;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:auto;max-width:100vw;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:pan-y;max-width:100vw;margin:0;overflow-x:hidden}html[data-theme=dark]{--header-solid:#0b0f17f5;--header-glass:#0b0f178c}#root{max-width:100vw;position:relative;overflow-x:hidden}section[id]{scroll-margin-top:var(--header-height)}#hero{scroll-margin-top:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}::selection{color:#fff;background:#38bdf859}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:3px}.glass{background:var(--surface);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border)}.glass-strong{-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-strong);background:#121826e0}header,header nav,footer,#mobile-nav-menu,.glass,.glass-strong,button,a,input,select,textarea,.contact-globe-panel,.skill-galaxy-shell,.terminal-contact,.hero-canvas-shell,.project-preview{transition:color .3s,background .32s,background-color .3s,border-color .3s,box-shadow .3s}#root :where(h1,h2,h3,h4,p,li,label,strong,small){transition:color .3s}.font-mono{font-family:var(--font-mono)}.section-divider{opacity:.6;background:linear-gradient(90deg,#0000,#38bdf840,#6366f133,#0000);width:100%;height:1px;display:block}.canvas-shell{touch-action:pan-y;width:100%;max-width:100%;overflow:hidden}.canvas-shell canvas{display:block;max-width:100%!important}.hero-canvas-shell{touch-action:pan-y;background:radial-gradient(at 50% 46%,#38bdf81a,#0000 58%),radial-gradient(at 50% 90%,#6366f114,#0000 48%);border-radius:24px;outline:none;width:100%;height:100%;position:relative;overflow:hidden}.hero-canvas-shell canvas{touch-action:pan-y;cursor:grab;display:block;width:100%!important;height:100%!important}.hero-canvas-shell canvas:active{cursor:grabbing}.hero-zoom-controls{z-index:2;gap:.5rem;display:flex;position:absolute;bottom:1rem;right:1rem}.hero-zoom-controls button{border:1px solid var(--border-strong);width:42px;height:42px;color:var(--text);font:600 1.25rem var(--font-sans);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#121826e0;border-radius:12px;place-items:center;transition:color .18s,border-color .18s,transform .18s;display:grid}.hero-zoom-controls button:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.contact-section{isolation:isolate;padding:clamp(4rem,8vh,6rem) clamp(1.25rem,5vw,4rem);position:relative;overflow:hidden}.contact-aurora{z-index:-1;pointer-events:none;opacity:.7;filter:blur(72px);background:radial-gradient(34% 46% at 24% 40%,#38bdf829,#0000 72%),radial-gradient(35% 45% at 72% 30%,#6366f129,#0000 72%),radial-gradient(30% 42% at 53% 70%,#34d39914,#0000 74%);height:580px;animation:18s ease-in-out infinite alternate contact-aurora-drift;position:absolute;inset:-25% -10% auto}@keyframes contact-aurora-drift{0%{transform:translate(-1.5%,-1%)scale(.98)}to{transform:translate(1.5%,2%)scale(1.04)}}.contact-heading{z-index:1;max-width:650px;margin-bottom:2.25rem;position:relative}.contact-kicker,.contact-form-kicker{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem}.contact-heading h2{color:var(--text);font-family:var(--font-sans);letter-spacing:-.045em;margin:0 0 .8rem;font-size:clamp(2rem,4.5vw,3.35rem);font-weight:700;line-height:1.05}.contact-heading>p:last-child{max-width:530px;color:var(--text-muted);margin:0;font-size:1rem;line-height:1.7}.contact-layout{z-index:1;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:stretch;gap:clamp(1rem,2.5vw,1.75rem);display:grid;position:relative}.contact-main-column{align-content:start;gap:1rem;min-width:0;display:grid}.contact-form{background:#121826c7;border-radius:20px;padding:clamp(1.15rem,2.8vw,1.7rem)}.contact-form-heading{color:var(--accent);justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.contact-form-heading h3{color:var(--text);font-family:var(--font-sans);margin:.35rem 0 0;font-size:1.2rem;font-weight:650}.contact-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem .8rem;display:grid}.contact-field{align-content:start;gap:.42rem;min-width:0;display:grid}.contact-field-wide{grid-column:1/-1}.contact-field label{color:var(--text-muted);font-family:var(--font-sans);font-size:.75rem;font-weight:550}.contact-input{border:1px solid var(--border);width:100%;min-height:44px;color:var(--text);font:400 .86rem var(--font-sans);background:#0b0f17c2;border-radius:10px;outline:none;padding:.7rem .8rem;transition:border-color .18s,box-shadow .18s}.contact-input::placeholder{color:var(--text-dim)}.contact-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #38bdf81a}.contact-input[aria-invalid=true]{border-color:var(--warn)}.contact-field textarea.contact-input{resize:vertical;min-height:112px}.contact-error{color:var(--warn);font-size:.74rem}.contact-submit-error{margin:.9rem 0 0}.contact-submit{color:#07111b;width:100%;min-height:48px;font:650 .9rem var(--font-sans);cursor:pointer;background:linear-gradient(115deg,#38bdf8,#60a5fa);border:1px solid #38bdf866;border-radius:11px;justify-content:center;align-items:center;gap:.55rem;margin-top:1.1rem;transition:transform .18s,box-shadow .18s,opacity .18s;display:inline-flex}.contact-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px #38bdf82e}.contact-submit:disabled{opacity:.65;cursor:wait}.contact-method-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.contact-method{min-width:0;min-height:72px;color:var(--text);border-radius:14px;align-items:center;gap:.75rem;padding:.8rem;text-decoration:none;transition:border-color .18s,background .18s;display:flex}.contact-method:hover{border-color:var(--contact-tone)}@supports (color:color-mix(in lab, red, red)){.contact-method:hover{border-color:color-mix(in srgb, var(--contact-tone), transparent 48%)}}.contact-method:hover{background:#121826f0}.contact-method-disabled{opacity:.74}.contact-method-icon{border:1px solid var(--contact-tone);flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid}@supports (color:color-mix(in lab, red, red)){.contact-method-icon{border:1px solid color-mix(in srgb, var(--contact-tone), transparent 75%)}}.contact-method-icon{background:var(--contact-tone);border-radius:11px}@supports (color:color-mix(in lab, red, red)){.contact-method-icon{background:color-mix(in srgb, var(--contact-tone), transparent 92%)}}.contact-method-copy{gap:.25rem;min-width:0;display:grid}.contact-method-label{color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;font-size:.6rem}.contact-method-value{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:550;overflow:hidden}.contact-method-arrow{color:var(--text-dim);flex:none;margin-left:auto;transition:color .18s,transform .18s}.contact-method:hover .contact-method-arrow{color:var(--contact-tone);transform:translate(2px,-2px)}.contact-globe-panel{background:radial-gradient(at 50% 48%,#38bdf817,#0000 56%),linear-gradient(145deg,#121826db,#090c14b8);border:1px solid #94a3b82e;border-radius:22px;min-height:620px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff09}.contact-globe-panel canvas{display:block}.contact-globe-label,.contact-globe-caption,.contact-globe-orbit-label{z-index:1;border:1px solid var(--border);color:var(--text-muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0b0f17b8;border-radius:999px;align-items:center;gap:.45rem;padding:.55rem .75rem;transition:color .3s,background .32s,border-color .3s;display:inline-flex;position:absolute}.contact-globe-label{color:var(--text);font-size:.78rem;top:1rem;left:1rem}.contact-globe-label svg{color:var(--secure)}.contact-globe-caption{letter-spacing:.06em;font-size:.57rem;bottom:1rem;right:1rem}.contact-live-dot{background:var(--secure);width:7px;height:7px;box-shadow:0 0 10px var(--secure);border-radius:50%}.contact-globe-orbit-label{color:var(--accent);font-size:.58rem;top:25%;right:12%}.contact-success{text-align:center;border-radius:20px;align-content:center;justify-items:center;min-height:360px;padding:2rem;display:grid}.contact-success-icon{background:var(--secure-soft);width:48px;height:48px;color:var(--secure);border:1px solid #34d39952;border-radius:50%;place-items:center;font-size:1.4rem;display:grid}.contact-success h3{color:var(--text);font-family:var(--font-sans);margin:1rem 0 .45rem;font-size:1.2rem}.contact-success p{max-width:340px;color:var(--text-muted);margin:0;line-height:1.6}.project-explore-controls{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:2.25rem auto 0;display:flex}.project-explore-button{min-width:154px;min-height:46px;color:var(--text);font:600 .85rem var(--font-sans);cursor:pointer;background:linear-gradient(120deg,#38bdf82b,#6366f124),#121826d1;border:1px solid #38bdf86b;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;padding:.7rem 1.15rem;transition:border-color .18s,box-shadow .18s,background .18s;display:inline-flex;box-shadow:0 8px 24px #38bdf814}.project-explore-button:hover{border-color:var(--accent);background-color:#121826fa;box-shadow:0 12px 32px #38bdf82e}.project-explore-button span{color:var(--accent);font-size:1rem}.project-explore-secondary{border-color:var(--border-strong);color:var(--text-muted);box-shadow:none;background:#1218268f}.skill-galaxy-filters{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.skill-filter{border:1px solid var(--border);min-height:36px;color:var(--text-muted);font:500 .74rem var(--font-sans);cursor:pointer;background:#12182694;border-radius:999px;padding:.45rem .8rem;transition:color .18s,border-color .18s,background .18s}.skill-filter:hover,.skill-filter.is-active{background:var(--accent-soft);color:var(--accent);border-color:#38bdf875}.skill-galaxy-shell{background:radial-gradient(at 50% 48%,#38bdf817,#0000 44%),radial-gradient(at 48% 55%,#6366f114,#0000 64%),linear-gradient(150deg,#0f1522f2,#090c14eb);border:1px solid #94a3b81f;border-radius:24px;width:100%;height:clamp(340px,52vw,560px);position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 24px 70px #0003}.skill-galaxy-shell:before,.skill-galaxy-shell:after{z-index:0;pointer-events:none;content:"";position:absolute;inset:0}.skill-galaxy-shell:before{opacity:.35;background-image:radial-gradient(1px 1px at 12% 24%,#b8d9ff 55%,#0000),radial-gradient(1px 1px at 78% 31%,#fff 55%,#0000),radial-gradient(1px 1px at 40% 77%,#8ddcfa 55%,#0000),radial-gradient(1px 1px at 88% 68%,#fff 55%,#0000),radial-gradient(1px 1px at 24% 83%,#9faaff 55%,#0000);background-size:230px 190px}.skill-galaxy-shell:after{background:radial-gradient(#0000 35%,#070a114d 100%)}.skill-galaxy-shell canvas{z-index:1;position:relative}.skill-galaxy-loading{background:radial-gradient(circle,#38bdf81f,#0000 35%);position:absolute;inset:0}.skill-galaxy-hint{z-index:2;border:1px solid var(--border);color:var(--text-dim);letter-spacing:.04em;pointer-events:none;background:#0b0f17ad;border-radius:999px;padding:.5rem .7rem;font-size:.58rem;position:absolute;bottom:1rem;right:1rem}.skill-galaxy-hint span{color:var(--accent)}.skill-galaxy-tooltip{min-width:110px;color:var(--text);text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#090d16eb;border:1px solid #94a3b84d;border-radius:10px;gap:.2rem;padding:.55rem .75rem;transition:color .3s,background .32s,border-color .3s,box-shadow .3s;display:grid;box-shadow:0 8px 28px #00000059}.skill-galaxy-tooltip strong{font:600 .72rem var(--font-sans)}.skill-galaxy-tooltip span{color:var(--accent);font:.58rem var(--font-mono)}.skill-orb-label{border:1px solid var(--skill-color);max-width:110px;padding:.2rem .38rem;display:inline-block;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.skill-orb-label{border:1px solid color-mix(in srgb, var(--skill-color), transparent 62%)}}.skill-orb-label{color:#e8f2fa;font:500 9px/1.2 var(--font-sans);text-align:center;text-overflow:ellipsis;white-space:nowrap;background:#080d16c2;border-radius:999px;transition:opacity .16s,transform .16s,box-shadow .16s,color .3s,background-color .3s,border-color .3s;box-shadow:0 2px 9px #00000038}.skill-orb-hit-area{cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:50%;width:54px;height:54px;padding:0;display:block}.skill-orb-hit-area:focus-visible{outline:2px solid var(--skill-color);outline-offset:2px;box-shadow:0 0 20px var(--skill-color)}@supports (color:color-mix(in lab, red, red)){.skill-orb-hit-area:focus-visible{box-shadow:0 0 20px color-mix(in srgb, var(--skill-color), transparent 35%)}}.skill-orb-label.is-active{border-color:var(--skill-color);color:#fff;box-shadow:0 0 14px var(--skill-color)}@supports (color:color-mix(in lab, red, red)){.skill-orb-label.is-active{box-shadow:0 0 14px color-mix(in srgb, var(--skill-color), transparent 45%)}}.skill-orb-label.is-active{transform:scale(1.08)}.skill-orb-list{flex-wrap:wrap;gap:.45rem;margin-top:1rem;display:flex}.skill-orb-list button{border:1px solid var(--border);min-height:32px;color:var(--text-muted);font:500 .67rem var(--font-sans);cursor:pointer;background:#1218267a;border-radius:999px;align-items:center;gap:.42rem;padding:.35rem .58rem;transition:border-color .16s,color .16s,background .16s;display:inline-flex}.skill-orb-list button>span{background:var(--skill-color);width:7px;height:7px;box-shadow:0 0 9px var(--skill-color);border-radius:50%}.skill-orb-list button:hover,.skill-orb-list button.is-active{border-color:var(--skill-color)}@supports (color:color-mix(in lab, red, red)){.skill-orb-list button:hover,.skill-orb-list button.is-active{border-color:color-mix(in srgb, var(--skill-color), transparent 42%)}}.skill-orb-list button:hover,.skill-orb-list button.is-active{background:var(--skill-color)}@supports (color:color-mix(in lab, red, red)){.skill-orb-list button:hover,.skill-orb-list button.is-active{background:color-mix(in srgb, var(--skill-color), transparent 91%)}}.skill-orb-list button:hover,.skill-orb-list button.is-active{color:var(--text)}.contact-mode-toggle{border:1px solid var(--border);background:#121826c2;border-radius:999px;grid-template-columns:1fr 1fr;width:min(100%,248px);margin:0 0 1.25rem;padding:4px;display:grid;position:relative}.contact-mode-toggle button{z-index:1;min-height:38px;color:var(--text-muted);font:550 .8rem var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:999px;transition:color .18s;position:relative}.contact-mode-toggle button[aria-pressed=true]{color:var(--text)}.contact-mode-toggle button:disabled{cursor:wait;opacity:.7}.contact-mode-pill{background:linear-gradient(120deg,#38bdf838,#6366f12e);border:1px solid #38bdf857;border-radius:999px;width:calc(50% - 4px);position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 4px 16px #38bdf814}.terminal-contact{background:#0a0e16e0;border-radius:20px;padding:0;overflow:hidden}.terminal-window-heading{border-bottom:1px solid var(--border);min-height:48px;color:var(--text-dim);background:#ffffff06;align-items:center;gap:.75rem;padding:.7rem 1rem;font-size:.67rem;display:flex}.terminal-lights{gap:5px;display:flex}.terminal-lights i{background:#f87171;border-radius:50%;width:8px;height:8px}.terminal-lights i:nth-child(2){background:#fbbf24}.terminal-lights i:nth-child(3){background:#34d399}.terminal-transcript{color:#cbd5e1;min-height:286px;padding:1.1rem 1.2rem .25rem;font-size:.74rem;line-height:1.65}.terminal-transcript>p{overflow-wrap:anywhere;margin:0 0 .55rem}.terminal-transcript>p:first-child span{color:var(--secure)}.terminal-transcript>p:not(:first-child) span{color:var(--accent);margin-right:.55rem}.terminal-transcript-message{max-height:68px;overflow:auto}.terminal-prompt{color:var(--accent);gap:.45rem;margin-top:1.15rem;display:grid}.terminal-prompt-question:after{background:var(--accent);vertical-align:-.12em;content:"";width:6px;height:.9em;margin-left:3px;animation:.9s steps(2,start) infinite terminal-cursor;display:inline-block}@keyframes terminal-cursor{to{visibility:hidden}}.terminal-input{width:100%;min-height:36px;color:var(--text);font:.78rem/1.6 var(--font-mono);resize:vertical;background:0 0;border:0;border-bottom:1px solid #94a3b833;border-radius:0;outline:none;padding:.45rem 0}.terminal-input:focus{border-color:var(--accent)}.terminal-error{color:#fca5a5;margin:.7rem 0 0}.terminal-confirm{color:var(--secure);margin-top:1rem}.terminal-confirm button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.terminal-submit{width:calc(100% - 2.4rem);margin:.65rem 1.2rem 1.2rem}.contact-feedback{z-index:4;width:min(84%,320px);min-height:180px;color:var(--text-muted);text-align:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#090e16e0;border:1px solid #34d39952;border-radius:20px;align-content:center;justify-items:center;gap:.42rem;padding:1.2rem;animation:.42s cubic-bezier(.2,.8,.2,1) both contact-feedback-in;display:grid;position:absolute;inset:50% auto auto 50%;overflow:hidden;box-shadow:0 22px 70px #0006,0 0 42px #34d3991f}.contact-feedback-success{border-color:#34d39961}.contact-feedback-error{border-color:#f8717159;box-shadow:0 22px 70px #0006,0 0 42px #f871711a}.contact-feedback strong{color:var(--text);font-size:1rem}.contact-feedback>span:last-of-type{font-size:.76rem}.feedback-plane{width:52px;height:40px;animation:1.2s ease-out both feedback-plane-flight;position:absolute;top:7%;left:8%}.feedback-plane svg{width:100%;overflow:visible}.feedback-plane-shape{fill:#38bdf847;stroke:#7dd3fc;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.feedback-trail{fill:none;stroke:#38bdf88c;stroke-dasharray:4 4;stroke-width:1.5px}.feedback-check,.feedback-error-icon{background:var(--secure-soft);width:38px;height:38px;color:var(--secure);border:1px solid #34d39966;border-radius:50%;place-items:center;font-size:1.3rem;animation:.42s cubic-bezier(.18,.89,.32,1.3) .18s both feedback-check-pop;display:grid}.feedback-error-icon{color:#fca5a5;background:#f871711a;border-color:#f8717166}.feedback-confetti{pointer-events:none;height:2px;position:absolute;inset:40% 16% auto}.feedback-confetti i{background:hsl(calc(var(--particle-index) * 26deg), 85%, 68%);width:5px;height:8px;transform:rotate(var(--particle-angle));border-radius:2px;animation:.76s ease-out .18s both feedback-confetti-burst;position:absolute;left:50%}@keyframes contact-feedback-in{0%{opacity:0;transform:translate(-50%,calc(14px - 50%))scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes feedback-plane-flight{0%{opacity:0;transform:translate(-16px,18px)rotate(-15deg)}35%{opacity:1}to{opacity:0;transform:translate(180px,-34px)rotate(-15deg)}}@keyframes feedback-check-pop{0%{opacity:0;transform:scale(.3)rotate(-35deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes feedback-confetti-burst{0%{opacity:1;transform:translate(-50%, 0) rotate(var(--particle-angle))}to{opacity:0;transform:translate(var(--particle-x), var(--particle-y)) rotate(var(--particle-end-angle))}}.scroll-progress{z-index:100004;pointer-events:none;background:#94a3b814;height:2px;position:fixed;inset:0 0 auto}.scroll-progress span{background:linear-gradient(90deg, var(--accent), var(--indigo), var(--secure));transform-origin:0;will-change:transform;width:100%;height:100%;display:block}.back-to-top{z-index:100003;border:1px solid var(--border-strong);width:46px;height:46px;color:var(--accent);font:1.3rem var(--font-sans);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#121826e0;border-radius:15px;place-items:center;display:grid;position:fixed;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);box-shadow:0 12px 32px #00000052}.page-intro{z-index:100005;pointer-events:none;background:#0b0f17;place-items:center;display:grid;position:fixed;inset:0}.page-intro span{background:linear-gradient(90deg, var(--accent), var(--indigo), var(--secure));transform-origin:0;width:76px;height:2px;box-shadow:0 0 18px #38bdf88c}.not-found{background:radial-gradient(ellipse at 50% 40%, #38bdf81a, transparent 48%), var(--bg);text-align:center;align-content:center;justify-items:center;min-height:100svh;padding:2rem;display:grid}.not-found>p:first-child{color:var(--accent);letter-spacing:.12em;font-size:.7rem}.not-found h1{letter-spacing:-.05em;margin:.4rem 0 .8rem;font-size:clamp(2rem,7vw,4rem)}.not-found>p:last-of-type{color:var(--text-muted)}.not-found a{background:var(--accent-soft);color:var(--accent);border:1px solid #38bdf86b;border-radius:999px;margin-top:1rem;padding:.75rem 1.1rem;text-decoration:none}@media (width<=767px){.canvas-shell,.canvas-shell canvas{pointer-events:none!important}.hero-canvas-shell,.hero-canvas-shell canvas{pointer-events:auto!important}.hero-canvas-shell{border-radius:16px}}@media (width<=900px){.contact-layout{grid-template-columns:1fr}.contact-globe-panel{min-height:380px}}@media (width<=520px){.contact-form-grid,.contact-method-grid{grid-template-columns:1fr}.contact-field-wide{grid-column:auto}.contact-globe-panel{min-height:320px}.terminal-transcript{min-height:260px;padding-inline:.9rem}.terminal-submit{width:calc(100% - 1.8rem);margin-inline:.9rem}}@media (width>=768px){.canvas-shell.canvas-interactive,.canvas-shell.canvas-interactive canvas{pointer-events:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ambient-backdrop{transition:background-color .3s}.theme-toggle{border:1px solid var(--border-strong);color:#cbd5e1;cursor:pointer;background:#070b13a3;border-radius:999px;justify-content:space-between;align-items:center;width:66px;height:38px;padding:0 8px;display:flex;position:relative}.theme-toggle-pill{background:linear-gradient(145deg,#38bdf84d,#6366f147);border:1px solid #7dd3fc66;border-radius:999px;width:29px;height:28px;position:absolute;top:4px;left:4px;box-shadow:0 0 18px #38bdf82b}.theme-toggle-icon{z-index:1;opacity:.62;place-items:center;width:22px;height:22px;transition:opacity .22s,transform .3s cubic-bezier(.2,.8,.2,1);display:grid;position:relative;transform:scale(.85)rotate(-25deg)}.theme-toggle-icon.is-active{opacity:1;transform:scale(1)rotate(0)}.desktop-theme-control{align-items:center;margin-left:.4rem;display:flex}.mobile-theme-control{border-top:1px solid var(--border);color:var(--text-muted);font:.8rem var(--font-sans);justify-content:space-between;align-items:center;margin-top:.45rem;padding:.7rem .9rem;display:flex}.about-section{align-items:center;padding:clamp(4.5rem,8vh,6.5rem) clamp(1.25rem,5vw,4rem);display:flex}.about-grid{grid-template-columns:minmax(280px,.83fr) minmax(0,1.17fr);align-items:center;gap:clamp(2.5rem,6vw,6rem);width:min(100%,1320px);margin:0 auto;display:grid}.about-portrait-column{perspective:1000px;isolation:isolate;place-items:center;min-height:540px;display:grid;position:relative}.about-portrait-glow{filter:blur(42px);background:radial-gradient(#38bdf845,#6366f129 44%,#0000 72%);border-radius:48%;width:78%;height:72%;position:absolute;transform:translate(3%,3%)}.about-portrait-frame{aspect-ratio:3/4;--puzzle-edge:#d2e4ffcc;--puzzle-shadow:#03071252;background:linear-gradient(155deg,#17243a,#263454 52%,#111827);border:1px solid #7dd3fc5c;border-radius:32px;width:min(82%,390px);transition:background .32s,border-color .32s,box-shadow .32s;animation:none;position:relative;overflow:hidden;box-shadow:0 28px 90px #00000054,0 0 45px #38bdf821}.about-jigsaw-stage{position:absolute;inset:0;overflow:hidden}.about-jigsaw-piece{z-index:1;pointer-events:none;display:block;position:absolute;overflow:visible}.about-jigsaw-shadow{fill:var(--puzzle-shadow)}.about-jigsaw-edge{fill:none;stroke:var(--puzzle-edge);stroke-width:1.8px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.about-jigsaw-sweep{z-index:2;mix-blend-mode:screen;pointer-events:none;background:linear-gradient(118deg,#0000 26%,#ffffff5c 48%,#a5cdff26 53%,#0000 68%);position:absolute;inset:0}.about-portrait-border{z-index:2;border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;background:conic-gradient(#38bdf8b3,#6366f11f,#34d39999,#38bdf8b3) border-box;border:2px solid #0000;animation:12s linear infinite about-border-spin;position:absolute;inset:-2px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:padding-box,border-box;-webkit-mask-origin:padding-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.about-portrait-frame img{object-fit:cover;object-position:center 35%;width:100%;height:100%;display:block}.about-portrait-overlay{z-index:2;pointer-events:none;background:linear-gradient(#0000,#040a127a);position:absolute;inset:38% 0 0}.about-portrait-caption{z-index:3;color:#f8fafc;font:.7rem var(--font-mono);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#070c1494;border:1px solid #e2e8f033;border-radius:12px;align-items:center;gap:.55rem;padding:.75rem .9rem;display:flex;position:absolute;bottom:1rem;left:1rem;right:1rem}.about-portrait-caption .about-portrait-status,.about-portrait-status{background:#34d399;border-radius:50%;flex:0 0 7px;width:7px;height:7px;box-shadow:0 0 10px #34d399b8}.about-orbit{aspect-ratio:1;pointer-events:none;border:1px solid #38bdf81f;border-radius:50%;width:min(95%,465px);position:absolute}.about-orbit:after{border:2px solid var(--accent);background:var(--bg);content:"";border-radius:50%;width:9px;height:9px;position:absolute;top:16%;right:12%;box-shadow:0 0 15px #38bdf899}.about-orbit-one{transform:rotate(-24deg)scaleY(.7)}.about-orbit-two{border-color:#6366f121;width:min(108%,520px);transform:rotate(30deg)scaleY(.66)}.about-orbit-two:after{border-color:var(--secure);inset:auto auto 15% 12%}.about-float-badge{z-index:3;max-width:190px;color:var(--text);font:600 .65rem var(--font-sans);border-radius:12px;align-items:center;gap:.45rem;padding:.58rem .75rem;animation:5s ease-in-out infinite about-badge-float;display:inline-flex;position:absolute;box-shadow:0 12px 32px #00000038}.about-float-badge svg{color:var(--accent);flex:none}.about-badge-full{top:12%;left:1%}.about-badge-security{animation-delay:-1.4s;top:32%;right:-1%}.about-badge-next{animation-delay:-2.7s;bottom:27%;left:0}.about-badge-open{animation-delay:-.7s;bottom:11%;right:0}.about-copy{min-width:0}.about-kicker{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .65rem;font-size:.68rem}.about-copy h2{color:var(--text);letter-spacing:-.05em;margin:0;font-size:clamp(2.2rem,4.3vw,3.5rem);line-height:1.05}.about-tagline{color:var(--accent);margin:.75rem 0 1.15rem;font-size:clamp(.95rem,1.5vw,1.15rem);font-weight:550}.about-paragraphs{gap:.7rem;margin-bottom:1.25rem;display:grid}.about-paragraphs p{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.7}.about-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.about-info-card{border-radius:12px;align-items:flex-start;gap:.65rem;min-width:0;padding:.75rem;display:flex}.about-info-card>svg{color:var(--accent);flex:0 0 17px;margin-top:2px}.about-info-card div{gap:.25rem;min-width:0;display:grid}.about-info-card div span{color:var(--text-dim);font:.59rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.about-info-card strong{color:var(--text);font-size:.7rem;font-weight:540;line-height:1.4}.about-counters{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-top:.7rem;display:grid}.about-counter{border-radius:12px;justify-items:center;gap:.1rem;padding:.7rem .35rem;display:grid}.about-counter strong{color:var(--accent);font:700 1.4rem var(--font-sans);font-variant-numeric:tabular-nums}.about-counter span{color:var(--text-dim);font:.56rem var(--font-mono);text-align:center}.about-services{margin-top:1rem}.about-services h3{color:var(--text);margin:0 0 .5rem;font-size:.77rem}.about-service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.about-service-card{min-height:70px;color:var(--text-muted);border-radius:12px;align-content:center;justify-items:start;gap:.4rem;padding:.65rem;font-size:.65rem;line-height:1.35;display:grid}.about-service-card svg{color:var(--accent)}.about-service-secure svg{color:var(--secure)}.about-service-indigo svg{color:var(--indigo)}.about-actions{flex-wrap:wrap;gap:.7rem;margin-top:1rem;display:flex}.about-talk-button{border:1px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text);font:600 .8rem var(--font-sans);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.45rem;padding:.65rem 1rem;transition:border-color .18s,transform .18s;display:inline-flex}.about-talk-button:hover{border-color:var(--accent);transform:translateY(-2px)}.cv-button-wrap{isolation:isolate;display:inline-flex;position:relative}.hero-cv-link{color:#fff;min-height:44px;font:650 .82rem var(--font-sans);background:linear-gradient(115deg,#0e7490,#2563a7 58%,#4f46e5);border:1px solid #38bdf885;border-radius:10px;justify-content:center;align-items:center;gap:.58rem;padding:.65rem 1rem;text-decoration:none;transition:transform .18s,box-shadow .18s,filter .18s;animation:3s ease-in-out infinite cv-glow-pulse;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 26px #0e749047}.hero-cv-link:before{content:"";background:linear-gradient(90deg,#0000,#ffffff6b,#0000);width:28%;height:190%;animation:3s ease-in-out infinite cv-shimmer;position:absolute;top:-45%;left:-45%;transform:rotate(22deg)}.hero-cv-link:hover{z-index:2;color:#fff;filter:brightness(1.12);transform:translateY(-3px);box-shadow:0 12px 36px #0e74907a,0 0 24px #38bdf840}.hero-cv-link:focus-visible{outline-offset:4px;outline:3px solid #7dd3fc}.cv-button-label,.cv-download-icon{z-index:1;align-items:center;display:inline-flex;position:relative}.cv-download-icon{transition:transform .18s}.cv-download-arrow{animation:1.6s ease-in-out infinite cv-arrow-bob}.hero-cv-link:hover .cv-download-arrow{animation-duration:.55s}.hero-cv-link.is-downloaded{background:linear-gradient(115deg,#047857,#059669);border-color:#6ee7b7a6;animation:none}.hero-cv-link.is-downloaded .cv-download-icon{animation:.32s cubic-bezier(.2,.8,.2,1) both cv-check-pop}.cv-ripple{z-index:0;opacity:0;pointer-events:none;border:2px solid #ffffffb3;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.hero-cv-link:active .cv-ripple,.hero-cv-link.is-downloaded .cv-ripple{animation:.65s ease-out cv-ripple}.cv-first-visit-badge{z-index:4;background:var(--bg-elevated);color:var(--text);font:600 .62rem var(--font-sans);white-space:nowrap;border:1px solid #38bdf866;border-radius:8px;padding:.38rem .6rem;animation:.35s both cv-badge-pop;position:absolute;top:-40px;right:-12px;box-shadow:0 8px 20px #00000040}.cv-hint-cursor{z-index:5;color:#e0f2fe;fill:#0c4a6e;filter:drop-shadow(0 4px 4px #0000008c);pointer-events:none;animation:1.15s ease-in-out both cv-cursor-tap;position:absolute;top:46%;left:80%}@keyframes cv-glow-pulse{0%,to{box-shadow:0 8px 26px #0e74903d,0 0 #38bdf833}50%{box-shadow:0 8px 28px #0e749057,0 0 0 6px #38bdf809}}@keyframes cv-shimmer{0%,54%{opacity:0;left:-45%}62%{opacity:1}82%,to{opacity:0;left:130%}}@keyframes cv-arrow-bob{0%,to{transform:translateY(-2px)}50%{transform:translateY(3px)}}@keyframes cv-check-pop{0%{opacity:0;transform:scale(.35)rotate(-35deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes cv-ripple{0%{opacity:.8;transform:translate(-50%,-50%)scale(0)}to{opacity:0;transform:translate(-50%,-50%)scale(16)}}@keyframes cv-badge-pop{0%{opacity:0;transform:translateY(5px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cv-cursor-tap{0%{opacity:0;transform:translate(34px,20px)scale(1)}22%{opacity:1}60%{opacity:1;transform:translate(0)scale(1)}72%{transform:translate(0)scale(.86)}85%,to{opacity:0;transform:translate(4px,3px)scale(.88)}}@keyframes about-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes about-badge-float{0%,to{translate:0}50%{translate:0 -7px}}@keyframes about-border-spin{to{filter:hue-rotate(360deg)}}@media (width<=900px){.about-float-badge{font-size:.58rem}.desktop-theme-control{display:none}.about-section{padding-top:4rem;padding-bottom:4rem}.about-grid{grid-template-columns:1fr;gap:1.75rem}.about-portrait-column{min-height:min(112vw,510px)}.about-portrait-frame{width:min(70%,340px)}.about-copy h2{font-size:clamp(2rem,9vw,3rem)}}@media (width<=480px){.about-info-grid,.about-service-grid{grid-template-columns:1fr}.about-service-card{grid-template-columns:22px 1fr;align-items:center;min-height:54px}.about-badge-full{left:-1%}.about-badge-security,.about-badge-open{right:-2%}}html[data-theme=light] body{background:radial-gradient(ellipse at 15% 0%, #0ea5e914, transparent 36%), radial-gradient(ellipse at 85% 12%, #6366f10f, transparent 34%), var(--bg)!important;color:var(--text)!important}html[data-theme=light] .ambient-backdrop{background:radial-gradient(ellipse 80% 50% at 20% -10%, #0e749012, transparent 50%), radial-gradient(ellipse 60% 40% at 90% 10%, #4f46e50f, transparent 45%), radial-gradient(ellipse 50% 50% at 50% 100%, #0478570a, transparent 50%), var(--bg)!important}html[data-theme=light] #root :where(h1,h2,h3,h4,p,li,label,button,a,span,strong,small,div,.font-mono),html[data-theme=light] #mobile-nav-menu :where(button,span,div){color:var(--text)!important}html[data-theme=light] #root :where(.contact-kicker,.contact-form-kicker,.about-kicker,.about-tagline,.project-explore-button span,.skill-galaxy-tooltip span){color:var(--accent)!important}html[data-theme=light] .glass,html[data-theme=light] .glass-strong,html[data-theme=light] .about-info-card,html[data-theme=light] .about-counter,html[data-theme=light] .about-service-card{box-shadow:0 12px 36px #24375012;border-color:var(--border)!important;background-color:#fffc!important}html[data-theme=light] header nav{background-color:var(--header-glass)!important}html[data-theme=light] .mobile-theme-control,html[data-theme=light] #mobile-nav-menu{background-color:#f3f6fa!important}html[data-theme=light] #mobile-nav-menu button{background-color:#0000!important}html[data-theme=light] .mobile-theme-control{border-color:var(--border)}html[data-theme=light] .theme-toggle{color:#334155!important;background:#e2e8f0e6!important}html[data-theme=light] .theme-toggle-pill{background:linear-gradient(145deg,#0ea5e933,#6366f129);border-color:#0369a159;box-shadow:0 0 14px #0369a11f}html[data-theme=light] .skill-galaxy-shell{border-color:#4f469633;box-shadow:inset 0 1px #ffffffe0,0 22px 60px #37416e1f;background:radial-gradient(at 50% 46%,#6366f117,#0000 48%),radial-gradient(at 76% 74%,#0ea5e912,#0000 48%),linear-gradient(140deg,#eef0ff 0%,#f8f9ff 52%,#eaf3fb 100%)!important}html[data-theme=light] .skill-galaxy-shell:before{opacity:.32;filter:none;background-image:radial-gradient(1px 1px at 12% 24%,#68739b 55%,#0000),radial-gradient(1px 1px at 78% 31%,#7a83a8 55%,#0000),radial-gradient(1px 1px at 40% 77%,#53658e 55%,#0000),radial-gradient(1px 1px at 88% 68%,#64769a 55%,#0000),radial-gradient(1px 1px at 24% 83%,#7276a4 55%,#0000)}html[data-theme=light] .skill-galaxy-shell:after{background:radial-gradient(#0000 35%,#5c669614 100%)}html[data-theme=light] .skill-galaxy-hint{color:#4b5873;background:#fafbffe0;border-color:#4953842e}html[data-theme=light] .skill-galaxy-tooltip{background:#f9fbfdf5;border-color:#30425b33;box-shadow:0 8px 26px #2437502e}html[data-theme=light] #root .skill-galaxy-tooltip strong{color:#172235!important}html[data-theme=light] #root .skill-orb-label{border-color:var(--skill-color)}@supports (color:color-mix(in lab, red, red)){html[data-theme=light] #root .skill-orb-label{border-color:color-mix(in srgb, var(--skill-color), transparent 36%)}}html[data-theme=light] #root .skill-orb-label{background:#fafbfff0;box-shadow:0 2px 9px #2b345c24;color:#202b42!important}html[data-theme=light] #root .skill-orb-label.is-active{color:#172235!important}html[data-theme=light] .skill-filter,html[data-theme=light] .skill-orb-list button,html[data-theme=light] .project-explore-button,html[data-theme=light] .about-talk-button{border-color:var(--border-strong)!important;background-color:#ffffffbf!important}html[data-theme=light] .contact-form,html[data-theme=light] .terminal-contact{border-color:var(--border)!important;background:#ffffffd1!important}html[data-theme=light] .contact-mode-toggle{border-color:var(--border-strong);background:#ffffffd1}html[data-theme=light] .contact-mode-pill{background:linear-gradient(120deg,#0ea5e92e,#6366f121);border-color:#0369a142}html[data-theme=light] .terminal-window-heading{border-color:var(--border);background:#e2e8f09e}html[data-theme=light] .terminal-transcript,html[data-theme=light] .terminal-prompt{color:#26364c!important}html[data-theme=light] .terminal-input{border-color:#30425b38;color:#172235!important}html[data-theme=light] .contact-input{border-color:var(--border-strong);color:var(--text)!important;background:#f8fafcf0!important}html[data-theme=light] .contact-input::placeholder{color:#66758a}html[data-theme=light] .contact-globe-panel{border-color:#49538433;box-shadow:inset 0 1px #ffffffe6,0 20px 54px #37416e1f;background:radial-gradient(at 50% 46%,#4f46e51a,#0000 58%),linear-gradient(145deg,#f7f8ff,#e8effb 58%,#edf6fb)!important}html[data-theme=light] .contact-globe-label,html[data-theme=light] .contact-globe-caption,html[data-theme=light] .contact-globe-orbit-label{border-color:var(--border);color:#334155;background:#f8fafce0}html[data-theme=light] .contact-method{background:#ffffffdb;border-color:#30425b33;box-shadow:0 8px 22px #24375012}html[data-theme=light] #root .contact-method-icon{filter:none;color:var(--contact-tone)!important}html[data-theme=light] .contact-method-icon,html[data-theme=light] .contact-method-arrow{filter:none}html[data-theme=light] .contact-globe-panel canvas{filter:drop-shadow(0 8px 18px #2437501f)}html[data-theme=light] .contact-feedback{background:#f8fbfdf2;border-color:#04785747;box-shadow:0 22px 70px #2437502e,0 0 42px #0478571a}html[data-theme=light] #root .contact-feedback strong{color:#172235!important}html[data-theme=light] .contact-feedback-error .feedback-error-icon,html[data-theme=light] #root .contact-error,html[data-theme=light] #root .terminal-error{color:#b42318!important}html[data-theme=light] .terminal-window-heading{color:#334155;background:linear-gradient(110deg,#e2eaf2,#edf2f7)}html[data-theme=light] .terminal-contact{box-shadow:0 16px 38px #37416e1f;background:linear-gradient(145deg,#fbfcff,#f1f5fb)!important;border-color:#49538433!important}html[data-theme=light] .terminal-transcript>p:first-child span,html[data-theme=light] .terminal-confirm,html[data-theme=light] .terminal-prompt{color:#047857!important}html[data-theme=light] .terminal-transcript>p:not(:first-child) span,html[data-theme=light] .terminal-confirm button{color:#1d4ed8!important}html[data-theme=light] .terminal-input{caret-color:#1d4ed8}html[data-theme=light] .contact-feedback{color:#40516a;background:#fafcfff7;border-color:#0478574d;box-shadow:0 22px 60px #37416e2e}html[data-theme=light] .terminal-prompt-question:after{background:#0369a1}html[data-theme=light] .contact-submit{color:#fff;background:linear-gradient(115deg,#0284c7,#4f46e5)}html[data-theme=light] .contact-submit:hover:not(:disabled){box-shadow:0 12px 28px #0369a133}html[data-theme=light] .hero-canvas-shell{background:radial-gradient(at 50% 46%,#0ea5e921,#0000 58%),radial-gradient(at 50% 90%,#6366f117,#0000 48%)}html[data-theme=light] .hero-zoom-controls button{border-color:var(--border-strong);background:#f8fafceb}html[data-theme=light] .project-explore-button{box-shadow:0 8px 24px #0369a11a}html[data-theme=light] .project-explore-secondary{background:#f8fafcd1!important}html[data-theme=light] footer{border-color:var(--border)!important;background-color:#e8eef5f0!important}html[data-theme=light] .scroll-progress{background:#24375014}html[data-theme=light] .back-to-top{border-color:var(--border-strong);background:#f8fafcf0;box-shadow:0 12px 32px #24375029}html[data-theme=light] .page-intro{background:#f2f5f9}html[data-theme=light] #root .about-portrait-caption{background:#0f172ac7;color:#f8fafc!important}html[data-theme=light] #root .about-portrait-caption .about-portrait-status{background:#34d399!important}html[data-theme=light] .about-portrait-frame{--puzzle-edge:#39446ec2;--puzzle-shadow:#232f5430;background:linear-gradient(145deg,#f9faff,#e7edff 52%,#eaf5fb);border-color:#4f46964d;box-shadow:0 26px 76px #37416e2e,0 0 42px #6366f11a}html[data-theme=light] #root .hero-cv-link{color:#fff!important}@media (prefers-reduced-motion:reduce){.hero-cv-link,.hero-cv-link:before,.cv-download-arrow,.about-portrait-border,.about-float-badge,.about-orbit:after{animation:none!important}.cv-hint-cursor{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
