:root{--ink: #f4fbff;--muted: #aab7c9;--line: rgba(170, 220, 255, .18);--paper: #070912;--white: #101625;--mint: #41ffd2;--coral: #ff6d9e;--gold: #ffd166;--blue: #62a8ff;--violet: #a78bfa;--shadow: 0 26px 90px rgba(0, 0, 0, .45);--radius: 8px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;color:var(--ink);background:linear-gradient(120deg,rgba(65,255,210,.12),transparent 24rem),linear-gradient(240deg,rgba(255,109,158,.11),transparent 28rem),radial-gradient(ellipse at 52% 18%,rgba(98,168,255,.18),transparent 34rem),linear-gradient(135deg,#050713,#0b1020 42%,#0a0912);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.scene{position:fixed;inset:0;z-index:-2;overflow:hidden;perspective:900px;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:58px 58px;animation:galaxyShift 18s ease-in-out infinite alternate}#stars{position:absolute;inset:0;width:100%;height:100%}.mesh{position:absolute;inset:-12vh -10vw auto auto;width:min(54vw,680px);aspect-ratio:1;border:1px solid rgba(65,255,210,.22);transform-style:preserve-3d;animation:orbit 18s linear infinite;opacity:.9;box-shadow:inset 0 0 80px #62a8ff2e,0 0 90px #ff6d9e29}.mesh:before,.mesh:after{content:"";position:absolute;inset:12%;border:1px solid rgba(98,168,255,.26);transform:rotateX(70deg) rotate(18deg)}.mesh:after{inset:28%;border-color:#ffd16640;transform:rotateY(72deg) rotate(-24deg)}@keyframes orbit{0%{transform:rotateX(58deg) rotateY(0) rotate(28deg)}to{transform:rotateX(58deg) rotateY(360deg) rotate(28deg)}}@keyframes galaxyShift{0%{background-position:0 0,0 0;filter:saturate(1)}to{background-position:80px 42px,-48px 76px;filter:saturate(1.18)}}.topbar{position:fixed;top:18px;left:50%;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;width:min(1220px,calc(100% - 32px));padding:10px;border:1px solid rgba(170,220,255,.2);border-radius:var(--radius);background:#080c1ac7;box-shadow:0 16px 44px #00000047,inset 0 0 0 1px #ffffff0a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%)}.brand{display:flex;gap:10px;align-items:center;padding-left:8px;font-weight:800;letter-spacing:0;white-space:nowrap;flex:0 0 auto}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;color:#fff;background:linear-gradient(135deg,var(--mint),var(--blue),var(--coral));box-shadow:0 12px 34px #41ffd242}.nav{display:flex;gap:2px;align-items:center;justify-content:flex-end;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a,.icon-button{display:inline-flex;gap:7px;align-items:center;justify-content:center;width:auto;height:42px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:var(--ink);cursor:pointer;font-size:.84rem;font-weight:800;white-space:nowrap;transition:background .18s ease,transform .18s ease,color .18s ease}.nav a:hover,.icon-button:hover{background:#41ffd21f;color:var(--mint);transform:translateY(-2px) scale(1.06)}.wrap{width:min(1120px,calc(100% - 32px));margin:0 auto}.hero{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(320px,.96fr);gap:clamp(28px,5vw,72px);align-items:center;min-height:92vh;padding:92px 0 60px}.kicker{display:inline-flex;gap:10px;align-items:center;margin-bottom:18px;padding:9px 12px;border:1px solid rgba(65,255,210,.28);border-radius:999px;background:#080c1ab8;color:var(--muted);font-size:.9rem;font-weight:700}h1{margin:0;max-width:780px;font-size:5.2rem;line-height:.92;letter-spacing:0}.name{display:block;color:var(--mint);text-shadow:0 0 24px rgba(65,255,210,.34)}.lead{max-width:660px;margin:24px 0 0;color:var(--muted);font-size:1.12rem;line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.primary,.secondary{display:inline-flex;gap:10px;align-items:center;min-height:48px;padding:0 17px;border-radius:7px;font-weight:800;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.primary{color:#fff;background:linear-gradient(135deg,#1e293b,#0f766e);box-shadow:0 16px 42px #41ffd22e}.secondary{border:1px solid var(--line);background:#0c1224ad;color:var(--ink)}.primary:hover,.secondary:hover{animation:hoverZoom 1s ease-in-out infinite alternate;transform:translateY(-4px) scale(1.07);box-shadow:0 20px 58px #62a8ff47,0 0 28px #41ffd233;filter:saturate(1.18)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px;max-width:590px}.stat{padding:15px;border:1px solid rgba(170,220,255,.18);border-radius:var(--radius);background:#0c122494;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.stat:hover{border-color:#ffd16675;transform:translateY(-5px) scale(1.04);box-shadow:0 18px 48px #ffd16621}.stat strong{display:block;font-size:1.45rem}.stat span{color:var(--muted);font-size:.86rem}.visual{position:relative;display:grid;place-items:center;min-height:590px;perspective:1200px}.photo-stage{position:relative;width:min(72vw,380px);aspect-ratio:.78;transform-style:preserve-3d;animation:floatCard 5.6s ease-in-out infinite}.photo-card{position:absolute;inset:0;padding:12px;border:1px solid rgba(170,220,255,.2);border-radius:var(--radius);background:linear-gradient(145deg,#0f172aeb,#0e74903d),linear-gradient(135deg,#41ffd229,#ff6d9e1a);box-shadow:var(--shadow);transform:rotateY(-12deg) rotateX(8deg);transform-style:preserve-3d}.photo-slot{position:relative;display:grid;place-items:center;height:100%;overflow:hidden;border-radius:7px;border:1px solid rgba(65,255,210,.25);background:linear-gradient(180deg,#e6f8fff2,#c6dbe2c7),repeating-linear-gradient(45deg,transparent 0 18px,rgba(255,255,255,.04) 18px 19px)}.photo-slot:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(5,7,19,.34)),radial-gradient(circle at 50% 26%,transparent 0 34%,rgba(65,255,210,.12) 66%,transparent 100%);pointer-events:none}.photo-slot img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;animation:portraitPulse 7s ease-in-out infinite}.photo-note{display:grid;gap:14px;max-width:250px;padding:24px;text-align:center}.photo-note strong{font-size:1.35rem}.photo-note span{color:var(--muted);line-height:1.5}.floating-chip{position:absolute;display:flex;gap:9px;align-items:center;min-width:128px;padding:12px 14px;border:1px solid rgba(170,220,255,.22);border-radius:var(--radius);background:#080c1ac7;box-shadow:0 18px 50px #00000047;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-weight:800;transform-style:preserve-3d;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,filter .18s ease}.floating-chip:after{content:"";position:absolute;inset:-60% auto -60% -42%;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);transform:rotate(18deg);opacity:0;pointer-events:none}.floating-chip:hover{z-index:3;border-color:currentColor;box-shadow:0 22px 64px #41ffd233,0 0 34px currentColor;filter:saturate(1.22)}.floating-chip:hover:after{opacity:1;animation:shineSweep .76s ease}.chip-emoji{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ffd16626;filter:drop-shadow(0 0 10px rgba(255,209,102,.5))}.chip-one{top:88px;left:0;color:var(--mint);animation:drift 5.2s ease-in-out infinite}.chip-two{right:4px;bottom:126px;color:var(--gold);animation:drift 5.8s ease-in-out infinite reverse}.chip-one:hover{animation:chipHoverOne .85s ease-in-out infinite alternate}.chip-two:hover{animation:chipHoverTwo .85s ease-in-out infinite alternate}.chip-three:hover{animation:chipHoverThree .85s ease-in-out infinite alternate}.chip-three{left:40px;bottom:40px;color:var(--blue);animation:drift 6.4s ease-in-out infinite}@keyframes floatCard{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-18px) rotate(1deg)}}@keyframes drift{0%,to{transform:translateZ(70px) rotate(-1deg)}50%{transform:translate3d(0,-12px,110px) rotate(2deg)}}@keyframes portraitPulse{0%,to{transform:scale(1);filter:saturate(1.05) contrast(1.04)}50%{transform:scale(1.045);filter:saturate(1.18) contrast(1.08)}}@keyframes hoverZoom{0%{transform:translateY(-4px) scale(1.04)}to{transform:translateY(-6px) scale(1.08)}}@keyframes chipHoverOne{0%{transform:translate3d(0,-2px,100px) rotate(-2deg) scale(1.06)}to{transform:translate3d(0,-12px,130px) rotate(2deg) scale(1.16)}}@keyframes chipHoverTwo{0%{transform:translate3d(0,-2px,100px) rotate(2deg) scale(1.06)}to{transform:translate3d(0,-12px,130px) rotate(-2deg) scale(1.16)}}@keyframes chipHoverThree{0%{transform:translate3d(0,-2px,100px) rotate(-1deg) scale(1.06)}to{transform:translate3d(0,-12px,130px) rotate(2deg) scale(1.16)}}@keyframes shineSweep{0%{transform:translate(0) rotate(18deg)}to{transform:translate(390%) rotate(18deg)}}section{padding:78px 0;scroll-margin-top:96px}.section-head{display:flex;gap:18px;align-items:end;justify-content:space-between;margin-bottom:24px}.section-head h2{margin:0;font-size:3rem;line-height:1;letter-spacing:0}.section-head p{max-width:520px;margin:0;color:var(--muted);line-height:1.7}.about-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:18px;align-items:stretch}.about-copy{position:relative;overflow:hidden;padding:28px;border:1px solid rgba(170,220,255,.2);border-radius:var(--radius);background:radial-gradient(circle at 22% 20%,rgba(65,255,210,.2),transparent 32%),linear-gradient(145deg,#0a0f20d1,#151b36b8);box-shadow:0 24px 70px #00000040;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform-style:preserve-3d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.about-copy:after{content:"";position:absolute;inset:auto -22% -42% auto;width:280px;aspect-ratio:1;border:1px solid rgba(255,209,102,.24);transform:rotateX(68deg) rotate(18deg);animation:orbit 16s linear infinite;opacity:.7}.about-copy h3{position:relative;z-index:1;margin:10px 0 14px;max-width:620px;font-size:1.6rem;line-height:1.25}.about-copy p,.about-copy .tags{position:relative;z-index:1}.about-copy p{margin:0;color:var(--muted);line-height:1.7}.about-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.about-card{min-height:100%}.grid{display:grid;gap:16px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.panel,.project,.timeline-item,.contact-box{border:1px solid rgba(170,220,255,.18);border-radius:var(--radius);background:linear-gradient(145deg,#0a0f20c7,#12182c9e);box-shadow:0 20px 58px #00000038;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.panel{min-height:160px;padding:22px;position:relative;overflow:hidden;transform-style:preserve-3d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}.panel:before,.project:before,.timeline-item:before,.cert:before,.contact-box:before,.contact-links a:before,.about-copy:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--spot-x, 50%) var(--spot-y, 0%),rgba(65,255,210,.18),transparent 42%);opacity:0;pointer-events:none;transition:opacity .22s ease}.panel:hover,.project:hover,.timeline-item:hover,.cert:hover,.contact-box:hover,.contact-links a:hover,.about-copy:hover{border-color:#41ffd26b;transform:translateY(-8px) rotateX(3deg) scale(1.025);box-shadow:0 30px 82px #41ffd22e,0 0 34px #62a8ff1f;background:linear-gradient(145deg,#0a172ae0,#14223cbd)}.panel:hover:before,.project:hover:before,.timeline-item:hover:before,.cert:hover:before,.contact-box:hover:before,.contact-links a:hover:before,.about-copy:hover:before{opacity:1}.panel:hover .icon,.project:hover .project-icon,.timeline-item:hover .icon,.cert:hover .icon,.contact-box:hover .icon,.contact-links a:hover .ai-assistant{position:fixed;right:18px;bottom:18px;z-index:40;display:grid;justify-items:end;gap:12px;max-width:calc(100vw - 28px)}svg{animation:hoverZoom .9s ease-in-out infinite alternate}.panel:hover .tag,.project:hover .tag{border-color:#ffffff38;color:var(--ink)}.panel h3,.project h3,.timeline-item h3{margin:14px 0 8px;font-size:1.1rem}.panel p,.project p,.timeline-item p{margin:0;color:var(--muted);line-height:1.6}.icon{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:7px;color:#fff;background:linear-gradient(135deg,#111827,#334155);box-shadow:0 12px 28px #00000042}.icon.mint{background:var(--mint)}.icon.coral{background:var(--coral)}.icon.gold{background:var(--gold);color:var(--ink)}.icon.blue{background:var(--blue)}.icon.violet{background:var(--violet)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tag{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#080c1a80;color:var(--muted);font-size:.84rem;font-weight:700;transition:color .18s ease,border-color .18s ease,transform .18s ease}.tag:hover{transform:scale(1.06)}.timeline{display:grid;gap:14px;position:relative}.timeline-item{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;padding:22px;overflow:hidden;transform-style:preserve-3d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}.time{color:var(--mint);font-weight:900;transition:color .18s ease,text-shadow .18s ease,transform .18s ease}.timeline-item:hover .time{color:var(--gold);text-shadow:0 0 18px rgba(255,209,102,.36);transform:translateZ(28px) scale(1.04)}.project{overflow:hidden;position:relative;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.project-art{position:relative;display:grid;place-items:center;min-height:210px;overflow:hidden;background:linear-gradient(135deg,#050713e6,#0f172a6b),linear-gradient(45deg,var(--accent),rgba(255,255,255,.1));color:#fff;transform-style:preserve-3d}.project-art:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.12) 50%,transparent 80%);transform:translate(-120%);opacity:0;pointer-events:none}.project:hover .project-art:after{animation:shineSweep .98s ease;opacity:1}.tone-mint{--accent: var(--mint)}.tone-blue{--accent: var(--blue)}.tone-gold{--accent: var(--gold)}.tone-coral{--accent: var(--coral)}.tone-violet{--accent: var(--violet)}.project-art:before{content:"";position:absolute;inset:20px;border:1px solid rgba(255,255,255,.13);border-radius:7px;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:28px 28px;transform:perspective(700px) rotateX(56deg) rotate(-8deg);opacity:.38}.project-orbit{position:relative;display:grid;place-items:center;width:132px;height:132px;border:1px solid color-mix(in srgb,var(--accent) 58%,transparent);border-radius:50%;animation:orbitRing 9s linear infinite}.project-orbit span{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 22px var(--accent)}.project-orbit span:nth-child(1){transform:translate(62px)}.project-orbit span:nth-child(2){transform:rotate(120deg) translate(62px)}.project-orbit span:nth-child(3){transform:rotate(240deg) translate(62px)}.project-icon{position:absolute;display:grid;place-items:center;width:78px;height:78px;border:1px solid color-mix(in srgb,var(--accent) 46%,white 8%);border-radius:8px;background:#080c1aad;box-shadow:0 18px 54px color-mix(in srgb,var(--accent) 25%,transparent);animation:floatGlyph 4.8s ease-in-out infinite}.project-icon .ai-assistant{position:fixed;right:18px;bottom:18px;z-index:40;display:grid;justify-items:end;gap:12px;max-width:calc(100vw - 28px)}svg{width:34px;height:34px;color:var(--accent)}.project-preview{position:absolute;right:24px;bottom:22px;display:grid;gap:7px;width:104px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#060a169e;box-shadow:0 16px 36px #0000003d}.project-preview span{display:block;height:8px;border-radius:99px;background:color-mix(in srgb,var(--accent) 72%,white 8%);opacity:.9}.project-preview span:nth-child(2){width:72%;opacity:.62}.project-preview span:nth-child(3){width:48%;opacity:.42}.project-chart .project-preview span{height:34px;width:18px;align-self:end}.project-chart .project-preview{grid-template-columns:repeat(3,1fr);align-items:end;height:82px}.project-chart .project-preview span:nth-child(2){height:48px;width:18px}.project-chart .project-preview span:nth-child(3){height:24px;width:18px}.project-tasks .project-preview span:nth-child(1){width:86%}.project-library .project-preview{grid-template-columns:repeat(3,1fr);height:78px;align-items:stretch}.project-library .project-preview span{width:auto;height:auto;border-radius:3px}@keyframes orbitRing{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes floatGlyph{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}.project-body{position:relative;z-index:1;padding:22px}.project-type{display:inline-flex;margin-bottom:4px;color:var(--accent);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.project-role{margin-top:12px!important;color:color-mix(in srgb,var(--muted) 88%,white 12%)!important}.project-role strong{color:var(--ink)}.project-highlights{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.project-highlights span,.contact-pills span{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid rgba(255,209,102,.22);border-radius:999px;background:#ffd16614;color:var(--ink);font-size:.78rem;font-weight:800}.cert-list{display:grid;gap:12px}.cert{position:relative;display:flex;gap:12px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#080c1a85;font-weight:800;overflow:hidden;transform-style:preserve-3d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease,color .18s ease}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.mini-action{display:inline-flex;gap:8px;align-items:center;min-height:40px;padding:0 12px;border:1px solid rgba(65,255,210,.26);border-radius:7px;background:#080c1a9e;color:var(--ink);font-size:.86rem;font-weight:800;transition:transform .18s ease,border-color .18s ease,background .18s ease}.mini-action:hover{border-color:#41ffd294;background:#41ffd21f;transform:translateY(-2px) scale(1.03)}.contact{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:18px;align-items:stretch}.contact-box{position:relative;overflow:hidden;padding:24px;transform-style:preserve-3d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}.contact-links{display:grid;gap:12px;margin-top:20px}.contact-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.contact-links a{position:relative;display:flex;gap:12px;align-items:center;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#080c1a8f;color:var(--muted);font-weight:700;overflow-wrap:anywhere;overflow:hidden;transform-style:preserve-3d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease,color .18s ease}.cert:hover,.contact-links a:hover{color:var(--ink)}.timeline-item>*,.cert>*,.contact-box>*,.contact-links a>*,.about-copy>*{position:relative;z-index:1}form{display:grid;gap:12px}.field{display:grid;gap:8px}.field span{color:var(--ink);font-size:.9rem;font-weight:800}.hidden-field{display:none}input,textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#080c1ab8;padding:14px;color:var(--ink);outline:none}input::placeholder,textarea::placeholder{color:#aab7c9c7;opacity:1}input:focus,textarea:focus{border-color:#41ffd294;box-shadow:0 0 0 3px #41ffd21f}textarea{min-height:132px;resize:vertical}footer{padding:30px 0 42px;color:var(--muted);text-align:center}.ai-assistant{position:fixed;right:18px;bottom:18px;z-index:40;display:grid;justify-items:end;gap:12px;max-width:calc(100vw - 28px)}.ai-toggle{display:inline-flex;gap:9px;align-items:center;min-height:48px;padding:0 16px;border:1px solid rgba(65,255,210,.34);border-radius:8px;background:linear-gradient(135deg,#0f172af5,#0f766edb);color:var(--ink);box-shadow:0 18px 52px #00000057,0 0 28px #41ffd22e;cursor:pointer;font-weight:900;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.ai-toggle:hover{border-color:#41ffd2b8;box-shadow:0 24px 66px #41ffd233,0 0 34px #62a8ff2e;transform:translateY(-3px)}.ai-panel{width:min(390px,calc(100vw - 28px));overflow:hidden;border:1px solid rgba(170,220,255,.2);border-radius:8px;background:#070a16f0;box-shadow:0 28px 88px #00000075;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:aiRise .22s ease both}.ai-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-bottom:1px solid rgba(170,220,255,.14);background:#41ffd214}.ai-head strong,.ai-head span{display:block}.ai-head span{margin-top:2px;color:var(--muted);font-size:.82rem;font-weight:700}.ai-head button{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(170,220,255,.18);border-radius:7px;background:#080c1ab8;color:var(--ink);cursor:pointer;font-weight:900}.ai-messages{display:grid;gap:10px;max-height:310px;overflow-y:auto;padding:14px}.ai-message{width:fit-content;max-width:88%;margin:0;padding:10px 12px;border:1px solid rgba(170,220,255,.14);border-radius:8px;color:var(--muted);background:#0c1224b3;font-size:.9rem;line-height:1.55}.ai-message.user{justify-self:end;border-color:#41ffd247;background:#41ffd21c;color:var(--ink)}.ai-suggestions{display:flex;gap:8px;overflow-x:auto;padding:0 14px 12px;scrollbar-width:none}.ai-suggestions::-webkit-scrollbar{display:none}.ai-suggestions button{flex:0 0 auto;min-height:32px;padding:0 10px;border:1px solid rgba(255,209,102,.22);border-radius:999px;background:#ffd16614;color:var(--ink);cursor:pointer;font-size:.78rem;font-weight:800}.ai-form{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;padding:14px;border-top:1px solid rgba(170,220,255,.14)}.ai-form input{min-height:42px;padding:0 12px}.ai-form button{display:grid;place-items:center;border:1px solid rgba(65,255,210,.32);border-radius:7px;background:#41ffd21f;color:var(--ink);cursor:pointer}.ai-form button:disabled{cursor:not-allowed;opacity:.5}@keyframes aiRise{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}svg{width:20px;height:20px;stroke-width:2;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}[data-reveal]{opacity:0;transform:translateY(28px) scale(.96);filter:blur(14px);transition:opacity .76s ease,transform .76s ease,filter .76s ease}[data-reveal].visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}@media(max-width:900px){.hero,.about-layout,.contact,.grid.two,.grid.three,.project-grid,.about-cards{grid-template-columns:1fr}.hero{padding-top:86px}h1{font-size:4rem}.section-head h2{font-size:2.55rem}.visual{min-height:520px}.section-head{display:grid}}@media(max-width:820px){.topbar{width:calc(100% - 20px)}.nav{justify-content:space-between}.nav a{width:38px;min-width:38px;padding:0}.nav-label{display:none}}@media(max-width:640px){.topbar{top:10px;width:calc(100% - 20px);padding:8px;gap:6px}.brand span:last-child{display:none}.nav{flex:1;justify-content:space-between;overflow:visible}.nav a{width:clamp(30px,9.2vw,38px);min-width:30px;height:38px;padding:0}.nav-label{display:none}h1{font-size:2.75rem;line-height:1}.lead{font-size:1.02rem}.section-head h2{font-size:2.1rem}.stats{grid-template-columns:1fr}.visual{min-height:470px}.photo-stage{width:min(78vw,320px)}.floating-chip{min-width:auto;max-width:150px;font-size:.86rem}.chip-one{left:0;top:70px}.chip-two{right:0;bottom:88px}.chip-three{left:18px;bottom:22px}.timeline-item{grid-template-columns:1fr}section{padding:56px 0;scroll-margin-top:78px}.project-art{min-height:184px}.project-preview{right:16px;bottom:16px;width:86px}.ai-assistant{right:10px;bottom:10px}.ai-toggle span{display:none}.ai-toggle{width:52px;min-height:52px;padding:0;justify-content:center;border-radius:50%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;scroll-behavior:auto!important;transition-duration:1ms!important}}.ai-message.message-pop{animation:aiMessagePop .26s ease both}.ai-message.assistant.is-typing{border-color:#41ffd238;box-shadow:inset 0 0 18px #41ffd20f}.typing-caret{display:inline-block;width:7px;height:1.1em;margin-left:3px;border-radius:99px;background:var(--mint);vertical-align:-.18em;animation:caretBlink .78s steps(2,start) infinite}.ai-message.thinking{display:inline-flex;gap:5px;align-items:center;min-width:64px}.ai-message.thinking span{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 14px #41ffd275;animation:thinkingDot .82s ease-in-out infinite}.ai-message.thinking span:nth-child(2){animation-delay:.12s}.ai-message.thinking span:nth-child(3){animation-delay:.24s}.ai-toggle svg{animation:aiSpark 1.8s ease-in-out infinite}@media(max-width:640px){.pet-tail,.pet-spark{display:none}.pet-bubble{display:block;position:fixed;inset:auto auto 18px 50%;transform:translate(-50%) translateY(8px) scale(.94);z-index:100;padding:12px 18px;min-width:145px;border:1px solid rgba(65,255,210,.45);border-radius:8px;background:linear-gradient(135deg,#0a1c2af5,#0f5d57f0);color:#fff;font-size:.82rem;font-weight:800;white-space:nowrap;box-shadow:0 10px 30px #00000059,0 0 18px #41ffd22e;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease}.portfolio-pet.active .pet-bubble{opacity:1;transform:translate(-50%) translateY(0) scale(1)}.ai-toggle{width:auto!important;min-width:145px!important;height:auto!important;padding:10px 16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;white-space:nowrap!important;overflow:visible!important;flex-shrink:0!important}.ai-toggle svg{display:block!important;width:20px!important;height:20px!important;flex-shrink:0!important}.ai-toggle span,.ai-toggle .label,.ai-toggle .text{display:inline!important;visibility:visible!important;opacity:1!important;width:auto!important;max-width:none!important;overflow:visible!important;white-space:nowrap!important}}.portfolio-pet{position:fixed;left:clamp(12px,var(--pet-x),calc(100vw - 110px));top:clamp(92px,var(--pet-y),calc(100vh - 140px));right:auto;bottom:auto;z-index:36;display:grid;place-items:center;width:92px;height:92px;border:0;background:transparent;color:var(--ink);cursor:pointer;overflow:visible!important;transform:translateZ(0);transition:left 1.8s cubic-bezier(.2,.9,.18,1),top 1.8s cubic-bezier(.2,.9,.18,1),filter .22s ease}.portfolio-pet:hover,.portfolio-pet.active{filter:drop-shadow(0 0 12px rgba(65,255,210,.65)) drop-shadow(0 0 32px rgba(98,168,255,.28));animation:petCursorShake .7s ease-in-out}.pet-shadow{position:absolute;left:22px;right:22px;bottom:7px;height:9px;border-radius:50%;background:#00000042;filter:blur(4px);animation:petShadow 3s ease-in-out infinite}.pet-body{position:relative;display:grid;place-items:center;width:66px;height:66px;border:1px solid rgba(170,220,255,.28);border-radius:24px 24px 20px 20px;background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.2),transparent 26%),linear-gradient(145deg,#0b1123fa,#0f766edb);box-shadow:0 20px 52px #00000057,inset 0 0 0 1px #ffffff14;animation:petFloatCute 3s ease-in-out infinite;transform-origin:50% 88%}.pet-ear{position:absolute;top:-10px;width:23px;height:24px;border:1px solid rgba(65,255,210,.24);border-radius:13px 13px 5px 5px;background:linear-gradient(145deg,#0d1326fa,#62a8ff61);transform-origin:bottom center}.pet-ear.left{left:8px;transform:rotate(-18deg);animation:petEarLeft 4.2s ease-in-out infinite}.pet-ear.right{right:8px;transform:rotate(18deg);animation:petEarRight 4.2s ease-in-out infinite}.pet-face{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:11px;place-items:center;width:47px;height:34px;border-radius:14px;background:#020617a8;box-shadow:inset 0 0 18px #41ffd214}.pet-eye{position:relative;z-index:5;width:9px;height:12px;border-radius:999px;background:var(--mint);box-shadow:0 0 12px #41ffd2d1;transition:transform .12s ease-out;animation:petBlink 4.4s ease-in-out infinite}.pet-mouth{position:absolute;left:50%;bottom:7px;width:13px;height:6px;border-bottom:2px solid rgba(255,255,255,.76);border-radius:0 0 999px 999px;transform:translate(-50%)}.portfolio-pet.happy .pet-mouth,.portfolio-pet.excited .pet-mouth,.portfolio-pet.active .pet-mouth{width:16px;height:8px;border-bottom-color:var(--mint)}.pet-cheek{position:absolute;top:39px;width:8px;height:5px;border-radius:50%;background:#ff6d9e94;filter:blur(.2px)}.pet-cheek.left{left:13px}.pet-cheek.right{right:13px}.pet-paw{position:absolute!important;z-index:20!important;width:20px!important;height:15px!important;bottom:8px!important;border-radius:50%!important;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.22),transparent 36%),#41ffd252!important;border:1px solid rgba(65,255,210,.48)!important;box-shadow:0 0 10px #41ffd240,inset 0 0 7px #ffffff14;pointer-events:none}.pet-paw.left{left:-9px!important;right:auto!important;transform:rotate(-18deg);animation:petLeftPawFinal 3.2s ease-in-out infinite}.pet-paw.right{right:-9px!important;left:auto!important;transform:rotate(18deg);animation:petRightPawFinal 3.2s ease-in-out infinite}.pet-tail{position:absolute;right:-14px;bottom:13px;width:24px;height:10px;border-radius:999px;background:linear-gradient(90deg,#41ffd270,#62a8ff29);transform-origin:left center;animation:petTail 1.4s ease-in-out infinite}.pet-spark{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 15px #ffd166b8;opacity:0}.pet-spark.one{top:-15px;right:5px;animation:petSpark 2.8s ease-in-out infinite}.pet-spark.two{left:-9px;top:16px;animation:petSpark 2.8s ease-in-out 1.1s infinite}.pet-bubble{position:absolute;right:66px;top:2px;min-width:max-content;padding:8px 10px;border:1px solid rgba(65,255,210,.25);border-radius:8px;background:#070a16e6;color:var(--ink);box-shadow:0 14px 34px #0000004d;font-size:.78rem;font-weight:900;opacity:0;transform:translateY(8px) scale(.94);transition:opacity .2s ease,transform .2s ease;pointer-events:none}.portfolio-pet:hover .pet-bubble,.portfolio-pet.active .pet-bubble{opacity:1;transform:translateY(0) scale(1)}.portfolio-pet.thinking .pet-eye.right{height:4px;transform:translateY(3px)}.portfolio-pet.wave .pet-paw.right,.portfolio-pet:hover .pet-paw.right,.portfolio-pet.active .pet-paw.right{animation:petWave .62s ease-in-out infinite alternate}.portfolio-pet.excited .pet-body,.portfolio-pet.active .pet-body{animation:petHappyBounce .62s ease-in-out infinite alternate}.portfolio-pet:hover .pet-body{animation:petMouseReaction .65s ease-in-out infinite alternate}.portfolio-pet:hover .pet-eye,.portfolio-pet.active .pet-eye{animation:petExcitedEyesFinal .9s ease-in-out infinite,petBlink 4.4s ease-in-out infinite!important}.portfolio-pet:hover .pet-ear.left{animation:petEarLeftReact .45s ease-in-out infinite alternate}.portfolio-pet:hover .pet-ear.right{animation:petEarRightReact .45s ease-in-out infinite alternate}.portfolio-pet:hover .pet-tail{animation:petTailExcited .4s ease-in-out infinite alternate}.portfolio-pet:hover .pet-paw.left,.portfolio-pet.active .pet-paw.left{animation:petLeftWaveFinal .52s ease-in-out infinite alternate!important}.portfolio-pet:hover .pet-paw.right,.portfolio-pet.active .pet-paw.right{animation:petRightWaveFinal .52s ease-in-out infinite alternate!important}.portfolio-pet:hover .pet-cheek{box-shadow:0 0 12px #ff6d9e8c;transform:scale(1.25)}.portfolio-pet:hover .pet-mouth{width:17px;height:9px;border-bottom-color:var(--mint);filter:drop-shadow(0 0 5px rgba(65,255,210,.6))}@keyframes petFloatCute{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes petHappyBounce{0%{transform:translateY(-5px) rotate(-4deg) scale(1.02)}to{transform:translateY(-14px) rotate(4deg) scale(1.06)}}@keyframes petMouseReaction{0%{transform:translateY(0) rotate(-2deg) scale(1)}50%{transform:translateY(-5px) rotate(2deg) scale(1.04)}to{transform:translateY(-9px) rotate(-2deg) scale(1.07)}}@keyframes petShadow{0%,to{transform:scaleX(1);opacity:.5}50%{transform:scaleX(.72);opacity:.28}}@keyframes petBlink{0%,88%,to{transform:scaleY(1)}92%{transform:scaleY(.12)}}@keyframes petEarLeft{0%,to{transform:rotate(-18deg)}50%{transform:rotate(-8deg)}}@keyframes petEarRight{0%,to{transform:rotate(18deg)}50%{transform:rotate(8deg)}}@keyframes petTail{0%,to{transform:rotate(-10deg) scaleX(1)}50%{transform:rotate(18deg) scaleX(1.08)}}@keyframes petSpark{0%,to{opacity:0;transform:translateY(6px) scale(.5)}35%{opacity:1;transform:translateY(0) scale(1)}70%{opacity:0;transform:translateY(-8px) scale(.7)}}@keyframes petCursorShake{0%{transform:translateZ(0)}20%{transform:translate3d(-3px,0,0) rotate(-2deg)}40%{transform:translate3d(3px,-2px,0) rotate(2deg)}60%{transform:translate3d(-2px,0,0) rotate(-1deg)}80%{transform:translate3d(2px,-1px,0) rotate(1deg)}to{transform:translateZ(0)}}@keyframes petLeftWaveFinal{0%{transform:rotate(-18deg) translateY(0)}to{transform:rotate(-38deg) translateY(-7px)}}@keyframes petRightWaveFinal{0%{transform:rotate(18deg) translateY(0)}to{transform:rotate(38deg) translateY(-8px)}}@keyframes petLeftPawFinal{0%,to{transform:rotate(-18deg) translateY(0)}50%{transform:rotate(-10deg) translateY(-3px)}}@keyframes petRightPawFinal{0%,to{transform:rotate(18deg) translateY(0)}50%{transform:rotate(10deg) translateY(-3px)}}@keyframes petExcitedEyesFinal{0%,to{transform:translate(0) scaleY(1) scaleX(1)}25%{transform:translate(-2px) scaleY(1.08) scaleX(1.08)}50%{transform:translate(2px) scaleY(1.15) scaleX(1.12)}75%{transform:translate(-1px) scaleY(1.08) scaleX(1.08)}}@keyframes petEarLeftReact{0%{transform:rotate(-18deg)}to{transform:rotate(-32deg)}}@keyframes petEarRightReact{0%{transform:rotate(18deg)}to{transform:rotate(32deg)}}@keyframes petTailExcited{0%{transform:rotate(-12deg) scaleX(1)}to{transform:rotate(28deg) scaleX(1.15)}}@media(max-width:640px){.portfolio-pet{width:62px;height:62px;left:clamp(8px,var(--pet-x),calc(100vw - 70px));top:clamp(70px,var(--pet-y),calc(100vh - 80px));right:auto;bottom:auto;transition:left 1.8s cubic-bezier(.2,.9,.18,1),top 1.8s cubic-bezier(.2,.9,.18,1),filter .22s ease}.pet-body{width:49px;height:49px;border-radius:18px 18px 15px 15px}.pet-ear{width:17px;height:18px;top:-8px}.pet-face{width:36px;height:27px;column-gap:8px}.pet-eye{width:7px;height:10px}.pet-tail,.pet-spark{display:none}.pet-bubble{display:block}.portfolio-pet .pet-paw{width:17px!important;height:13px!important;bottom:5px!important}.portfolio-pet .pet-paw.left{left:-7px!important}.portfolio-pet .pet-paw.right{right:-7px!important}}@media(prefers-reduced-motion:reduce){.portfolio-pet,.portfolio-pet:hover,.portfolio-pet .pet-body,.portfolio-pet:hover .pet-body,.portfolio-pet .pet-eye,.portfolio-pet .pet-ear.left,.portfolio-pet .pet-ear.right,.portfolio-pet .pet-tail,.portfolio-pet .pet-paw.left,.portfolio-pet .pet-paw.right{animation:none!important}.portfolio-pet{transition:none!important}}
