@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-deep:#07070f;--bg-base:#0b0b18;--bg-elevated:#12122a;--bg-card:#ffffff06;--primary:#7c3aed;--primary-bright:#a855f7;--secondary:#a78bfa;--magenta:#d946ef;--on-primary:#fff;--fg:#e8e8f5;--fg-muted:#9a9ab5;--fg-dim:#7d7d99;--btn-grad-end:#9333ea;--border:#ffffff14;--border-strong:#ffffff24;--border-glow:#a855f759;--ring:#a855f7;--success:#34d399;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px;--radius-sm:8px;--radius:16px;--radius-lg:24px;--radius-pill:999px;--dur-fast:.15s;--dur:.24s;--dur-slow:.42s;--ease:cubic-bezier(.16, 1, .3, 1);--ease-back:cubic-bezier(.34, 1.56, .64, 1);--dock-h:68px;--max-w:1180px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg-base);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4{letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.1}p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}ul{margin:0;padding:0;list-style:none}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--ring);outline-offset:3px;border-radius:var(--radius-sm)}::selection{background:var(--primary);color:#fff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100px;left:var(--space-3);z-index:100;border-radius:var(--radius-sm);background:var(--primary);color:#fff;transition:top var(--dur) var(--ease);padding:12px 20px;font-weight:600;position:absolute}.skip-link:focus{top:var(--space-3)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);border:2px solid var(--bg-deep);background:#2a2a45}::-webkit-scrollbar-thumb:hover{background:#3d3d60}.ambient{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.blob{filter:blur(90px);opacity:.16;will-change:transform;border-radius:50%;position:absolute}.blob-1{background:var(--primary);width:520px;height:520px;animation:22s ease-in-out infinite alternate drift-a;top:-160px;left:-120px}.blob-2{background:var(--magenta);width:420px;height:420px;animation:28s ease-in-out infinite alternate drift-b;top:30%;right:-140px}.blob-3{background:#4c1d95;width:380px;height:380px;animation:25s ease-in-out infinite alternate-reverse drift-a;bottom:-120px;left:35%}@keyframes drift-a{to{transform:translate(80px,60px)scale(1.15)}}@keyframes drift-b{to{transform:translate(-70px,90px)scale(.9)}}.grid-floor{transform-origin:bottom;background-image:linear-gradient(var(--border-glow) 1px, transparent 1px), linear-gradient(90deg, var(--border-glow) 1px, transparent 1px);opacity:.3;pointer-events:none;background-size:46px 46px;width:180%;height:420px;position:absolute;bottom:0;left:50%;transform:translate(-50%)perspective(320px)rotateX(62deg);-webkit-mask-image:linear-gradient(#0000 25%,#000 100%);mask-image:linear-gradient(#0000 25%,#000 100%)}.shell{z-index:1;min-height:100vh;padding-bottom:calc(var(--dock-h) + var(--space-6) + env(safe-area-inset-bottom,0px));position:relative}.container{width:100%;max-width:var(--max-w);padding:0 var(--space-4);margin:0 auto}.section{padding:var(--space-7) 0 var(--space-6)}.section-head{margin-bottom:var(--space-6)}.section-title{font-size:clamp(28px,5vw,42px);font-weight:800}.section-sub{margin-top:var(--space-2);color:var(--fg-muted);max-width:62ch}.eyebrow{align-items:center;gap:var(--space-2);letter-spacing:.12em;text-transform:uppercase;color:var(--secondary);margin-bottom:var(--space-3);font-size:12px;font-weight:600;display:inline-flex}.topbar{z-index:40;-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#0b0b18b8;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:var(--space-3);height:64px;display:flex}.brand{align-items:center;gap:var(--space-2);letter-spacing:-.02em;min-height:44px;font-weight:700;display:flex}.brand-mark{background:linear-gradient(135deg, var(--primary), var(--magenta));color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:15px;font-weight:800;display:grid;box-shadow:0 0 18px #a855f773}.brand-sub{color:var(--fg-dim);letter-spacing:0;font-size:11px;font-weight:500;display:block}.clock{align-items:center;gap:var(--space-2);color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:13px;display:flex}.dot-live{background:var(--success);border-radius:50%;width:7px;height:7px;animation:2.4s ease-out infinite pulse;box-shadow:0 0 #34d39999}@keyframes pulse{70%{box-shadow:0 0 0 8px #34d39900}to{box-shadow:0 0 #34d39900}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-pill);cursor:pointer;transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease), border-color var(--dur) var(--ease);font-size:15px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--btn-grad-end));color:var(--on-primary);box-shadow:0 6px 24px #7c3aed66}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 34px #a855f78c}.btn-ghost{border:1px solid var(--border-strong);color:var(--fg);background:#ffffff08}.btn-ghost:hover{border-color:var(--border-glow);background:#ffffff12;transform:translateY(-2px)}.btn-sm{min-height:44px;padding:0 var(--space-3);font-size:13px}.hero{gap:var(--space-6);padding:var(--space-7) 0 var(--space-6);grid-template-columns:1.05fr 1fr;align-items:center;display:grid;position:relative}.hero-badge{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--border-glow);letter-spacing:.06em;text-transform:uppercase;color:var(--secondary);background:#7c3aed1f;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.hero-title{margin:var(--space-4) 0 0;letter-spacing:-.04em;font-size:clamp(40px,7vw,68px);font-weight:800}.gradient-text{background:linear-gradient(100deg, var(--primary-bright), var(--magenta) 60%, var(--secondary));color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-text{margin-top:var(--space-4);max-width:52ch;color:var(--fg-muted);font-size:17px}.hero-actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.hero-meta{gap:var(--space-3) var(--space-5);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.meta-item{align-items:center;gap:var(--space-2);color:var(--fg-muted);font-size:13px;display:flex}.meta-item svg{color:var(--secondary);flex-shrink:0}.editor{border-radius:var(--radius-lg);border:1px solid var(--border);background:linear-gradient(#ffffff0d,#ffffff03);position:relative;overflow:hidden;box-shadow:0 30px 70px #0000008c,inset 0 1px #ffffff12}.editor:after{content:"";background:var(--primary-bright);filter:blur(50px);opacity:.55;pointer-events:none;width:70%;height:90px;position:absolute;bottom:-40px;left:50%;transform:translate(-50%)}.editor-bar{align-items:center;gap:var(--space-2);padding:12px var(--space-3);border-bottom:1px solid var(--border);background:#ffffff05;display:flex}.editor-dot{border-radius:50%;width:11px;height:11px}.editor-name{margin-left:var(--space-2);color:var(--fg-dim);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.editor-body{padding:var(--space-4);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.85;overflow-x:auto}.code-line{gap:var(--space-3);white-space:pre;display:flex}.code-num{text-align:right;color:#3a3a55;-webkit-user-select:none;user-select:none;flex-shrink:0;width:18px}.t-key{color:#c084fc}.t-str{color:#86efac}.t-fn{color:#7dd3fc}.t-com{color:#565676}.t-num{color:#fbbf24}.stats{gap:var(--space-3);margin-top:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.stat{padding:var(--space-4);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);text-align:center;transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease)}.stat:hover{border-color:var(--border-glow);transform:translateY(-3px)}.stat-value{letter-spacing:-.03em;background:linear-gradient(135deg, var(--primary-bright), var(--magenta));-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:800}.stat-label{color:var(--fg-muted);margin-top:2px;font-size:13px}.filters{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.chip{border-radius:var(--radius-pill);border:1px solid var(--border);min-height:44px;color:var(--fg-muted);transition:all var(--dur) var(--ease);background:#ffffff05;padding:8px 16px;font-size:14px;font-weight:500}.chip:hover{color:var(--fg);border-color:var(--border-strong)}.chip[aria-pressed=true]{background:linear-gradient(135deg, var(--primary), var(--btn-grad-end));color:#fff;border-color:#0000;box-shadow:0 4px 18px #7c3aed66}.project-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.card{padding:var(--space-4);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.card:before{content:"";opacity:0;transition:opacity var(--dur) var(--ease);pointer-events:none;background:radial-gradient(600px at 50% 0,#a855f724,#0000 70%);position:absolute;inset:0}.card:hover{border-color:var(--border-glow);box-shadow:0 20px 50px #00000080}.card:hover:before{opacity:1}.card-featured{grid-column:span 2}.card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.card-cat{letter-spacing:.08em;text-transform:uppercase;color:var(--secondary);font-size:12px;font-weight:600}.card-year{color:var(--fg-dim);font-variant-numeric:tabular-nums;font-size:13px}.card-title{margin-bottom:var(--space-2);font-size:21px}.card-desc{color:var(--fg-muted);flex-grow:1;font-size:15px}.tags{margin-top:var(--space-3);flex-wrap:wrap;gap:6px;display:flex}.tag{border-radius:var(--radius-sm);color:var(--secondary);background:#7c3aed24;border:1px solid #7c3aed38;padding:4px 10px;font-size:12px;font-weight:500}.card-links{gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border);display:flex}.link-btn{border-radius:var(--radius-sm);min-height:44px;color:var(--fg-muted);transition:color var(--dur) var(--ease), background var(--dur) var(--ease);align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex}.link-btn:hover{color:var(--fg);background:#ffffff0f}.skill-groups{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.skill-card{padding:var(--space-5);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card)}.skill-card h3{margin-bottom:var(--space-4);align-items:center;gap:var(--space-2);font-size:17px;display:flex}.skill-card h3 svg{color:var(--secondary)}.skill-row+.skill-row{margin-top:var(--space-3)}.skill-head{justify-content:space-between;margin-bottom:6px;font-size:14px;display:flex}.skill-pct{color:var(--fg-dim);font-variant-numeric:tabular-nums}.bar{border-radius:var(--radius-pill);background:#ffffff0f;height:6px;overflow:hidden}.bar-fill{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--primary), var(--magenta));transform-origin:0;height:100%;transition:width .9s var(--ease)}.about-grid{gap:var(--space-6);grid-template-columns:320px 1fr;align-items:start;display:grid}.portrait{aspect-ratio:3/4;border-radius:var(--radius-lg);border:1px solid var(--border);background:linear-gradient(160deg,#7c3aed40,#d946ef1f);place-items:center;display:grid;position:relative;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.portrait-fallback{letter-spacing:-.04em;color:#ffffff47;font-size:64px;font-weight:800}.timeline{padding-left:var(--space-5);position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--primary), transparent);width:1px;position:absolute;top:6px;bottom:6px;left:5px}.tl-item+.tl-item{margin-top:var(--space-5)}.tl-item{position:relative}.tl-item:before{content:"";left:calc(-1 * var(--space-5) + 1px);background:var(--primary-bright);border-radius:50%;width:9px;height:9px;position:absolute;top:8px;box-shadow:0 0 0 4px #a855f72e}.tl-period{letter-spacing:.08em;text-transform:uppercase;color:var(--secondary);font-size:12px;font-weight:600}.tl-role{margin-top:4px;font-size:19px}.tl-company{color:var(--fg-muted);margin-top:2px;font-size:14px}.tl-points{margin-top:var(--space-2)}.tl-points li{color:var(--fg-muted);padding-left:18px;font-size:15px;position:relative}.tl-points li+li{margin-top:4px}.tl-points li:before{content:"";background:var(--fg-dim);border-radius:50%;width:5px;height:5px;position:absolute;top:11px;left:2px}.cta-panel{padding:var(--space-7) var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border-glow);text-align:center;background:linear-gradient(135deg,#7c3aed29,#d946ef12);position:relative;overflow:hidden}.cta-title{font-size:clamp(26px,4.5vw,40px);font-weight:800}.cta-sub{margin:var(--space-3) auto 0;max-width:52ch;color:var(--fg-muted)}.contact-grid{gap:var(--space-3);margin-top:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.contact-card{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);text-align:left;transition:all var(--dur) var(--ease);display:flex}.contact-card:hover{border-color:var(--border-glow);background:#7c3aed1a;transform:translateY(-3px)}.contact-icon{width:44px;height:44px;color:var(--secondary);background:#7c3aed2e;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.contact-label{color:var(--fg-dim);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.contact-value{word-break:break-all;font-size:15px;font-weight:600}.footer{margin-top:var(--space-7);padding:var(--space-5) 0;border-top:1px solid var(--border);gap:var(--space-3);color:var(--fg-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:14px;display:flex}.dock-wrap{left:50%;bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));z-index:50;padding:0 var(--space-3);max-width:100%;position:fixed;transform:translate(-50%)}.dock{align-items:flex-end;gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-lg);border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(24px)saturate(160%);background:#12122ab8;display:flex;box-shadow:0 18px 50px #0009,inset 0 1px #ffffff17}.dock-item{width:56px;height:52px;color:var(--fg-dim);transition:color var(--dur) var(--ease), background var(--dur) var(--ease), transform var(--dur) var(--ease-back);transform-origin:bottom;will-change:transform;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex;position:relative}.dock-item:hover{color:var(--fg);background:#ffffff12}.dock-item[aria-selected=true]{color:#fff;background:linear-gradient(135deg, var(--primary), var(--btn-grad-end));box-shadow:0 6px 20px #7c3aed80}.dock-label{letter-spacing:-.01em;white-space:nowrap;font-size:10px;font-weight:600}.dock-tip{border-radius:var(--radius-sm);border:1px solid var(--border-strong);color:var(--fg);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);background:#12122af2;padding:5px 10px;font-size:12px;font-weight:500;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(4px)}.dock-item:hover .dock-tip,.dock-item:focus-visible .dock-tip{opacity:1;transform:translate(-50%)translateY(0)}.dock-indicator{opacity:0;width:4px;height:4px;transition:opacity var(--dur) var(--ease);background:#fff;border-radius:50%;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.dock-item[aria-selected=true] .dock-indicator{opacity:.9}.reveal{opacity:0;transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:none}.tab-panel{animation:panel-in .42s var(--ease) both}@keyframes panel-in{0%{opacity:0;transform:translateY(12px)}}@media (width<=1024px){.hero{gap:var(--space-5);grid-template-columns:1fr}.about-grid{grid-template-columns:1fr}.portrait{aspect-ratio:1;max-width:280px}.card-featured{grid-column:span 1}}@media (width<=768px){.section{padding:var(--space-6) 0 var(--space-5)}.stats{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:1fr}.clock{display:none}.grid-floor{height:260px}}@media (width<=480px){.dock{gap:0;padding:6px}.dock-item{width:58px;height:48px}.dock-label{font-size:9px}.dock-tip{display:none}.hero-actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.grain{z-index:2;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");animation:8s steps(6,end) infinite grain-shift;position:fixed;inset:-50%}@keyframes grain-shift{0%{transform:translate(0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-4%)}60%{transform:translate(-3%,-3%)}80%{transform:translate(4%,4%)}to{transform:translate(0)}}.spotlight{z-index:0;pointer-events:none;background:radial-gradient(460px circle at var(--cursor-x,50%) var(--cursor-y,40%), #a855f717, transparent 65%);position:fixed;inset:0}.scroll-progress{z-index:60;pointer-events:none;background:#ffffff0d;height:2px;position:fixed;top:0;left:0;right:0}.scroll-progress-bar{transform-origin:0;background:linear-gradient(90deg, var(--primary), var(--magenta), var(--secondary));height:100%;box-shadow:0 0 12px #a855f7b3}.shape-3d{filter:drop-shadow(0 8px 18px #581c8773);display:block;overflow:visible}.card-art{opacity:.85;pointer-events:none;transition:transform var(--dur-slow) var(--ease), opacity var(--dur) var(--ease);position:absolute;top:-10px;right:-10px}.card:hover .card-art{opacity:1;transform:translateY(-4px)rotate(8deg)scale(1.08)}.card-art+.card-top{padding-right:76px}.skill-art{margin-bottom:var(--space-3);transition:transform var(--dur-slow) var(--ease)}.skill-card:hover .skill-art{transform:translateY(-3px)scale(1.06)}.editor-stage{position:relative}.float-shape{z-index:3;pointer-events:none;will-change:transform;position:absolute}.float-1{animation:9s ease-in-out infinite float-a;top:-34px;left:-32px}.float-2{animation:11s ease-in-out infinite float-b;bottom:-24px;left:8%}.float-3{animation:13s ease-in-out infinite reverse float-a;top:28%;right:-26px}@keyframes float-a{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-16px)rotate(7deg)}}@keyframes float-b{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(14px)rotate(-9deg)}}.tilt{perspective:900px;height:100%;position:relative}.tilt>.card,.tilt>.skill-card{height:100%;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-style:preserve-3d;transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease)}.tilt.is-hot>.card,.tilt.is-hot>.skill-card{box-shadow:0 26px 60px #0000008c}.tilt-glare{z-index:4;border-radius:var(--radius);pointer-events:none;opacity:0;transition:opacity var(--dur) var(--ease);background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), #ffffff1a, transparent 60%);position:absolute;inset:0}.tilt.is-hot .tilt-glare{opacity:1}.marquee{margin-top:var(--space-6);padding:var(--space-3) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.marquee-track{width:max-content;animation:linear infinite marquee-scroll;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{align-items:center;gap:var(--space-4);padding-right:var(--space-4);letter-spacing:.02em;color:var(--fg-muted);white-space:nowrap;font-size:15px;font-weight:600;display:inline-flex}.marquee-sep{color:var(--primary-bright);font-size:9px}@keyframes marquee-scroll{to{transform:translate(-50%)}}.topbar-right{align-items:center;gap:var(--space-3);display:flex}.palette-trigger{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--border);min-height:44px;color:var(--fg-dim);transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease);background:#ffffff08;padding:0 10px 0 12px;font-size:13px;display:inline-flex}.palette-trigger:hover{color:var(--fg);border-color:var(--border-glow);background:#7c3aed1f}.kbd{border:1px solid var(--border-strong);color:var(--fg-muted);background:#ffffff0d;border-radius:5px;padding:2px 6px;font-family:inherit;font-size:11px;font-weight:600;line-height:1.5}.palette-backdrop{z-index:90;padding:12vh var(--space-3) var(--space-3);-webkit-backdrop-filter:blur(6px);animation:fade-in .18s var(--ease);background:#04040ab8;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.palette{border-radius:var(--radius);border:1px solid var(--border-strong);width:100%;max-width:560px;max-height:66vh;animation:palette-in .22s var(--ease);background:#12122af7;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 30px 80px #000000b3}@keyframes palette-in{0%{opacity:0;transform:translateY(-12px)scale(.97)}}.palette-input-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);color:var(--fg-dim);display:flex}.palette-input{min-height:28px;color:var(--fg);background:0 0;border:none;outline:none;flex:1;font-size:16px}.palette-input::placeholder{color:var(--fg-dim)}.palette-list{padding:var(--space-2);flex:1;overflow-y:auto}.palette-item{align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--fg-muted);text-align:left;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);display:flex}.palette-item.is-cursor{color:var(--fg);background:linear-gradient(135deg,#7c3aed59,#9333ea33)}.palette-label{flex:1;font-size:15px;font-weight:500}.palette-hint{color:var(--fg-dim);white-space:nowrap;text-overflow:ellipsis;max-width:45%;font-size:12px;overflow:hidden}.palette-empty{padding:var(--space-5);text-align:center;color:var(--fg-dim);font-size:14px}.palette-foot{gap:var(--space-4);padding:10px var(--space-4);border-top:1px solid var(--border);color:var(--fg-dim);font-size:12px;display:flex}.palette-foot span{align-items:center;gap:5px;display:inline-flex}@media (width<=1024px){.float-1{top:-22px;left:-14px}.float-3{right:-12px}}@media (width<=768px){.palette-trigger-text,.float-2,.float-3{display:none}.card-art{transform-origin:100% 0;transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.tilt>.card,.tilt>.skill-card{transform:none!important}.grain,.float-shape,.marquee-track{animation:none!important}.spotlight{display:none}}@media (height<=480px) and (orientation:landscape){.topbar{position:static}.dock-item{width:52px;height:44px}.dock-label{display:none}.section,.hero{padding:var(--space-5) 0 var(--space-4)}.shell{padding-bottom:calc(60px + var(--space-5) + env(safe-area-inset-bottom,0px))}}.video-avatar{object-fit:cover;background:0 0;width:100%;height:100%;display:block}.video-avatar.is-round{border-radius:50%}.brand-mark:has(.video-avatar){background:var(--bg-elevated);padding:0;overflow:hidden}.brand-mark .video-avatar{border-radius:10px}.portrait .video-avatar{position:absolute;inset:0}.radar-panel{gap:var(--space-6);margin-bottom:var(--space-6);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border);background:linear-gradient(140deg,#7c3aed14,#d946ef08);grid-template-columns:340px 1fr;align-items:center;display:grid}.radar{position:relative}.radar-svg{width:100%;height:auto;overflow:visible}.radar-ring{fill:none;stroke:#ffffff12;stroke-width:1px}.radar-spoke{stroke:#ffffff0f;stroke-width:1px}.radar-shape{stroke:var(--primary-bright);stroke-width:2px;stroke-linejoin:round;filter:drop-shadow(0 0 10px #a855f799);transform-origin:50%;animation:radar-grow .9s var(--ease) both}@keyframes radar-grow{0%{opacity:0;transform:scale(.4)}}.radar-node{fill:#fff;stroke:var(--primary-bright);stroke-width:2.5px;cursor:pointer;transition:r var(--dur) var(--ease-back), filter var(--dur) var(--ease)}.radar-node.is-hot{filter:drop-shadow(0 0 8px #e879f9e6)}.radar-label{fill:var(--fg-muted);cursor:pointer;transition:fill var(--dur) var(--ease);font-size:11px;font-weight:600}.radar-label.is-hot{fill:var(--fg)}.radar-readout{justify-content:center;align-items:baseline;gap:var(--space-2);min-height:40px;margin-top:var(--space-2);display:flex}.radar-readout-val{letter-spacing:-.03em;background:linear-gradient(135deg, var(--primary-bright), var(--magenta));-webkit-text-fill-color:transparent;color:#0000;font-variant-numeric:tabular-nums;-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:800}.radar-readout-lbl{color:var(--fg-muted);font-size:14px}.radar-readout-hint{color:var(--fg-dim);font-size:13px}.radar-aside-title{margin-bottom:var(--space-2);font-size:24px}.radar-aside-text{color:var(--fg-muted);max-width:46ch;margin-bottom:var(--space-4)}.radar-legend li{align-items:center;gap:var(--space-3);grid-template-columns:64px 1fr auto;padding:5px 0;font-size:14px;display:grid}.radar-legend-bar{border-radius:var(--radius-pill);background:#ffffff12;height:5px;overflow:hidden}.radar-legend-bar span{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--primary), var(--magenta));height:100%;display:block}.radar-legend-lbl{color:var(--fg-muted)}.radar-legend-val{color:var(--fg-dim);font-variant-numeric:tabular-nums}.skill-name{font-weight:500}.skill-head{align-items:baseline;gap:var(--space-2);display:flex}.skill-detail{text-align:right;color:var(--fg-dim);opacity:0;transition:opacity var(--dur) var(--ease);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.skill-row:hover .skill-detail{opacity:1}.skill-pct{font-variant-numeric:tabular-nums;color:var(--fg-muted);text-align:right;min-width:42px}.segbar{gap:3px;height:8px;display:flex}.seg{background:#ffffff12;border-radius:2px;flex:1;position:relative;overflow:hidden}.seg:after{content:"";transform:scaleX(var(--seg-fill,0));transform-origin:0;background:linear-gradient(90deg, var(--primary), var(--magenta));transition:transform .32s var(--ease);transition-delay:var(--seg-delay,0s);border-radius:2px;position:absolute;inset:0}.skill-row:hover .seg:after{box-shadow:0 0 8px #a855f7b3}.learning{margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--border)}.learning-head{margin-bottom:var(--space-4)}.learning-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.learning-card{padding:var(--space-4);border-radius:var(--radius);border:1px dashed var(--border-strong);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);background:#ffffff05}.learning-card:hover{border-color:var(--border-glow);background:#7c3aed14}.learning-top{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.learning-name{font-size:16px;font-weight:600}.learning-pct{color:var(--fg-dim);font-variant-numeric:tabular-nums;font-size:13px}.learning-note{margin-top:2px;margin-bottom:var(--space-3);color:var(--fg-muted);font-size:13px}.learning-bar{border-radius:var(--radius-pill);background:#ffffff12;height:5px;overflow:hidden}.learning-bar span{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--secondary), var(--primary-bright));height:100%;transition:width .9s var(--ease);display:block}@media (width<=900px){.radar-panel{gap:var(--space-4);grid-template-columns:1fr}.radar{max-width:320px;margin:0 auto}}@media (width<=480px){.radar-panel{padding:var(--space-4) var(--space-3)}.skill-detail{display:none}.radar-legend li{grid-template-columns:48px 1fr auto;font-size:13px}}@media (prefers-reduced-motion:reduce){.radar-shape{animation:none}.seg:after{transition:none}}
