@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@600;700;800&display=swap";:root{font-family:var(--font-sans);color:var(--text-base);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-sans:"Manrope", sans-serif;--font-display:"Sora", sans-serif;--text-strong:#f3f6fb;--text-base:#c0c8d4;--text-muted:#8b95a5;--accent:#ff7a59;--accent-strong:#ff9470;--surface:#10141cd6;--surface-soft:#ffffff0d;--surface-soft-hover:#ffffff14;--border:#ffffff1a;--border-strong:#fff3;--panel-shadow:0 28px 70px #0000006b;--glow-accent:0 4px 28px #ff7a5952;background:radial-gradient(#ffffff06 1px,#0000 1px) 0 0/28px 28px,radial-gradient(at 82% -5%,#ff7a5938,#0000 34%),radial-gradient(at 9% 7%,#5e70ff33,#0000 28%),radial-gradient(at 50% 94%,#6c7cff12,#0000 38%),linear-gradient(#040810 0%,#060b15 100%)}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}body,button,a,input,textarea{font-family:var(--font-sans)}a{color:inherit}p{margin:0;line-height:1.68}code{border:1px solid var(--border);background:#ffffff0f;border-radius:.5rem;padding:.16rem .42rem}#root{min-height:100vh}body.is-preloading{overflow:hidden}.preloader{z-index:1200;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:radial-gradient(circle at 100% 0,#ff7a592e,#0000 24%),radial-gradient(circle at 18% 22%,#5e70ff24,#0000 22%),#040810f0;place-items:center;padding:24px;transition:opacity .32s,visibility .32s;display:grid;position:fixed;inset:0}.preloader.is-hiding{opacity:0;visibility:hidden;pointer-events:none}.preloader-panel{place-items:center;display:grid}.preloader-orbit{filter:drop-shadow(0 0 28px #ff7a592e);width:128px;height:128px;position:relative}.preloader-sun{background:radial-gradient(circle at 38% 38%,#ffa878f2,#ff5a28bf);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:34px;box-shadow:0 0 18px #ff7a598c,0 0 42px #ff7a592e}.preloader-sun span{font-family:var(--font-display);color:#fffffff2;letter-spacing:0;font-size:.82rem;font-weight:800;line-height:1.2}.preloader-ring{border-radius:50%;position:absolute}.preloader-ring--outer{border:1px solid #6c7cff42;animation:2.4s linear infinite orbit-spin;inset:0;box-shadow:0 0 28px #6c7cff14}.preloader-ring--inner{border:1px solid #ff7a5933;animation:1.5s linear infinite reverse orbit-spin;inset:18px;box-shadow:inset 0 0 18px #ff7a590d}.preloader-planet{border-radius:50%;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.preloader-planet--blue{background:#7b8cff;width:8px;height:8px;box-shadow:0 0 8px #6c7cffb3}.preloader-planet--orange{background:#ff9470;width:7px;height:7px;top:-3.5px;box-shadow:0 0 7px #ff7a598c}@keyframes orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.site-shell{z-index:1;width:min(1220px,100% - 32px);margin:0 auto;padding:22px 0 80px;position:relative}.particle-field{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.particle-field canvas{pointer-events:none;position:absolute;inset:0;width:100%!important;height:100%!important}.skill-orbit-wrap{background:0 0;border:0;border-radius:0;width:calc(100% + 28px);height:clamp(300px,31vw,420px);margin:-10px -14px 0;position:relative;overflow:visible;-webkit-mask-image:radial-gradient(#000 48%,#000000d1 68%,#0000 96%);mask-image:radial-gradient(#000 48%,#000000d1 68%,#0000 96%)}.skill-orbit-wrap:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(at 50% 44%,#ff7a591f,#0000 42%),radial-gradient(at 48% 62%,#6c7cff17,#0000 56%);position:absolute;inset:-16% -10%}.galaxy-scene-wrap{z-index:1;width:100%;height:100%;position:relative}.skill-orbit{width:100%;height:100%;display:block;position:relative}.skill-orbit canvas{mix-blend-mode:screen;display:block;width:100%!important;height:100%!important}.galaxy-skill-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:left;z-index:10;background:#070a14d1;border:1px solid #ffffff1a;border-radius:12px;width:calc(100% - 32px);max-width:260px;padding:12px 32px 12px 16px;animation:.22s card-in;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}@keyframes card-in{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.galaxy-skill-close{color:#ffffff59;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.1rem;line-height:1;transition:color .15s;position:absolute;top:8px;right:10px}.galaxy-skill-close:hover{color:#ffffffbf}.galaxy-skill-name{letter-spacing:0;color:#f3f6fb;margin-bottom:5px;font-size:.82rem;font-weight:600;line-height:1.28;display:block}.galaxy-skill-desc{color:#ffffff80;margin:0;font-size:.72rem;line-height:1.45}.skill-btn{cursor:pointer;background:0 0;font-family:inherit;transition:background .18s,color .18s,border-color .18s,transform .14s}.skill-btn:hover{color:#fa8;background:#ff7a591f;border-color:#ff7a5959;transform:translateY(-1px)}.skill-btn.is-active{color:#ff9a70;background:#ff7a592e;border-color:#ff7a5980;box-shadow:0 0 10px #ff7a592e}.hero-block,.showcase-section,.project-entry,.ledger-row,.sidebar-panel,.note-panel,.contact-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--panel-shadow)}.hero-block,.showcase-section,.content-section{isolation:isolate;position:relative}.hero-block{padding:24px;width:100vw;box-shadow:none;background:0 0;border:0;border-radius:0;margin-left:50%;padding-inline:max(24px,50vw - 586px);overflow:visible;transform:translate(-50%)}.hero-block:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(at 72% 40%,#ff7a5926,#0000 34%),radial-gradient(at 88% 68%,#6c7cff1a,#0000 35%),radial-gradient(at 42% 40%,#121824b8,#0000 54%),linear-gradient(#0000 0%,#04081057 32%,#0000 100%);position:absolute;inset:-64px 0 -120px}.site-nav,.hero-layout{z-index:1;position:relative}.site-nav{z-index:8}.hero-layout{z-index:2}.site-nav{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding-bottom:18px;display:grid}.brand-mark,.nav-links a,.section-kicker,.project-meta,.ledger-heading p,.scene-kicker{text-transform:uppercase;letter-spacing:0;font-size:.74rem;line-height:1.35}.brand-mark{color:var(--text-strong);font-weight:800;text-decoration:none}.nav-links{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.nav-links a{color:var(--text-muted);text-decoration:none;transition:color .16s;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:50%;height:1px;transition:transform .2s;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:var(--text-strong)}.nav-links a:hover:after{transform:scaleX(1)}.link-row a:hover{color:var(--text-strong)}.nav-actions{justify-self:end;align-items:center;gap:12px;display:flex}.language-switcher{border:1px solid var(--border);background:var(--surface-soft);border-radius:999px;align-items:center;gap:6px;padding:6px;display:inline-flex}.language-button,.nav-button,.button-primary,.button-secondary,.link-row a{text-align:center;border-radius:999px;justify-content:center;align-items:center;min-height:46px;padding:0 16px;line-height:1.25;text-decoration:none;transition:transform .16s,background-color .16s,border-color .16s,color .16s,box-shadow .16s;display:inline-flex}.language-button{min-width:52px;min-height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 14px}.language-button:hover,.nav-button:hover,.button-primary:hover,.button-secondary:hover,.link-row a:hover{transform:translateY(-1px)}.language-button.is-active{background:var(--accent);color:#150d09}.nav-button,.button-secondary,.link-row a{border:1px solid var(--border);color:var(--text-strong);background:var(--surface-soft)}.button-primary{color:#150d09;background:var(--accent);border:1px solid #0000;box-shadow:0 4px 20px #ff7a594d}.button-primary:hover{background:var(--accent-strong);box-shadow:0 6px 30px #ff7a597a}.nav-button:hover,.button-secondary:hover,.link-row a:hover{border-color:var(--border-strong);background:var(--surface-soft-hover)}.hero-layout{grid-template-columns:1fr 1.1fr;align-items:stretch;gap:28px;min-height:max(520px,70vh - 120px);padding-top:28px;display:grid;overflow:visible}.hero-copy{z-index:2;flex-direction:column;justify-content:center;min-width:0;padding:12px 0 24px;display:flex;position:relative}.hero-copy h1,.showcase-copy h2,.section-header h2,.project-body h3,.ledger-heading h3,.sidebar-panel h3,.note-panel h2,.contact-panel h2,.scene-copy h3,.trait-row h3{font-family:var(--font-display);color:var(--text-strong);text-wrap:balance;margin:0;line-height:1.08}.section-header h2,.project-body h3,.ledger-heading h3,.sidebar-panel h3,.note-panel h2,.contact-panel h2,.scene-copy h3,.trait-row h3,.ledger-copy p,.project-body p{overflow-wrap:anywhere}.hero-copy h1{background:linear-gradient(148deg,#f3f6fb 28%,#ffa280e0 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;max-width:12ch;margin:10px 0 16px;font-size:clamp(3rem,5.4vw,5rem);line-height:1.04}.hero-copy,.showcase-copy,.project-body,.ledger-copy,.sidebar-panel,.note-panel,.contact-panel{min-width:0}.hero-role{max-width:48rem;color:var(--text-strong);font-size:1.18rem}.hero-intro,.section-summary,.project-body p,.ledger-copy p,.sidebar-panel p,.contact-panel p,.trait-row p{max-width:65ch}.hero-intro{margin-top:12px}.hero-actions,.hero-meta,.stack-row,.link-row,.contact-list{flex-wrap:wrap;gap:12px;display:flex}.hero-actions{margin:24px 0 18px}.hero-meta span,.stack-tag,.contact-list span,.contact-list a{border:1px solid var(--border);background:var(--surface-soft);min-height:40px;color:var(--text-base);text-align:center;border-radius:999px;align-items:center;padding:0 14px;line-height:1.25;text-decoration:none;display:inline-flex}.hero-scene{isolation:isolate;z-index:0;background:0 0;border:0;height:100%;min-height:100%;position:relative;overflow:visible}.scene-canvas--fill{contain:none;cursor:grab;position:absolute;inset:-12% auto auto -36%;overflow:visible;-webkit-mask-image:radial-gradient(at 57%,#000 52%,#000000db 70%,#0000 96%);mask-image:radial-gradient(at 57%,#000 52%,#000000db 70%,#0000 96%);width:154%!important;height:124%!important;aspect-ratio:unset!important;clip-path:none!important;min-height:0!important}.scene-canvas--fill canvas{mix-blend-mode:screen}.scene-canvas--fill:active{cursor:grabbing}.hero-scene-hint{z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:0;color:var(--text-muted);pointer-events:none;background:#080b12c7;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:5px;padding:5px 12px;font-size:.7rem;line-height:1.25;animation:1.5s 4s forwards hint-fade;display:flex;position:absolute;bottom:14px;right:14px}@keyframes hint-fade{to{opacity:0}}.section-kicker{color:var(--text-muted);align-items:center;gap:10px;display:flex}.section-kicker:before{content:"";background:var(--accent);border-radius:1px;flex-shrink:0;width:22px;height:2px;display:block}.showcase-section{isolation:isolate;background:linear-gradient(#0c0f16f5,#080a10fa);border-radius:32px;margin-top:24px;padding:26px 24px;overflow:hidden}.showcase-layout{grid-template-columns:minmax(0,1.08fr) minmax(280px,.82fr);align-items:start;gap:22px 30px;display:grid}.showcase-copy{align-content:start;gap:12px;max-width:38rem;display:grid}.showcase-copy h2{max-width:11ch;font-size:clamp(2.4rem,4.3vw,4rem);line-height:1.06}.section-header h2,.note-panel h2,.contact-panel h2{max-width:13ch;font-size:clamp(2rem,4.2vw,3.6rem);line-height:1.08}.note-panel h2,.contact-panel h2{max-width:18ch}.trait-list{align-content:start;gap:12px;padding:2px 0 0;display:grid}.trait-row{border-left:3px solid var(--accent);background:#ff7a590a;border-radius:0 12px 12px 0;padding:14px 14px 14px 16px;transition:background .2s}.trait-row:hover{background:#ff7a5914}.trait-row h3{margin-bottom:8px;font-size:1.3rem}.black-hole-section{isolation:isolate;width:min(100vw - 32px,1320px);min-height:clamp(430px,60vh,680px);margin:6px 50% 8px;position:relative;overflow:visible;transform:translate(-50%)}.black-hole-section:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 50% 47%,#ff7a5929,#0000 30%),radial-gradient(at 50% 58%,#6c7cff12,#0000 45%);position:absolute;inset:-18% -10%}.black-hole-section:after{content:none}.black-hole-scene{min-height:inherit;position:absolute;inset:-8% -10%;-webkit-mask-image:radial-gradient(#000 46%,#000000e0 64%,#0000 88%);mask-image:radial-gradient(#000 46%,#000000e0 64%,#0000 88%)}.black-hole-scene canvas{display:block;width:100%!important;height:100%!important}.black-hole-hotspot{z-index:4;aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:50%;width:clamp(92px,12vw,150px);padding:0;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.black-hole-hotspot:focus-visible{outline-offset:8px;outline:2px solid #ff7a59c7}.black-hole-video-modal{z-index:1400;opacity:0;visibility:hidden;pointer-events:none;background:#000000f0;place-items:center;padding:24px;transition:opacity .18s,visibility .18s;display:grid;position:fixed;inset:0}.black-hole-video-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}.black-hole-video-frame{aspect-ratio:16/9;background:#000;width:min(100%,1180px);position:relative;box-shadow:0 0 80px #ff7a592e}.black-hole-video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.black-hole-video-close{z-index:2;width:44px;height:44px;color:var(--text-strong);cursor:pointer;background:#0c0f16b8;border:1px solid #ffffff2e;border-radius:50%;font-size:1.55rem;line-height:1;position:fixed;top:18px;right:18px}.black-hole-video-close:hover,.black-hole-video-close:focus-visible{background:#ff7a592e;border-color:#ff7a5970}.black-hole-video-modal:fullscreen{padding:0}.black-hole-video-modal:fullscreen .black-hole-video-frame{aspect-ratio:auto;width:100vw;height:100vh;box-shadow:none}.content-section{isolation:isolate;z-index:1;min-width:0;margin-top:24px;position:relative}.section-header{gap:12px;margin-bottom:22px;display:grid}.compact-header h2{max-width:14ch}.project-list{gap:16px;display:grid}.project-entry{background:linear-gradient(#12161feb,#0c0f15f5);border-radius:28px;grid-template-columns:180px minmax(0,1fr);gap:22px;padding:22px;transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s,border-color .28s;display:grid}.project-entry:hover{border-color:#ffffff29;transform:translateY(-4px);box-shadow:0 36px 80px #00000075,0 0 0 1px #ff7a590f}.project-rail{border-right:1px solid var(--border);align-content:space-between;gap:18px;padding-right:8px;display:grid}.project-index{font-family:var(--font-display);color:var(--accent);text-shadow:0 0 40px #ff7a594d;font-size:clamp(2.7rem,6vw,4.4rem);line-height:1.08}.project-meta{color:var(--text-muted);gap:8px;display:grid}.project-body{gap:14px;display:grid}.project-body h3,.ledger-heading h3{font-size:clamp(1.7rem,3.2vw,2.45rem);line-height:1.08}.project-outcome,.ledger-copy p:last-child,.contact-list a{color:var(--text-strong)}.stack-tag{color:var(--text-strong);font-size:.78rem}.open-source-layout{grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);align-items:start;gap:22px;display:grid}.ledger{gap:14px;display:grid}.ledger-row{background:linear-gradient(#12161feb,#0b0e14f5);border-radius:26px;grid-template-columns:minmax(240px,.72fr) minmax(0,1fr);gap:18px;padding:22px;transition:border-color .22s,transform .22s;display:grid}.ledger-row:hover{border-color:#ffffff24;transform:translateY(-2px)}.ledger-heading{align-content:start;gap:12px;min-width:0;display:grid}.ledger-heading p{color:var(--accent);margin:0}.ledger-heading h3{line-height:1.08}.ledger-copy{gap:12px;min-width:0;display:grid}.sidebar-panel,.note-panel,.contact-panel{background:linear-gradient(#11151df0,#0a0d12fa);border-radius:28px;padding:24px}.sidebar-panel{background:radial-gradient(at 56% 18%,#ff7a5914,#0000 38%),radial-gradient(at 44% 30%,#6c7cff0f,#0000 44%),linear-gradient(#11151df0,#0a0d12fa);gap:18px;display:grid;position:relative;overflow:hidden}.skill-cloud{margin-top:4px}.sidebar-panel h3{font-size:clamp(1.7rem,4vw,2.7rem)}.bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.principle-list{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.principle-item{border:1px solid var(--border);background:var(--surface-soft);border-radius:18px;margin:0;padding:12px 16px;font-size:.92rem;transition:background .16s,border-color .16s}.principle-item:hover{background:var(--surface-soft-hover);border-color:var(--border-strong)}.contact-list{margin:18px 0}.scene-section{margin-top:18px}.scene-frame{isolation:isolate;contain:layout paint;background:radial-gradient(circle at 100% 0,#ff7a5938,#0000 24%),radial-gradient(circle at 0 100%,#6c7cff1f,#0000 28%),linear-gradient(#101319 0%,#171b22 100%);border:1px solid #ffffff14;border-radius:28px;grid-template-columns:1fr;gap:20px;min-height:0;padding:24px;display:grid;position:relative;overflow:hidden}.scene-frame:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff12,#0000 34%),linear-gradient(#0000 72%,#ffffff08);position:absolute;inset:0}.scene-copy{z-index:1;align-content:start;max-width:54rem;padding-right:0;display:grid;position:relative}.scene-kicker{color:#ffffff9e}.scene-copy h3{color:#f3f6fb;margin:8px 0 10px;font-size:clamp(2rem,3vw,2.8rem);line-height:1.08}.scene-copy p:last-child{color:#acb5c2;max-width:62ch}.scene-canvas{aspect-ratio:3/2;contain:layout paint;clip-path:inset(0 round 14px);cursor:grab;width:100%;height:auto;min-height:360px;position:relative;overflow:hidden}.scene-canvas canvas{z-index:0;display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.scene-canvas:active{cursor:grabbing}.scene-canvas-wrap{z-index:1;isolation:isolate;contain:layout paint;clip-path:inset(0 round 22px);background:linear-gradient(#ffffff05,#ffffff0a);border:1px solid #ffffff0f;border-radius:22px;width:100%;min-width:0;min-height:0;margin:0;padding:12px;position:relative;overflow:hidden}[data-reveal]{opacity:0;transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1);transform:translateY(26px)}[data-reveal].is-revealed{opacity:1;transform:translateY(0)}[data-reveal][data-delay="1"]{transition-delay:.1s}[data-reveal][data-delay="2"]{transition-delay:.22s}[data-reveal][data-delay="3"]{transition-delay:.34s}@media (width<=1240px){.showcase-layout{grid-template-columns:1fr}.showcase-copy,.scene-copy{max-width:none}}@media (width<=960px){.hero-layout{grid-template-columns:1fr;min-height:0;padding-bottom:350px}.hero-scene{pointer-events:auto;border-radius:0;height:400px;min-height:400px;position:absolute;bottom:-18px;left:0;right:0}.scene-canvas--fill{top:-15%;left:-6%;-webkit-mask-image:radial-gradient(at 50% 52%,#000 48%,#000000c7 68%,#0000 96%);mask-image:radial-gradient(at 50% 52%,#000 48%,#000000c7 68%,#0000 96%);width:112%!important;height:128%!important;min-height:0!important}.hero-scene-hint{bottom:30px;right:calc(8% + 14px)}}@media (width<=1080px){.open-source-layout,.bottom-grid,.project-entry,.ledger-row{grid-template-columns:1fr}.project-rail{border-right:0;border-bottom:1px solid var(--border);padding-bottom:14px;padding-right:0}}@media (width<=760px){.preloader{padding:16px}.site-shell{width:min(100% - 20px,1220px);padding-top:10px}.hero-block,.showcase-section{border-radius:24px;padding:16px}.hero-block{border-radius:0;padding-inline:20px}.site-nav{grid-template-columns:1fr;justify-items:start}.nav-actions{flex-direction:column;align-items:stretch;width:100%}.language-switcher{justify-content:space-between;width:100%}.language-button,.nav-button{flex:1 1 0}.nav-links,.hero-actions,.hero-meta,.link-row,.contact-list{flex-direction:column;align-items:stretch}.nav-button,.button-primary,.button-secondary,.link-row a,.contact-list a,.contact-list span{box-sizing:border-box;width:100%}.hero-scene{height:360px;min-height:360px;bottom:-14px}.scene-canvas--fill{top:-14%;left:-8%;width:116%!important;height:126%!important;min-height:0!important}.black-hole-section{width:min(100vw - 20px,100%);min-height:380px}.skill-orbit-wrap{width:calc(100% + 16px);height:clamp(240px,72vw,300px);margin:-6px -8px 0}.scene-frame{min-height:0;padding:18px}.scene-canvas{min-height:280px}}@media (prefers-reduced-motion:reduce){.preloader,.language-button,.nav-button,.button-primary,.button-secondary,.link-row a,.project-entry,.ledger-row,.trait-row,.principle-item{transition:none}.preloader-ring--outer,.preloader-ring--inner,.hero-scene-hint{animation:none}[data-reveal]{opacity:1;transition:none;transform:none}}
