:root{--paper:#eef1ef;--paper-deep:#e3e9e6;--ink:#16222b;--ink-soft:#51636a;--ink-faint:#8a9a9c;--signal:#215c55;--signal-bright:#3c8a7e;--copper:#9b5a31;--gold:#b0863e;--line:#c7d2cd;--card:#fbfcfa;--radius:4px;--disp:"Space Grotesk", sans-serif;--body:"Source Serif 4", Georgia, serif;--mono:"JetBrains Mono", monospace;--maxw:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.65;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--disp);color:var(--ink);letter-spacing:-.01em;margin:0}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}img{max-width:100%;display:block}section{position:relative}button{font:inherit}.wrap{max-width:var(--maxw);width:min(100%, var(--maxw));margin:0 auto;padding:0 32px}.eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal);align-items:center;gap:10px;margin-bottom:18px;font-size:12.5px;display:flex}.eyebrow:before{content:"";background:var(--signal);width:22px;height:1px;display:inline-block}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}.rail{z-index:40;pointer-events:none;align-items:center;width:26px;height:100vh;display:flex;position:fixed;top:0;left:28px}.rail svg{overflow:visible}.rail-line{stroke:var(--line);stroke-width:1.4px}.rail-progress{stroke:var(--signal);stroke-width:1.4px;transition:stroke-dashoffset .15s ease-out}.rail-dot{fill:var(--paper);stroke:var(--ink-faint);stroke-width:1.4px;cursor:pointer;pointer-events:auto;transition:fill .2s,stroke .2s,r .2s}.rail-dot.active{fill:var(--signal);stroke:var(--signal);r:4.5}@media (width<=900px){.rail{display:none}}header.nav{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#eef1efe0;position:sticky;top:0}.nav-inner{max-width:var(--maxw);justify-content:space-between;align-items:center;margin:0 auto;padding:16px 32px;display:flex}.brand{font-family:var(--disp);align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex;position:relative;overflow:hidden}.brand-mark{border:1.4px solid var(--ink);width:34px;height:34px;font-family:var(--disp);z-index:2;background:linear-gradient(135deg,#215c551f,#ffffffa6);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;animation:1.2s cubic-bezier(.2,.8,.2,1) both brandRollAcross;display:flex;position:relative;overflow:hidden}.brand-mark:before{content:"";opacity:0;border:1px solid #215c5540;border-radius:50%;animation:1s .15s forwards brandHalo;position:absolute;inset:-2px;transform:scale(.9)}.brand-mark span{z-index:1;animation:1.1s both brandSpinText;display:inline-block;position:relative}.brand-name{font-family:var(--disp);letter-spacing:-.02em;color:var(--ink);opacity:0;flex-wrap:wrap;font-size:1.05rem;font-weight:700;animation:.7s .75s forwards brandRevealName;display:inline-flex;transform:translate(14px)}.brand-letter{opacity:0;animation:.4s forwards brandLetterReveal;display:inline-block;transform:translateY(6px)scale(.95)}.brand-letter:first-child{animation-delay:.95s}.brand-letter:nth-child(2){animation-delay:1s}.brand-letter:nth-child(3){animation-delay:1.05s}.brand-letter:nth-child(4){animation-delay:1.1s}.brand-letter:nth-child(5){animation-delay:1.15s}.brand-letter:nth-child(6){animation-delay:1.2s}.brand-letter:nth-child(7){animation-delay:1.25s}.brand-letter:nth-child(8){animation-delay:1.3s}.brand-letter:nth-child(9){animation-delay:1.35s}.brand-letter:nth-child(10){animation-delay:1.4s}.brand-letter:nth-child(11){animation-delay:1.45s}.brand-letter:nth-child(12){animation-delay:1.5s}.brand-letter:nth-child(13){animation-delay:1.55s}.brand-letter:nth-child(14){animation-delay:1.6s}.brand-letter:nth-child(15){animation-delay:1.65s}.brand-letter:nth-child(16){animation-delay:1.7s}@keyframes brandRollAcross{0%{opacity:0;transform:translate(-36px)rotate(-240deg)scale(.5)}35%{opacity:1;transform:translate(-10px)rotate(-30deg)scale(.9)}70%{opacity:1;transform:translate(16px)rotate(24deg)scale(1.03)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@keyframes brandSpinText{0%{transform:rotate(-90deg)scale(.8)}60%{transform:rotate(12deg)scale(1.02)}to{transform:rotate(0)scale(1)}}@keyframes brandHalo{to{opacity:1;transform:scale(1)}}@keyframes brandRevealName{to{opacity:1;transform:translate(0)}}@keyframes brandLetterReveal{to{opacity:1;transform:translateY(0)scale(1)}}nav.links{font-family:var(--mono);letter-spacing:.03em;gap:28px;font-size:13px;display:flex}nav.links a{color:var(--ink-soft);border-bottom:1px solid #0000;padding-bottom:2px;transition:color .2s,border-color .2s}nav.links a:hover{color:var(--ink);border-color:var(--signal)}.nav-toggle{border:1.4px solid var(--ink);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:none}.nav-toggle span,.nav-toggle span:before,.nav-toggle span:after{content:"";background:var(--ink);width:16px;height:1.6px;transition:transform .2s,opacity .2s;display:block;position:relative}.nav-toggle span:before{position:absolute;top:-5px}.nav-toggle span:after{position:absolute;top:5px}@media (width<=760px){.nav-inner{padding:14px 20px}nav.links{background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;gap:0;max-height:0;transition:max-height .3s;position:absolute;top:100%;left:0;right:0;overflow:hidden}nav.links.open{max-height:400px}nav.links a{border-bottom:1px solid var(--line);width:100%;padding:14px 20px}.nav-toggle{display:flex}.brand{gap:8px}.brand-name{font-size:.98rem}}.btn{font-family:var(--mono);letter-spacing:.03em;border-radius:var(--radius);border:1.4px solid var(--ink);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:12px 22px;font-size:13px;transition:background .2s,color .2s,transform .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-solid:hover{background:var(--signal);border-color:var(--signal)}.btn-ghost:hover{background:var(--ink);color:var(--paper)}.hero{padding:40px 0 72px;position:relative;overflow:hidden}.hero-grid{grid-template-columns:1.3fr .9fr;align-items:center;gap:60px;display:grid}.hero h1{font-size:clamp(2.6rem,6vw,4.4rem);font-weight:700;line-height:.98}.hero .role-line{font-family:var(--mono);color:var(--signal);letter-spacing:.02em;margin-top:20px;font-size:14px}.hero p.intro{font-family:var(--body);color:var(--ink-soft);max-width:46ch;margin-top:22px;font-size:19px}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:34px;display:flex}.hero-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:26px;display:grid}.hero-stat{border:1px solid var(--line);background:var(--card);flex-direction:column;gap:4px;padding:12px 10px;display:flex}.hero-stat strong{color:var(--ink);font-size:1rem}.hero-stat span{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}@media (width<=1024px){.hero-grid{grid-template-columns:1fr;gap:40px}.hero-photo{max-width:420px}}@media (width<=768px){.hero{padding:28px 0 56px}.hero h1{font-size:clamp(2.2rem,10vw,3.2rem)}.hero p.intro{font-size:1.02rem}.hero-actions{flex-direction:column;align-items:flex-start}.hero-actions .btn{justify-content:center;width:100%}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.hero{padding:22px 0 48px}.hero-grid{gap:28px}.hero .role-line{margin-top:14px;font-size:12px}.hero p.intro{margin-top:16px;font-size:.98rem}.hero-actions{gap:10px;margin-top:24px}.hero-stats{grid-template-columns:1fr}}.hero-photo{aspect-ratio:4/5;border-radius:var(--radius);border:1.4px solid var(--ink);background:repeating-linear-gradient(135deg,#0000 0 8px,#16222b0b 8px 9px),linear-gradient(160deg,#dce3df,#c9d3cd);justify-content:flex-start;align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero-photo img{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.hero-photo .cap{z-index:1;background:var(--ink);color:var(--paper);font-family:var(--mono);letter-spacing:.04em;padding:8px 12px;font-size:11px;position:relative}.section{border-top:1px solid var(--line);padding:90px 0}@media (width<=768px){.section{padding:70px 0}}@media (width<=480px){.section{padding:56px 0}}.section.alt{background:var(--paper-deep)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;display:flex}@media (width<=768px){.section-head{gap:16px;margin-bottom:32px}}@media (width<=480px){.section-head{margin-bottom:24px}.section-head h2{font-size:1.45rem}.section-note{font-size:.95rem}}.section-head h2{font-size:clamp(1.8rem,3.2vw,2.5rem)}.section-note{font-family:var(--body);color:var(--ink-soft);text-align:right;max-width:34ch;font-size:15.5px;font-style:italic}@media (width<=760px){.section-note{text-align:left}}.about-grid{grid-template-columns:.9fr 1.3fr;gap:56px;display:grid}.about-grid p{color:var(--ink-soft);margin-bottom:16px;font-size:17.5px}.about-grid p strong{color:var(--ink);font-weight:600}.about-facts{font-family:var(--mono);border-top:1px solid var(--line);font-size:13px}.about-facts div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:13px 0;display:flex}.about-facts span:first-child{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em}.about-facts span:last-child{text-align:right;color:var(--ink)}@media (width<=800px){.about-grid{grid-template-columns:1fr;gap:32px}}@media (width<=480px){.about-grid p{font-size:1rem}.about-facts div{flex-direction:column;align-items:flex-start;gap:4px}}.skills-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.skill-card{background:var(--card);padding:26px 24px}.skill-card h3{font-size:14px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--signal);margin-bottom:16px}.skill-card ul li{border-bottom:1px dashed var(--line);color:var(--ink-soft);justify-content:space-between;align-items:center;gap:10px;padding:7px 0;font-size:15.5px;display:flex}.skill-card ul li span{color:var(--ink)}.skill-card ul li em{font-family:var(--mono);color:var(--signal);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-style:normal}.skill-card ul li:last-child{border-bottom:none}@media (width<=900px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.skills-grid{grid-template-columns:1fr}.skill-card{padding:22px 18px}}.filters{flex-wrap:wrap;gap:10px;margin-bottom:36px;display:flex}.filter-btn{font-family:var(--mono);letter-spacing:.04em;border:1.4px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:20px;padding:8px 16px;font-size:12.5px;transition:all .2s}.filter-btn:hover{border-color:var(--ink)}.filter-btn.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.project-grid{grid-template-columns:repeat(2,1fr);gap:22px;display:grid}@media (width<=800px){.project-grid{grid-template-columns:1fr}}@media (width<=480px){.project-card{padding:22px}.project-top{flex-direction:column;align-items:flex-start}.project-tags{justify-content:flex-start}.project-foot{flex-direction:column;align-items:flex-start}}.project-card{background:var(--card);border:1px solid var(--line);flex-direction:column;min-height:100%;padding:28px;transition:transform .25s,box-shadow .25s,opacity .2s;display:flex}.project-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px #16222b59}.project-card.hide{display:none}.project-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.project-card h3{font-size:21px}.project-tags{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap;border-radius:12px;padding:3px 8px;font-size:10.5px}.project-card p{color:var(--ink-soft);flex-grow:1;font-size:15.5px}.project-foot{font-family:var(--mono);color:var(--ink-faint);border-top:1px dashed var(--line);justify-content:space-between;align-items:center;gap:10px;margin-top:18px;padding-top:14px;font-size:12px;display:flex}.project-image{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius);width:100%;margin-bottom:16px;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.project-card:hover .project-image img{transform:scale(1.04)}.project-contributors{gap:6px;margin-top:14px;display:grid}.contributor-list{flex-wrap:wrap;gap:8px;display:flex}.contributor-chip{font-family:var(--mono);letter-spacing:.02em;border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:5px 12px;font-size:11.5px;text-decoration:none;transition:all .2s}.contributor-chip:hover{border-color:var(--signal);color:var(--signal)}.timeline{border-left:1.4px solid var(--line);padding-left:28px;position:relative}.tl-item{padding-bottom:44px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-time{font-family:var(--mono);color:var(--signal);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;font-size:12px;display:block}.tl-item h3{margin-bottom:6px;font-size:19px}.tl-item p{color:var(--ink-soft);max-width:60ch;font-size:15.5px}.paper{background:var(--card);border:1px solid var(--line);margin-bottom:20px;padding:32px}.paper:last-child{margin-bottom:0}.paper-kind{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--copper);margin-bottom:10px;font-size:11px}.paper h3{max-width:70ch;margin-bottom:10px;font-size:20px;line-height:1.35}.paper-meta{font-family:var(--mono);color:var(--ink-faint);flex-wrap:wrap;gap:6px 18px;margin-bottom:14px;font-size:12.5px;display:flex}.paper-meta b{color:var(--ink-soft);font-weight:500}.paper p.summary{color:var(--ink-soft);border-left:2px solid var(--gold);padding-left:16px;font-size:15.5px}.paper-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.paper-details>div{border:1px solid var(--line);background:var(--paper);padding:10px 12px}.paper-details p{color:var(--ink-soft);margin:0;font-size:14.5px}.paper-tags{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.paper-tags span{font-family:var(--mono);border:1px solid var(--line);color:var(--ink-soft);padding:4px 8px;font-size:11px}@media (width<=760px){.paper-details{grid-template-columns:1fr}}.achievement-intro{color:var(--ink-soft);max-width:70ch;margin-bottom:24px;font-size:17px}.achievement-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px;display:grid}.achievement-stat{border:1px solid var(--line);background:var(--card);flex-direction:column;gap:6px;padding:18px 16px;display:flex}.achievement-stat strong{color:var(--ink);font-size:1.1rem}.achievement-stat span{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-size:12px}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.achievement-card{border:1px solid var(--line);background:var(--card);padding:22px 20px}.achievement-card h3{color:var(--ink);margin-bottom:10px;font-size:1rem}.achievement-card p{color:var(--ink-soft);margin:0;line-height:1.6}@media (width<=800px){.achievement-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-grid{grid-template-columns:1fr}}@media (width<=480px){.achievement-intro{font-size:1rem}.achievement-stats{grid-template-columns:1fr}.achievement-card{padding:18px 16px}}.timeline{gap:16px;padding-left:22px;display:grid;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:4px;bottom:4px;left:6px}.tl-item{padding:16px 0 0 22px;position:relative}.tl-item:before{content:"";background:var(--card);border:1.4px solid var(--signal);border-radius:50%;width:14px;height:14px;position:absolute;top:22px;left:-1px}.tl-time{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--signal);font-size:11px}.tl-item h3{margin:6px 0 8px;font-size:1.05rem}.tl-item p{color:var(--ink-soft);margin:0}.community-wrap{grid-template-columns:1fr 1fr;align-items:center;gap:56px;display:grid}.community-wrap p{color:var(--ink-soft);margin-bottom:14px;font-size:17px}.community-list li{border-bottom:1px dashed var(--line);color:var(--ink-soft);gap:12px;padding:14px 0;font-size:15.5px;display:flex}.community-list li:before{content:"—";color:var(--signal);font-family:var(--mono)}@media (width<=800px){.community-wrap{grid-template-columns:1fr;gap:28px}}.placeholder-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}@media (width<=800px){.placeholder-grid{grid-template-columns:1fr}}.placeholder-card{border:1.4px solid var(--line);text-align:left;color:var(--ink-soft);background:#fbfcfac2;padding:34px}.placeholder-card h3{color:var(--ink);margin-bottom:16px;font-size:16px}.placeholder-card p{font-size:14.5px;font-family:var(--body);margin:0;line-height:1.6}.mini-list{flex-direction:column;gap:16px;display:flex}.mini-list li{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding-bottom:12px;display:flex}.mini-list li:last-child{border-bottom:none;padding-bottom:0}.mini-list strong{font-family:var(--disp);color:var(--ink);font-size:15px}.mini-list span{font-family:var(--mono);color:var(--ink-faint);font-size:12px}.writing-tags{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.writing-tags span{border:1px solid var(--line);color:var(--ink-soft);padding:3px 8px;font-size:10.5px}.testimonials-list p{font-style:italic}.certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.certificate-card{border:1px solid var(--line);background:var(--paper);gap:12px;padding:20px;display:grid}.certificate-card-head,.cert-modal-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.certificate-type{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--signal);margin:0 0 6px;font-size:11px}.certificate-description{color:var(--ink-soft);margin:0;line-height:1.6}.certificate-meta{font-family:var(--mono);color:var(--ink-soft);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.certificate-placeholder{border:1px dashed var(--line);color:var(--ink-soft);gap:4px;padding:12px;display:grid}.certificate-placeholder span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-size:11px}.certificate-placeholder strong{font-family:var(--disp);color:var(--ink);font-size:15px}.cert-info-btn{border:1px solid var(--line);background:var(--paper);width:34px;height:34px;color:var(--ink);cursor:pointer;font-family:var(--mono);border-radius:50%;font-size:14px}.cert-modal{z-index:100;background:#080a0a73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.cert-modal-card{border:1px solid var(--line);background:var(--paper);gap:16px;width:min(560px,100%);padding:24px;display:grid}.certificate-image{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.certificate-image img{object-fit:cover;width:100%;max-height:220px;display:block}.certificate-image.large img{object-fit:contain;background:var(--paper);max-height:70vh}.certificate-placeholder.large{padding:16px}@media (width<=760px){.certificate-grid{grid-template-columns:1fr}}.contact-grid{grid-template-columns:.9fr 1.1fr;gap:56px;display:grid}@media (width<=800px){.contact-grid{grid-template-columns:1fr;gap:32px}}@media (width<=480px){.contact-links li{flex-direction:column;align-items:flex-start;gap:6px}.contact-links a{width:100%}}.contact-links li{border-bottom:1px solid var(--line);font-family:var(--mono);justify-content:space-between;align-items:center;padding:16px 0;font-size:14px;display:flex}.contact-links a{color:var(--ink);transition:color .2s}.contact-links a:hover{color:var(--signal)}.contact-links .icon-link{flex-grow:1}form.contact-form{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-size:11.5px}.field input,.field textarea{font-family:var(--body);border:1.4px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);padding:12px 14px;font-size:15.5px}.field textarea{resize:vertical;min-height:110px}.field input:focus,.field textarea:focus{border-color:var(--signal);outline:none}.form-msg{font-family:var(--mono);color:var(--signal);min-height:18px;font-size:13px}.contact-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}footer{border-top:1px solid var(--line);font-family:var(--mono);color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:44px 0;font-size:12.5px;display:flex}.icon-link{align-items:center;gap:12px;display:flex}.icon-link .ico{width:19px;height:19px;color:var(--ink-faint);flex-shrink:0;transition:color .2s,transform .2s}a.icon-link:hover .ico{color:var(--signal);transform:translateY(-1px)}.link-section-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:22px 0 4px;font-size:11px}.link-section-label:first-child{margin-top:0}.friends-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}@media (width<=700px){.friends-grid{grid-template-columns:1fr}}@media (width<=480px){.friend-card{padding:18px 16px}}.github-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.github-card{border:1px solid var(--line);background:var(--card);padding:22px 20px}.github-card h3{margin-bottom:10px;font-size:1rem}.github-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.github-metrics div{flex-direction:column;gap:4px;display:flex}.github-metrics strong{color:var(--ink);font-size:1.05rem}.github-metrics span,.github-card p{font-family:var(--mono);color:var(--ink-faint);font-size:11.5px;line-height:1.6}.tool-list{flex-wrap:wrap;gap:8px;display:flex}.tool-list li{border:1px solid var(--line);font-family:var(--mono);color:var(--ink-soft);padding:6px 10px;font-size:11.5px}.tool-list.compact li{font-size:11px}@media (width<=760px){.github-grid{grid-template-columns:1fr}}.now-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.now-card{border:1px solid var(--line);background:var(--card);padding:20px 18px}.now-card h3{margin-bottom:10px;font-size:1rem}.now-card ul li{color:var(--ink-soft);border-bottom:1px dashed var(--line);padding:6px 0}.now-card ul li:last-child{border-bottom:none}@media (width<=760px){.now-grid{grid-template-columns:1fr}}.friend-card{background:var(--card);justify-content:space-between;align-items:center;gap:14px;padding:22px 24px;display:flex}.friend-card .who{flex-direction:column;gap:3px;display:flex}.friend-card .who .name{font-family:var(--disp);font-size:15.5px;font-weight:600}.friend-card .who .what{font-family:var(--mono);color:var(--ink-faint);font-size:12px}.friend-card .ico{width:18px;height:18px;color:var(--ink-faint);transition:color .2s,transform .2s}.friend-card:hover .ico{color:var(--signal);transform:translate(2px,-2px)}.contact-meta{gap:8px;margin:18px 0 20px;display:grid}.contact-meta p{color:var(--ink-soft);margin:0}.contact-meta .status{color:var(--signal);font-family:var(--mono);font-size:12px}::selection{background:var(--signal);color:var(--paper)}[data-reveal]{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(18px)}[data-reveal].in{opacity:1;transform:translateY(0)}.chat-launcher{z-index:60;background:linear-gradient(135deg, var(--ink) 0%, var(--signal) 100%);width:58px;height:58px;color:var(--paper);border:1.4px solid var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,box-shadow .2s;display:flex;position:fixed;bottom:26px;right:26px;box-shadow:0 16px 34px -16px #16222b99}.chat-launcher:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 18px 38px -15px #215c557a}.chat-launcher svg{width:24px;height:24px}.chat-window{z-index:60;background:var(--card);border:1.4px solid var(--signal);border-radius:16px;flex-direction:column;width:380px;max-width:calc(100vw - 40px);height:500px;max-height:calc(100vh - 140px);display:flex;position:fixed;bottom:96px;right:26px;overflow:hidden;box-shadow:0 24px 54px -18px #16222b6b}.chat-header{background:linear-gradient(135deg, var(--ink) 0%, var(--signal) 100%);color:var(--paper);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.chat-header-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.chat-title{font-family:var(--disp);letter-spacing:-.02em;font-size:14.5px;font-weight:700}.chat-header .sub{font-family:var(--mono);color:var(--paper-deep);opacity:.8;font-size:11px;font-weight:400;display:block}.chat-close{color:var(--paper);cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px;line-height:1}.chat-body{background:linear-gradient(#eef1eff2,#e3e9e6e6);flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.chat-msg{white-space:pre-wrap;border-radius:12px;max-width:88%;padding:10px 13px;font-size:14px;line-height:1.55;box-shadow:0 8px 22px -16px #16222b59}.chat-msg.bot{background:var(--card);border:1px solid var(--line);color:var(--ink);border-left:3px solid var(--signal);border-bottom-left-radius:4px;align-self:flex-start}.chat-msg.user{background:linear-gradient(135deg, var(--signal) 0%, var(--signal-bright) 100%);color:var(--paper);border-bottom-right-radius:4px;align-self:flex-end}.chat-msg.typing{align-items:center;gap:5px;width:fit-content;padding:11px 13px;display:flex}.typing-dot{background:var(--ink-faint);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite chatPulse}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}.chat-suggestions{background:var(--paper);flex-wrap:wrap;gap:8px;padding:0 16px 12px;display:flex}.chat-suggest-btn{font-family:var(--mono);border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fbfcfae6;border-radius:14px;padding:6px 12px;font-size:11.5px;transition:all .15s}.chat-suggest-btn:hover{border-color:var(--signal);color:var(--signal)}.chat-input-row{border-top:1px solid var(--line);background:var(--card);display:flex}.chat-input-row input{font-family:var(--body);color:var(--ink);background:0 0;border:none;flex:1;padding:13px 14px;font-size:14.5px}.chat-input-row input::placeholder{color:var(--ink-faint)}.chat-input-row input:focus{outline:none}.chat-input-row button{background:var(--ink);color:var(--paper);font-family:var(--mono);cursor:pointer;border:none;padding:0 18px;font-size:13px;transition:background .2s}.chat-input-row button:hover{background:var(--signal)}.chat-input-row button:disabled{opacity:.4;cursor:not-allowed}@keyframes chatPulse{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (width<=768px){.hero{padding:28px 0 56px}}@media (width<=480px){.chat-window{width:auto;bottom:88px;left:14px;right:14px}.chat-launcher{width:54px;height:54px;bottom:18px;right:18px}}
