::selection{background:var(--primary-glow);color:var(--text-primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input:where(:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=reset],[type=button],[type=image])),textarea,select{background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);color:var(--text-primary);font-family:var(--font-main);box-sizing:border-box;box-shadow:var(--input-shadow);outline:none;transition:box-shadow .2s,border-color .2s,background-color .2s}input:where(:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=reset],[type=button],[type=image])):focus,textarea:focus,select:focus{border-color:color-mix(in srgb, var(--input-accent) 55%, transparent);box-shadow:var(--input-shadow-focus)}input:where(:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=reset],[type=button],[type=image])):focus-visible,textarea:focus-visible,select:focus-visible{outline-color:var(--input-accent)}::placeholder{color:var(--text-muted);opacity:1}@media (prefers-reduced-motion:reduce){input,textarea,select{transition:none}}.container{z-index:1;max-width:1000px;margin:0 auto;padding:0 24px;position:relative}.section-header{font-family:var(--font-mono);align-items:center;gap:16px;margin-bottom:40px;display:flex}.section-header h2{color:var(--text-primary);font-size:1.8rem;font-weight:700}.section-header .line{background:linear-gradient(90deg, var(--primary), transparent);flex:1;height:1px}.section-header .num{color:var(--primary);font-size:.9rem}.gradient-text,.hero-name{background:linear-gradient(135deg, #fff 0%, var(--primary) 50%, var(--secondary) 100%);-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;animation:6s infinite gradientShift}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.text-glow,.hero-title{font-family:var(--font-mono);color:var(--primary);min-height:2em;text-shadow:0 0 20px var(--primary-glow), 0 0 40px var(--primary-glow);margin-bottom:24px;font-size:clamp(1rem,2.5vw,1.4rem)}.hero-title .cursor{background:var(--primary);vertical-align:text-bottom;width:2px;height:1.2em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.hero-title--error{color:var(--error);position:relative}.hero-title--error [data-typed-text]{text-shadow:0 0 10px color-mix(in srgb, var(--error) 55%, transparent);animation:4s step-end infinite heroErrorGlitch;display:inline-block}.hero-title--error .cursor{background:var(--error);box-shadow:0 0 8px var(--error)}.hero-title--error:after{content:"";pointer-events:none;mix-blend-mode:screen;opacity:.5;background:repeating-linear-gradient(0deg,#ff55771f 0 1px,#0000 2px 4px);animation:6s linear infinite heroErrorScan;position:absolute;inset:0}@keyframes heroErrorGlitch{0%,42.5%,88%,to{text-shadow:0 0 10px color-mix(in srgb, var(--error) 55%, transparent);clip-path:none;opacity:1}41%{text-shadow:-6px 0 0 var(--error), 6px 0 0 var(--primary);clip-path:inset(18% 0 44%);opacity:.85}42%{text-shadow:5px 0 0 var(--error), -5px 0 0 var(--primary);clip-path:inset(52% 0 8%);opacity:1}89%{text-shadow:7px 0 0 var(--error), -7px 0 0 var(--primary);clip-path:inset(0 0 55%);opacity:.9}91%{text-shadow:-8px 0 0 var(--error), 8px 0 0 var(--primary);clip-path:inset(38% 0 22%);opacity:.75}93%{text-shadow:6px 0 0 var(--error), -6px 0 0 var(--primary);clip-path:inset(60% 0 0);opacity:1}95%{text-shadow:-4px 0 0 var(--error), 4px 0 0 var(--primary);clip-path:inset(0 0 26%);opacity:.88}}@keyframes heroErrorScan{0%{background-position:0 0}to{background-position:0 -80px}}@media (prefers-reduced-motion:reduce){.hero-title--error [data-typed-text]{text-shadow:0 0 8px var(--error);clip-path:none;animation:none}.hero-title--error:after{opacity:.28;animation:none}}.hero-headline{letter-spacing:1px;text-transform:uppercase;background:linear-gradient(90deg, var(--primary) 0%, var(--text-primary) 25%, var(--secondary) 50%, var(--text-primary) 75%, var(--primary) 100%);color:#0000;text-shadow:0 2px 10px #00000026;background-size:200%;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:clamp(1.15rem,2.3vw,1.6rem);font-weight:700;animation:8s linear infinite headline-shimmer}@keyframes headline-shimmer{to{background-position:200%}}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:120px 24px 80px;display:flex;position:relative;opacity:1!important;transform:none!important}.hero-name{letter-spacing:-1px;margin-bottom:8px;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800}.hero-location{color:var(--text-secondary);margin-bottom:32px;font-size:1rem}.hero-location svg{vertical-align:-2px;margin-right:4px}.hero-summary{text-align:left;max-width:700px;color:var(--text-secondary);margin:0 auto 40px;font-size:1.05rem;line-height:1.7}section{z-index:1;padding:60px 0;position:relative}section:not(.hero):not(.print-only){transform-origin:top;transition:opacity var(--reveal-section-exit-dur) var(--reveal-section-exit-ease), transform var(--reveal-section-exit-dur) var(--reveal-section-exit-ease);transform:translateZ(0)}section:not(.hero):not(.print-only) .section-header .num{--i:0}section:not(.hero):not(.print-only) .section-header h2{--i:1}section:not(.hero):not(.print-only) .section-header .line{--i:2}section:not(.hero):not(.print-only) .container>:not(.section-header){--i:3}section:not(.hero):not(.print-only) .section-header .num,section:not(.hero):not(.print-only) .section-header h2,section:not(.hero):not(.print-only) .section-header .line,section:not(.hero):not(.print-only) .container>:not(.section-header){transition:opacity var(--reveal-section-dur) var(--reveal-section-ease), transform var(--reveal-section-dur) var(--reveal-section-ease);transition-delay:calc(var(--reveal-section-stagger) * var(--i))}section:not(.hero):not(.print-only) .section-header .num,section:not(.hero):not(.print-only) .section-header h2{transform-origin:top}section:not(.hero):not(.print-only) .section-header .line{transform-origin:0}section:not(.hero):not(.print-only):not(.visible):not(.exit) .section-header .num,section:not(.hero):not(.print-only):not(.visible):not(.exit) .section-header h2{opacity:0;transform:perspective(var(--reveal-section-perspective)) rotateX(var(--reveal-section-tilt)) translateY(var(--reveal-section-shift))}section:not(.hero):not(.print-only):not(.visible):not(.exit) .section-header .line{opacity:0;transform:scaleX(0)}section:not(.hero):not(.print-only):not(.visible):not(.exit) .container>:not(.section-header){opacity:0;transform:translateY(var(--reveal-section-shift))}section:not(.hero):not(.print-only).exit{opacity:0;transform:translateZ(0) scale(var(--reveal-section-exit-scale))}@media (prefers-reduced-motion:reduce){section:not(.hero):not(.print-only),section:not(.hero):not(.print-only).visible,section:not(.hero):not(.print-only).exit,section:not(.hero):not(.print-only) .section-header .num,section:not(.hero):not(.print-only) .section-header h2,section:not(.hero):not(.print-only) .section-header .line,section:not(.hero):not(.print-only) .container>:not(.section-header){opacity:1;transition:none;transform:none}}@keyframes popIn{0%{opacity:0;transform:scale(var(--reveal-scale-from))}to{opacity:1;transform:scale(1)}}@keyframes tocReveal{0%{opacity:0;transform:translateY(-50%) scale(var(--reveal-scale-from))}to{opacity:1;transform:translateY(-50%)scale(1)}}.reveal-pop{animation:popIn var(--reveal-dur) var(--reveal-ease-pop) backwards}@media (prefers-reduced-motion:reduce){.reveal-pop{animation:none}}.action-collapse{transition:grid-template-rows var(--action-collapse-dur) var(--reveal-ease-settle);grid-template-rows:1fr;display:grid}.action-collapse--x{transition:grid-template-columns var(--action-collapse-dur) var(--reveal-ease-settle);grid-template-rows:none;grid-template-columns:1fr}.action-collapse>*{min-width:0;min-height:0;transition:opacity .2s,transform .2s;overflow:hidden}.action-collapse[data-collapsed]{grid-template-rows:0fr}.action-collapse--x[data-collapsed]{grid-template-columns:0fr}.action-collapse[data-collapsed]>*{opacity:0;pointer-events:none;transform:translateY(4px)scale(.98)}.action-collapse--x[data-collapsed]>*{transform:translate(6px)scale(.98)}@media (prefers-reduced-motion:reduce){.action-collapse,.action-collapse>*{transition:none}}@keyframes heroNameIn{0%{opacity:0;transform:scale(1.35)}60%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes heroLineIn{0%{opacity:0;transform:perspective(var(--reveal-hero-perspective)) rotateX(-38deg) translateY(26px)}to{opacity:1;transform:perspective(var(--reveal-hero-perspective)) rotateX(0) translateY(0)}}@keyframes heroFadeIn{0%{opacity:0}to{opacity:1}}.hero .hero-name{animation:gradientShift 6s ease infinite, heroNameIn var(--reveal-dur-hero) var(--reveal-ease-pop) 50ms backwards}.hero .hero-headline{animation:headline-shimmer 8s linear infinite, heroLineIn var(--reveal-dur-hero) var(--reveal-ease-settle) .2s backwards;transform-origin:top}.hero .hero-title.screen-only{animation:heroLineIn var(--reveal-dur-hero) var(--reveal-ease-settle) .34s backwards;transform-origin:top}.hero .hero-location,.hero .legal-meta{animation:heroLineIn var(--reveal-dur-hero) var(--reveal-ease-settle) .48s backwards;transform-origin:top}.hero .hero-summary{animation:heroLineIn var(--reveal-dur-hero) var(--reveal-ease-settle) .6s backwards;transform-origin:top}.hero .contact-chips.screen-only,.hero .legal-note{animation:heroLineIn var(--reveal-dur-hero) var(--reveal-ease-settle) .72s backwards;transform-origin:top}.hero .scroll-indicator{animation:2s ease-in-out infinite float,.5s .9s backwards heroFadeIn}.hero .hero-name,.hero .hero-headline,.hero .hero-title.screen-only,.hero .hero-location,.hero .legal-meta,.hero .hero-summary,.hero .contact-chips.screen-only,.hero .legal-note,.hero .scroll-indicator{transition:opacity var(--reveal-section-exit-dur) var(--reveal-section-exit-ease), transform var(--reveal-section-exit-dur) var(--reveal-section-exit-ease)}.hero.exit .hero-name{opacity:0;transform:scale(var(--reveal-hero-exit-name-scale))}.hero.exit .hero-headline,.hero.exit .hero-title.screen-only,.hero.exit .hero-location,.hero.exit .legal-meta,.hero.exit .hero-summary,.hero.exit .contact-chips.screen-only,.hero.exit .legal-note{opacity:0;transform:perspective(var(--reveal-hero-perspective)) rotateX(var(--reveal-hero-exit-tilt)) translateY(calc(-1 * var(--reveal-section-shift)))}.hero.exit .scroll-indicator{opacity:0}@media (prefers-reduced-motion:reduce){.hero .hero-name{animation:6s infinite gradientShift}.hero .hero-headline{animation:8s linear infinite headline-shimmer}.hero .hero-title.screen-only,.hero .contact-chips.screen-only,.hero .hero-location,.hero .legal-meta,.hero .hero-summary,.hero .legal-note{opacity:1;transition:none;animation:none;transform:none}.hero .scroll-indicator{opacity:1;transition:none;animation:2s ease-in-out infinite float}}.legal-doc{color:var(--text-secondary);font-size:1.02rem;line-height:1.75}.legal-doc p,.legal-doc ul,.legal-doc ol{margin:0 0 1rem}.legal-doc>:last-child{margin-bottom:0}.legal-doc h3{font-family:var(--font-mono);color:var(--primary);margin:1.75rem 0 .6rem;font-size:1.05rem;font-weight:700}.legal-doc h4{color:var(--text-primary);margin:1.25rem 0 .5rem;font-size:1rem;font-weight:700}.legal-doc ul,.legal-doc ol{padding-left:1.4rem}.legal-doc li{margin:.35rem 0}.legal-doc li::marker{color:var(--primary)}.legal-doc strong{color:var(--text-primary);font-weight:700}.legal-meta{font-family:var(--font-mono);color:var(--text-muted);margin-bottom:24px;font-size:.85rem}.legal-note{background:var(--bg-card);border:1px solid var(--border-subtle);border-left:3px solid var(--accent);color:var(--text-secondary);border-radius:8px;margin:1.25rem 0;padding:14px 18px;font-size:.95rem;line-height:1.6}.site-logo{width:var(--site-logo-size,2rem);height:var(--site-logo-size,2rem);vertical-align:middle;object-fit:contain;flex-shrink:0;display:inline-block}.scroll-indicator{animation:2s ease-in-out infinite float;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.scroll-indicator svg{color:var(--text-muted)}@keyframes float{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(10px)}}.chip{border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;transition:all .3s;display:inline-flex}.chip:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px);box-shadow:0 8px 32px #00d4ff33}.chip svg{flex-shrink:0;width:16px;height:16px}.chip-icon{background-color:currentColor;flex-shrink:0;width:16px;height:16px;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.skill-tags{flex-wrap:wrap;gap:6px;display:flex}.skill-tag{color:var(--text-secondary);font-size:.78rem;font-family:var(--font-mono);background:#00d4ff14;border:1px solid #00d4ff26;border-radius:4px;padding:4px 10px;transition:all .3s;display:inline-block}.skill-tag:hover{border-color:var(--primary);color:var(--primary);box-shadow:0 0 8px var(--primary-glow);background:#00d4ff26}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.theme-card,.skill-card{border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(3px)saturate(1.15);backdrop-filter:blur(3px)saturate(1.15);perspective:1000px;background:#0f0f2385;border-radius:12px;padding:24px;transition:all .4s;position:relative;overflow:clip}.theme-card:hover,.skill-card:hover{border-color:var(--primary);transform:translateY(-4px)rotateX(2deg);box-shadow:0 10px 30px #00000080}.theme-card:before,.skill-card:before{content:"";background:radial-gradient(800px circle at var(--mouse-x,50%) var(--mouse-y,50%), #ffffff0f, transparent 40%);opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}@media (hover:hover) and (pointer:fine){.theme-card:hover:before,.skill-card:hover:before{opacity:1}}.theme-card:after,.skill-card:after{content:"";background:radial-gradient(circle, var(--primary-glow) 0%, transparent 60%);opacity:0;pointer-events:none;width:200%;height:200%;transition:opacity .4s;position:absolute;top:-50%;left:-50%}.theme-card:hover:after,.skill-card:hover:after{opacity:.15}.theme-panel{background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:24px}.theme-toggle-pill{z-index:50;-webkit-backdrop-filter:blur(14px);width:fit-content;color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;background:#0a0a1ae0;border:1px dashed #7c3aed66;border-radius:99px;justify-content:center;align-items:center;gap:8px;margin:0 auto;padding:10px 22px;font-size:.82rem;transition:border-color .3s,color .3s,background .3s,box-shadow .3s;display:flex;position:sticky;top:calc(100vh - 68px);box-shadow:0 4px 24px #00000080}.theme-toggle-pill:hover{border-color:var(--primary);color:var(--primary);background:#00d4ff0f;box-shadow:0 4px 24px #00d4ff26}.theme-toggle-pill:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.theme-toggle-pill .caret{align-items:center;transition:transform .25s;display:inline-flex}.theme-toggle-pill .caret svg{width:10px;height:10px;display:block}.theme-toggle-pill[aria-expanded=true] .caret{transform:rotate(90deg)}.theme-toggle-pill .label{white-space:nowrap;align-items:baseline;display:inline-flex}.theme-toggle-pill .label-detail{opacity:0;max-width:0;margin-left:0;transition:max-width .35s,opacity .25s,margin-left .35s;display:inline-block;overflow:hidden}.theme-toggle-pill:hover .label-detail,.theme-toggle-pill:focus-visible .label-detail{opacity:1;max-width:320px;margin-left:6px}.theme-toggle-pill[aria-expanded=true] .label-detail,.theme-toggle-pill[aria-expanded=true] .label-suffix{display:none}@property --hl-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes hl-spin{to{--hl-angle:360deg}}@keyframes hl-glow{0%,to{filter:drop-shadow(0 0 4px var(--hl-c1))}50%{filter:drop-shadow(0 0 8px var(--hl-c2))}}.theme-hl-ring{isolation:isolate;--hl-c1:var(--primary);--hl-c2:var(--accent);--hl-c3:var(--secondary)}.theme-hl-ring:before{content:"";border-radius:var(--hl-ring-radius,14px);background:conic-gradient(from var(--hl-angle), var(--hl-c1) 0deg, var(--hl-c2) 120deg, var(--hl-c3) 240deg, var(--hl-c1) 360deg);-webkit-mask-composite:xor;pointer-events:none;z-index:-1;padding:2px;animation:7s linear infinite hl-spin,4s ease-in-out infinite hl-glow;position:absolute;inset:-2px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.theme-hl-ring.theme-hl-flash:before{animation-name:hl-spin,hl-glow,hl-flash;animation-duration:1.2s,.7s,2.6s;animation-timing-function:linear,ease-in-out,ease-out;animation-iteration-count:2,3,1;animation-direction:normal,normal,normal;animation-play-state:running,running,running;animation-delay:0s,0s,0s;animation-fill-mode:forwards;animation-timeline:auto,auto,auto}@keyframes hl-flash{0%{opacity:0;transform:scale(1.06)}12%{opacity:1;transform:scale(1)}88%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.theme-indicator{box-sizing:border-box;transform-origin:0 0;pointer-events:none;opacity:0;will-change:transform, opacity;width:0;height:0;transition:transform .2s,opacity .18s;position:absolute;top:0;left:0}.theme-indicator.is-visible{opacity:1}.theme-ind-lit.theme-indicator{border:1px solid var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent);box-shadow:0 0 10px var(--primary-glow)}.theme-ind-ring.theme-indicator{border:1px solid var(--primary);box-shadow:0 0 0 3px var(--primary-glow), 0 0 10px 1px var(--primary-glow);background:0 0}@keyframes theme-flow{0%{background-position:0 0}to{background-position:0 -200%}}@media (prefers-reduced-motion:reduce){.theme-hl-ring:before,.theme-hl-ring.theme-hl-flash:before{filter:none;background:linear-gradient(135deg, var(--hl-c1), var(--hl-c2), var(--hl-c3));animation:none}.theme-indicator{transition:opacity .18s}}