:root{--canvas:#fbfbf8;--surface:#fff;--ink:#202124;--soft-ink:#4c4f54;--muted:#777a80;--line:#e6e6e1;--blue:#7390ff;--mint:#c9f1e8;--lilac:#e5ddff;--peach:#ffc8b5;--sun:#ffe390;--mono:"DM Mono",monospace;--sans:"DM Sans",sans-serif;--hand:"Gochi Hand",cursive;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--canvas);scrollbar-color:#b6b7b2 var(--canvas);scrollbar-width:thin}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--canvas)}::-webkit-scrollbar-thumb{border:3px solid var(--canvas);border-radius:10px;background:#b8bab4}.skip-link{position:fixed;z-index:100;top:1rem;left:1rem;padding:.75rem 1rem;background:var(--ink);color:#fff;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:2px solid #405dea;outline-offset:4px}
.site-header{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:72px;padding:0 clamp(1.25rem,4vw,4.5rem);border-bottom:1px solid var(--line);background:rgba(251,251,248,.9);backdrop-filter:blur(12px)}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;letter-spacing:-.05em}.brand-mark{display:grid;place-items:center;width:26px;height:26px;border:1.5px solid var(--ink);border-radius:50%;font:500 .7rem var(--mono);letter-spacing:0}.site-nav{display:flex;gap:2.25rem;font-size:.84rem;font-weight:600}.site-nav a{color:var(--soft-ink)}.site-nav a:hover,.plain-link:hover{color:#405dea}.header-cta{justify-self:end;display:inline-flex;gap:.35rem;align-items:center;padding:.55rem .85rem;border:1px solid var(--ink);border-radius:99px;font-size:.76rem;font-weight:600;transition:background .2s,color .2s}.header-cta:hover{background:var(--ink);color:#fff}.menu-button{display:none}
.site-shell{display:grid;grid-template-columns:245px minmax(0,1fr);max-width:1450px;margin:0 auto}.profile-rail{position:sticky;top:72px;display:flex;flex-direction:column;align-self:start;min-height:calc(100vh - 72px);padding:clamp(2rem,4vw,4rem) 2rem;border-right:1px solid var(--line)}.profile-avatar{position:relative;display:grid;place-items:center;width:74px;height:74px;margin-bottom:1.1rem;overflow:hidden;border-radius:50%;background:var(--mint);font:500 1.5rem var(--mono)}.profile-avatar i{position:absolute;display:block;width:18px;height:18px;border-radius:50%;background:var(--blue)}.profile-avatar i:first-of-type{right:-3px;top:8px}.profile-avatar i:last-of-type{bottom:-6px;left:14px;background:var(--peach)}.profile-name{display:flex;flex-direction:column;gap:.35rem}.profile-name strong{font-size:1.1rem;letter-spacing:-.04em}.profile-name span,.profile-label{font-size:.75rem;line-height:1.55;color:var(--muted)}.profile-location{display:flex;gap:.45rem;align-items:center;margin-top:1.8rem;font:.61rem var(--mono);color:var(--soft-ink)}.online-dot{width:7px;height:7px;border-radius:50%;background:#49c38b}.profile-rule{height:1px;margin:1.3rem 0;background:var(--line)}.profile-label{margin:0 0 1.1rem}.profile-tags{display:flex;flex-wrap:wrap;gap:.35rem}.profile-tags span{padding:.34rem .48rem;border:1px solid var(--line);border-radius:99px;background:#fff;font:.54rem var(--mono);color:var(--soft-ink)}.profile-link{margin-top:auto;padding-top:2rem;font:.62rem var(--mono);text-decoration:underline;text-decoration-color:#b4b6b1;text-underline-offset:4px}.profile-link:hover{color:#405dea}
.portfolio-content{min-width:0;border-right:1px solid var(--line)}.hero{position:relative;min-height:600px;padding:clamp(5rem,10vw,9rem) clamp(2rem,7vw,8rem) clamp(4rem,8vw,7rem);overflow:hidden;border-bottom:1px solid var(--line);background:var(--surface)}.hero-dots{position:absolute;inset:0;opacity:.62;background-image:radial-gradient(#d8dad5 1.2px,transparent 1.3px);background-size:20px 20px;mask-image:linear-gradient(90deg,black 0%,black 50%,transparent 96%)}.hero>*:not(.hero-dots){position:relative}.eyebrow{margin:0 0 .8rem;color:#6b6e72;font:500 .61rem var(--mono);letter-spacing:.11em;text-transform:uppercase}.hero h1,.section-header h2,.about-heading h2,.contact-section h2{margin:0;font-weight:700;letter-spacing:-.075em}.hero h1{max-width:8ch;font-size:clamp(4rem,8vw,8.5rem);line-height:.82}.hero h1 span{color:#5575e9}.hero-copy{max-width:440px;margin:2rem 0;font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.6;color:var(--soft-ink)}.hero-actions{display:flex;flex-wrap:wrap;gap:1.3rem;align-items:center}.primary-link{display:inline-flex;gap:.65rem;align-items:center;padding:.85rem 1rem;border-radius:99px;background:var(--ink);color:#fff;font-size:.8rem;font-weight:600;transition:transform .2s}.primary-link:hover{transform:translateY(-2px)}.plain-link{font-size:.8rem;font-weight:600}.note{position:absolute;z-index:2;padding:1.2rem 1.1rem;box-shadow:0 12px 22px rgba(44,47,58,.11);font:1.13rem/1.15 var(--hand);transform:rotate(-3deg)}.note-top{top:clamp(2rem,7vw,6rem);right:clamp(2rem,8vw,8rem);background:var(--peach)}.note-top span{color:#5575e9}.note-side{right:8%;bottom:14%;background:var(--mint);transform:rotate(4deg)}.hero-stamp{position:absolute!important;right:31%;bottom:15%;display:flex;align-items:center;justify-content:space-between;width:155px;height:48px;padding:0 .8rem;border:1px solid #d9dbd7;border-radius:14px;background:rgba(255,255,255,.8);box-shadow:0 8px 20px rgba(49,51,58,.06);transform:rotate(-2deg)}.hero-stamp span{font:.48rem var(--mono);letter-spacing:.07em}.hero-stamp b{font-size:1.1rem;color:#5575e9}
.work-section,.about-section{padding:clamp(4rem,8vw,8rem) clamp(2rem,7vw,8rem);border-bottom:1px solid var(--line)}.section-header{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:clamp(2.8rem,5vw,5rem)}.section-header h2,.about-heading h2{font-size:clamp(2.5rem,5vw,5.7rem);line-height:.9}.section-header>p{margin:0;color:var(--muted);font-size:.83rem;line-height:1.6;text-align:right}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.1rem,2vw,2rem)}.project-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;transition:box-shadow .25s,transform .25s}.project-card:first-child{grid-column:span 2}.project-card:hover{box-shadow:0 18px 45px rgba(42,44,51,.1);transform:translateY(-4px)}.project-art{position:relative;min-height:260px;overflow:hidden}.project-art>p{position:absolute;z-index:2;bottom:1rem;left:1.15rem;margin:0;font:.53rem var(--mono);letter-spacing:.1em;color:var(--soft-ink)}.codesense-art{min-height:345px;background:linear-gradient(135deg,#d8f8f2,#9fdedb)}.code-window{position:absolute;top:13%;left:15%;width:56%;padding:1.15rem;border:1px solid rgba(31,52,57,.14);border-radius:13px;background:rgba(255,255,255,.8);box-shadow:0 18px 30px rgba(43,91,93,.16);transform:rotate(-5deg)}.code-window>span{display:inline-block;width:7px;height:7px;margin-right:4px;border-radius:50%;background:#f28c7d}.code-window>span:nth-child(2){background:#ffcf71}.code-window>span:nth-child(3){background:#69cb9d}.code-window b{display:block;margin:1.4rem 0 .8rem;font:500 clamp(.8rem,1.3vw,1.1rem)/1.5 var(--mono);color:#263937}.code-window em{color:#298c82;font-style:normal}.code-window i{display:block;width:max-content;padding:.35rem .5rem;border-radius:4px;background:#d6f4e5;color:#26845e;font: .48rem var(--mono);font-style:normal}.cursor-dot{position:absolute;right:17%;bottom:25%;width:50px;height:50px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 9px rgba(255,255,255,.35)}.cursor-dot:after{content:"";position:absolute;top:15px;left:18px;width:10px;height:10px;border-radius:50%;background:#fff}.phishing-art{background:linear-gradient(135deg,#fff0b5,#ffdc77)}.mail-card{position:absolute;top:18%;left:18%;width:55%;height:52%;padding:1.4rem;border:1.5px solid #594919;border-radius:10px;background:#fffdf5;box-shadow:13px 13px 0 rgba(89,73,25,.13);transform:rotate(5deg)}.mail-line{height:7px;margin-bottom:11px;border-radius:99px;background:#ded5b2}.line-one{width:65%}.line-two{width:91%}.line-three{width:50%}.shield{position:absolute;right:-14%;bottom:-19%;display:grid;place-items:center;width:80px;height:80px;border:2px solid #31465a;border-radius:45% 45% 50% 50%;background:var(--mint);font-size:2.2rem;color:#31465a;transform:rotate(-11deg)}.alert-tag{position:absolute;top:22%;right:13%;padding:.7rem .8rem;border-radius:8px;background:var(--peach);box-shadow:0 8px 14px rgba(64,46,20,.1);font:.62rem var(--mono);letter-spacing:.04em;transform:rotate(-5deg)}.janpat-art{background:linear-gradient(135deg,#ebe7ff,#d8cffc)}.map-card{position:absolute;top:12%;left:18%;width:59%;height:67%;border:1px solid rgba(63,53,109,.2);border-radius:14px;background-color:#fdfcff;background-image:linear-gradient(rgba(107,87,173,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(107,87,173,.1) 1px,transparent 1px);background-size:24px 24px;box-shadow:0 15px 24px rgba(67,57,115,.14);transform:rotate(-4deg)}.map-route{position:absolute;height:3px;border-radius:99px;background:#ff967d;transform-origin:left}.route-one{width:69%;left:13%;top:35%;transform:rotate(34deg)}.route-two{width:58%;left:39%;top:61%;background:#7390ff;transform:rotate(-49deg)}.map-pin{position:absolute;width:18px;height:18px;border:3px solid #fff;border-radius:50% 50% 50% 0;background:#5575e9;box-shadow:0 2px 5px rgba(53,48,103,.22);transform:rotate(-45deg)}.map-pin:after{content:"";position:absolute;top:4px;left:4px;width:4px;height:4px;border-radius:50%;background:#fff}.pin-one{left:26%;top:23%}.pin-two{left:59%;top:52%;background:#f6876d}.pin-three{right:13%;bottom:17%;background:#6fcba8}.map-card b{position:absolute;right:-32%;bottom:8%;color:#504587;font:1.4rem/1 var(--hand);transform:rotate(8deg)}.tiny-note{position:absolute;right:8%;top:14%;padding:.6rem .75rem;background:var(--mint);font:1rem var(--hand);transform:rotate(5deg)}.project-body{padding:1.25rem 1.3rem 1.45rem}.project-row{display:flex;justify-content:space-between;padding-bottom:.85rem;border-bottom:1px solid var(--line);font:.55rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.project-body h3{margin:1.15rem 0 .55rem;font-size:clamp(1.75rem,3vw,2.7rem);letter-spacing:-.075em;line-height:.9}.project-body h3 em{font-style:normal;color:#5575e9}.project-body>p{max-width:405px;margin:0 0 1.15rem;color:var(--soft-ink);font-size:.84rem;line-height:1.6}.project-body details{border-top:1px solid var(--line);padding-top:.9rem}.project-body summary{display:flex;justify-content:space-between;cursor:pointer;font-size:.75rem;font-weight:600;list-style:none}.project-body summary::-webkit-details-marker{display:none}.project-body summary span{color:#5575e9;font-size:1rem}.project-body details[open] summary span{transform:rotate(45deg)}.project-body details p{margin:.7rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.55}
.about-section{background:#fff}.about-heading{max-width:600px;margin-bottom:3rem}.about-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1rem}.about-intro{grid-row:span 2;padding:1.5rem;border:1px solid var(--line);border-radius:16px;background:var(--canvas)}.about-intro p{margin:0;color:var(--soft-ink);font-size:1.02rem;line-height:1.75}.hand-note{display:block;margin-top:2.7rem;font:1.55rem/1.05 var(--hand);color:#5575e9;transform:rotate(-3deg)}.fact-card{position:relative;display:flex;flex-direction:column;min-height:175px;padding:1.25rem;border-radius:16px;overflow:hidden;transition:transform .2s}.fact-card:hover{transform:translateY(-3px)}.fact-card span{font:.55rem var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--soft-ink)}.fact-card strong{margin-top:auto;font-size:clamp(1rem,1.7vw,1.3rem);letter-spacing:-.045em;line-height:1.05}.fact-card i{position:absolute;right:1.1rem;bottom:1rem;font-style:normal;font-size:1.4rem}.mint-card{background:var(--mint)}.lilac-card{background:var(--lilac)}.site-card{background:var(--peach)}.site-card:hover{box-shadow:0 12px 24px rgba(64,45,31,.12)}
.contact-section{padding:clamp(5rem,10vw,9rem) clamp(2rem,7vw,8rem);background:var(--sun);border-bottom:1px solid var(--line)}.contact-section h2{font-size:clamp(3.1rem,7vw,7.6rem);line-height:.82}.contact-section>p:not(.eyebrow){margin:1.2rem 0 2rem;color:#5b5433;font-size:1rem}.contact-button{display:inline-flex;gap:.65rem;align-items:center;padding:.95rem 1.15rem;border-radius:99px;background:var(--ink);color:#fff;font-size:.82rem;font-weight:600;transition:transform .2s}.contact-button:hover{transform:translateY(-2px)}footer{display:flex;justify-content:space-between;gap:1rem;padding:1.5rem clamp(2rem,7vw,8rem);font:.57rem var(--mono);letter-spacing:.04em;color:var(--muted);text-transform:uppercase}footer a:hover{color:#405dea}
@media(max-width:900px){.site-shell{display:block}.profile-rail{position:relative;top:auto;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;min-height:0;padding:1.15rem 1.4rem;border-right:0;border-bottom:1px solid var(--line);column-gap:.85rem}.profile-avatar{grid-row:span 2;width:50px;height:50px;margin:0;font-size:1rem}.profile-name{justify-content:center}.profile-name span{font-size:.66rem}.profile-location{grid-column:2;margin:0;font-size:.53rem}.profile-rule,.profile-label,.profile-tags{display:none}.profile-link{align-self:center;margin:0;padding:0;font-size:.57rem}.portfolio-content{border-right:0}.hero{min-height:570px}.note-top{right:6%;top:7%}.note-side{display:none}.hero-stamp{right:9%;bottom:14%}.section-header{align-items:start;flex-direction:column}.section-header>p{text-align:left}.about-grid{grid-template-columns:1fr 1fr}.about-intro{grid-column:span 2;grid-row:auto}}
@media(max-width:620px){.site-header{grid-template-columns:1fr auto;height:64px;padding:0 1.2rem}.site-nav{position:absolute;top:64px;left:0;right:0;display:flex;flex-direction:column;gap:0;max-height:0;overflow:hidden;border-bottom:0;background:rgba(251,251,248,.98);transition:max-height .25s ease}.site-nav a{padding:1rem 1.2rem;border-bottom:1px solid var(--line)}.site-nav.is-open{max-height:190px;border-bottom:1px solid var(--line)}.header-cta{display:none}.menu-button{display:flex;gap:.55rem;align-items:center;justify-self:end;padding:0;border:0;background:none;color:var(--ink);font:.59rem var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.menu-button i,.menu-button i:after{display:block;width:16px;height:1px;background:currentColor;content:"";transition:transform .2s}.menu-button i:after{transform:translateY(5px)}.menu-button[aria-expanded="true"] i{transform:translateY(3px) rotate(45deg)}.menu-button[aria-expanded="true"] i:after{transform:rotate(-90deg)}.profile-rail{padding:1rem 1.2rem}.profile-link{font-size:.52rem}.hero{min-height:575px;padding:5rem 1.4rem 3rem}.hero h1{font-size:4.25rem}.hero-copy{max-width:290px;margin:1.5rem 0;font-size:.95rem}.note{font-size:.93rem}.note-top{top:1.6rem;right:1.2rem;padding:.8rem}.hero-stamp{right:1.2rem;bottom:3.3rem;width:125px;height:39px}.hero-stamp span{font-size:.38rem}.work-section,.about-section{padding:4rem 1.2rem}.section-header{margin-bottom:2.5rem}.section-header h2,.about-heading h2{font-size:3rem}.project-grid{grid-template-columns:1fr}.project-card:first-child{grid-column:auto}.project-art,.codesense-art{min-height:235px}.project-card:hover{transform:none}.code-window{left:12%;width:64%}.about-grid{grid-template-columns:1fr}.about-intro{grid-column:auto}.fact-card{min-height:145px}.contact-section{padding:5rem 1.2rem}.contact-section h2{font-size:3.75rem}footer{flex-direction:column;padding:1.4rem 1.2rem;line-height:1.5}.profile-name strong{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-nav,.project-card,.fact-card,.primary-link,.contact-button,.header-cta{transition:none}}
@media(forced-colors:active){:focus-visible{outline:2px solid Highlight}.project-card,.fact-card,.note{border:1px solid CanvasText}}
.hero>.note{position:absolute}
.note{--note-rotate:-3deg;--drag-x:0px;--drag-y:0px;transform:translate(var(--drag-x),var(--drag-y)) rotate(var(--note-rotate));transition:box-shadow .2s,transform .18s ease}.note-side{--note-rotate:4deg}.note[data-drag-note]{cursor:grab;touch-action:none;user-select:none}.note[data-drag-note]:active{cursor:grabbing;box-shadow:0 20px 32px rgba(44,47,58,.18)}
.note.is-dragging{z-index:3;transition:none}
.story-links{display:flex;gap:.8rem;align-items:flex-start;margin-top:2rem}.story-links>a{display:flex;flex-direction:column;align-items:center;gap:.42rem;color:var(--soft-ink);font-size:.57rem;font-weight:600;transition:transform .2s,color .2s}.story-links>a:hover{color:var(--ink);transform:translateY(-4px)}.story-ring{display:grid;place-items:center;width:36px;height:36px;border:2px solid var(--surface);border-radius:50%;box-shadow:0 0 0 2px var(--ink);background:#fff;color:var(--ink);font:700 .62rem var(--mono)}.linkedin-ring{background:#d9e8ff}.github-ring{background:#e9e9e9}.x-ring{background:#202124;color:#fff}.insta-ring{background:linear-gradient(135deg,#f8d470,#fa7d79 50%,#9c6fe3);color:#fff;font-size:1.15rem}.story-links>a:hover .story-ring{animation:story-pop .45s cubic-bezier(.2,.8,.3,1)}
.reaction-button{display:inline-flex;align-items:center;gap:.42rem;margin-top:1rem;padding:0;border:0;background:transparent;color:var(--soft-ink);cursor:pointer;font-size:.68rem;font-weight:600}.reaction-button span{font-size:1.25rem;line-height:1;color:#5575e9}.reaction-button:hover{color:#5575e9}.reaction-button[aria-pressed="true"]{color:#d95d7b}.reaction-button[aria-pressed="true"] span{animation:heart-pop .38s ease;color:#d95d7b}.more-builds{display:flex;gap:.9rem;align-items:baseline;margin-top:1.35rem;padding:1rem 1.15rem;border:1px dashed #cfcfca;border-radius:12px;background:#fff}.more-builds span{color:var(--muted);font:.53rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.more-builds p{margin:0;color:var(--soft-ink);font-size:.75rem;font-weight:600}
.stack-card{grid-column:span 2;padding:1.2rem;border:1px solid var(--line);border-radius:16px;background:#fff}.stack-card span{color:var(--muted);font:.54rem var(--mono);letter-spacing:.09em;text-transform:uppercase}.stack-card p{margin:.7rem 0 0;font-size:.88rem;line-height:1.6;color:var(--soft-ink)}
.social-section{padding:clamp(4rem,8vw,8rem) clamp(2rem,7vw,8rem);border-bottom:1px solid var(--line);background:var(--canvas)}.social-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:end;margin-bottom:3rem}.social-heading h2{max-width:750px;margin:0;font-size:clamp(2.6rem,5.8vw,6.2rem);line-height:.88;letter-spacing:-.08em}.social-heading>p:last-child{max-width:280px;margin:0;color:var(--muted);font-size:.85rem;line-height:1.65}.social-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.social-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:190px;padding:1.2rem;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;transition:transform .25s,box-shadow .25s}.social-card:after{position:absolute;right:-28px;bottom:-50px;color:rgba(32,33,36,.04);font:7rem var(--mono);content:"↗"}.social-card:hover{box-shadow:0 16px 28px rgba(35,36,39,.1);transform:translateY(-5px)}.social-card small,.instagram-copy small{font:.55rem var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.social-card strong{display:block;margin-top:.5rem;font-size:clamp(1rem,1.8vw,1.35rem);letter-spacing:-.05em}.social-card>b{position:absolute;right:1.1rem;top:1rem;font-size:1.1rem}.social-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font:700 .8rem var(--mono)}.linkedin-card .social-icon{background:#d9e8ff;color:#225ca8}.github-card .social-icon{background:#e8e8e8}.x-card .social-icon{background:#202124;color:#fff}.instagram-card{position:relative;grid-column:span 3;display:grid;grid-template-columns:.8fr 1.2fr;min-height:330px;overflow:hidden;border-radius:18px;background:linear-gradient(122deg,#7b68df,#c569c7 46%,#f79c62);color:#fff;transition:transform .25s,box-shadow .25s}.instagram-card:before{position:absolute;inset:0;background:radial-gradient(circle at 4% 85%,rgba(255,215,111,.64),transparent 34%),radial-gradient(circle at 76% 25%,rgba(255,255,255,.24),transparent 23%);content:""}.instagram-card:hover{box-shadow:0 22px 38px rgba(128,84,149,.25);transform:translateY(-5px)}.instagram-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:clamp(1.5rem,4vw,3.5rem)}.instagram-copy .instagram-logo{display:grid;place-items:center;width:48px;height:48px;margin-bottom:1.4rem;border:2px solid currentColor;border-radius:15px;font-size:2rem}.instagram-copy small{color:rgba(255,255,255,.8)}.instagram-copy strong{margin-top:.5rem;font-size:clamp(1.8rem,3.3vw,3.7rem);letter-spacing:-.08em}.instagram-copy p{max-width:250px;margin:1.2rem 0 0;color:rgba(255,255,255,.88);font-size:.83rem;line-height:1.55}.instagram-copy i{position:absolute;right:1.5rem;top:1.3rem;font-size:1.4rem;font-style:normal}.instagram-card img{position:relative;z-index:1;width:100%;height:100%;min-height:330px;object-fit:cover;object-position:center 48%;mix-blend-mode:screen;filter:contrast(1.06) saturate(1.06)}
html.js [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}html.js [data-reveal].is-visible{opacity:1;transform:translateY(0)}@media(hover:hover) and (prefers-reduced-motion:no-preference){.project-card[data-reveal].is-visible{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(var(--lift,0px));will-change:transform}.project-card[data-reveal].is-visible:hover{--lift:-5px}}@keyframes heart-pop{50%{transform:scale(1.5) rotate(-10deg)}}@keyframes story-pop{50%{transform:scale(1.16) rotate(-12deg)}}
@media(max-width:900px){.social-heading{display:block}.social-heading>p:last-child{margin-top:1.1rem}.stack-card{grid-column:span 2}}@media(max-width:620px){.site-nav.is-open{max-height:240px}.story-links{gap:.65rem}.story-ring{width:32px;height:32px}.more-builds{align-items:flex-start;flex-direction:column;gap:.45rem}.stack-card{grid-column:auto}.social-section{padding:4rem 1.2rem}.social-heading h2{font-size:3.2rem}.social-grid{grid-template-columns:1fr}.social-card{min-height:140px}.instagram-card{grid-column:auto;grid-template-columns:1fr;min-height:560px}.instagram-copy{min-height:245px}.instagram-card img{min-height:315px;object-position:center 43%}}@media(prefers-reduced-motion:reduce){.note,.story-links>a,.project-card,.social-card,.instagram-card{transition:none!important;animation:none!important}html.js [data-reveal]{opacity:1;transform:none;transition:none}}

/* A playful, hand-built layer inspired by the supplied references. */
.toolkit-section{position:relative;display:grid;grid-template-columns:minmax(280px,.75fr) minmax(440px,1.25fr);gap:clamp(2rem,7vw,8rem);min-height:650px;padding:clamp(4rem,9vw,9rem) clamp(2rem,7vw,8rem);overflow:hidden;border-bottom:1px solid var(--line);background-color:#fff;background-image:radial-gradient(#e4e7f1 1.3px,transparent 1.3px);background-size:16px 16px}.toolkit-notes{position:relative;min-height:470px}.mini-note{position:absolute;display:grid;place-items:center;min-width:148px;min-height:138px;padding:1rem;box-shadow:0 10px 14px rgba(33,38,55,.12);font:1.05rem/1.45 var(--hand);text-align:center}.mint-note{top:12%;left:2%;background:#baffc7;transform:rotate(-1deg)}.coral-note{top:23%;right:1%;background:#ffa4a7;transform:rotate(1.5deg)}.butter-note{bottom:15%;left:5%;background:#ffe39b;transform:rotate(-.5deg)}.sky-note{right:5%;bottom:2%;min-width:140px;min-height:130px;background:#8edaf0;transform:rotate(.7deg);font-size:2.3rem}.sky-note small{font:.64rem var(--mono);letter-spacing:.12em}.toolkit-main{position:relative;z-index:1}.toolkit-main h2{margin:.35rem 0 0;color:#e33026;font:clamp(3.6rem,6vw,6.4rem)/.85 var(--hand);letter-spacing:-.05em}.toolkit-copy{max-width:390px;margin:1.3rem 0 1.8rem;color:var(--soft-ink);font-size:.9rem;line-height:1.65}.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:.85rem}.tool-card{display:flex;min-height:112px;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;border:1.5px solid #333;border-radius:18px;background:rgba(255,255,255,.88);box-shadow:0 3px 0 rgba(33,33,33,.05);transition:transform .22s cubic-bezier(.2,.9,.25,1),box-shadow .22s,background .22s}.tool-card span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;font-weight:700;font-size:1.15rem}.tool-card b{font:1.05rem var(--hand);letter-spacing:.02em}.tool-card:hover{z-index:1;box-shadow:0 10px 0 rgba(33,33,33,.11);transform:translateY(-8px) rotate(-1deg)}.python span{background:#fee08e;color:#2e65a7}.fastapi span{background:#9ff6dc}.next span,.vercel span{background:#202124;color:#fff}.react span{background:#c5effb;color:#2785a3}.gemini span{background:#ece0ff;color:#7c5ae0}.langchain span{background:#f6cfae}.postgres span{background:#cbdfff;color:#3769a7}.supabase span{background:#a8f3cc;color:#159c67}.node span{background:#d5efac;color:#4a8a3c}.typescript span{background:#bad8ff;color:#2369b9}.git span{background:#f4d2cb;color:#bd4e39}
.location-section{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding:clamp(4rem,9vw,8rem) clamp(2rem,7vw,8rem);border-bottom:1px solid var(--line);background:var(--canvas)}.map-illustration{position:relative;min-height:360px;overflow:hidden;border:1px solid #d6d6d2;border-radius:22px;background-color:#ecece8;background-image:linear-gradient(25deg,transparent 45%,rgba(255,255,255,.9) 46% 53%,transparent 54%),linear-gradient(-30deg,transparent 45%,rgba(255,255,255,.86) 46% 53%,transparent 54%),linear-gradient(90deg,transparent 46%,rgba(255,255,255,.87) 47% 54%,transparent 55%),repeating-linear-gradient(0deg,rgba(133,133,128,.1) 0 1px,transparent 1px 32px),repeating-linear-gradient(90deg,rgba(133,133,128,.1) 0 1px,transparent 1px 32px)}.map-illustration:before{position:absolute;inset:-20% 10% 0;background:linear-gradient(93deg,transparent 46%,#b7dce7 47% 58%,transparent 59%);content:"";transform:rotate(-12deg)}.road{position:absolute;z-index:1;height:17px;border-radius:99px;background:#fff;box-shadow:0 0 0 2px rgba(151,151,147,.15)}.road-one{top:23%;left:-15%;width:118%;transform:rotate(16deg)}.road-two{top:64%;left:-15%;width:128%;transform:rotate(-9deg)}.road-three{top:50%;left:18%;width:70%;transform:rotate(84deg)}.road-four{top:39%;left:6%;width:80%;transform:rotate(-44deg)}.map-destination,.map-here{position:absolute;z-index:2;border-radius:50%}.map-destination{right:26%;top:34%;width:22px;height:22px;background:#ff7058;box-shadow:0 4px 0 rgba(141,55,45,.2)}.map-destination:after{position:absolute;left:7px;top:19px;width:8px;height:15px;background:#ff7058;clip-path:polygon(0 0,100% 0,50% 100%);content:""}.map-here{left:48%;top:53%;width:14px;height:14px;border:3px solid #fff;background:#24262d;box-shadow:0 0 0 2px #24262d}.map-arrow{position:absolute;z-index:3;right:8%;bottom:15%;font:1.7rem var(--hand);transform:rotate(-7deg)}.map-arrow:before{position:absolute;right:82%;bottom:53%;width:90px;height:55px;border-top:3px solid #333;border-right:3px solid #333;border-radius:0 65px 0 0;content:"";transform:rotate(-16deg)}.location-copy h2{max-width:470px;margin:.35rem 0 1rem;font-size:clamp(2.8rem,5vw,5.1rem);line-height:.88;letter-spacing:-.08em}.location-copy>p:not(.eyebrow){max-width:405px;margin:0;color:var(--soft-ink);font-size:.9rem;line-height:1.7}.location-link{display:inline-flex;margin-top:1.6rem;color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:.3rem}.location-link span{margin-left:.4rem}
.social-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.instagram-card{display:flex;grid-column:auto;min-height:190px;background:linear-gradient(135deg,#f8d470,#fa7d79 52%,#8e6ce0);color:#fff}.instagram-card:before,.instagram-card:after{display:none}.instagram-card .social-icon{border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.2);color:#fff;font-size:1.5rem}.instagram-card small{color:rgba(255,255,255,.78)}.instagram-card:hover{box-shadow:0 16px 28px rgba(140,75,131,.25);transform:translateY(-5px)}
.quick-dock{position:fixed;z-index:12;left:50%;bottom:22px;display:flex;gap:.7rem;align-items:center;padding:.55rem .7rem;border:1px solid rgba(222,224,238,.9);border-radius:22px;background:rgba(255,255,255,.88);box-shadow:0 15px 36px rgba(48,51,70,.18),0 2px 6px rgba(48,51,70,.08);backdrop-filter:blur(15px);transform:translateX(-50%)}.quick-dock:after{width:1px;height:37px;margin-left:.1rem;background:#d9dce6;content:"";order:5}.quick-dock a,.quick-dock button{display:grid;place-items:center;width:49px;height:49px;padding:0;border:1px solid #ececf2;border-radius:16px;background:#fff;color:#22242a;box-shadow:0 2px 6px rgba(32,35,53,.08);font:1.7rem/1 var(--sans);transition:transform .18s,background .18s,box-shadow .18s}.quick-dock a:hover,.quick-dock button:hover{box-shadow:0 6px 14px rgba(32,35,53,.14);transform:translateY(-4px)}.quick-dock button{cursor:pointer;order:6;background:#fee0ad;font-size:1.35rem}.quick-dock button[aria-pressed="true"]{background:#baffc7;transform:rotate(-8deg) scale(1.08)}.joy-mode{--blue:#ed53b5}.joy-mode .hero h1 span{color:#ed53b5}.joy-mode .hero-dots{opacity:.9}.joy-mode .toolkit-section{background-color:#fffdf1}.joy-mode .quick-dock{box-shadow:0 15px 36px rgba(235,83,181,.28),0 2px 6px rgba(48,51,70,.08)}
@media(max-width:1000px){.toolkit-section{grid-template-columns:1fr;gap:1.5rem}.toolkit-notes{min-height:260px;max-width:470px}.mini-note{min-width:125px;min-height:112px;font-size:.92rem}.location-section{grid-template-columns:1fr}.social-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.toolkit-section{padding:4rem 1.2rem}.toolkit-notes{min-height:235px}.mint-note{top:0}.coral-note{top:13%;right:0}.butter-note{bottom:0}.sky-note{right:1%;bottom:-3%;min-width:110px;min-height:100px}.toolkit-main h2{font-size:4rem}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.tool-card{min-height:105px}.location-section{padding:4rem 1.2rem}.map-illustration{min-height:270px}.map-arrow{right:6%;font-size:1.4rem}.social-grid{grid-template-columns:1fr}.instagram-card{min-height:140px}.quick-dock{bottom:12px;gap:.36rem;padding:.42rem;border-radius:18px}.quick-dock a,.quick-dock button{width:39px;height:39px;border-radius:13px;font-size:1.35rem}.quick-dock button{font-size:1.1rem}.quick-dock:after{height:28px;margin-left:0}.contact-section{padding-bottom:7rem}}@media(prefers-reduced-motion:reduce){.tool-card,.quick-dock a,.quick-dock button{transition:none!important}}

/* Personal portrait + restrained motion system. */
:root{--brand:#5b6ff2;--brand-deep:#354fcb;--accent-coral:#ff8f7a;--accent-plum:#8f72e8;--accent-mint:#b9f3df;--accent-sun:#ffe08a;--focus:#354fcb}.profile-avatar{border:2px solid #fff;box-shadow:0 0 0 1px rgba(32,33,36,.12),0 7px 16px rgba(32,33,36,.1);background:#e8e6e2}.profile-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 16%}.profile-avatar i{z-index:1;border:2px solid #fff}.hero{isolation:isolate}.hero-dots{animation:dot-drift 22s linear infinite}.hero-portrait{position:absolute!important;z-index:1;right:clamp(2.6rem,6vw,6.5rem);bottom:clamp(2.6rem,7vw,5.3rem);width:clamp(225px,22vw,330px);margin:0;overflow:visible;border-radius:28px;box-shadow:0 28px 50px rgba(39,42,66,.2);transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0) rotate(2.5deg);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}.hero-portrait:hover{box-shadow:0 34px 62px rgba(39,42,66,.27);transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0) rotate(0deg) scale(1.02)}.hero-portrait img{position:relative;z-index:1;display:block;width:100%;aspect-ratio:4/5.15;object-fit:cover;object-position:center 15%;border:7px solid #fff;border-radius:28px;background:#f4f4f0;filter:saturate(1.06) contrast(1.03);animation:portrait-float 7s ease-in-out infinite}.portrait-halo{position:absolute;z-index:0;top:-18px;right:-19px;width:72%;aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,var(--accent-coral),var(--accent-plum));filter:blur(.2px);opacity:.9}.hero-portrait figcaption{position:absolute;z-index:2;right:12px;bottom:13px;display:flex;align-items:center;gap:.38rem;max-width:calc(100% - 24px);padding:.45rem .6rem;border:1px solid rgba(255,255,255,.72);border-radius:99px;background:rgba(25,27,32,.74);box-shadow:0 4px 12px rgba(0,0,0,.17);color:#fff;font:.47rem var(--mono);letter-spacing:.04em;white-space:nowrap;backdrop-filter:blur(8px)}.portrait-status{width:6px;height:6px;flex:none;border-radius:50%;background:#6bf0b3;box-shadow:0 0 0 3px rgba(107,240,179,.15)}.hero h1,.hero-copy,.hero-actions,.story-links{animation:hero-rise .72s cubic-bezier(.16,1,.3,1) both}.hero h1{animation-delay:.08s}.hero-copy{animation-delay:.18s}.hero-actions{animation-delay:.28s}.story-links{animation-delay:.38s}.note-top{right:clamp(1.6rem,3.5vw,4rem);top:clamp(1.7rem,4.5vw,4.2rem);background:var(--accent-coral)}.note-side{right:clamp(2.5rem,6vw,6rem);bottom:12%;background:var(--accent-mint)}.hero-stamp{right:clamp(19rem,31vw,27rem);border-color:rgba(91,111,242,.2);color:var(--brand-deep)}.project-body h3 em,.hero h1 span,.hand-note{color:var(--brand)}.map-destination{animation:map-pulse 2.7s ease-out infinite}.map-here{animation:map-pulse 2.7s .65s ease-out infinite}.tool-card{border-color:rgba(32,33,36,.72)}html.js .toolkit-main .tool-card{opacity:0;transform:translateY(18px) rotate(1.5deg)}html.js .toolkit-main.is-visible .tool-card{animation:tool-pop .55s cubic-bezier(.16,1,.3,1) forwards}.tool-card:nth-child(2){animation-delay:.05s!important}.tool-card:nth-child(3){animation-delay:.1s!important}.tool-card:nth-child(4){animation-delay:.15s!important}.tool-card:nth-child(5){animation-delay:.2s!important}.tool-card:nth-child(6){animation-delay:.25s!important}.tool-card:nth-child(7){animation-delay:.3s!important}.tool-card:nth-child(8){animation-delay:.35s!important}.tool-card:nth-child(9){animation-delay:.4s!important}.tool-card:nth-child(10){animation-delay:.45s!important}.tool-card:nth-child(11){animation-delay:.5s!important}.tool-card:nth-child(12){animation-delay:.55s!important}.quick-dock a:active,.quick-dock button:active,.reaction-button:active,.primary-link:active{transform:translateY(1px) scale(.96)}@keyframes hero-rise{from{opacity:0;transform:translateY(18px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes portrait-float{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-8px) rotate(-.5deg)}}@keyframes dot-drift{to{background-position:80px 80px}}@keyframes tool-pop{to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes map-pulse{0%{box-shadow:0 0 0 0 rgba(85,117,233,.28)}70%{box-shadow:0 0 0 16px rgba(85,117,233,0)}100%{box-shadow:0 0 0 0 rgba(85,117,233,0)}}
@media(max-width:900px){.hero-portrait{right:4.5%;bottom:4rem;width:230px}.hero-stamp{right:37%;bottom:12%}}@media(max-width:620px){.profile-avatar img{object-position:center 14%}.hero{min-height:650px}.hero-portrait{right:1.1rem;bottom:1.45rem;width:132px;border-radius:18px}.hero-portrait img{border-width:4px;border-radius:18px}.portrait-halo{top:-10px;right:-10px}.hero-portrait figcaption{right:6px;bottom:7px;padding:.28rem .35rem;font-size:.31rem}.portrait-status{width:4px;height:4px}.hero-stamp{display:none}.hero .story-links{max-width:205px}.note-top{right:1.1rem;top:1.6rem}.tool-card:hover{transform:translateY(-3px) rotate(0)}}@media(prefers-reduced-motion:reduce){.hero-dots,.hero-portrait img,.map-destination,.map-here{animation:none!important}.hero h1,.hero-copy,.hero-actions,.story-links,html.js .toolkit-main.is-visible .tool-card{animation:none!important;filter:none!important}.hero-portrait{transition:none!important}html.js .toolkit-main .tool-card{opacity:1;transform:none}}

html.js .toolkit-main.is-visible .tool-card{opacity:1;transform:translateY(0);animation:tool-pop .55s cubic-bezier(.16,1,.3,1) backwards}

/* Build-lab identity: deeper technical surface with bright, high-contrast signals. */
:root{--brand:#405dea}
.profile-actions{display:flex;flex-direction:column;gap:.8rem;margin-top:auto}.profile-download{display:inline-flex;align-items:center;justify-content:space-between;padding:.64rem .72rem;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--brand-deep));box-shadow:0 8px 17px rgba(53,79,203,.2);color:#fff;font:.58rem var(--mono);letter-spacing:.02em;transition:transform .2s,box-shadow .2s}.profile-download:hover{box-shadow:0 12px 24px rgba(53,79,203,.28);transform:translateY(-3px)}.profile-actions .profile-link{margin-top:0;padding-top:0}.resume-link{display:inline-flex;align-items:center;gap:.45rem;padding:.78rem .88rem;border:1px solid rgba(91,111,242,.36);border-radius:99px;background:rgba(255,255,255,.72);color:var(--brand-deep);font-size:.76rem;font-weight:700;transition:transform .2s,background .2s,box-shadow .2s}.resume-link:hover{box-shadow:0 8px 18px rgba(53,79,203,.14);transform:translateY(-2px);background:#fff}
.build-index{position:relative;isolation:isolate;overflow:hidden;padding:clamp(4.5rem,9vw,9rem) clamp(2rem,7vw,8rem);border-bottom:1px solid #344656;background:#18232d;color:#eff6ff}.build-index:before{position:absolute;z-index:-2;inset:0;opacity:.48;background-image:linear-gradient(rgba(135,176,212,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(135,176,212,.09) 1px,transparent 1px);background-size:42px 42px;content:"";animation:lab-grid-drift 24s linear infinite}.build-index:after{position:absolute;z-index:-1;right:-12%;top:-25%;width:52%;aspect-ratio:1;border:1px solid rgba(108,178,255,.3);border-radius:50%;box-shadow:0 0 0 40px rgba(108,178,255,.035),0 0 0 80px rgba(108,178,255,.025);content:"";animation:orbit-pulse 9s ease-in-out infinite}.build-index-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.5rem}.build-index .eyebrow{color:#9fb7ca}.build-index h2{max-width:670px;margin:0;color:#f4f8ff;font-size:clamp(2.8rem,5.5vw,6rem);line-height:.88;letter-spacing:-.075em}.build-index-heading>p{max-width:295px;margin:0;color:#b9c7d5;font-size:.88rem;line-height:1.65}.build-controls{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1rem}.build-controls button{position:relative;overflow:hidden;padding:.65rem .84rem;border:1px solid #4a6073;border-radius:99px;background:rgba(30,44,56,.7);color:#c9d8e7;cursor:pointer;font:.61rem var(--mono);letter-spacing:.03em;transition:color .2s,border-color .2s,background .2s,transform .2s}.build-controls button:after{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(100deg,rgba(114,179,255,.22),rgba(105,235,183,.18));content:"";opacity:0;transform:translateX(-100%);transition:opacity .2s,transform .3s}.build-controls button:hover,.build-controls button[aria-pressed="true"]{border-color:#75b7fb;color:#fff}.build-controls button:hover:after,.build-controls button[aria-pressed="true"]:after{opacity:1;transform:translateX(0)}.build-controls button>*{position:relative;z-index:1}.build-count{margin:0 0 1.1rem;color:#9fb7ca;font:.57rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.build-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #526577;border-left:1px solid #526577}.build-card{position:relative;display:flex;min-height:285px;flex-direction:column;padding:1.25rem 1.25rem 1.35rem;border-right:1px solid #526577;border-bottom:1px solid #526577;background:rgba(28,40,51,.76);transition:background .28s,transform .28s,box-shadow .28s}.build-card:before{position:absolute;right:1.2rem;top:1.2rem;width:9px;height:9px;border-radius:50%;background:#77b9ff;box-shadow:0 0 0 4px rgba(119,185,255,.12);content:"";transition:transform .28s,box-shadow .28s}.build-card:hover{z-index:1;box-shadow:0 18px 34px rgba(5,10,16,.3);transform:translateY(-7px);background:#223341}.build-card:hover:before{box-shadow:0 0 0 8px rgba(119,185,255,.12);transform:scale(1.18)}.build-card--coral:before{background:#ff9e88;box-shadow:0 0 0 4px rgba(255,158,136,.13)}.build-card--violet:before{background:#b5a0ff;box-shadow:0 0 0 4px rgba(181,160,255,.13)}.build-card--mint:before{background:#70e3b4;box-shadow:0 0 0 4px rgba(112,227,180,.13)}.build-card--sun:before{background:#ffe17e;box-shadow:0 0 0 4px rgba(255,225,126,.13)}.build-card-top{display:flex;align-items:center;gap:.55rem;padding-right:1.3rem}.build-card-top span{color:#c7d5e3;font-size:.84rem;font-weight:700}.build-card-top b{padding:.18rem .42rem;border:1px solid #65809a;border-radius:99px;color:#a9c8e5;font:.48rem var(--mono);letter-spacing:.06em;text-transform:uppercase}.build-card h3{max-width:90%;margin:1rem 0 .55rem;color:#86c0ff;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:.92;letter-spacing:-.065em}.build-card p{max-width:520px;margin:0;color:#d3dce6;font-size:.86rem;line-height:1.62}.build-tags{display:flex;flex-wrap:wrap;gap:.38rem;margin:1.25rem 0 1rem;padding:0;list-style:none}.build-tags li{padding:.28rem .45rem;border-radius:6px;background:#2b3c4b;color:#d0dfed;font:.5rem var(--mono)}.build-action,.build-private{display:inline-flex;width:max-content;align-items:center;gap:.38rem;margin-top:auto;padding:.55rem .7rem;background:#3b73f1;color:#fff;font:.58rem var(--mono);letter-spacing:.1em;text-transform:uppercase;transition:transform .2s,background .2s}.build-action:hover{background:#5b92ff;transform:translateX(4px)}.build-private{background:transparent;color:#aebecd;border:1px solid #526577}.build-empty{margin:1rem 0 0;color:#b9c7d5}.update-callout{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;margin-top:2rem;padding:1.1rem 1.2rem;border:1px solid rgba(119,185,255,.32);background:rgba(51,83,108,.3)}.update-callout>span{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;background:#77b9ff;color:#18232d;font-size:1.1rem}.update-callout strong{color:#fff;font-size:.9rem}.update-callout p{margin:.3rem 0 0;color:#b9c7d5;font-size:.74rem;line-height:1.5}.update-callout a{color:#8cc7ff;font-size:.7rem;font-weight:700;text-decoration:underline;text-underline-offset:4px}.update-callout a:hover{color:#fff}
.about-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1rem}.about-photo-card{position:relative;min-height:320px;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#e9e9e5}.about-photo-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%;transition:transform .6s cubic-bezier(.16,1,.3,1),filter .4s}.about-photo-card:hover img{filter:saturate(1.08) contrast(1.03);transform:scale(1.04)}.about-photo-card figcaption{position:absolute;right:1rem;bottom:1rem;left:1rem;display:flex;flex-direction:column;gap:.32rem;padding:.8rem;border:1px solid rgba(255,255,255,.62);border-radius:12px;background:rgba(24,31,39,.75);color:#fff;backdrop-filter:blur(8px)}.about-photo-card figcaption span{font:.48rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#bdd4ff}.about-photo-card figcaption strong{font-size:.84rem;line-height:1.35}.events-section{padding:clamp(4rem,8vw,8rem) clamp(2rem,7vw,8rem);border-bottom:1px solid var(--line);background:#fff}.event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.event-card{display:grid;grid-template-rows:205px auto;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--canvas);transition:transform .25s,box-shadow .25s}.event-card:hover{box-shadow:0 16px 28px rgba(24,31,39,.12);transform:translateY(-5px)}.event-card img{width:100%;height:100%;object-fit:cover}.event-card div{padding:1.1rem}.event-card span{color:var(--brand-deep);font:.54rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.event-card h3{margin:.5rem 0;font-size:1.35rem;letter-spacing:-.04em}.event-card p{margin:0;color:var(--soft-ink);font-size:.8rem;line-height:1.6}
html.js .build-index .build-card{opacity:0;transform:translateY(22px)}html.js .build-index.is-visible .build-card{opacity:1;transform:translateY(0);animation:build-card-in .55s cubic-bezier(.16,1,.3,1) var(--card-delay) backwards}@keyframes build-card-in{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes lab-grid-drift{to{background-position:84px 84px}}@keyframes orbit-pulse{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.07);opacity:.9}}
@media(max-width:900px){.build-index-heading{align-items:start;flex-direction:column}.build-index-heading>p{max-width:420px}.build-grid{grid-template-columns:1fr}.profile-actions{grid-column:3;grid-row:span 2;align-self:stretch;justify-content:center}.profile-download{font-size:.5rem}}@media(max-width:620px){.site-nav.is-open{max-height:300px}.profile-actions{display:none}.hero-actions{gap:.75rem}.resume-link{padding:.68rem .72rem;font-size:.68rem}.build-index{padding:4rem 1.2rem}.build-index h2{font-size:3.2rem}.build-controls{gap:.45rem}.build-controls button{padding:.55rem .66rem;font-size:.55rem}.build-card{min-height:258px;padding:1.1rem}.build-card h3{font-size:1.75rem}.update-callout{grid-template-columns:auto 1fr}.update-callout a{grid-column:2}.about-photo-card{min-height:360px}.event-card{grid-template-rows:185px auto}}@media(prefers-reduced-motion:reduce){.build-index:before,.build-index:after,.build-card,.event-card,.about-photo-card img{animation:none!important;transition:none!important}.build-card:hover,.event-card:hover{transform:none!important}html.js .build-index .build-card{opacity:1;transform:none}}

/* The dock stays handy, but yields when the dense build index needs its space. */
.quick-dock{transition:transform .34s cubic-bezier(.16,1,.3,1),opacity .2s ease,box-shadow .2s}.quick-dock.is-muted{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 32px))}@media(prefers-reduced-motion:reduce){.quick-dock{transition:none!important}}

/* Editorial crops preserve the people and the achievement in the supplied vertical event photos. */
.event-card:first-child img{object-position:center 22%}.event-card:nth-child(2) img{object-position:center 34%}

/* Profile-feed shell: Instagram energy, translated into Nitish's own builder identity. */
.site-shell{grid-template-columns:286px minmax(0,1fr)}.profile-rail{padding:2.15rem 1.65rem 1.55rem;background:linear-gradient(180deg,#fff 0%,#fcfbff 65%,#f4f5ff 100%)}.profile-avatar{width:112px;height:112px;margin-bottom:1rem;border:4px solid #fff;box-shadow:0 0 0 2px #fb7f86,0 0 0 5px #ffc464,0 14px 24px rgba(61,73,133,.16)}.profile-avatar img{object-position:center 13%}.profile-avatar i:first-of-type{right:3px;top:8px;background:#5b6ff2}.profile-avatar i:last-of-type{bottom:3px;left:5px;background:#ff8f7a}.profile-name strong{font-size:1.42rem}.profile-name span{font-size:.67rem;line-height:1.45}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;margin-top:1rem;padding:.7rem .45rem;border-top:1px solid #ececf2;border-bottom:1px solid #ececf2;color:#5d6070;font:.47rem var(--mono);text-align:center;text-transform:uppercase}.profile-stats span{display:flex;flex-direction:column;gap:.15rem}.profile-stats b{color:#202124;font:700 .79rem var(--sans);letter-spacing:-.04em}.profile-location{margin-top:1.05rem}.profile-label{margin-bottom:.85rem;line-height:1.58}.profile-highlights{display:flex;gap:.62rem;margin-top:1rem}.profile-highlights a{display:grid;gap:.32rem;justify-items:center;min-width:0;color:#565a65;font:.48rem var(--mono);text-align:center;transition:color .2s,transform .2s}.profile-highlights a:hover{color:var(--brand-deep);transform:translateY(-4px)}.profile-highlights i{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e0e2ed;border-radius:50%;background:linear-gradient(145deg,#fff,#f3f1ff);box-shadow:0 3px 8px rgba(76,81,111,.09);color:var(--brand-deep);font-style:normal}.profile-actions{margin-top:1.35rem}
#top{scroll-margin-top:72px}

/* The hero keeps its energy without using a large portrait. */
.hero{min-height:590px;background:linear-gradient(135deg,#fff 0%,#fff 51%,#f5f7ff 100%)}.hero-signal{position:absolute!important;right:clamp(2rem,7vw,7rem);bottom:clamp(2.8rem,8vw,6rem);display:grid;place-items:center;width:clamp(220px,25vw,340px);aspect-ratio:1;pointer-events:none}.signal-orbit{position:absolute;border:1px solid rgba(91,111,242,.32);border-radius:50%}.signal-orbit-one{inset:8%;border-color:rgba(255,143,122,.55);animation:signal-spin 16s linear infinite}.signal-orbit-two{inset:24%;border-color:rgba(91,111,242,.55);border-style:dashed;animation:signal-spin 10s linear reverse infinite}.hero-signal b{position:absolute;z-index:1;padding:.48rem .65rem;border:1px solid rgba(91,111,242,.18);border-radius:99px;background:rgba(255,255,255,.82);box-shadow:0 7px 16px rgba(66,77,133,.1);color:#4056bc;font:.54rem var(--mono);letter-spacing:.08em;text-transform:uppercase;animation:signal-bob 5s ease-in-out infinite}.hero-signal b:nth-of-type(1){top:6%;left:19%;animation-delay:-1s}.hero-signal b:nth-of-type(2){right:0;bottom:29%;animation-delay:-3s}.hero-signal b:nth-of-type(3){bottom:5%;left:12%;animation-delay:-2s}.hero-signal i{display:grid;place-items:center;width:77px;height:77px;border-radius:50%;background:linear-gradient(135deg,#5b6ff2,#9a7bf2);box-shadow:0 17px 34px rgba(91,111,242,.25);color:#fff;font-size:2rem;font-style:normal;animation:signal-core 3.2s ease-in-out infinite}.hero-stamp{right:clamp(17rem,28vw,25rem);bottom:14%}.hero h1{position:relative;z-index:2}.note-top{background:linear-gradient(135deg,#ff9a88,#ffc3ac)}.note-side{background:linear-gradient(135deg,#b9f3df,#99e9e4)}

/* More legible project moments—each card behaves like a small product preview. */
.work-section{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#fbfcff 100%)}.work-section:before{position:absolute;top:-180px;left:-150px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(185,243,223,.42),rgba(185,243,223,0) 68%);content:""}.project-card{position:relative}.project-card:after{position:absolute;inset:auto 1.1rem .65rem auto;content:"↗";color:var(--brand);font-size:1rem;opacity:0;transform:translate(-6px,6px);transition:opacity .24s,transform .24s}.project-card:hover:after{opacity:1;transform:translate(0)}.project-card .project-art{transition:filter .35s,transform .5s cubic-bezier(.16,1,.3,1)}.project-card:hover .project-art{filter:saturate(1.12);transform:scale(1.015)}.project-card details[open]{animation:details-open .34s cubic-bezier(.16,1,.3,1)}

/* A colourful reasoning layer for the About section. */
.about-section{position:relative;overflow:hidden;background:linear-gradient(156deg,#fff 0%,#fff 68%,#f9f7ff 100%)}.about-section:after{position:absolute;right:-10%;bottom:-18%;width:38%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,224,138,.42),rgba(255,224,138,0) 69%);content:"";pointer-events:none}.about-principles{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}.principle-card{min-height:170px;padding:1.15rem;border:1px solid rgba(32,33,36,.08);border-radius:17px;box-shadow:0 12px 22px rgba(33,39,70,.06);transition:transform .27s cubic-bezier(.16,1,.3,1),box-shadow .27s}.principle-card:hover{box-shadow:0 18px 30px rgba(33,39,70,.12);transform:translateY(-7px) rotate(-.5deg)}.principle-card span{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;font:.48rem var(--mono)}.principle-card strong{display:block;max-width:14ch;margin:1.05rem 0 .55rem;font-size:1.08rem;letter-spacing:-.045em;line-height:1}.principle-card p{margin:0;color:var(--soft-ink);font-size:.72rem;line-height:1.6}.principle-coral{background:#ffe2db;color:#ae584c}.principle-blue{background:#dde6ff;color:#445dbb}.principle-sun{background:#fff0b5;color:#8f6f21}

/* Events display the full supplied memories, instead of aggressively cropping the portrait photos. */
.events-section{background:linear-gradient(180deg,#fff 0%,#fafbff 100%)}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem}.event-card{grid-template-rows:minmax(330px,31vw) auto;border-radius:21px;background:#f1f3fb;box-shadow:0 12px 24px rgba(47,55,88,.07)}.event-card:hover{box-shadow:0 21px 38px rgba(47,55,88,.16);transform:translateY(-8px)}.event-card img,.event-card:first-child img,.event-card:nth-child(2) img{padding:10px;object-fit:contain!important;object-position:center!important;background:radial-gradient(circle at 50% 35%,#fff,#e6e9f4)}.event-card div{padding:1.25rem 1.3rem 1.45rem;background:#fff}.event-card h3{font-size:clamp(1.3rem,2vw,1.8rem);line-height:1}.event-card span{color:var(--brand-deep)}

/* Tool cards become an accessible, tactile mini control panel. */
.tool-selection{min-height:2.2em;margin:.2rem 0 1.2rem;color:#49637b;font:.62rem/1.55 var(--mono)}.tool-card{appearance:none;width:100%;cursor:pointer;text-align:center}.tool-card[aria-pressed="true"]{border-color:#405dea;background:#202b35!important;box-shadow:0 11px 0 rgba(32,33,36,.17),0 0 0 4px rgba(116,158,255,.18);color:#fff;transform:translateY(-8px) rotate(-1deg)}.tool-card[aria-pressed="true"] span{background:#fff!important;color:#263341!important}.tool-card[aria-pressed="true"] b:after{margin-left:.36rem;color:#9ef0cb;content:"✓"}.tool-card:active{transform:translateY(-1px) scale(.98)}

/* A brighter, more spatial Noida / NCR moment. */
.location-section{position:relative;overflow:hidden;background:linear-gradient(125deg,#eff7ff 0%,#f7f2ff 46%,#fff5df 100%)}.location-section:after{position:absolute;right:7%;top:12%;width:150px;height:150px;border:1px dashed rgba(64,86,188,.35);border-radius:50%;content:"";animation:signal-spin 20s linear infinite}.map-illustration{box-shadow:0 18px 35px rgba(53,79,130,.16)}.map-illustration:after{position:absolute;z-index:0;inset:0;background:linear-gradient(110deg,transparent 33%,rgba(107,187,255,.23) 46%,transparent 57%);content:"";transform:translateX(-150%);animation:map-scan 6s ease-in-out infinite}.location-copy{position:relative;z-index:1}.location-copy h2{color:#354fcb}.location-link{padding:.7rem .9rem;border:1px solid rgba(53,79,203,.24);border-radius:99px;background:rgba(255,255,255,.65);text-decoration:none;transition:transform .22s,background .22s,box-shadow .22s}.location-link:hover{box-shadow:0 10px 19px rgba(53,79,203,.13);transform:translateY(-3px);background:#fff}

/* Social cards give each destination a distinct, satisfying response to a click or hover. */
.social-section{background:linear-gradient(180deg,#fbfbf8 0%,#fff 100%)}.social-card{isolation:isolate}.social-card:before{position:absolute;z-index:-1;inset:auto -30px -35px auto;width:120px;aspect-ratio:1;border-radius:50%;background:currentColor;content:"";opacity:.06;transform:scale(.35);transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .3s}.social-card:hover:before{opacity:.12;transform:scale(1)}.linkedin-card{color:#225ca8}.github-card{color:#202124}.x-card{color:#202124}.instagram-card{color:#fff}.linkedin-card small,.github-card small,.x-card small{color:currentColor!important;opacity:.62}.social-card:active{transform:translateY(-1px) scale(.985)}

/* A real contact surface: direct options first, then a no-backend message form. */
.contact-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.86fr);gap:clamp(2rem,7vw,7rem);align-items:center;background:linear-gradient(120deg,#ffe7a0 0%,#ffdca4 47%,#dce8ff 100%)}.contact-intro{max-width:610px}.contact-section>p,.contact-section>h2{display:none}.contact-section h2{font-size:clamp(3.3rem,6.6vw,7.2rem)}.contact-intro>p:not(.eyebrow){max-width:480px;margin:1.2rem 0 1.6rem;color:#4c4d58;font-size:1rem;line-height:1.65}.contact-links{display:flex;flex-wrap:wrap;gap:.65rem}.contact-links a{display:inline-flex;gap:.45rem;align-items:center;padding:.65rem .78rem;border:1px solid rgba(32,33,36,.16);border-radius:99px;background:rgba(255,255,255,.58);font-size:.69rem;font-weight:700;transition:transform .2s,background .2s,box-shadow .2s}.contact-links a:hover{box-shadow:0 9px 17px rgba(44,45,63,.12);transform:translateY(-3px);background:#fff}.contact-links a span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#202124;color:#fff;font-size:.72rem}.contact-links a:last-child span{background:#26a35a}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;padding:1.1rem;border:1px solid rgba(255,255,255,.76);border-radius:22px;background:rgba(255,255,255,.72);box-shadow:0 22px 40px rgba(76,63,48,.12);backdrop-filter:blur(12px)}.contact-field{display:grid;gap:.37rem}.contact-field-message{grid-column:span 2}.contact-field label{font:.53rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#595965}.contact-field input,.contact-field textarea{width:100%;border:1px solid rgba(47,51,66,.15);border-radius:11px;background:rgba(255,255,255,.83);color:#24262d;font:inherit;font-size:.78rem;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.contact-field input{height:43px;padding:0 .75rem}.contact-field textarea{min-height:118px;padding:.75rem;resize:none}.contact-field input:focus,.contact-field textarea:focus{border-color:#405dea;background:#fff;box-shadow:0 0 0 4px rgba(91,111,242,.14)}.contact-submit{display:inline-flex;grid-column:span 2;justify-content:center;gap:.5rem;align-items:center;min-height:45px;border:0;border-radius:12px;background:#202124;color:#fff;cursor:pointer;font-size:.77rem;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s}.contact-submit:hover{box-shadow:0 11px 20px rgba(32,33,36,.23);transform:translateY(-3px);background:#354fcb}.contact-submit:active{transform:translateY(-1px) scale(.985)}.contact-status{grid-column:span 2;min-height:1.25em;margin:0;color:#3451bd;font-size:.68rem;line-height:1.4}.contact-status[data-state="error"]{color:#b04446}

@keyframes signal-spin{to{transform:rotate(360deg)}}@keyframes signal-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes signal-core{0%,100%{box-shadow:0 17px 34px rgba(91,111,242,.25);transform:scale(1)}50%{box-shadow:0 21px 44px rgba(91,111,242,.34),0 0 0 12px rgba(91,111,242,.08);transform:scale(1.05)}}@keyframes details-open{from{opacity:.25;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes map-scan{0%,20%{transform:translateX(-150%)}55%,100%{transform:translateX(150%)}}
@media(max-width:1050px){.site-shell{grid-template-columns:260px minmax(0,1fr)}.profile-avatar{width:96px;height:96px}.hero-signal{right:2.4rem;width:240px}.hero-stamp{right:14rem}.contact-section{grid-template-columns:1fr}.contact-intro{max-width:680px}}
@media(max-width:900px){.profile-rail{display:grid;grid-template-columns:86px minmax(0,1fr) auto;grid-template-areas:"avatar name actions" "avatar stats actions" "avatar location actions" "bio bio bio" "tags tags tags" "highlights highlights highlights";gap:.45rem .9rem;padding:1.2rem 1.4rem}.profile-avatar{grid-area:avatar;width:78px;height:78px;margin:0}.profile-name{grid-area:name}.profile-stats{grid-area:stats;max-width:300px;margin:0;padding:.38rem 0;border:0;text-align:left}.profile-stats span{flex-direction:row;gap:.3rem;align-items:baseline}.profile-stats b{font-size:.66rem}.profile-location{grid-area:location;margin:0}.profile-rule{display:none}.profile-label{grid-area:bio;display:block;margin:.45rem 0 0}.profile-tags{grid-area:tags;display:flex}.profile-highlights{grid-area:highlights;margin:.1rem 0 0}.profile-actions{grid-area:actions;display:flex;margin:0;justify-content:center}.profile-download{min-width:112px}.hero-signal{right:3%;bottom:2.3rem;width:210px}.hero-stamp{right:30%;bottom:14%}.event-grid{grid-template-columns:1fr}.event-card{grid-template-rows:360px auto}.about-principles{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){#top{scroll-margin-top:64px}.profile-rail{grid-template-columns:72px minmax(0,1fr);grid-template-areas:"avatar name" "avatar stats" "avatar location" "bio bio" "highlights highlights";padding:1rem 1.2rem}.profile-avatar{width:66px;height:66px}.profile-name strong{font-size:1.12rem}.profile-name span{font-size:.59rem}.profile-stats{font-size:.42rem}.profile-stats b{font-size:.57rem}.profile-label{font-size:.68rem}.profile-tags,.profile-actions{display:none}.profile-highlights{gap:.8rem}.profile-highlights i{width:31px;height:31px}.hero{min-height:575px}.hero-signal{right:.4rem;bottom:1.5rem;width:150px;opacity:.88}.hero-signal i{width:52px;height:52px;font-size:1.35rem}.hero-signal b{padding:.34rem .4rem;font-size:.38rem}.hero-stamp{display:none}.hero h1{max-width:6ch}.hero-copy{max-width:270px}.note-top{right:1rem}.work-section,.about-section,.events-section{padding:4rem 1.2rem}.about-principles{grid-template-columns:1fr}.principle-card{min-height:130px}.event-card{grid-template-rows:320px auto}.event-card img{padding:8px}.tool-selection{font-size:.57rem}.location-section{padding:4rem 1.2rem}.location-section:after{right:-8%;top:3%;width:100px;height:100px}.social-card:after{display:none}.contact-section{padding:4.5rem 1.2rem 6rem}.contact-links{display:grid;gap:.5rem}.contact-links a{justify-content:flex-start}.contact-form{grid-template-columns:1fr}.contact-field-message,.contact-submit,.contact-status{grid-column:auto}.contact-field textarea{min-height:105px}}
@media(prefers-reduced-motion:reduce){.hero-signal,.signal-orbit,.hero-signal b,.hero-signal i,.location-section:after,.map-illustration:after,.project-card .project-art,.project-card:after,.principle-card,.event-card,.tool-card,.contact-links a,.contact-submit,.social-card:before{animation:none!important;transition:none!important}.project-card:hover .project-art,.principle-card:hover,.event-card:hover,.tool-card[aria-pressed="true"],.contact-links a:hover,.contact-submit:hover{transform:none!important}}

/* LinkedIn proof and a compact personal hero: real profile evidence, never generic chrome. */
:root{--portrait-frame:#1e2025}
.profile-avatar{border-color:var(--portrait-frame);box-shadow:0 0 0 3px #fff,0 0 0 6px var(--portrait-frame),0 14px 24px rgba(31,32,37,.18)}
.profile-avatar img{filter:saturate(.98) contrast(1.04)}
.linkedin-profile-card{display:block;overflow:hidden;margin:.15rem 0 .8rem;border:1.5px solid var(--portrait-frame);border-radius:12px;background:#fff;color:var(--ink);box-shadow:4px 4px 0 rgba(30,32,37,.14);text-decoration:none;transition:transform .24s cubic-bezier(.16,1,.3,1),box-shadow .24s}
.linkedin-profile-card:hover{box-shadow:7px 7px 0 rgba(30,32,37,.18);transform:translate(-2px,-2px)}
.linkedin-profile-card:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.linkedin-cover{position:relative;display:block;height:63px;overflow:hidden;border-bottom:1px solid var(--portrait-frame);background:#e6edf7}
.linkedin-cover img{position:absolute;top:-15px;left:-20px;width:422px;max-width:none;height:auto}
.linkedin-profile-meta{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:.45rem;align-items:center;padding:.5rem .56rem}
.linkedin-profile-meta span{display:grid;gap:.12rem;min-width:0}
.linkedin-profile-meta b{overflow:hidden;font-size:.59rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.linkedin-profile-meta small{overflow:hidden;color:var(--muted);font:.46rem/1.25 var(--mono);text-overflow:ellipsis;white-space:nowrap}
.linkedin-profile-meta>i{color:var(--brand-deep);font-size:.82rem;font-style:normal}
.linkedin-mini-mark{display:grid!important;place-items:center;width:25px;height:25px;border-radius:4px;background:#0a66c2;color:#fff!important;font:700 .73rem/1 var(--sans)!important;letter-spacing:-.07em}

.hero{min-height:620px}
.hero-portrait{z-index:3;right:clamp(1.9rem,6vw,6.6rem);bottom:clamp(1.55rem,5vw,4.1rem);width:clamp(185px,18vw,258px);overflow:visible;border-radius:21px;box-shadow:10px 10px 0 var(--portrait-frame),0 22px 36px rgba(25,27,34,.18);transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0) rotate(2deg);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
.hero-portrait:hover{box-shadow:13px 13px 0 var(--portrait-frame),0 26px 43px rgba(25,27,34,.22);transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0) rotate(0deg) scale(1.025)}
.hero-portrait img{aspect-ratio:4/4.78;padding:5px;border:4px solid var(--portrait-frame);border-radius:21px;background:#fff;object-position:center 12%;filter:saturate(1.02) contrast(1.05);animation:portrait-float 6s ease-in-out infinite}
.hero-portrait .portrait-halo{top:-13px;right:-13px;width:59%;background:linear-gradient(135deg,var(--accent-sun),var(--accent-coral));opacity:.82}
.hero-portrait figcaption{right:-9px;bottom:12px;border-color:var(--portrait-frame);border-radius:7px;background:var(--portrait-frame);box-shadow:none;font-size:.43rem}
.hero-signal{right:clamp(4.6rem,10vw,11.5rem);bottom:clamp(1rem,3vw,2.4rem);width:clamp(180px,19vw,270px);opacity:.68}
.hero-stamp{z-index:2;right:clamp(16rem,26vw,24rem);bottom:15%}
.note{z-index:4}

@media(max-width:900px){.profile-rail{grid-template-areas:"avatar name actions" "avatar stats actions" "avatar location actions" "linkedin linkedin linkedin" "bio bio bio" "tags tags tags" "highlights highlights highlights"}.linkedin-profile-card{grid-area:linkedin;max-width:410px;margin:.35rem 0 .15rem}.linkedin-cover{height:70px}.linkedin-cover img{top:-18px;width:466px;left:-22px}.hero{min-height:640px}.hero-portrait{right:1.6rem;bottom:2.8rem;width:194px}.hero-signal{right:9.4rem;bottom:1.4rem;width:190px;opacity:.48}.hero-stamp{right:15.5rem;bottom:16%}}
@media(max-width:620px){.profile-rail{grid-template-areas:"avatar name" "avatar stats" "avatar location" "linkedin linkedin" "bio bio" "highlights highlights"}.linkedin-profile-card{width:100%;max-width:none;margin:.4rem 0 .1rem}.linkedin-cover{height:66px}.linkedin-cover img{top:-16px;left:-22px;width:455px}.linkedin-profile-meta{padding:.48rem .55rem}.hero{min-height:650px}.hero-portrait{right:.9rem;bottom:1.75rem;width:117px;border-radius:15px;box-shadow:6px 6px 0 var(--portrait-frame),0 14px 23px rgba(25,27,34,.16)}.hero-portrait img{padding:3px;border-width:3px;border-radius:15px}.hero-portrait figcaption{right:-5px;bottom:8px;padding:.26rem .33rem;font-size:.27rem}.hero-portrait .portrait-halo{top:-8px;right:-8px}.hero-signal{right:4.25rem;bottom:.72rem;width:138px;opacity:.38}.hero-stamp{display:none}}
@media(prefers-reduced-motion:reduce){.hero-portrait img{animation:none!important}.hero-portrait,.linkedin-profile-card{transition:none!important}.hero-portrait:hover,.linkedin-profile-card:hover{transform:none!important}}

/* The rail now borrows LinkedIn's cover/avatar composition without duplicating the hero portrait. */
.profile-cover{position:relative;height:106px;margin:-2.15rem -1.65rem -53px;overflow:hidden;border-bottom:2px solid var(--portrait-frame);background:#e5edf5}
.profile-cover:after{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.2));content:"";pointer-events:none}
.profile-cover img{position:absolute;top:-18px;left:-24px;width:486px;max-width:none;height:auto}
.profile-avatar{z-index:1;margin-left:.95rem;border-color:var(--portrait-frame);box-shadow:0 0 0 3px #fff,0 0 0 6px var(--portrait-frame),0 14px 24px rgba(31,32,37,.18)}
.profile-avatar img{object-position:50% 18%;filter:saturate(1.02) contrast(1.03)}
.profile-linkedin-detail{display:flex;gap:.55rem;align-items:center;margin-top:.95rem;padding:.55rem .15rem;border-top:1px solid #ececf2;border-bottom:1px solid #ececf2;color:var(--ink)}
.profile-linkedin-detail>span:last-child{display:grid;gap:.12rem;min-width:0}
.profile-linkedin-detail b{font-size:.64rem;line-height:1.25}
.profile-linkedin-detail small{color:var(--muted);font:.49rem/1.35 var(--mono)}
.profile-availability{display:grid;gap:.22rem;margin-top:1rem;padding:.72rem .78rem;border:1px solid rgba(30,32,37,.18);border-left:3px solid var(--portrait-frame);border-radius:9px;background:rgba(255,255,255,.72)}
.profile-availability span{color:var(--brand-deep);font:.46rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.profile-availability strong{font-size:.68rem;line-height:1.35}

@media(max-width:900px){.profile-rail{grid-template-areas:"cover cover cover" "avatar name actions" "avatar linkedin actions" "avatar location actions" "bio bio bio" "tags tags tags" "availability availability availability";gap:.45rem .9rem}.profile-cover{grid-area:cover;height:98px;margin:-1.2rem -1.4rem -38px}.profile-cover img{top:-22px;left:-27px;width:560px}.profile-avatar{margin:-1px 0 0 .65rem}.profile-linkedin-detail{grid-area:linkedin;margin:0;padding:.34rem 0;border:0}.profile-linkedin-detail b{font-size:.59rem}.profile-linkedin-detail small{font-size:.45rem}.profile-location{grid-area:location}.profile-label{grid-area:bio}.profile-tags{grid-area:tags}.profile-availability{grid-area:availability;margin:.2rem 0 0}.profile-highlights{display:none}}
@media(max-width:620px){.profile-rail{position:relative;grid-template-areas:"avatar name" "avatar linkedin" "avatar location" "bio bio" "tags tags" "availability availability";padding:2.75rem 1.2rem 1rem;isolation:isolate}.profile-cover{position:absolute;z-index:0;top:0;right:0;left:0;grid-area:auto;height:96px;margin:0;border-bottom-width:2px}.profile-cover img{top:-23px;left:-31px;width:664px}.profile-avatar,.profile-name,.profile-linkedin-detail,.profile-location,.profile-label,.profile-tags,.profile-availability{position:relative;z-index:1}.profile-avatar{margin:0 0 0 .45rem}.profile-name{padding-top:.04rem;text-shadow:0 1px 0 rgba(255,255,255,.65)}.profile-linkedin-detail{gap:.42rem}.profile-linkedin-detail b{font-size:.56rem}.profile-linkedin-detail small{font-size:.41rem}.profile-availability{padding:.64rem .7rem}.profile-availability strong{font-size:.64rem}}

/* Compact project library: the complete build list belongs with the projects, not in a dark detour. */
:root{--line:rgba(30,32,37,.23)}
.project-library{position:relative;isolation:isolate;overflow:hidden;padding:clamp(4rem,7vw,7rem) clamp(2rem,7vw,8rem);border-bottom:1px solid var(--line);background:linear-gradient(145deg,#fff 0%,#fbfcff 54%,#fffdf7 100%)}
.project-library:before{position:absolute;z-index:-1;top:-110px;right:-100px;width:310px;aspect-ratio:1;border:1px dashed rgba(64,93,234,.24);border-radius:50%;box-shadow:0 0 0 26px rgba(64,93,234,.025),0 0 0 62px rgba(255,143,122,.025);content:"";animation:library-orbit 18s linear infinite}
.project-library-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}
.project-library-heading h2{max-width:760px;margin:0;color:var(--ink);font-size:clamp(2.55rem,5vw,5.7rem);line-height:.89;letter-spacing:-.07em}
.project-library-heading>p{max-width:320px;margin:0;color:var(--soft-ink);font-size:.86rem;line-height:1.65}
.project-library .eyebrow{color:var(--brand-deep)}
.project-library .build-controls{gap:.55rem;margin:0 0 .9rem}
.project-library .build-controls button{padding:.63rem .78rem;border:1px solid rgba(30,32,37,.38);border-radius:99px;background:rgba(255,255,255,.74);color:var(--ink);box-shadow:0 3px 0 rgba(30,32,37,.08);font:.58rem var(--mono);letter-spacing:.04em;transition:transform .2s,box-shadow .2s,background .2s,color .2s}
.project-library .build-controls button:after{display:none}
.project-library .build-controls button:hover,.project-library .build-controls button[aria-pressed="true"]{border-color:var(--portrait-frame);background:var(--portrait-frame);box-shadow:0 5px 0 rgba(30,32,37,.15);color:#fff;transform:translateY(-2px)}
.project-library .build-count{margin:0 0 1rem;color:#5b6170;font:.55rem var(--mono);letter-spacing:.09em;text-transform:uppercase}
.project-library .build-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;border:0}
.project-library .build-card{min-height:252px;padding:1.05rem 1rem 1rem;border:1.25px solid var(--portrait-frame);border-radius:17px;background:#fff;box-shadow:4px 4px 0 rgba(30,32,37,.14);color:var(--ink);transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,background .25s}
.project-library .build-card:before{right:1rem;top:1rem;width:10px;height:10px;background:#6377f0;box-shadow:0 0 0 4px rgba(99,119,240,.14)}
.project-library .build-card:hover{box-shadow:8px 9px 0 rgba(30,32,37,.16);transform:translate(-3px,-5px);background:#fff}
.project-library .build-card:hover:before{box-shadow:0 0 0 7px rgba(99,119,240,.15);transform:scale(1.08)}
.project-library .build-card--coral{background:linear-gradient(150deg,#fff 62%,#ffe4dc)}.project-library .build-card--coral:before{background:#ec8876;box-shadow:0 0 0 4px rgba(236,136,118,.15)}
.project-library .build-card--violet{background:linear-gradient(150deg,#fff 62%,#eee8ff)}.project-library .build-card--violet:before{background:#9986ec;box-shadow:0 0 0 4px rgba(153,134,236,.16)}
.project-library .build-card--mint{background:linear-gradient(150deg,#fff 62%,#dcf8ec)}.project-library .build-card--mint:before{background:#4fb98d;box-shadow:0 0 0 4px rgba(79,185,141,.15)}
.project-library .build-card--sun{background:linear-gradient(150deg,#fff 62%,#fff1b9)}.project-library .build-card--sun:before{background:#d3a828;box-shadow:0 0 0 4px rgba(211,168,40,.16)}
.project-library .build-card--blue{background:linear-gradient(150deg,#fff 62%,#dfe8ff)}
.project-library .build-card-top{gap:.48rem;padding-right:1.45rem}.project-library .build-card-top span{color:#3e4653;font-size:.72rem;line-height:1.25}.project-library .build-card-top b{padding:.18rem .38rem;border-color:rgba(30,32,37,.34);color:#454b57;font-size:.43rem}
.project-library .build-card h3{max-width:94%;margin:.78rem 0 .48rem;color:var(--ink);font-size:clamp(1.32rem,2vw,1.82rem);line-height:.94;letter-spacing:-.055em}
.project-library .build-card p{color:#555b67;font-size:.74rem;line-height:1.55}.project-library .build-tags{gap:.32rem;margin:.95rem 0 .78rem}.project-library .build-tags li{padding:.25rem .38rem;border:1px solid rgba(30,32,37,.13);border-radius:99px;background:rgba(255,255,255,.72);color:#3f4653;font-size:.44rem}
.project-library .build-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-top:auto}.project-library .build-action,.project-library .build-private,.project-library .build-save{display:inline-flex;align-items:center;gap:.35rem;min-height:29px;padding:.42rem .54rem;border-radius:8px;font:.48rem var(--mono);letter-spacing:.075em;text-transform:uppercase}
.project-library .build-action{background:var(--portrait-frame);color:#fff}.project-library .build-action:hover{background:var(--brand-deep);transform:translateX(3px)}.project-library .build-private{border:1px solid rgba(30,32,37,.42);background:transparent;color:#353a43}
.project-library .build-save{border:1px solid rgba(30,32,37,.28);background:rgba(255,255,255,.6);color:#373b45;cursor:pointer;transition:transform .2s,background .2s,color .2s}.project-library .build-save:hover{background:#fff;transform:translateY(-2px)}.project-library .build-save[aria-pressed="true"]{border-color:#d65c77;background:#fff2f4;color:#bd4661}.project-library .build-save span{font-size:.85rem;line-height:0}
.project-library .build-empty{color:#5d6370}.project-library .update-callout{border:1.25px solid var(--portrait-frame);border-left:4px solid var(--brand);border-radius:13px;background:#fff;box-shadow:4px 4px 0 rgba(30,32,37,.11)}.project-library .update-callout>span{background:#dfe7ff;color:var(--portrait-frame)}.project-library .update-callout strong{color:var(--ink)}.project-library .update-callout p{color:#5d6370}.project-library .update-callout a{color:var(--brand-deep)}.project-library .update-callout a:hover{color:var(--ink)}
html.js .project-library .build-card{opacity:0;transform:translateY(18px)}html.js .project-library.is-visible .build-card{opacity:1;transform:translateY(0);animation:build-card-in .5s cubic-bezier(.16,1,.3,1) var(--card-delay) backwards}
@keyframes library-orbit{to{transform:rotate(360deg)}}
@media(max-width:1080px){.project-library .build-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.project-library-heading{align-items:start;flex-direction:column}.project-library-heading>p{max-width:440px}}@media(max-width:620px){.project-library{padding:4rem 1.2rem}.project-library-heading{gap:.9rem;margin-bottom:1.5rem}.project-library-heading h2{font-size:3rem}.project-library .build-controls{gap:.42rem}.project-library .build-controls button{padding:.54rem .62rem;font-size:.5rem}.project-library .build-grid{grid-template-columns:1fr}.project-library .build-card{min-height:224px}.project-library .update-callout{grid-template-columns:auto 1fr}.project-library .update-callout a{grid-column:2}}@media(prefers-reduced-motion:reduce){.project-library:before,.project-library .build-card{animation:none!important;transition:none!important}.project-library .build-card:hover,.project-library .build-controls button:hover,.project-library .build-save:hover{transform:none!important}html.js .project-library .build-card{opacity:1;transform:none}}

/* Simplified identity rail: one abstract AI object and useful live profile proof, without repeated portraits. */
.site-search-button{justify-self:start;display:inline-flex;gap:.45rem;align-items:center;padding:.46rem .66rem;border:1px solid rgba(30,32,37,.35);border-radius:99px;background:#fff;color:var(--ink);cursor:pointer;font:.56rem var(--mono);letter-spacing:.045em;transition:transform .2s,box-shadow .2s,background .2s}.site-search-button span{font-size:1rem;line-height:.7}.site-search-button:hover{box-shadow:3px 3px 0 rgba(30,32,37,.14);transform:translate(-1px,-1px);background:#f8f9ff}.site-search-button:active{box-shadow:none;transform:translate(1px,1px)}
.site-search-dialog{width:min(700px,calc(100vw - 2rem));max-width:none;margin:auto;padding:0;border:1.25px solid var(--portrait-frame);border-radius:19px;background:#fff;box-shadow:10px 11px 0 rgba(30,32,37,.16);color:var(--ink)}.site-search-dialog::backdrop{background:rgba(23,27,35,.36);backdrop-filter:blur(3px)}.site-search-panel{padding:clamp(1.15rem,3vw,1.7rem)}.site-search-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:1.1rem}.site-search-heading .eyebrow{margin-bottom:.42rem}.site-search-heading h2{margin:0;font-size:clamp(1.6rem,4vw,2.6rem);letter-spacing:-.065em;line-height:.94}.search-close{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(30,32,37,.3);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer;font-size:1.4rem;line-height:1;transition:background .2s,transform .2s}.search-close:hover{background:#202124;color:#fff;transform:rotate(6deg)}.search-input-wrap{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;align-items:center;padding:.2rem .3rem .2rem .8rem;border:1.25px solid var(--portrait-frame);border-radius:12px;background:#fbfbf8}.search-input-wrap>span{font-size:1.2rem}.search-input-wrap input{min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:.82rem var(--sans)}.search-input-wrap input::placeholder{color:#888c94}.search-input-wrap button{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:8px;background:#e6eaff;color:#314fc3;cursor:pointer;font-size:1.1rem}.search-status{min-height:1.4em;margin:.8rem 0 .6rem;color:var(--muted);font:.59rem/1.45 var(--mono)}.search-results{display:grid;gap:.55rem;max-height:min(50vh,390px);overflow:auto;padding-right:.2rem}.search-result{position:relative;display:block;padding:.78rem 2.5rem .78rem .85rem;border:1px solid rgba(30,32,37,.18);border-radius:11px;background:#fff;transition:background .18s,border-color .18s,transform .18s}.search-result:hover{border-color:var(--portrait-frame);background:#f7f8ff;transform:translateX(3px)}.search-result>span{display:block;margin-bottom:.26rem;color:var(--brand-deep);font:.45rem var(--mono);letter-spacing:.09em;text-transform:uppercase}.search-result strong{font-size:.82rem}.search-result p{margin:.25rem 0 0;color:var(--soft-ink);font-size:.68rem;line-height:1.45}.search-result i{position:absolute;right:.9rem;top:50%;color:var(--brand-deep);font-style:normal;transform:translateY(-50%)}.search-empty{margin:0;padding:1rem;border:1px dashed rgba(30,32,37,.3);border-radius:11px;color:var(--soft-ink);font-size:.75rem}
.profile-ai-tile{position:relative;width:112px;height:112px;margin-bottom:1rem;overflow:hidden;border:2px solid var(--portrait-frame);border-radius:25px;background:linear-gradient(145deg,#eff3ff,#fff 56%,#e8fbf3);box-shadow:4px 4px 0 var(--portrait-frame)}.profile-ai-tile:before{position:absolute;inset:8px;border:1px solid rgba(30,32,37,.43);border-radius:18px;content:""}.ai-tile-inner{position:absolute;inset:20px;border:1px dashed rgba(64,93,234,.52);border-radius:13px}.profile-ai-tile b{position:absolute;z-index:2;left:50%;top:50%;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--portrait-frame);border-radius:50%;background:#fff;color:var(--brand-deep);font-size:1.15rem;transform:translate(-50%,-50%)}.profile-ai-tile small{position:absolute;right:15px;bottom:13px;color:#465fb8;font:700 .45rem var(--mono);letter-spacing:.12em}.ai-tile-node{position:absolute;z-index:1;width:8px;height:8px;border:1px solid var(--portrait-frame);border-radius:50%;background:#a6efd4}.ai-node-one{top:29px;left:28px}.ai-node-two{right:27px;top:35px;background:#b6bfff}.ai-node-three{bottom:29px;left:34px;background:#ffc5b8}.ai-tile-link{position:absolute;z-index:0;height:1px;background:rgba(30,32,37,.6);transform-origin:left}.ai-link-one{top:34px;left:34px;width:31px;transform:rotate(26deg)}.ai-link-two{bottom:34px;left:40px;width:30px;transform:rotate(-38deg)}
.profile-time{display:grid;grid-template-columns:43px minmax(0,1fr);gap:.62rem;align-items:center;margin-bottom:.82rem}.profile-calendar{display:grid;place-items:center;align-content:center;width:43px;height:47px;border:1.25px solid var(--portrait-frame);border-radius:11px;background:#fff;box-shadow:2px 2px 0 rgba(30,32,37,.12);line-height:1}.profile-calendar b{font-size:1rem;letter-spacing:-.06em}.profile-calendar small{margin-top:.18rem;color:var(--brand-deep);font:.42rem var(--mono);letter-spacing:.08em}.profile-time>span:last-child{display:grid;gap:.1rem}.profile-time>span:last-child>small{color:#5d6370;font:.46rem var(--mono);letter-spacing:.08em}.profile-time strong{font-size:1rem;letter-spacing:-.055em;line-height:1}.profile-time em{color:var(--muted);font:.48rem var(--mono);font-style:normal;line-height:1.35}.profile-linkedin-detail{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:.55rem;align-items:center;margin:.05rem 0 .62rem;padding:.58rem .1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:color .2s,transform .2s}.profile-linkedin-detail:hover{color:#164e9d;transform:translateX(2px)}.profile-linkedin-detail>span:last-of-type{display:grid;gap:.12rem;min-width:0}.profile-linkedin-detail b{overflow:hidden;font-size:.62rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.profile-linkedin-detail small{overflow:hidden;color:var(--muted);font:.45rem/1.35 var(--mono);text-overflow:ellipsis;white-space:nowrap}.profile-linkedin-detail i{color:var(--brand-deep);font-style:normal;font-size:.78rem}.profile-role{margin:0;color:var(--soft-ink);font-size:.68rem;line-height:1.45}.profile-location{margin-top:.72rem}.profile-actions{margin-top:1.25rem}.profile-download{width:100%;justify-content:center}
.featured-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.featured-project{position:relative;display:flex;min-height:286px;flex-direction:column;padding:1.05rem;border:1.25px solid var(--portrait-frame);border-radius:17px;background:#fff;box-shadow:4px 4px 0 rgba(30,32,37,.14);transition:transform .24s cubic-bezier(.16,1,.3,1),box-shadow .24s}.featured-project:hover{box-shadow:8px 9px 0 rgba(30,32,37,.16);transform:translate(-3px,-5px)}.featured-project:before{position:absolute;right:1rem;bottom:1rem;width:62px;height:62px;border-radius:20px 20px 14px 20px;background:rgba(64,93,234,.1);content:""}.featured-project--violet:before{background:rgba(151,131,235,.13)}.featured-project--coral:before{background:rgba(255,143,122,.14)}.featured-project-top{display:flex;justify-content:space-between;gap:.5rem;padding-right:.2rem}.featured-project-top span{color:#53606b;font:.48rem var(--mono);letter-spacing:.06em;text-transform:uppercase}.featured-project-top b{padding:.18rem .38rem;border:1px solid rgba(30,32,37,.32);border-radius:99px;color:#434a55;font:.42rem var(--mono);letter-spacing:.06em;text-transform:uppercase}.featured-project h3{position:relative;z-index:1;margin:.95rem 0 .48rem;font-size:clamp(1.35rem,2.1vw,1.85rem);letter-spacing:-.065em;line-height:.93}.featured-project p{position:relative;z-index:1;margin:0;color:var(--soft-ink);font-size:.73rem;line-height:1.55}.featured-project ul{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.32rem;margin:.95rem 0;padding:0;list-style:none}.featured-project li{padding:.24rem .38rem;border:1px solid rgba(30,32,37,.14);border-radius:99px;background:rgba(255,255,255,.7);color:#4b515c;font:.42rem var(--mono)}.featured-project>a,.featured-project-private{position:relative;z-index:1;display:inline-flex;width:max-content;gap:.32rem;align-items:center;margin-top:auto;padding:.46rem .58rem;border-radius:8px;background:var(--portrait-frame);color:#fff;font:.47rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.featured-project-private{border:1px solid rgba(30,32,37,.42);background:#fff;color:#363b43}.featured-project>a:hover{background:var(--brand-deep);transform:translateX(3px)}
@media(max-width:900px){.profile-rail{grid-template-columns:86px minmax(0,1fr) auto;grid-template-areas:"ai time actions" "ai linkedin actions" "ai role actions" "ai location actions" "bio bio bio" "tags tags tags" "availability availability availability";gap:.45rem .85rem}.profile-ai-tile{grid-area:ai;width:80px;height:80px;margin:0;border-radius:20px;box-shadow:3px 3px 0 var(--portrait-frame)}.profile-ai-tile:before{inset:6px;border-radius:14px}.ai-tile-inner{inset:14px;border-radius:10px}.profile-ai-tile b{width:28px;height:28px;font-size:.85rem}.profile-ai-tile small{right:9px;bottom:8px;font-size:.34rem}.ai-tile-node{width:6px;height:6px}.ai-node-one{top:21px;left:20px}.ai-node-two{right:18px;top:25px}.ai-node-three{bottom:18px;left:25px}.ai-link-one{top:25px;left:23px;width:24px}.ai-link-two{bottom:22px;left:27px;width:22px}.profile-time{grid-area:time;margin:0}.profile-linkedin-detail{grid-area:linkedin;margin:0;padding:.25rem 0;border:0}.profile-role{grid-area:role}.profile-location{grid-area:location;margin:0}.profile-label{grid-area:bio}.profile-tags{grid-area:tags}.profile-availability{grid-area:availability}.profile-actions{grid-area:actions;display:flex;margin:0;align-self:stretch;justify-content:center}.profile-download{width:auto;min-width:112px}.featured-project-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.site-search-button{padding:.42rem .58rem}.site-search-dialog{width:min(100% - 1.25rem,700px);border-radius:15px}.site-search-panel{padding:1rem}.search-input-wrap{padding-left:.62rem}.search-input-wrap input{font-size:.73rem}.profile-rail{grid-template-columns:78px minmax(0,1fr);grid-template-areas:"ai time" "ai linkedin" "ai role" "ai location" "bio bio" "tags tags" "availability availability" "actions actions";padding:1.1rem 1.2rem}.profile-ai-tile{width:72px;height:72px}.profile-time strong{font-size:.9rem}.profile-time em{font-size:.42rem}.profile-linkedin-detail b{font-size:.55rem}.profile-linkedin-detail small{font-size:.4rem}.profile-role{font-size:.62rem}.profile-actions{display:flex;margin-top:.8rem}.profile-download{min-width:0;width:100%}.featured-project-grid{grid-template-columns:1fr}.featured-project{min-height:218px}.featured-project h3{font-size:1.55rem}}@media(prefers-reduced-motion:reduce){.site-search-button,.search-close,.search-result,.profile-linkedin-detail,.featured-project{transition:none!important}.site-search-button:hover,.search-close:hover,.search-result:hover,.profile-linkedin-detail:hover,.featured-project:hover{transform:none!important}}

.quick-dock a,.quick-dock button{position:relative}.quick-dock [data-dock-label]:before{position:absolute;left:50%;bottom:calc(100% + .72rem);padding:.38rem .58rem;border-radius:999px;background:#202124;color:#fff;content:attr(data-dock-label);font:.53rem var(--sans);font-weight:700;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,5px);transition:opacity .18s,transform .18s}.quick-dock [data-dock-label]:hover:before,.quick-dock [data-dock-label]:focus-visible:before{opacity:1;transform:translate(-50%,0)}.quick-dock .dock-search-button{order:6;background:#fee0ad;font-size:1.35rem}.quick-dock .dock-search-button:hover{background:#f8cf81}

/* A clock-and-portrait workbench replaces the oversized personal-name greeting. */
.profile-rail--wall .profile-avatar{width:142px;height:142px;overflow:visible;isolation:isolate;box-shadow:0 0 0 2px var(--portrait-frame),0 11px 0 rgba(30,32,37,.14)}.profile-rail--wall .profile-avatar:before{position:absolute;z-index:-1;inset:-10px;border:1px dashed rgba(64,93,234,.72);border-radius:50%;content:"";animation:profile-ring-orbit 10s linear infinite}.profile-rail--wall .profile-avatar:after{position:absolute;z-index:-1;inset:-16px;border:1px solid rgba(255,143,122,.62);border-radius:50%;content:"";animation:profile-ring-breathe 3.4s ease-in-out infinite}.profile-rail--wall .profile-avatar img{border-radius:50%}.profile-rail--wall .profile-name strong{font-size:1.28rem}.rail-experience{gap:.42rem}.rail-experience span{font-size:.69rem}.rail-experience small{font:.51rem/1.5 var(--sans);letter-spacing:-.01em}.rail-experience-tags{gap:.42rem}.rail-skill{min-height:30px;padding:.38rem .5rem;border:1px solid rgba(30,32,37,.28);border-radius:99px;background:#fff;color:#333944;cursor:pointer;font:600 .52rem var(--sans);letter-spacing:-.01em;transition:background .18s,color .18s,border-color .18s,box-shadow .18s}.rail-skill:hover{box-shadow:inset 0 0 0 1px currentColor}.rail-skill:active{box-shadow:inset 0 2px 0 rgba(0,0,0,.15)}.rail-skill--blue[aria-pressed="true"]{border-color:#405dea;background:#405dea;color:#fff;box-shadow:inset 0 2px 0 rgba(0,0,0,.18),0 0 0 3px rgba(64,93,234,.13)}.rail-skill--coral[aria-pressed="true"]{border-color:#d35d4b;background:#ff8f7a;color:#30201e;box-shadow:inset 0 2px 0 rgba(0,0,0,.13),0 0 0 3px rgba(255,143,122,.16)}.rail-skill--mint[aria-pressed="true"]{border-color:#218265;background:#b9f3df;color:#173b33;box-shadow:inset 0 2px 0 rgba(0,0,0,.11),0 0 0 3px rgba(185,243,223,.28)}.rail-primary-link,.rail-secondary-link,.profile-rail--wall .profile-download{min-height:39px;border-radius:11px;font:700 .59rem var(--sans);letter-spacing:-.01em;transition:background .2s,color .2s,border-color .2s,box-shadow .2s!important}.rail-primary-link{background:linear-gradient(135deg,#1e2025,#354fcb)}.rail-secondary-link{border-color:#aeb9ef;background:#eef1ff;color:#2c469f}.profile-rail--wall .profile-download{border-color:#ddbd62;background:#fff3c8;color:#664d19}.rail-primary-link:hover,.rail-secondary-link:hover,.profile-rail--wall .profile-download:hover{box-shadow:inset 0 -2px 0 rgba(0,0,0,.18)!important;transform:none}.rail-primary-link:active,.rail-primary-link.is-selected{background:#12141a;box-shadow:inset 0 2px 0 rgba(0,0,0,.4),0 0 0 3px rgba(53,79,203,.18)!important;transform:none}.rail-secondary-link:active,.rail-secondary-link.is-selected{border-color:#405dea;background:#405dea;color:#fff;box-shadow:inset 0 2px 0 rgba(0,0,0,.22),0 0 0 3px rgba(64,93,234,.14)!important;transform:none}.profile-rail--wall .profile-download:active,.profile-rail--wall .profile-download.is-selected{border-color:#b8892e;background:#ffd968;color:#423207;box-shadow:inset 0 2px 0 rgba(0,0,0,.18),0 0 0 3px rgba(255,217,104,.24)!important;transform:none}.hero h1{max-width:7ch;font-size:clamp(3.55rem,7vw,7.25rem);line-height:.84}.hero-portrait--spot{right:clamp(4rem,9vw,9rem);bottom:clamp(3rem,8vw,5rem);width:clamp(225px,22vw,310px);border-radius:50%;box-shadow:0 0 0 8px #fff,0 0 0 11px var(--portrait-frame),0 27px 43px rgba(30,32,37,.2);transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0);animation:hero-spot-breathe 4.8s ease-in-out infinite}.hero-portrait--spot:hover{box-shadow:0 0 0 8px #fff,0 0 0 12px var(--brand-deep),0 27px 43px rgba(30,32,37,.24);transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0)}.hero-portrait--spot img{aspect-ratio:1;border:0;border-radius:50%;object-position:center 15%;animation:portrait-float 7s ease-in-out infinite}.hero-portrait--spot .portrait-halo{top:-20px;right:-22px;width:86%;background:linear-gradient(135deg,#ffe08a,#ff8f7a);opacity:.85}.hero-portrait--spot figcaption{right:6%;bottom:7%;border:1px solid #fff;border-radius:99px;background:var(--portrait-frame);font-size:.42rem}.hero-now{z-index:6;top:48%;left:52%;min-width:228px;padding:.62rem .76rem;border:1.5px solid var(--portrait-frame);border-radius:17px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(235,240,255,.95));box-shadow:6px 7px 0 rgba(30,32,37,.16),0 10px 23px rgba(43,55,109,.12);transform:translate(-50%,-50%)}.hero-now .profile-calendar{width:50px;height:54px;border:1.5px solid var(--portrait-frame);border-radius:12px;background:#fff}.hero-now .profile-calendar b{font-size:1.2rem}.hero-now .profile-calendar small{font-size:.43rem}.hero-now>span:last-child>small{color:#354fcb;font-size:.48rem;font-weight:700}.hero-now strong{font-size:1.15rem}.hero-now em{font-size:.46rem}.project-library .build-controls button{cursor:pointer}.project-library .build-controls button:hover{border-color:#405dea;background:#eef1ff;color:#2c469f;box-shadow:inset 0 0 0 1px rgba(64,93,234,.15);transform:none}.project-library .build-controls button[aria-pressed="true"]{border-color:#354fcb;background:#354fcb;color:#fff;box-shadow:inset 0 2px 0 rgba(0,0,0,.22),0 0 0 3px rgba(64,93,234,.13);transform:none}.project-library .build-controls button:active{box-shadow:inset 0 2px 0 rgba(0,0,0,.2);transform:none}.tool-card:hover{box-shadow:inset 0 0 0 2px rgba(64,93,234,.3),0 3px 0 rgba(33,33,33,.05);transform:none}.tool-card[aria-pressed="true"]{border-color:#354fcb;background:linear-gradient(135deg,#405dea,#7c86f0)!important;box-shadow:inset 0 2px 0 rgba(0,0,0,.22),0 0 0 4px rgba(64,93,234,.14)!important;color:#fff;transform:none}.tool-card[aria-pressed="true"] span{background:#fff!important;color:#263341!important}.tool-card:active{box-shadow:inset 0 2px 0 rgba(0,0,0,.15);transform:none}
@keyframes profile-ring-orbit{to{transform:rotate(360deg)}}@keyframes profile-ring-breathe{0%,100%{opacity:.45;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}@keyframes hero-spot-breathe{0%,100%{box-shadow:0 0 0 8px #fff,0 0 0 11px var(--portrait-frame),0 27px 43px rgba(30,32,37,.2)}50%{box-shadow:0 0 0 9px #fff,0 0 0 13px var(--brand-deep),0 31px 48px rgba(30,32,37,.23)}}
@media(max-width:900px){.profile-rail--wall .profile-avatar{width:112px;height:112px}.hero-portrait--spot{right:6%;bottom:3.5rem;width:214px}.hero-now{left:52%;top:45%;min-width:208px}.hero h1{font-size:clamp(3rem,7vw,5.4rem)}}
@media(max-width:620px){.profile-rail--wall .profile-avatar{width:92px;height:92px}.profile-rail--wall .profile-avatar:before{inset:-7px}.profile-rail--wall .profile-avatar:after{inset:-12px}.rail-skill{min-height:29px;padding:.34rem .44rem;font-size:.48rem}.rail-primary-link,.rail-secondary-link,.profile-rail--wall .profile-download{min-height:37px;font-size:.56rem}.hero{min-height:650px}.hero h1{max-width:6ch;font-size:3.45rem}.hero-portrait--spot{right:1.15rem;bottom:1.6rem;width:142px;box-shadow:0 0 0 5px #fff,0 0 0 7px var(--portrait-frame),0 15px 24px rgba(30,32,37,.18)}.hero-portrait--spot:hover{box-shadow:0 0 0 5px #fff,0 0 0 7px var(--brand-deep),0 15px 24px rgba(30,32,37,.18)}.hero-portrait--spot .portrait-halo{top:-10px;right:-11px}.hero-portrait--spot figcaption{display:none}.hero-now{top:7rem;right:auto;left:50%;min-width:188px;padding:.4rem .52rem;transform:translateX(-50%)}.hero-now .profile-calendar{width:39px;height:43px}.hero-now .profile-calendar b{font-size:.92rem}.hero-now strong{font-size:.86rem}.hero-now em,.hero-now>span:last-child>small{font-size:.38rem}.hero .note-top{top:11.7rem}.hero .note-side{bottom:1.15rem;left:1rem;max-width:150px}.hero .note-left{display:none}}
@media(prefers-reduced-motion:reduce){.profile-rail--wall .profile-avatar:before,.profile-rail--wall .profile-avatar:after,.hero-portrait--spot{animation:none!important}.hero-portrait--spot img{animation:none!important}.rail-skill,.rail-primary-link,.rail-secondary-link,.profile-rail--wall .profile-download,.project-library .build-controls button,.tool-card{transition:none!important}}

/* Wall-of-Portfolios-inspired identity rail: personal, factual, and distinct from the social links below. */
.profile-rail--wall{gap:.72rem;padding:clamp(1.7rem,3.3vw,2.8rem) 1.25rem;border-right:1.25px solid var(--portrait-frame);background:#fff}.rail-kicker{margin:0 0 .15rem;color:#5d6370;font:.47rem var(--mono);letter-spacing:.1em}.profile-rail--wall .profile-avatar{width:112px;height:112px;margin:.05rem 0 .25rem;border:3px solid #fff;box-shadow:0 0 0 2px var(--portrait-frame),0 8px 0 rgba(30,32,37,.14);background:#e8e6e2}.profile-rail--wall .profile-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 14%}.profile-rail--wall .profile-avatar i{right:0;top:8px;width:14px;height:14px;border:2px solid #fff;background:#5b6ff2}.profile-rail--wall .profile-name{gap:.3rem}.profile-rail--wall .profile-name strong{font-size:1.2rem;letter-spacing:-.06em}.profile-rail--wall .profile-name span{color:#4c4f54;font-size:.69rem;line-height:1.35}.profile-rail--wall .profile-location{margin:.25rem 0 0;font-size:.55rem}.rail-experience{display:grid;gap:.28rem;padding:.76rem 0 .7rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.rail-experience span{font-size:.65rem;font-weight:700;letter-spacing:-.025em}.rail-experience small{color:#60636a;font:.47rem/1.45 var(--mono)}.rail-experience-tags{display:flex;flex-wrap:wrap;gap:.35rem}.rail-experience-tags span{padding:.3rem .42rem;border:1px solid rgba(30,32,37,.23);border-radius:99px;background:#fff;font:.43rem var(--mono);color:#4a4f58}.rail-links{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.42rem;margin-top:.45rem}.rail-primary-link,.rail-secondary-link{display:inline-flex;min-width:0;align-items:center;justify-content:center;gap:.28rem;padding:.62rem .38rem;border:1px solid var(--portrait-frame);border-radius:12px;font:.46rem var(--mono);letter-spacing:.02em;transition:transform .2s,box-shadow .2s,background .2s,color .2s}.rail-primary-link{background:var(--portrait-frame);color:#fff}.rail-secondary-link{background:#fff;color:var(--ink)}.rail-primary-link:hover,.rail-secondary-link:hover{box-shadow:3px 3px 0 rgba(30,32,37,.16);transform:translate(-1px,-2px)}.rail-secondary-link:hover{background:#eef1ff;color:#354fcb}.profile-rail--wall .profile-actions{margin-top:.15rem}.profile-rail--wall .profile-download{min-width:0;width:100%;padding:.54rem .6rem;border:1px solid rgba(30,32,37,.35);border-radius:10px;background:#fff;color:var(--ink);font-size:.5rem}.profile-rail--wall .profile-download:hover{background:#f4f5ff;color:#354fcb}.hero-now{position:absolute!important;z-index:4;top:clamp(1.35rem,3vw,2.55rem);left:50%;display:grid;grid-template-columns:43px minmax(0,1fr);gap:.6rem;align-items:center;min-width:190px;padding:.42rem .58rem;border:1px solid rgba(30,32,37,.26);border-radius:14px;background:rgba(255,255,255,.83);box-shadow:4px 4px 0 rgba(30,32,37,.12);transform:translateX(-50%);backdrop-filter:blur(9px)}.hero-now>span:last-child{display:grid;gap:.05rem}.hero-now>span:last-child>small{color:#5d6370;font:.43rem var(--mono);letter-spacing:.08em}.hero-now strong{font-size:.92rem;letter-spacing:-.055em;line-height:1}.hero-now em{color:var(--muted);font:.41rem var(--mono);font-style:normal;line-height:1.35}.hero .note{z-index:5;border:1px solid rgba(30,32,37,.18);box-shadow:5px 6px 0 rgba(30,32,37,.13),0 12px 22px rgba(44,47,58,.09)}.hero .note span{color:#535c6e;font:.42rem var(--mono);letter-spacing:.08em}.hero .note b{color:#425be0;font-size:1rem}.hero .note-top{top:clamp(5.9rem,10vw,7.2rem);right:clamp(1.3rem,4vw,4rem);background:#d8f8a0}.hero .note-side{right:auto;bottom:1.6rem;left:clamp(1.1rem,5vw,4rem);background:#ffd7e6;--note-rotate:-4deg}.hero .note-left{position:absolute;right:clamp(12rem,22vw,20rem);bottom:2.7rem;padding:.95rem 1rem;background:#fff0bd;--note-rotate:3deg}.hero .note-left span{color:#8c7130}
@media(max-width:900px){.profile-rail--wall{display:grid;grid-template-columns:94px minmax(0,1fr);grid-template-areas:"kicker kicker" "avatar name" "avatar location" "experience experience" "tags tags" "links links" "actions actions";gap:.52rem .9rem;padding:1.2rem 1.4rem}.profile-rail--wall .rail-kicker{grid-area:kicker}.profile-rail--wall .profile-avatar{grid-area:avatar;width:88px;height:88px;margin:0}.profile-rail--wall .profile-name{grid-area:name}.profile-rail--wall .profile-location{grid-area:location}.profile-rail--wall .rail-experience{grid-area:experience}.profile-rail--wall .rail-experience-tags{grid-area:tags}.profile-rail--wall .rail-links{grid-area:links;margin:.1rem 0 0}.profile-rail--wall .profile-actions{grid-area:actions;display:block;margin:0}.profile-rail--wall .profile-download{width:100%}.hero-now{left:44%}.hero .note-left{right:27%;bottom:1.5rem}}
@media(max-width:620px){.profile-rail--wall{display:grid;grid-template-columns:74px minmax(0,1fr);grid-template-areas:"kicker kicker" "avatar name" "avatar location" "experience experience" "tags tags" "links links" "actions actions";padding:1rem 1.2rem}.profile-rail--wall .profile-avatar{width:70px;height:70px}.profile-rail--wall .profile-name strong{font-size:1.08rem}.profile-rail--wall .rail-experience{padding:.62rem 0}.profile-rail--wall .rail-links{grid-template-columns:1fr 1fr}.hero-now{top:1.1rem;left:auto;right:1rem;min-width:162px;grid-template-columns:34px minmax(0,1fr);gap:.4rem;padding:.3rem .4rem;transform:none}.hero-now .profile-calendar{width:34px;height:38px;border-radius:9px}.hero-now .profile-calendar b{font-size:.8rem}.hero-now .profile-calendar small{font-size:.34rem}.hero-now strong{font-size:.74rem}.hero-now em,.hero-now>span:last-child>small{font-size:.34rem}.hero .note-top{top:5.2rem;right:.9rem;padding:.7rem .75rem;font-size:.82rem}.hero .note-side{bottom:1rem;left:.9rem;padding:.65rem .7rem;font-size:.78rem}.hero .note-left{display:none}}
/* Final tactile overrides are intentionally kept after legacy responsive rules. */
.profile-rail--wall .profile-avatar{width:142px;height:142px;overflow:visible;isolation:isolate;box-shadow:0 0 0 2px var(--portrait-frame),0 11px 0 rgba(30,32,37,.14)}.profile-rail--wall .profile-avatar img{border-radius:50%}.profile-rail--wall .profile-name strong{font-size:1.28rem}.rail-experience{gap:.42rem}.rail-experience span{font-size:.69rem}.rail-experience small{font:.51rem/1.5 var(--sans);letter-spacing:-.01em}.rail-experience-tags{gap:.42rem}.rail-primary-link,.rail-secondary-link,.profile-rail--wall .profile-download{min-height:39px;border-radius:11px;font:700 .59rem var(--sans);letter-spacing:-.01em;transition:background .2s,color .2s,border-color .2s,box-shadow .2s!important}.rail-primary-link{background:linear-gradient(135deg,#1e2025,#354fcb)}.rail-secondary-link{border-color:#aeb9ef;background:#eef1ff;color:#2c469f}.profile-rail--wall .profile-download{border-color:#ddbd62;background:#fff3c8;color:#664d19}.rail-primary-link:hover,.rail-secondary-link:hover,.profile-rail--wall .profile-download:hover{box-shadow:inset 0 -2px 0 rgba(0,0,0,.18)!important;transform:none}.rail-primary-link:active,.rail-primary-link.is-selected{background:#12141a;box-shadow:inset 0 2px 0 rgba(0,0,0,.4),0 0 0 3px rgba(53,79,203,.18)!important;transform:none}.rail-secondary-link:active,.rail-secondary-link.is-selected{border-color:#405dea;background:#405dea;color:#fff;box-shadow:inset 0 2px 0 rgba(0,0,0,.22),0 0 0 3px rgba(64,93,234,.14)!important;transform:none}.profile-rail--wall .profile-download:active,.profile-rail--wall .profile-download.is-selected{border-color:#b8892e;background:#ffd968;color:#423207;box-shadow:inset 0 2px 0 rgba(0,0,0,.18),0 0 0 3px rgba(255,217,104,.24)!important;transform:none}.hero-now{z-index:6;top:48%;left:52%;min-width:228px;padding:.62rem .76rem;border:1.5px solid var(--portrait-frame);border-radius:17px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(235,240,255,.95));box-shadow:6px 7px 0 rgba(30,32,37,.16),0 10px 23px rgba(43,55,109,.12);transform:translate(-50%,-50%)}.hero-now .profile-calendar{width:50px;height:54px;border:1.5px solid var(--portrait-frame);border-radius:12px;background:#fff}.hero-now .profile-calendar b{font-size:1.2rem}.hero-now .profile-calendar small{font-size:.43rem}.hero-now>span:last-child>small{color:#354fcb;font-size:.48rem;font-weight:700}.hero-now strong{font-size:1.15rem}.hero-now em{font-size:.46rem}
@media(max-width:900px){.profile-rail--wall .profile-avatar{width:112px;height:112px}.hero-now{left:52%;top:45%;min-width:208px}}
@media(max-width:620px){.profile-rail--wall .profile-avatar{width:92px;height:92px}.rail-primary-link,.rail-secondary-link,.profile-rail--wall .profile-download{min-height:37px;font-size:.56rem}.hero-now{top:7rem;right:auto;left:50%;min-width:188px;padding:.4rem .52rem;transform:translateX(-50%)}.hero-now .profile-calendar{width:39px;height:43px}.hero-now .profile-calendar b{font-size:.92rem}.hero-now strong{font-size:.86rem}.hero-now em,.hero-now>span:last-child>small{font-size:.38rem}}
.profile-rail--wall .profile-avatar img{clip-path:circle(50% at 50% 50%)}

/* Inline portfolio search, coloured project states, and location/social refinements. */
.header-search{position:relative;justify-self:start}.site-search-button{box-shadow:inset 0 -2px 0 rgba(30,32,37,.08);transition:background .18s,color .18s,border-color .18s,box-shadow .18s!important}.site-search-button:hover,.site-search-button[aria-expanded="true"]{border-color:#354fcb;background:#e9edff;color:#2d46a7;box-shadow:inset 0 2px 0 rgba(30,32,37,.15),0 0 0 3px rgba(64,93,234,.12)!important;transform:none!important}.site-search-inline{position:absolute;z-index:50;top:calc(100% + 1.42rem);left:0;width:min(448px,calc(100vw - 2.5rem));padding:.8rem;border:1.25px solid var(--portrait-frame);border-radius:15px;background:rgba(255,255,255,.98);box-shadow:7px 8px 0 rgba(30,32,37,.14),0 14px 30px rgba(30,32,37,.11);backdrop-filter:blur(12px)}.site-search-inline[hidden]{display:none}.site-search-inline .search-results{max-height:min(48vh,330px)}.site-search-inline .search-result{transition:background .18s,border-color .18s,box-shadow .18s!important}.site-search-inline .search-result:hover,.site-search-inline .search-result:focus-visible{border-color:#405dea;background:#eef1ff;box-shadow:inset 0 2px 0 rgba(53,79,203,.12);transform:none!important}.search-input-wrap:focus-within{border-color:#354fcb;box-shadow:0 0 0 3px rgba(64,93,234,.13)}

.featured-project{box-shadow:4px 4px 0 rgba(30,32,37,.12);transition:background .2s,border-color .2s,box-shadow .2s!important}.featured-project--blue{background:linear-gradient(135deg,#eff3ff 0%,#fff 70%)}.featured-project--violet{background:linear-gradient(135deg,#f2edff 0%,#fff 70%)}.featured-project--coral{background:linear-gradient(135deg,#fff0ea 0%,#fff 70%)}.featured-project--mint{background:linear-gradient(135deg,#e7faf2 0%,#fff 70%)}.featured-project:hover,.featured-project:focus-within{border-color:var(--portrait-frame);box-shadow:inset 0 3px 0 rgba(30,32,37,.16),0 0 0 3px rgba(30,32,37,.06)!important;transform:none!important}.featured-project--blue:hover,.featured-project--blue:focus-within{background:#dfe7ff}.featured-project--violet:hover,.featured-project--violet:focus-within{background:#e9e1ff}.featured-project--coral:hover,.featured-project--coral:focus-within{background:#ffe0d6}.featured-project--mint:hover,.featured-project--mint:focus-within{background:#d6f7e8}.featured-project>a:hover{background:#202124;transform:none!important;box-shadow:inset 0 2px 0 rgba(255,255,255,.18)}.project-library .build-card{transition:background .2s,border-color .2s,box-shadow .2s!important}.project-library .build-card:hover,.project-library .build-card:focus-within{transform:none!important;box-shadow:inset 0 3px 0 rgba(255,255,255,.14),0 0 0 2px rgba(122,181,245,.22)!important}.project-library .build-card:nth-child(4n+1):hover{background:#21354a}.project-library .build-card:nth-child(4n+2):hover{background:#2d294d}.project-library .build-card:nth-child(4n+3):hover{background:#3b3136}.project-library .build-card:nth-child(4n):hover{background:#233d39}

.location-section{overflow:hidden}.map-navigation{display:block;color:inherit;cursor:pointer;transition:box-shadow .2s,border-color .2s,filter .2s}.map-navigation:hover,.map-navigation:focus-visible{border-color:#354fcb;box-shadow:inset 0 0 0 3px rgba(64,93,234,.13),0 18px 35px rgba(53,79,130,.18);filter:saturate(1.08)}.map-navigation-label{position:absolute;z-index:5;left:1rem;bottom:1rem;display:inline-flex;gap:.4rem;align-items:center;padding:.5rem .65rem;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(30,32,37,.9);box-shadow:0 4px 10px rgba(30,32,37,.15);color:#fff;font:.5rem var(--mono);letter-spacing:.04em}.map-navigation-label b{color:#b8c7ff;font-size:.75rem}.location-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.6rem}.location-actions .location-link{margin-top:0}.location-map-link{display:inline-flex;align-items:center;gap:.3rem;padding:.7rem .1rem;color:#354fcb;font-size:.72rem;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35rem}.location-map-link:hover{color:#202124}.location-link{transition:background .2s,border-color .2s,box-shadow .2s!important}.location-link:hover{background:#dfe7ff;border-color:#405dea;box-shadow:inset 0 2px 0 rgba(53,79,203,.15)!important;transform:none!important}

.social-section{position:relative;overflow:hidden}.social-heading,.social-grid{position:relative;z-index:1}.social-signal-lines{position:absolute;z-index:0;right:clamp(1.2rem,7vw,8rem);top:clamp(3rem,7vw,6rem);display:grid;gap:.55rem;width:clamp(110px,15vw,210px);opacity:.7;pointer-events:none}.social-signal-lines i{display:block;height:1px;border-radius:99px;background:linear-gradient(90deg,transparent,#87a0ff 28%,#ff9a87 58%,transparent);transform-origin:left;animation:social-signal 6s ease-in-out infinite}.social-signal-lines i:nth-child(2){width:76%;margin-left:18%;animation-delay:.8s}.social-signal-lines i:nth-child(3){width:56%;margin-left:8%;animation-delay:1.6s}.social-card{transition:background .2s,border-color .2s,box-shadow .2s!important}.social-card:hover,.social-card:focus-visible{transform:none!important;box-shadow:inset 0 3px 0 rgba(30,32,37,.14),0 0 0 3px rgba(30,32,37,.06)!important}.linkedin-card:hover{background:#eaf2ff}.github-card:hover{background:#eeeeed}.x-card:hover{background:#edf0ff}.instagram-card:hover{background:linear-gradient(122deg,#6454ca,#c35aaf 46%,#ef8d61)}

@keyframes social-signal{0%,100%{opacity:.35;transform:scaleX(.72)}50%{opacity:1;transform:scaleX(1)}}
@media(max-width:620px){.site-search-inline{position:fixed;top:72px;left:1.2rem;width:calc(100vw - 2.4rem);max-height:calc(100vh - 86px);overflow:auto}.site-search-inline .search-results{max-height:calc(100vh - 260px)}.social-signal-lines{right:1.2rem;top:3.3rem;width:105px}.location-actions{margin-top:1.25rem}.map-navigation-label{left:.75rem;bottom:.75rem}}
@media(prefers-reduced-motion:reduce){.site-search-button,.site-search-inline .search-result,.featured-project,.project-library .build-card,.map-navigation,.location-link,.social-card{transition:none!important}.social-signal-lines i{animation:none!important}}

/* Keep the live clock centred in the open hero space, clear of the headline. */
.hero-now{left:64%}
@media(max-width:900px){.hero-now{left:57%}}
@media(max-width:620px){.hero-now{left:50%}}

/* Search grows from the header control itself; only its results drop below the bar. */
.site-search-button{min-width:78px}.header-search.is-open .site-search-button{visibility:hidden;pointer-events:none}.site-search-inline{top:-.18rem;left:-.25rem;width:min(448px,calc(100vw - 2.5rem));padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}.site-search-inline .search-input-wrap{min-height:38px;padding:.22rem .38rem .22rem .78rem;border-color:var(--portrait-frame);border-radius:999px;background:#fff;box-shadow:3px 3px 0 rgba(30,32,37,.12)}.site-search-inline .search-results-panel{margin-top:.62rem;padding:.78rem;border:1.25px solid var(--portrait-frame);border-radius:15px;background:rgba(255,255,255,.98);box-shadow:7px 8px 0 rgba(30,32,37,.14),0 14px 30px rgba(30,32,37,.11);backdrop-filter:blur(12px)}.site-search-inline .search-status{margin:.02rem 0 .62rem}
@media(max-width:900px){.site-search-inline{width:min(360px,calc(100vw - 2.5rem))}}
@media(max-width:620px){.site-search-inline{position:fixed;top:.65rem;left:1.2rem;width:calc(100vw - 2.4rem);max-height:none;overflow:visible}.site-search-inline .search-results-panel{max-height:calc(100vh - 5rem);overflow:auto}.site-search-inline .search-results{max-height:calc(100vh - 16rem)}}

/* Profile photo has a full clear lane; the workbench is now notes-first, not CTA-first. */
.profile-rail--wall .profile-avatar{width:178px;height:178px;flex:none;margin:.35rem auto 1.35rem}.profile-rail--wall .profile-avatar img{object-position:center 14%}.profile-rail--wall .profile-name{margin-top:0}.profile-rail--wall .profile-name strong{font-size:1.34rem}.hero{min-height:700px;padding:1.5rem clamp(2rem,7vw,8rem);background:linear-gradient(135deg,#fff 0%,#fff 57%,#f4f7ff 100%)}.hero-now{z-index:8;top:50%;left:50%;transform:translate(-50%,-50%)}.hero .note{z-index:5;min-width:150px;min-height:102px;margin:0;border:1.25px solid rgba(30,32,37,.52);border-radius:5px;box-shadow:6px 7px 0 rgba(30,32,37,.16),0 12px 21px rgba(43,50,77,.1);color:#25272d;font:1.12rem/1.2 var(--hand);text-align:left}.hero .note:hover,.hero .note:focus-visible{box-shadow:inset 0 2px 0 rgba(255,255,255,.55),7px 8px 0 rgba(30,32,37,.2),0 14px 24px rgba(43,50,77,.14);outline:none}.hero .note:focus-visible{outline:2px solid var(--brand-deep);outline-offset:5px}.hero .note span{display:block;margin-bottom:.28rem;font:700 .45rem var(--mono);letter-spacing:.1em}.note-rag{top:13%;left:8%;background:linear-gradient(135deg,#bed1ff,#e6ecff);--note-rotate:-4deg}.hero .note-side{bottom:12%;left:9%;right:auto;max-width:none;background:linear-gradient(135deg,#b9f3df,#d9fff1);--note-rotate:3deg}.hero .note-left{right:8%;bottom:auto;top:15%;padding:1.1rem 1rem;background:linear-gradient(135deg,#ffe08a,#fff1bd);--note-rotate:4deg}.note-center{right:9%;bottom:12%;background:linear-gradient(135deg,#f3d9ff,#e9e0ff);--note-rotate:-3deg}.note-coral{bottom:8%;left:41%;background:linear-gradient(135deg,#ffb4a3,#ffd9c9);--note-rotate:2deg}.notes-reset{position:absolute;z-index:7;right:1.2rem;bottom:1rem;padding:.42rem .62rem;border:1px solid rgba(30,32,37,.28);border-radius:999px;background:rgba(255,255,255,.8);color:#525862;cursor:pointer;font:.48rem var(--mono);letter-spacing:.04em;transition:background .18s,color .18s,box-shadow .18s}.notes-reset:hover,.notes-reset:focus-visible{background:#202124;color:#fff;box-shadow:inset 0 2px 0 rgba(255,255,255,.16);outline:2px solid var(--brand-deep);outline-offset:3px}.notes-reset:active{box-shadow:inset 0 2px 0 rgba(0,0,0,.28)}
@media(max-width:900px){.profile-rail--wall{grid-template-columns:1fr;grid-template-areas:"kicker" "avatar" "name" "location" "experience" "tags" "links" "actions";gap:.55rem;padding:1.4rem}.profile-rail--wall .profile-avatar{justify-self:start;width:156px;height:156px;margin:.45rem 0 1.15rem}.profile-rail--wall .profile-name{justify-content:flex-start}.hero{min-height:720px}.hero-now{left:50%;top:50%}.note-rag{left:7%;top:10%}.hero .note-left{right:6%;top:12%}.hero .note-side{left:7%;bottom:12%}.note-center{right:7%;bottom:12%}.note-coral{bottom:8%;left:40%}}
@media(max-width:620px){.profile-rail--wall{padding:1.15rem 1.2rem}.profile-rail--wall .profile-avatar{width:142px;height:142px;margin:.3rem 0 1rem}.profile-rail--wall .profile-name strong{font-size:1.28rem}.hero{min-height:790px;padding:1rem 1.1rem}.hero-now{top:3.8rem;left:50%;min-width:188px}.hero .note{min-width:126px;min-height:88px;padding:.72rem .75rem;font-size:.88rem}.hero .note span{font-size:.37rem}.note-rag{top:10.5rem;left:1.1rem}.hero .note-left{top:17.5rem;right:1.1rem;left:auto}.hero .note-side{bottom:13.5rem;left:1.1rem}.note-center{right:1.1rem;bottom:7rem}.note-coral{bottom:1.4rem;left:28%;--note-rotate:2deg}.notes-reset{right:1.1rem;bottom:.6rem}}

/* Typography and profile panel — aligned with Wall of Portfolios' calm Inter-led hierarchy. */
:root{--sans:"Inter",sans-serif;--mono:"Inter",sans-serif}
.profile-rail--wall .profile-avatar img{object-position:center 12%;filter:none}
.rail-profile-button{display:flex;align-items:center;justify-content:space-between;gap:.45rem;width:100%;margin-top:.1rem;padding:.68rem .7rem;border:1px solid rgba(30,32,37,.35);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;font:600 .69rem var(--sans);text-align:left;transition:background .18s,color .18s,border-color .18s,box-shadow .18s}.rail-profile-button span{display:grid;place-items:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;font-size:.5rem}.rail-profile-button b{margin-left:auto;font-size:.76rem}.rail-profile-button:hover,.rail-profile-button[aria-expanded="true"]{border-color:#202124;background:#202124;color:#fff;box-shadow:inset 0 2px 0 rgba(255,255,255,.13)}.rail-profile-button:focus-visible{outline:2px solid #405dea;outline-offset:4px}
.profile-dialog{width:min(760px,calc(100vw - 2rem));max-height:min(770px,calc(100vh - 2rem));margin:auto;padding:0;border:1px solid rgba(30,32,37,.36);border-radius:22px;background:#fff;color:var(--ink);box-shadow:0 26px 80px rgba(10,12,18,.3)}.profile-dialog::backdrop{background:rgba(20,22,28,.68);backdrop-filter:blur(4px)}.profile-dialog-card{position:relative;display:grid;gap:1.65rem;min-height:520px;padding:clamp(1.6rem,4vw,2.7rem);overflow:auto;background-color:#fff;background-image:linear-gradient(45deg,transparent 48%,rgba(31,35,42,.055) 49%,rgba(31,35,42,.055) 51%,transparent 52%),linear-gradient(-45deg,transparent 48%,rgba(31,35,42,.055) 49%,rgba(31,35,42,.055) 51%,transparent 52%);background-size:80px 80px}.profile-dialog-close{position:absolute;top:1rem;right:1rem;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(30,32,37,.3);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer;font-size:1.2rem;line-height:1;transition:background .18s,color .18s}.profile-dialog-close:hover{background:#202124;color:#fff}.profile-dialog-close:focus-visible{outline:2px solid #405dea;outline-offset:3px}.profile-dialog-intro{display:flex;align-items:center;gap:1.15rem;padding-right:2.5rem}.profile-dialog-intro img{width:118px;height:118px;flex:none;border:3px solid #fff;border-radius:50%;object-fit:cover;object-position:center 12%;box-shadow:0 0 0 1.5px #202124,0 8px 0 rgba(30,32,37,.14)}.profile-dialog-intro p{margin:0 0 .65rem;color:#5e6470;font:600 .65rem var(--mono);letter-spacing:.12em}.profile-dialog-intro h2{margin:0;letter-spacing:-.07em;font-size:clamp(2rem,5vw,3.2rem);line-height:.95}.profile-dialog-intro span{display:block;margin-top:.55rem;color:#5b606a;font-size:.88rem}.profile-dialog-copy,.profile-dialog-experience{max-width:610px}.profile-dialog-copy h3,.profile-dialog-experience h3{margin:0 0 .6rem;font-size:1.2rem;letter-spacing:-.045em}.profile-dialog-copy p,.profile-dialog-experience p{margin:0;color:#3f434b;font-size:.94rem;line-height:1.65}.profile-dialog-experience{padding-top:1.45rem;border-top:1px solid rgba(30,32,37,.2)}.profile-dialog-experience>div{display:flex;flex-wrap:wrap;gap:.48rem;margin-top:1rem}.profile-dialog-experience span{padding:.42rem .58rem;border:1px solid rgba(30,32,37,.25);border-radius:99px;background:rgba(255,255,255,.8);font-size:.68rem}.profile-dialog-actions{display:flex;flex-wrap:wrap;gap:.55rem;padding-top:.1rem}.profile-dialog-actions a{display:inline-flex;align-items:center;gap:.3rem;padding:.65rem .78rem;border:1px solid rgba(30,32,37,.35);border-radius:10px;background:#fff;font-size:.76rem;font-weight:600;transition:background .18s,color .18s,box-shadow .18s}.profile-dialog-actions a:hover{background:#202124;color:#fff;box-shadow:inset 0 2px 0 rgba(255,255,255,.13)}.profile-dialog-actions a:focus-visible{outline:2px solid #405dea;outline-offset:3px}
@media(max-width:620px){.rail-profile-button{font-size:.66rem}.profile-dialog{width:calc(100vw - 1.25rem);max-height:calc(100vh - 1.25rem);border-radius:17px}.profile-dialog-card{min-height:0;gap:1.25rem;padding:1.35rem}.profile-dialog-intro{align-items:flex-start;gap:.9rem;padding-right:1.8rem}.profile-dialog-intro img{width:84px;height:84px}.profile-dialog-intro p{margin-bottom:.45rem;font-size:.54rem}.profile-dialog-intro h2{font-size:1.8rem}.profile-dialog-intro span{font-size:.7rem;line-height:1.4}.profile-dialog-copy p,.profile-dialog-experience p{font-size:.84rem}.profile-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.profile-dialog-actions a:last-child{grid-column:span 2;justify-content:center}}

/* The build library should be readable at a normal 100% browser zoom, not only after zooming in. */
@media(min-width:1081px){
  .site-shell{grid-template-columns:278px minmax(0,1fr);max-width:1680px}
  .profile-rail{padding-inline:2.35rem}
  .project-library{padding-block:clamp(4.8rem,7.5vw,7.5rem);padding-inline:clamp(2.4rem,5vw,5.6rem)}
  .project-library-heading{max-width:1240px;margin-inline:auto}
  .project-library .build-controls,.project-library .build-count,.project-library .build-grid,.project-library .update-callout{max-width:1240px;margin-inline:auto}
  .project-library .build-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem}
  .project-library .build-card{min-height:300px;padding:1.45rem 1.4rem 1.35rem}
  .project-library .build-card-top span{font-size:.82rem}
  .project-library .build-card-top b{font-size:.5rem}
  .project-library .build-card h3{margin-top:1.15rem;font-size:clamp(1.85rem,2.35vw,2.45rem)}
  .project-library .build-card p{font-size:.9rem;line-height:1.62}
  .project-library .build-tags li{padding:.3rem .45rem;font-size:.52rem}
  .project-library .build-action,.project-library .build-private,.project-library .build-save{min-height:34px;padding:.5rem .66rem;font-size:.54rem}
}

/* Card feedback stays light and legible; the previous dark hover fill hid the dark type. */
.project-library .build-card:hover,.project-library .build-card:focus-within{border-color:var(--portrait-frame);color:var(--ink);box-shadow:inset 0 3px 0 rgba(30,32,37,.11),7px 8px 0 rgba(30,32,37,.15)!important;transform:none!important}
.project-library .build-card--blue:hover,.project-library .build-card--blue:focus-within{background:#dce6ff}
.project-library .build-card--violet:hover,.project-library .build-card--violet:focus-within{background:#e9e2ff}
.project-library .build-card--coral:hover,.project-library .build-card--coral:focus-within{background:#ffe0d8}
.project-library .build-card--mint:hover,.project-library .build-card--mint:focus-within{background:#d8f6e9}
.project-library .build-card--sun:hover,.project-library .build-card--sun:focus-within{background:#fff0b7}
.project-library .build-card:hover h3,.project-library .build-card:focus-within h3{color:var(--ink)}
.project-library .build-card:hover p,.project-library .build-card:focus-within p{color:#3e4653}
.project-library .build-card:hover .build-card-top span,.project-library .build-card:focus-within .build-card-top span{color:#303743}
.project-library .build-card:hover .build-card-top b,.project-library .build-card:focus-within .build-card-top b{border-color:rgba(30,32,37,.42);color:#303743}

/* A clean, wider face and a larger desktop baseline make the portfolio readable at normal browser zoom. */
:root{--sans:"Manrope","Inter",sans-serif;--mono:"Manrope","Inter",sans-serif}
@media(min-width:1081px){
  html{font-size:17px}
  .profile-rail--wall .rail-kicker{font-size:.66rem}
  .profile-rail--wall .profile-name{gap:.52rem}
  .profile-rail--wall .profile-name strong{font-size:1.48rem;line-height:1.04}
  .profile-rail--wall .profile-name span{font-size:.83rem;line-height:1.55}
  .profile-rail--wall .profile-location{margin-top:1.55rem;font-size:.68rem}
  .profile-rail--wall .rail-experience{gap:.58rem;margin-top:1.35rem}
  .profile-rail--wall .rail-experience>span{font-size:.84rem;line-height:1.45}
  .profile-rail--wall .rail-experience small{font-size:.71rem;line-height:1.55}
  .profile-rail--wall .rail-skill{padding:.54rem .65rem;font-size:.63rem}
  .profile-rail--wall .rail-profile-button{margin-top:.45rem;padding:.82rem .8rem;font-size:.78rem}
  .profile-rail--wall .rail-primary-link,.profile-rail--wall .rail-secondary-link,.profile-rail--wall .profile-download{font-size:.71rem}
  .quick-dock{gap:.82rem;padding:.65rem .82rem}
  .quick-dock a,.quick-dock button{width:56px;height:56px;border-radius:18px;font-size:1.85rem}
  .quick-dock .dock-search-button{font-size:1.5rem}
  .quick-dock [data-dock-label]:before{padding:.48rem .7rem;font-size:.68rem}
}

/* Keep the profile portrait clean: one deliberate frame and clear breathing room for the identity below. */
.profile-rail--wall .profile-avatar{width:148px;height:148px;margin:.7rem auto 2rem;overflow:hidden;border:2px solid #202124;border-radius:50%;background:#f2f1ed;box-shadow:0 5px 0 rgba(30,32,37,.14)}
.profile-rail--wall .profile-avatar::before,.profile-rail--wall .profile-avatar::after{display:none}
.profile-rail--wall .profile-avatar img{display:block;width:100%;height:100%;border-radius:0;clip-path:none;object-fit:cover;object-position:center 10%;transform:none;filter:none}
.profile-rail--wall .profile-name{width:100%;margin:0;text-align:center}
.profile-rail--wall .profile-name strong{display:block;font-size:1.3rem;line-height:1.15}
.profile-rail--wall .profile-name span{display:block;margin-top:.42rem}
.profile-rail--wall .profile-location{justify-content:center;margin-top:.6rem}
@media(max-width:900px){.profile-rail--wall .profile-avatar{width:136px;height:136px;margin:.55rem 0 1.5rem}.profile-rail--wall .profile-name{text-align:left}.profile-rail--wall .profile-location{justify-content:flex-start}}
@media(max-width:620px){.profile-rail--wall .profile-avatar{width:124px;height:124px;margin:.45rem 0 1.3rem}.profile-rail--wall .profile-name strong{font-size:1.2rem}}

/* Interactive notes and toolkit ordering use the same friendly type system as the Wall reference. */
:root{--sans:"Satoshi","Inter",sans-serif;--mono:"Satoshi","Inter",sans-serif;--hand:"Gaegu","Gochi Hand",cursive}
.hero .note{min-width:172px;min-height:124px;font:1.28rem/1.16 var(--hand)}
.hero .note span{font-family:var(--sans)}
.toolkit-notes{position:relative;min-height:560px;overflow:visible;padding:.9rem;border:1px dashed rgba(30,32,37,.18);border-radius:20px;background:rgba(255,255,255,.5)}
.toolkit-note-hint{position:absolute;z-index:4;top:1rem;left:1rem;margin:0;color:#454b56;font:700 .8rem var(--hand)}
.toolkit-notes .mini-note{--note-rotate:-2deg;--drag-x:0px;--drag-y:0px;display:grid;place-items:center;min-width:178px;min-height:160px;margin:0;padding:1rem;border:1.25px solid rgba(30,32,37,.52);border-radius:5px;box-shadow:6px 7px 0 rgba(30,32,37,.16),0 12px 21px rgba(43,50,77,.1);color:#25272d;cursor:grab;font:1.22rem/1.15 var(--hand);text-align:center;touch-action:none;user-select:none;transform:translate(var(--drag-x),var(--drag-y)) rotate(var(--note-rotate));transition:box-shadow .2s,transform .18s ease}
.toolkit-notes .mini-note span{display:block;margin-bottom:.3rem;color:#4e5666;font:700 .52rem var(--sans);letter-spacing:.1em}.toolkit-notes .mini-note:active{cursor:grabbing}.toolkit-notes .mini-note:hover,.toolkit-notes .mini-note:focus-visible{z-index:5;box-shadow:inset 0 2px 0 rgba(255,255,255,.58),7px 8px 0 rgba(30,32,37,.2),0 15px 24px rgba(43,50,77,.14);outline:none}.toolkit-notes .mini-note:focus-visible{outline:2px solid #405dea;outline-offset:5px}.toolkit-notes .mini-note.is-dragging{z-index:6;transition:none}.toolkit-notes .mint-note{top:13%;left:3%;background:#baffc7;--note-rotate:-3deg}.toolkit-notes .coral-note{top:25%;right:2%;background:#ffa4a7;--note-rotate:2deg}.toolkit-notes .butter-note{bottom:13%;left:7%;background:#ffe39b;--note-rotate:-1deg}.toolkit-notes .sky-note{right:7%;bottom:3%;min-width:164px;min-height:148px;background:#8edaf0;--note-rotate:2deg;font-size:2.5rem}.toolkit-notes .sky-note small{font:700 .58rem var(--sans);letter-spacing:.08em}.toolkit-notes-reset{position:absolute;z-index:7;right:.85rem;top:.8rem;padding:.43rem .62rem;border:1px solid rgba(30,32,37,.28);border-radius:999px;background:rgba(255,255,255,.88);color:#525862;cursor:pointer;font:700 .6rem var(--sans);transition:background .18s,color .18s,box-shadow .18s}.toolkit-notes-reset:hover,.toolkit-notes-reset:focus-visible{background:#202124;color:#fff;box-shadow:inset 0 2px 0 rgba(255,255,255,.16);outline:2px solid #405dea;outline-offset:3px}.toolkit-notes-reset:active{box-shadow:inset 0 2px 0 rgba(0,0,0,.28)}
.tool-drag-hint{margin:.6rem 0 1rem;color:#5c6370;font-size:.72rem;line-height:1.45}.tool-grid .tool-card[draggable="true"]{cursor:grab;user-select:none}.tool-grid .tool-card[draggable="true"]:active{cursor:grabbing}.tool-grid .tool-card.is-tool-dragging{opacity:.46;box-shadow:inset 0 0 0 2px #405dea!important;transform:scale(.96)!important}.tool-grid .tool-card:focus-visible{outline:2px solid #405dea;outline-offset:4px}
@media(max-width:1000px){.toolkit-notes{min-height:520px;max-width:none}.toolkit-notes .mini-note{min-width:162px;min-height:146px;font-size:1.12rem}}
@media(max-width:620px){.hero .note{min-width:136px;min-height:96px;font-size:.98rem}.toolkit-notes{min-height:490px;padding:.6rem;border-radius:15px}.toolkit-note-hint{top:.7rem;left:.7rem;font-size:.7rem}.toolkit-notes .mini-note{min-width:132px;min-height:116px;padding:.65rem;font-size:.94rem}.toolkit-notes .mini-note span{font-size:.4rem}.toolkit-notes .mint-note{top:14%;left:2%}.toolkit-notes .coral-note{top:31%;right:2%}.toolkit-notes .butter-note{bottom:12%;left:3%}.toolkit-notes .sky-note{right:4%;bottom:2%;min-width:124px;min-height:108px;font-size:1.9rem}.toolkit-notes-reset{top:.55rem;right:.55rem;font-size:.5rem}.tool-drag-hint{font-size:.66rem}}
@media(prefers-reduced-motion:reduce){.hero .note[data-drag-note],.toolkit-notes .mini-note[data-drag-note]{cursor:grab}}
@media(prefers-reduced-motion:reduce){.hero .note,.notes-reset{transition:none!important}.hero .note[data-drag-note]{cursor:default}}

/* Final readable type token: this comes after legacy visual layers by design. */
:root{--sans:"Manrope","Inter",sans-serif;--mono:"Manrope","Inter",sans-serif}
@media(min-width:1081px){
  .profile-rail--wall .profile-name span{font-size:.86rem}
  .profile-rail--wall .rail-experience>span{font-size:.9rem}
  .profile-rail--wall .rail-experience small{font-size:.76rem}
  .profile-rail--wall .rail-skill{font-size:.68rem}
  .profile-rail--wall .rail-profile-button{font-size:.82rem}
  .profile-rail--wall .rail-primary-link,.profile-rail--wall .rail-secondary-link,.profile-rail--wall .profile-download{font-size:.75rem}
}

/* Brand-logo toolkit: every chosen tool gets its own readable colour and tactile selected state. */
.tool-grid{grid-template-columns:repeat(4,minmax(128px,1fr));gap:1rem}
.tool-card{--tool-fill:#eef1ff;--tool-strong:#405dea;min-height:138px;padding:.85rem .65rem;border:1.25px solid rgba(30,32,37,.56);border-radius:17px;background:linear-gradient(145deg,#fff 12%,var(--tool-fill));box-shadow:4px 5px 0 rgba(30,32,37,.13);color:#202124;transform:translateZ(0);transition:transform .24s cubic-bezier(.16,1,.3,1),background .22s,border-color .22s,box-shadow .22s!important}
.tool-card span{width:46px;height:46px;border:1px solid rgba(30,32,37,.12);border-radius:14px;background:rgba(255,255,255,.84);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.tool-card .tool-logo{display:block;width:27px;height:27px;object-fit:contain;filter:none}
.tool-card .tool-logo--fallback{display:grid;place-items:center;color:var(--tool-strong);font:800 .92rem/1 var(--sans);font-style:normal}
.tool-card b{font:700 .84rem/1.22 var(--sans);letter-spacing:-.035em}
.tool-card:hover,.tool-card:focus-visible{border-color:var(--tool-strong);background:linear-gradient(145deg,#fff 5%,var(--tool-fill));box-shadow:inset 0 2px 0 rgba(255,255,255,.72),7px 8px 0 rgba(30,32,37,.16);transform:translateY(-4px) rotate(-.65deg);outline:none}
.tool-card:focus-visible{outline:2px solid #405dea;outline-offset:4px}
.tool-card[aria-pressed="true"]{border-color:var(--tool-strong);background:var(--tool-fill)!important;box-shadow:inset 0 3px 0 rgba(255,255,255,.72),7px 8px 0 rgba(30,32,37,.18),0 0 0 4px color-mix(in srgb,var(--tool-strong) 18%,transparent);color:#202124;transform:translateY(-4px) rotate(1.1deg)!important}
.tool-card[aria-pressed="true"] span{background:#fff!important;color:inherit!important}
.tool-card[aria-pressed="true"] b:after{color:var(--tool-strong);content:" ✓"}
.tool-card.python{--tool-fill:#e5f1ff;--tool-strong:#3776ab}.tool-card.fastapi{--tool-fill:#dcf9f0;--tool-strong:#009688}.tool-card.next{--tool-fill:#efefef;--tool-strong:#202124}.tool-card.react{--tool-fill:#dbf7ff;--tool-strong:#1595b8}.tool-card.openai{--tool-fill:#e6f5ed;--tool-strong:#287356}.tool-card.gemini{--tool-fill:#eae6ff;--tool-strong:#6758df}.tool-card.claude{--tool-fill:#ffe8df;--tool-strong:#b45938}.tool-card.canva{--tool-fill:#dbf8fb;--tool-strong:#00a8b5}.tool-card.figma{--tool-fill:#ffe8ef;--tool-strong:#dc4677}.tool-card.langchain{--tool-fill:#eaf1e7;--tool-strong:#456c3e}.tool-card.postgres{--tool-fill:#e4edff;--tool-strong:#4169a1}.tool-card.supabase{--tool-fill:#def9ea;--tool-strong:#249d63}.tool-card.node{--tool-fill:#e7f3dd;--tool-strong:#5d8b38}.tool-card.typescript{--tool-fill:#e0ecff;--tool-strong:#3178c6}.tool-card.git{--tool-fill:#f1f1f1;--tool-strong:#252525}.tool-card.vercel{--tool-fill:#f0f0f0;--tool-strong:#202124}
.toolkit-main.is-tool-reacting{animation:toolkit-tilt .38s cubic-bezier(.16,1,.3,1)}
@keyframes toolkit-tilt{0%{transform:rotate(0)}38%{transform:rotate(-.45deg) translateX(-3px)}100%{transform:rotate(0)}}

/* The left rail uses the same colourful material language without becoming another busy panel. */
.profile-rail--wall .rail-experience{padding:1rem .9rem;border:1px solid rgba(30,32,37,.22);border-radius:16px;background:linear-gradient(145deg,#fff 18%,#eef1ff);box-shadow:3px 4px 0 rgba(30,32,37,.1)}
.profile-rail--wall .rail-experience-tags{padding:.22rem 0 .05rem}.profile-rail--wall .rail-skill{border-width:1px;box-shadow:inset 0 -2px 0 rgba(30,32,37,.08)}
.profile-rail--wall .rail-skill--blue{background:#e6ebff;border-color:#aebcf6}.profile-rail--wall .rail-skill--coral{background:#ffe1da;border-color:#f2aa9b}.profile-rail--wall .rail-skill--mint{background:#dcf8eb;border-color:#8edab7}
.profile-rail--wall .rail-profile-button{border-color:#405dea;background:linear-gradient(135deg,#edf0ff,#fff);box-shadow:3px 3px 0 rgba(64,93,234,.13);color:#263caa}.profile-rail--wall .rail-profile-button:hover,.profile-rail--wall .rail-profile-button[aria-expanded="true"]{background:#405dea;color:#fff}

/* The time card gets a quiet orbit caption while preserving the actual time as the primary detail. */
.hero-now{overflow:visible}.hero-now-orbit{position:absolute;z-index:-1;top:-1.15rem;left:50%;padding:.18rem .52rem;border:1px dashed rgba(64,93,234,.43);border-radius:999px;background:#fff;color:#354fcb;font:700 .42rem var(--sans);font-style:normal;letter-spacing:.11em;white-space:nowrap;transform:translateX(-50%);animation:orbit-caption 9s linear infinite}
@keyframes orbit-caption{0%,100%{transform:translateX(-50%) rotate(0deg)}50%{transform:translateX(-50%) rotate(2deg)}}
.quick-dock a:nth-child(1):hover,.quick-dock a:nth-child(1):focus-visible{background:#e8f6ef}.quick-dock a:nth-child(2):hover,.quick-dock a:nth-child(2):focus-visible{background:#e9edff}.quick-dock a:nth-child(3):hover,.quick-dock a:nth-child(3):focus-visible{background:#ffe7df}.quick-dock a:nth-child(4):hover,.quick-dock a:nth-child(4):focus-visible{background:#fff1bd}.quick-dock a:nth-child(5):hover,.quick-dock a:nth-child(5):focus-visible{background:#eee8ff}
@media(max-width:620px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem}.tool-card{min-height:122px}.tool-card b{font-size:.78rem}.tool-card span{width:42px;height:42px}.hero-now-orbit{top:-.9rem;font-size:.34rem}}
@media(prefers-reduced-motion:reduce){.toolkit-main.is-tool-reacting,.hero-now-orbit{animation:none}.tool-card:hover,.tool-card:focus-visible,.tool-card[aria-pressed="true"]{transform:none!important}}

/* A stable single-viewport identity rail: all useful profile details stay in one calm, fixed place. */
@media(min-width:901px){
  .site-shell{grid-template-columns:350px minmax(0,1fr)}
  .profile-rail--wall{position:sticky;top:72px;box-sizing:border-box;align-self:start;justify-content:center;gap:.7rem;height:calc(100dvh - 72px);min-height:0;padding:1.1rem 1.65rem 1rem;overflow:hidden}
  .profile-rail--wall .rail-kicker{display:none}
  .profile-rail--wall .profile-avatar{width:150px;height:150px;margin:0 auto .5rem}
  .profile-rail--wall .profile-name strong{font-size:1.58rem;line-height:1.08}
  .profile-rail--wall .profile-name span{margin-top:.45rem;font-size:.97rem;line-height:1.4}
  .profile-rail--wall .profile-location{margin-top:.15rem;font-size:.84rem}
  .profile-rail--wall .rail-experience{gap:.48rem;margin-top:.15rem;padding:.85rem .9rem}
  .profile-rail--wall .rail-experience>span{font-size:1rem;line-height:1.35}
  .profile-rail--wall .rail-experience small{font-size:.81rem;line-height:1.48}
  .profile-rail--wall .rail-experience-tags{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;padding:.1rem 0}
  .profile-rail--wall .rail-skill{justify-content:center;padding:.52rem .55rem;font-size:.68rem;text-align:center}
  .profile-rail--wall .rail-skill:last-child{grid-column:span 2}
  .profile-rail--wall .rail-profile-button{min-height:44px;margin-top:.1rem;padding:.72rem .78rem;font-size:.82rem}
  .profile-rail--wall .rail-links{gap:.5rem;margin-top:0}
  .profile-rail--wall .rail-primary-link,.profile-rail--wall .rail-secondary-link{min-height:44px;padding:.56rem .4rem;font-size:.72rem;line-height:1.18;text-align:center}
  .profile-rail--wall .profile-actions{margin-top:0}
  .profile-rail--wall .profile-download{min-height:44px;padding:.62rem .68rem;font-size:.75rem}
}
@media(min-width:901px) and (max-height:760px){
  .profile-rail--wall{gap:.5rem;padding-block:.75rem}
  .profile-rail--wall .profile-avatar{width:104px;height:104px;margin-bottom:.25rem}
  .profile-rail--wall .profile-name strong{font-size:1.3rem}
  .profile-rail--wall .profile-name span{font-size:.8rem}
  .profile-rail--wall .rail-experience{padding:.68rem .75rem}
  .profile-rail--wall .rail-experience>span{font-size:.82rem}
  .profile-rail--wall .rail-experience small{font-size:.68rem}
  .profile-rail--wall .rail-skill{padding:.4rem;font-size:.6rem}
  .profile-rail--wall .rail-profile-button,.profile-rail--wall .rail-primary-link,.profile-rail--wall .rail-secondary-link,.profile-rail--wall .profile-download{min-height:38px;font-size:.65rem}
}

/* Project cards use bright tints and dark type in every interactive state; no selected card may become unreadable. */
.project-library .build-card.build-card--blue:hover,.project-library .build-card.build-card--blue:focus-within,.project-library .build-card.build-card--blue.is-selected{background:#e3ebff!important}
.project-library .build-card.build-card--violet:hover,.project-library .build-card.build-card--violet:focus-within,.project-library .build-card.build-card--violet.is-selected{background:#eee9ff!important}
.project-library .build-card.build-card--coral:hover,.project-library .build-card.build-card--coral:focus-within,.project-library .build-card.build-card--coral.is-selected{background:#ffe8e2!important}
.project-library .build-card.build-card--mint:hover,.project-library .build-card.build-card--mint:focus-within,.project-library .build-card.build-card--mint.is-selected{background:#e2f8ee!important}
.project-library .build-card.build-card--sun:hover,.project-library .build-card.build-card--sun:focus-within,.project-library .build-card.build-card--sun.is-selected{background:#fff3c8!important}
.project-library .build-card.is-selected{border-color:#202124;box-shadow:inset 0 3px 0 rgba(255,255,255,.9),7px 8px 0 rgba(30,32,37,.18)!important}
.project-library .build-card:hover h3,.project-library .build-card:focus-within h3,.project-library .build-card.is-selected h3{color:#171a20!important}
.project-library .build-card:hover p,.project-library .build-card:focus-within p,.project-library .build-card.is-selected p{color:#29313c!important}
.project-library .build-card:hover .build-card-top span,.project-library .build-card:focus-within .build-card-top span,.project-library .build-card.is-selected .build-card-top span{color:#242c36!important}
.project-library .build-card:hover .build-card-top b,.project-library .build-card:focus-within .build-card-top b,.project-library .build-card.is-selected .build-card-top b{border-color:rgba(23,26,32,.42);color:#242c36!important}
.project-library .build-card:hover .build-tags li,.project-library .build-card:focus-within .build-tags li,.project-library .build-card.is-selected .build-tags li{background:rgba(255,255,255,.8);color:#27303a}

/* A two-photo event keeps the community moment and Nitish's quiz win together without losing either image. */
.event-card .event-media{display:block;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 35%,#fff,#e6e9f4)}
.event-card .event-media--duo{display:grid;grid-template-columns:1.25fr .75fr;gap:8px;padding:9px}
.event-card .event-media img{display:block;width:100%;height:100%;min-height:0;padding:0!important;border-radius:13px;object-fit:cover!important;object-position:center!important;background:#edf0f7}
.event-card .event-media--duo img:first-child{object-position:center 52%!important}
.event-card .event-media--duo img:last-child{object-position:center 38%!important}
@media(max-width:620px){.event-card .event-media--duo{gap:6px;padding:7px}.event-card .event-media img{border-radius:10px}}

/* The workbench is the site's playful focal point: six readable, movable notes orbit a live clock and a real build update. */
.hero{min-height:840px}
.hero-now{top:11%!important;left:50%!important;z-index:9}
.hero-build-update{position:absolute!important;z-index:7;top:45%;left:50%;width:min(330px,31vw);padding:1rem 1.1rem;border:1.5px solid var(--portrait-frame);border-radius:17px;background:linear-gradient(135deg,#ffffff 8%,#eef2ff);box-shadow:6px 7px 0 rgba(30,32,37,.14),0 13px 28px rgba(43,55,109,.1);color:var(--ink);text-align:center;transform:translate(-50%,-50%)}
.hero-build-update span{display:block;color:#354fcb;font:800 .53rem/1.2 var(--mono);letter-spacing:.1em}
.hero-build-update strong{display:block;margin:.42rem 0 .35rem;font:800 1.22rem/1.08 var(--sans);letter-spacing:-.05em}
.hero-build-update p{margin:0;color:#4d5562;font:.73rem/1.45 var(--sans)}
.hero .note{min-width:205px;min-height:150px;padding:1.2rem 1.25rem;font:1.58rem/1.12 var(--hand)}
.hero .note span{margin-bottom:.4rem;font:800 .58rem/1.2 var(--mono);letter-spacing:.1em}
.hero .note-side [data-hero-internship-count]{color:#117153;font:900 1.5rem/1 var(--sans);letter-spacing:-.065em}
.note-rag{top:20%;left:6%}
.hero .note-left{top:20%;right:6%}
.note-agent-loop{bottom:8%;left:6%;background:linear-gradient(135deg,#bff2ec,#e0fbf5);--note-rotate:-2deg}
.hero .note-side{bottom:8%;right:6%;left:auto}
.note-center{top:57%;right:20%;bottom:auto}
.note-coral{top:57%;bottom:auto;left:20%}
@media(max-width:1000px){
  .hero{min-height:820px}
  .hero .note{min-width:178px;min-height:134px;padding:1rem 1.05rem;font-size:1.35rem}
  .hero-build-update{width:min(292px,42vw)}
  .note-rag{left:4%;top:20%}.hero .note-left{right:4%;top:20%}.note-agent-loop{left:4%;bottom:7%}.hero .note-side{right:4%;bottom:7%}.note-center{right:16%;top:58%}.note-coral{left:16%;top:58%}
}

/* Website credentials stay scannable here; the downloadable CV remains a separately supplied PDF. */
.credentials-section{position:relative;z-index:1;margin-top:2.6rem;padding-top:2.4rem;border-top:1px solid rgba(30,32,37,.2)}
.credentials-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:.55rem 2rem;align-items:end;margin-bottom:1.1rem}
.credentials-heading .eyebrow{grid-column:1/-1;margin:0}
.credentials-heading h3{margin:0;font-size:clamp(1.45rem,3vw,2.35rem);letter-spacing:-.065em;line-height:.96}
.credentials-heading>p:last-child{max-width:42ch;margin:0;color:var(--soft-ink);font-size:.78rem;line-height:1.55}
.credentials-grid{display:grid;grid-template-columns:1.05fr 1.35fr 1fr;gap:1rem}
.credential-card{min-height:230px;padding:1rem 1.05rem;border:1.25px solid rgba(30,32,37,.58);border-radius:17px;box-shadow:4px 5px 0 rgba(30,32,37,.13);color:var(--ink)}
.credential-card--education{background:linear-gradient(145deg,#fff 14%,#edf1ff)}
.credential-card--skills{background:linear-gradient(145deg,#fff 14%,#e8faf1)}
.credential-card--certifications{background:linear-gradient(145deg,#fff 14%,#fff2c9)}
.credential-label{display:block;margin-bottom:.85rem;font:800 .52rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.education-item{display:grid;gap:.23rem;padding:.7rem 0;border-top:1px solid rgba(30,32,37,.15)}
.education-item:first-child{border-top:0;padding-top:0}
.education-item strong{font:800 .77rem/1.32 var(--sans);letter-spacing:-.025em}
.education-item span{color:#4d5562;font-size:.67rem;line-height:1.45}
.education-item small{color:#3f59c5;font:.48rem/1.35 var(--mono);letter-spacing:.035em}
.skill-group{display:grid;grid-template-columns:70px minmax(0,1fr);gap:.38rem;margin:0;padding:.42rem 0;border-top:1px solid rgba(30,32,37,.13);font-size:.64rem;line-height:1.43}
.skill-group:first-child{border-top:0;padding-top:0}.skill-group b{font-size:.63rem;letter-spacing:-.025em}.skill-group span{color:#424a56}
.credential-card ul{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.credential-card li{position:relative;padding-left:1rem;color:#303641;font-size:.68rem;line-height:1.45}.credential-card li:before{position:absolute;top:.43rem;left:0;width:6px;height:6px;border-radius:50%;background:#d3931d;content:""}
@media(max-width:900px){.credentials-grid{grid-template-columns:1fr 1fr}.credential-card--skills{grid-column:span 2}.credentials-heading{grid-template-columns:1fr}.credential-card{min-height:0}}
@media(max-width:620px){.credentials-section{margin-top:2rem;padding-top:1.7rem}.credentials-grid{grid-template-columns:1fr}.credential-card--skills{grid-column:auto}.credentials-heading>p:last-child{font-size:.73rem}.credential-card{padding:.95rem}.skill-group{grid-template-columns:62px minmax(0,1fr);font-size:.61rem}}
@media(max-width:620px){
  .hero{min-height:860px;padding:1rem .9rem}
  .hero-now{top:1.2rem!important;min-width:194px}
  .hero-build-update{top:7.2rem;width:calc(100% - 2.2rem);padding:.78rem .9rem}
  .hero-build-update strong{font-size:1rem}.hero-build-update p{font-size:.65rem}.hero-build-update span{font-size:.43rem}
  .hero .note{display:block!important;min-width:calc(50% - .9rem);min-height:126px;padding:.82rem .7rem;font-size:1.05rem}
  .hero .note span{font-size:.4rem}.hero .note-side [data-hero-internship-count]{font-size:1.02rem}
  .note-rag{top:15rem;left:.7rem}.hero .note-left{top:15rem;right:.7rem;left:auto}.note-agent-loop{top:25rem;bottom:auto;left:.7rem}.hero .note-side{top:25rem;right:.7rem;bottom:auto;left:auto}.note-center{top:35rem;right:auto;bottom:auto;left:.7rem}.note-coral{top:35rem;right:.7rem;bottom:auto;left:auto}.notes-reset{right:.75rem;bottom:.65rem}
}

/* Portfolio structure pass: fixed hero notes, clear rail actions, evidence cards, and a real Pari Chowk map. */
.profile-rail--wall .rail-primary-link,.profile-rail--wall .rail-secondary-link,.profile-rail--wall .profile-download{font-family:var(--sans)!important;font-size:.82rem!important;font-weight:800!important;letter-spacing:-.035em!important;text-transform:none!important}
.profile-rail--wall .rail-experience-list{display:grid;gap:.34rem;margin:.2rem 0 0;padding:0;list-style:none;color:#3e4856;font:600 .68rem/1.35 var(--sans)}
.profile-rail--wall .rail-experience-list li{position:relative;padding-left:.82rem}.profile-rail--wall .rail-experience-list li:before{position:absolute;left:0;top:.42rem;width:5px;height:5px;border-radius:50%;background:#405dea;box-shadow:0 0 0 3px rgba(64,93,234,.11);content:""}

.hero{min-height:780px}
.hero-now,.hero-build-update,.notes-reset{display:none!important}
.hero .note{cursor:default;user-select:text;touch-action:auto;transition:box-shadow .18s,border-color .18s!important}
.hero .note:hover{box-shadow:6px 7px 0 rgba(30,32,37,.16),0 12px 21px rgba(43,50,77,.1)!important;transform:translate(0,0) rotate(var(--note-rotate))!important}
.hero .note strong{display:block;color:#202124;font-family:var(--sans);font-weight:800;letter-spacing:-.045em}
.hero .note p{margin:.42rem 0 0;color:#3d4653;font:.7rem/1.4 var(--sans)}
.hero .hero-time-note{z-index:8;top:8%!important;bottom:auto!important;left:50%!important;right:auto!important;display:grid;gap:.18rem;min-width:245px;min-height:112px;padding:1rem 1.2rem;background:linear-gradient(135deg,#eef1ff,#dfe6ff);text-align:center;transform:translateX(-50%) rotate(-1deg)!important}
.hero .hero-time-note:hover{transform:translateX(-50%) rotate(-1deg)!important}
.hero .hero-time-note>span{margin:0;color:#314fc3;font:800 .52rem/1.2 var(--sans);letter-spacing:.12em}
.hero .hero-time-note strong{font-size:2rem;line-height:1;letter-spacing:-.09em}
.hero .hero-time-note em{color:#4a5362;font:.62rem/1.25 var(--sans);font-style:normal}
.hero .note-coral{display:block;max-width:250px;padding:1.05rem 1.1rem;background:linear-gradient(135deg,#ffb7a8,#ffe0d8)}
.hero .note-coral strong{font-size:1.15rem;line-height:1.08}
.note-rag{top:25%!important;left:7%!important}.hero .note-left{top:25%!important;right:7%!important}.note-agent-loop{bottom:5%!important;left:8%!important}.hero .note-side{bottom:5%!important;right:8%!important}.note-center{top:53%!important;right:19%!important;bottom:auto!important}.note-coral{top:53%!important;left:19%!important;bottom:auto!important}

.credentials-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}
.credentials-education,.credentials-certifications{display:grid;gap:.8rem}
.credentials-education>.credential-label,.credentials-certifications>.credential-label{margin:0}
.education-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.education-item{min-height:150px;padding:1.15rem!important;border:1.25px solid rgba(30,32,37,.58)!important;border-radius:17px;background:linear-gradient(145deg,#fff 12%,#e9edff);box-shadow:4px 5px 0 rgba(30,32,37,.13)}
.education-item:nth-child(2){background:linear-gradient(145deg,#fff 12%,#e4f8f0)}
.education-item strong{font-size:1rem;line-height:1.25}.education-item span{font-size:.78rem;line-height:1.45}.education-item small{margin-top:auto;font-size:.6rem}
.credential-card--skills{min-height:0;padding:1.2rem;background:linear-gradient(145deg,#fff 12%,#edf8f2)}
.credential-card--skills>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .95rem}
.skill-group{grid-template-columns:104px minmax(0,1fr);padding:.62rem 0;font-size:.74rem}.skill-group b{font-size:.74rem}.credential-card--skills .credential-label{margin-bottom:.45rem}
.certification-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.82rem}
.certification-card{display:grid;min-height:118px;gap:.32rem;padding:.92rem;border:1.25px solid rgba(30,32,37,.48);border-radius:15px;background:linear-gradient(145deg,#fff 8%,#fff2c9);box-shadow:3px 4px 0 rgba(30,32,37,.1)}
.certification-card:nth-child(3n+2){background:linear-gradient(145deg,#fff 8%,#e9edff)}.certification-card:nth-child(3n){background:linear-gradient(145deg,#fff 8%,#e5f8f0)}
.certification-card strong{font:800 .77rem/1.28 var(--sans);letter-spacing:-.025em}.certification-card span{color:#47515e;font:.64rem/1.35 var(--sans)}.certification-card small{align-self:end;color:#405dea;font:800 .51rem/1.25 var(--sans);letter-spacing:.04em}

.event-card .event-media{padding:10px!important;background:radial-gradient(circle at 50% 35%,#fff,#e7ebf7)}
.event-card .event-media img{object-fit:contain!important;object-position:center!important;background:#edf0f7}
.event-card .event-media--duo{grid-template-columns:1fr 1fr!important;gap:9px!important}

.map-embed{isolation:isolate;min-height:380px;padding:0!important;background:#e7edf8!important}.map-embed:before,.map-embed:after{display:none!important}.map-embed iframe{position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0;filter:saturate(.94) contrast(.98)}.map-embed .map-navigation-label{z-index:2;text-decoration:none}.location-section:after{pointer-events:none}

@media(min-width:901px){.profile-rail--wall .profile-avatar{margin:.8rem auto .35rem}}
@media(min-width:901px){.profile-rail--wall{justify-content:flex-start}}
@media(min-width:901px) and (max-height:900px){
  .profile-rail--wall{gap:.46rem;padding: .7rem 1.45rem .65rem}
  .profile-rail--wall .profile-avatar{width:124px;height:124px;margin:.2rem auto .12rem}
  .profile-rail--wall .profile-name strong{font-size:1.32rem}.profile-rail--wall .profile-name span{margin-top:.18rem;font-size:.78rem;line-height:1.28}
  .profile-rail--wall .profile-location{margin-top:0;font-size:.72rem}
  .profile-rail--wall .rail-experience{gap:.3rem;margin-top:0;padding:.6rem .7rem}.profile-rail--wall .rail-experience>span{font-size:.76rem;line-height:1.25}.profile-rail--wall .rail-experience small{font-size:.62rem;line-height:1.32}
  .profile-rail--wall .rail-experience-list{gap:.2rem;font-size:.55rem;line-height:1.22}.profile-rail--wall .rail-experience-list li{padding-left:.68rem}.profile-rail--wall .rail-experience-list li:before{top:.29rem;width:4px;height:4px}
  .profile-rail--wall .rail-experience-tags{gap:.32rem}.profile-rail--wall .rail-skill{min-height:28px;padding:.36rem .4rem;font-size:.56rem}
  .profile-rail--wall .rail-profile-button,.profile-rail--wall .rail-primary-link,.profile-rail--wall .rail-secondary-link,.profile-rail--wall .profile-download{min-height:37px;padding:.45rem .5rem;font-size:.64rem!important}
}
@media(min-width:901px) and (max-height:760px){.profile-rail--wall .profile-avatar{margin:.2rem auto}.profile-rail--wall .rail-experience-list{gap:.22rem;font-size:.59rem}.profile-rail--wall .rail-experience-list li:before{top:.34rem}.profile-rail--wall .rail-primary-link,.profile-rail--wall .rail-secondary-link,.profile-rail--wall .profile-download{font-size:.68rem!important}}
@media(max-width:900px){.hero{min-height:820px}.hero .hero-time-note{top:6%!important}.note-rag{top:23%!important;left:4%!important}.hero .note-left{top:23%!important;right:4%!important}.note-agent-loop{bottom:7%!important;left:4%!important}.hero .note-side{bottom:7%!important;right:4%!important}.note-center{top:57%!important;right:16%!important}.note-coral{top:57%!important;left:16%!important}.certification-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.profile-rail--wall .rail-primary-link,.profile-rail--wall .rail-secondary-link,.profile-rail--wall .profile-download{font-size:.74rem!important}.hero{min-height:885px;padding:1rem .8rem}.hero .hero-time-note{top:1.25rem!important;min-width:calc(100% - 3rem);min-height:106px;padding:.88rem 1rem}.hero .hero-time-note strong{font-size:1.66rem}.hero .hero-time-note em{font-size:.55rem}.hero .note{min-width:calc(50% - .82rem);min-height:122px;padding:.8rem .72rem;font-size:1rem}.hero .note-coral{max-width:none}.hero .note-coral strong{font-size:.95rem}.hero .note-coral p{font-size:.59rem}.note-rag{top:10.5rem!important;left:.7rem!important}.hero .note-left{top:10.5rem!important;right:.7rem!important;left:auto!important}.note-coral{top:20rem!important;left:.7rem!important}.hero .note-side{top:20rem!important;right:.7rem!important;bottom:auto!important;left:auto!important}.note-agent-loop{top:29.5rem!important;bottom:auto!important;left:.7rem!important}.note-center{top:29.5rem!important;right:.7rem!important;bottom:auto!important;left:auto!important}.education-card-grid,.credential-card--skills>div,.certification-card-grid{grid-template-columns:1fr}.education-item{min-height:0}.skill-group{grid-template-columns:88px minmax(0,1fr)}.map-embed{min-height:300px}.event-card .event-media{padding:7px!important}}
@media(prefers-reduced-motion:reduce){.hero .note,.map-embed iframe{transition:none!important}}

/* Café Compute is a photo story: give the group moment and the winner portrait
   their own balanced frames, preserving the complete image in each. */
.event-card:has(.event-media--duo){grid-template-rows:248px auto}
.event-card .event-media--duo{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(130px,.65fr)!important;align-items:center;gap:12px!important;padding:12px!important;background:linear-gradient(145deg,#f5f7fe,#e9edf8)}
.event-card .event-media--duo .event-photo-panel{display:flex;align-items:center;justify-content:center;min-width:0;margin:0;overflow:hidden;border:1px solid rgba(30,32,37,.14);border-radius:13px;background:#fff;box-shadow:0 3px 0 rgba(30,32,37,.09)}
.event-card .event-media--duo .event-photo-panel--1{aspect-ratio:16/9}
.event-card .event-media--duo .event-photo-panel--2{justify-self:center;max-height:calc(100% - 6px);aspect-ratio:3/4}
.event-card .event-media--duo .event-photo-panel img{display:block;width:100%;height:100%!important;min-height:0;padding:0!important;object-fit:contain!important;object-position:center!important;background:#fff}
@media(max-width:620px){.event-card:has(.event-media--duo){grid-template-rows:222px auto}.event-card .event-media--duo{grid-template-columns:minmax(0,1.25fr) minmax(96px,.75fr)!important;gap:7px!important;padding:8px!important}.event-card .event-media--duo .event-photo-panel{border-radius:10px}}

/* One crisp UI typeface and a quieter left-rail navigation. */
:root{--sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--hand:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.profile-rail--wall .rail-experience{gap:.42rem;padding:.86rem .9rem;background:linear-gradient(145deg,#fff 16%,#f0f3ff);box-shadow:3px 4px 0 rgba(30,32,37,.08)}
.profile-rail--wall .rail-experience>span{font-size:.82rem;line-height:1.35}.profile-rail--wall .rail-experience small{font-size:.68rem;line-height:1.45}.profile-rail--wall .rail-experience-list{gap:.25rem;margin-top:.12rem;font-size:.64rem;line-height:1.32}
.profile-rail--wall .rail-experience-title{font-weight:700}.profile-rail--wall .rail-experience .rail-experience-duration{align-self:flex-end;width:auto;margin:.15rem 0 0;padding:.28rem 0 0;border-top:1px solid rgba(30,32,37,.13);color:#737785;font:600 .55rem/1.15 var(--sans);letter-spacing:.02em;text-align:right}

/* The three rail actions intentionally use the same readable interface type. */
.profile-rail--wall .rail-section-button,.profile-rail--wall .profile-download{font-family:var(--sans)!important;font-weight:750!important;letter-spacing:-.025em!important;text-transform:none!important}

/* The contact options borrow the visual language of the destination without
   copying a third-party logo. Each remains an obvious, high-contrast link. */
.contact-links .contact-link,.contact-submit--email{position:relative;isolation:isolate;overflow:hidden;font-family:var(--sans)!important;font-weight:750!important;letter-spacing:-.025em!important;text-transform:none!important}
.contact-links .contact-link::before,.contact-submit--email::before{position:absolute;z-index:-1;inset:0;content:"";opacity:.88}
.contact-links .contact-link span,.contact-submit--email>span{display:grid;place-items:center;flex:0 0 auto;width:1.6rem;height:1.6rem;border-radius:7px;background:#fff;font-family:var(--sans);font-size:.78rem;font-weight:800;line-height:1;box-shadow:0 2px 0 rgba(30,32,37,.1)}
.contact-links .contact-link--gmail{border-color:rgba(234,67,53,.35);color:#58221d;background:#fff}
.contact-links .contact-link--gmail::before{background:linear-gradient(115deg,rgba(234,67,53,.2),rgba(251,188,5,.14) 38%,rgba(66,133,244,.16) 68%,rgba(52,168,83,.16))}
.contact-links .contact-link--gmail span{color:#d53f31}
.contact-links .contact-link--whatsapp{border-color:rgba(37,211,102,.42);color:#164c2d;background:#f5fff8}
.contact-links .contact-link--whatsapp::before{background:linear-gradient(120deg,rgba(37,211,102,.24),rgba(18,140,126,.11))}
.contact-links .contact-link--whatsapp span{color:#138b53}
.contact-submit--email{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border-color:#3157ce!important;background:#eff3ff!important;color:#1e3c98!important;box-shadow:3px 4px 0 rgba(49,87,206,.18)!important}
.contact-submit--email::before{background:linear-gradient(135deg,rgba(58,103,232,.14),rgba(127,93,236,.12),rgba(35,184,181,.1))}
.contact-submit--email>span{color:#3157ce}
.contact-links .contact-link:hover,.contact-submit--email:hover{filter:saturate(1.15);box-shadow:inset 0 2px 0 rgba(30,32,37,.12),0 8px 18px rgba(30,32,37,.11)!important;transform:translateY(-2px)!important}

/* The map calls to action are deliberately textual—clean directions, no
   distracting decorative arrows. */
.map-navigation-label{padding:.62rem .8rem!important;border:1px solid rgba(255,255,255,.86)!important;border-radius:10px!important;font:750 .66rem/1 var(--sans)!important;letter-spacing:-.015em!important;background:rgba(30,32,37,.9)!important}
.location-actions .location-link,.location-actions .location-map-link{min-height:42px;padding:.68rem .85rem;border:1px solid rgba(30,32,37,.34);border-radius:10px;font-family:var(--sans)!important;font-size:.76rem;font-weight:750;letter-spacing:-.02em;text-decoration:none}
.location-actions .location-link{background:#202124;color:#fff}.location-actions .location-map-link{background:#eef2ff;color:#2947aa}.location-actions .location-map-link:hover{border-color:#405dea;background:#dfe7ff;color:#202124}

/* An event image can be tapped for a tiny celebration. The Luma link stays a
   separate, explicit action, so the motion never hides the source page. */
.event-timeline-step .event-card .event-photo-trigger{position:relative;display:grid;width:100%;min-width:0;min-height:0;margin:0;padding:14px!important;border:0;border-radius:0;background:linear-gradient(145deg,#f7f9ff,#edf1fb);cursor:pointer;overflow:hidden}
.event-timeline-step .event-card .event-photo-trigger>img{width:100%;height:100%;min-height:330px;border-radius:14px;object-fit:contain!important;object-position:center!important;background:#edf0f7;transition:transform .35s cubic-bezier(.16,1,.3,1),filter .3s}
.event-timeline-step .event-card .event-photo-trigger:hover>img,.event-timeline-step .event-card .event-photo-trigger:focus-visible>img{filter:saturate(1.05) contrast(1.015);transform:scale(1.012)}
.event-timeline-step .event-card .event-photo-trigger:focus-visible{outline:3px solid #405dea;outline-offset:-6px}
.event-timeline-step .event-card .event-photo-trigger.is-celebrating>img{animation:event-photo-celebrate .72s cubic-bezier(.16,1,.3,1)}
@keyframes event-photo-celebrate{0%,100%{transform:translateX(0) rotate(0) scale(1)}20%{transform:translateX(-7px) rotate(-1.1deg) scale(1.018)}48%{transform:translateX(6px) rotate(1deg) scale(1.024)}72%{transform:translateX(-3px) rotate(-.45deg) scale(1.012)}}
.event-highlights{display:flex;flex-wrap:wrap;gap:.42rem;margin:.95rem 0 0;padding:0;list-style:none}.event-highlights li{padding:.35rem .5rem;border:1px solid rgba(30,32,37,.18);border-radius:999px;background:#f6f7fb;color:#383d49;font:.62rem/1.2 var(--sans)}
.event-source{display:inline-flex;width:max-content;margin-top:1.1rem;padding-bottom:.16rem;border-bottom:1px solid currentColor;color:#2e4db7;font:.72rem/1.2 var(--sans);font-weight:750;letter-spacing:-.015em;text-decoration:none}.event-source:hover{color:#202124}
@media(max-width:700px){.event-timeline-step .event-card .event-photo-trigger{min-height:260px;padding:9px!important}.event-timeline-step .event-card .event-photo-trigger>img{min-height:242px}.event-highlights li{font-size:.58rem}}
@media(prefers-reduced-motion:reduce){.event-timeline-step .event-card .event-photo-trigger>img,.event-timeline-step .event-card .event-photo-trigger.is-celebrating>img{animation:none!important;transition:none!important;transform:none!important}}
.rail-section-switcher{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%;margin-top:.15rem}
.rail-section-button{display:inline-flex;align-items:center;justify-content:space-between;gap:.35rem;min-height:44px;padding:.65rem .7rem;border:1.25px solid rgba(30,32,37,.38);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;font:700 .72rem/1 var(--sans);letter-spacing:-.025em;transition:background .18s,color .18s,border-color .18s,box-shadow .18s}
.rail-section-button span{display:grid;place-items:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;font-size:.55rem}.rail-section-button b{margin-left:auto;font-size:.72rem}.rail-section-button:hover{border-color:#405dea;background:#edf1ff;color:#263caa;box-shadow:inset 0 2px 0 rgba(64,93,234,.1)}
.rail-section-button--profile[aria-expanded="true"]{border-color:#405dea;background:#edf1ff;color:#263caa;box-shadow:inset 0 2px 0 rgba(64,93,234,.1)}
.rail-section-button--portfolio.is-selected{border-color:#202124;background:#202124;color:#fff;box-shadow:inset 0 2px 0 rgba(255,255,255,.15),3px 3px 0 rgba(30,32,37,.15)}
.rail-section-button:focus-visible{outline:2px solid #405dea;outline-offset:4px}
.profile-rail--wall .profile-actions{margin-top:.05rem}.profile-rail--wall .profile-download{min-height:42px;font:700 .72rem/1 var(--sans)}
@media(max-width:620px){.rail-section-switcher{gap:.45rem}.rail-section-button{min-height:42px;padding:.6rem;font-size:.7rem}.profile-rail--wall .profile-download{min-height:42px;font-size:.7rem}}
@media(max-width:900px){.profile-rail--wall .rail-section-switcher{grid-area:links;margin:.1rem 0 0}}

/* Field notes read as a full journey: each real photo and its detail share the whole available row. */
.events-section .event-grid{display:grid;grid-template-columns:1fr;gap:0}
.event-timeline-step{position:relative;padding:1rem 0}
.event-timeline-step::before{position:absolute;z-index:0;top:0;bottom:0;left:50%;width:1px;background:linear-gradient(#d2d9f3,#9faef0,#d2d9f3);content:""}
.event-timeline-index{position:absolute;z-index:3;top:50%;left:50%;display:grid;place-items:center;width:46px;height:46px;border:1.5px solid #202124;border-radius:50%;background:#fff;color:#405dea;font:800 .68rem/1 var(--sans);transform:translate(-50%,-50%);box-shadow:0 4px 0 rgba(30,32,37,.14)}
.event-timeline-step .event-card{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:none;min-height:360px;border-color:rgba(30,32,37,.42);background:#fff;box-shadow:5px 6px 0 rgba(30,32,37,.1)}
.event-timeline-step .event-card .event-media{min-height:0;padding:14px!important;background:linear-gradient(145deg,#f7f9ff,#edf1fb)}
.event-timeline-step .event-card .event-media:not(.event-media--duo) img{border-radius:14px}
.event-timeline-step .event-card>.event-media + div{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.4rem,3vw,3.1rem);background:linear-gradient(145deg,#fff,#fcfcfe)}
.event-timeline-step:nth-child(even) .event-card>.event-media{order:2}
.event-timeline-step:nth-child(even) .event-card>.event-media + div{order:1}
.event-timeline-step .event-card h3{max-width:18ch;margin:.65rem 0 .9rem;font-size:clamp(1.65rem,3vw,2.7rem);line-height:.97;letter-spacing:-.065em}
.event-timeline-step .event-card p{max-width:45ch;font-size:.92rem;line-height:1.65}
.event-timeline-step .event-card:active .event-media img{animation:event-photo-nudge .55s cubic-bezier(.16,1,.3,1)}
@keyframes event-photo-nudge{0%,100%{transform:translateX(0) rotate(0)}30%{transform:translateX(-5px) rotate(-1.25deg)}65%{transform:translateX(5px) rotate(1.25deg)}}
@media(max-width:700px){.event-timeline-step{padding:.8rem 0 .8rem 1.7rem}.event-timeline-step::before{left:.45rem}.event-timeline-index{top:1.75rem;left:.45rem;width:34px;height:34px;font-size:.57rem}.event-timeline-step .event-card{grid-template-columns:1fr;min-height:0}.event-timeline-step:nth-child(even) .event-card>.event-media{order:0}.event-timeline-step:nth-child(even) .event-card>.event-media + div{order:0}.event-timeline-step .event-card .event-media{min-height:260px;padding:9px!important}.event-timeline-step .event-card>.event-media + div{padding:1.35rem}.event-timeline-step .event-card h3{font-size:1.65rem}.event-timeline-step .event-card p{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){.event-timeline-step .event-card:active .event-media img{animation:none}}

/* Public projects may expose both the live product and its source, without
   implying a repository for private company work. */
.build-repository,.featured-project-repository{display:inline-flex;align-items:center;gap:.32rem;border:1px solid rgba(30,32,37,.36);background:rgba(255,255,255,.72);color:#292d34}
.project-library .build-repository{min-height:29px;padding:.42rem .54rem;border-radius:8px;font:.48rem var(--mono);letter-spacing:.075em;text-transform:uppercase}
.project-library .build-repository:hover{border-color:#202124;background:#202124;color:#fff;transform:none}
.featured-project-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-top:auto}
.featured-project-actions>.featured-project-private,.featured-project-actions>a{margin-top:0}
.featured-project-repository{width:max-content;padding:.46rem .58rem;border-radius:8px;font:.47rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.featured-project-repository:hover{border-color:#202124;background:#202124;color:#fff;transform:none!important}
@media(min-width:901px){.project-library .build-repository{min-height:34px;padding:.5rem .66rem;font-size:.54rem}}
.profile-dialog-experience small[data-profile-internship-start]{display:block;margin:.7rem 0 .1rem;color:#405dea;font:700 .6rem/1.3 var(--sans);letter-spacing:.02em}

/* Final interaction pass: real controls get a calm, light fill. Plain reading
   copy is intentionally not made clickable. */
:where(.site-nav a,.header-cta,.site-search-button,.quick-dock a,.quick-dock button,.rail-section-button,.profile-download,.build-controls button,.location-actions a,.event-source){transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,filter .18s ease!important}
:where(.site-nav a,.header-cta,.site-search-button,.quick-dock a,.quick-dock button,.rail-section-button,.profile-download,.build-controls button,.location-actions a,.event-source):hover,:where(.site-nav a,.header-cta,.site-search-button,.quick-dock a,.quick-dock button,.rail-section-button,.profile-download,.build-controls button,.location-actions a,.event-source):focus-visible{background-color:#edf1ff;color:#263caa;border-color:#8ea1ef;box-shadow:inset 0 2px 0 rgba(255,255,255,.82),0 0 0 3px rgba(64,93,234,.12)!important;outline:none}
:where(.site-nav a,.header-cta,.site-search-button,.quick-dock a,.quick-dock button,.rail-section-button,.profile-download,.build-controls button,.location-actions a,.event-source):active{background-color:#dce5ff;box-shadow:inset 0 2px 0 rgba(30,32,37,.18)!important}

/* The five colour notes can now be moved; the centre clock remains a reliable
   fixed anchor. This rule intentionally supersedes the older static-note pass. */
.hero .note[data-drag-note]{appearance:none;position:absolute;z-index:6;display:block;border:1.25px solid rgba(30,32,37,.52);cursor:grab;touch-action:none;user-select:none;transform:translate(var(--drag-x,0px),var(--drag-y,0px)) rotate(var(--note-rotate))!important;transition:box-shadow .18s ease,filter .18s ease!important}
.hero .note[data-drag-note]:hover,.hero .note[data-drag-note]:focus-visible{cursor:grab;filter:saturate(1.05);box-shadow:inset 0 2px 0 rgba(255,255,255,.62),8px 9px 0 rgba(30,32,37,.2),0 15px 26px rgba(43,50,77,.15)!important;transform:translate(var(--drag-x,0px),var(--drag-y,0px)) rotate(var(--note-rotate))!important}
.hero .note[data-drag-note].is-dragging{z-index:10;cursor:grabbing;transition:none!important}
.hero .hero-notes-reset{display:inline-flex!important;align-items:center;justify-content:center;background:#fff;color:#303640}.hero .hero-notes-reset:hover,.hero .hero-notes-reset:focus-visible{background:#edf1ff;color:#263caa}

/* Project names inherit a quiet individual colour. Selecting a card keeps the
   type high contrast and responds with a short, stable pulse instead of a jump. */
.featured-project--blue,.project-library .build-card--blue{--project-ink:#2d46ad}.featured-project--violet,.project-library .build-card--violet{--project-ink:#6343a6}.featured-project--coral,.project-library .build-card--coral{--project-ink:#a94235}.featured-project--mint,.project-library .build-card--mint{--project-ink:#167353}.featured-project--sun,.project-library .build-card--sun{--project-ink:#866313}
.featured-project h3,.project-library .build-card h3{color:var(--project-ink,#202124)}
.featured-project.is-selected,.project-library .build-card.is-selected{border-color:var(--project-ink,#202124)!important;box-shadow:inset 0 3px 0 rgba(255,255,255,.95),0 0 0 3px color-mix(in srgb,var(--project-ink,#202124) 15%,transparent),7px 8px 0 rgba(30,32,37,.16)!important}
.featured-project.is-selected h3,.project-library .build-card.is-selected h3{color:#171a20!important}
.build-card--github .build-card-top b{border-color:rgba(45,70,173,.35)!important;background:#eef1ff;color:#2d46ad}
.project-library .build-action,.project-library .build-repository,.project-library .build-save,.featured-project-actions>a,.featured-project-actions>.featured-project-private{transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease!important}
.project-library .build-card--blue .build-action:hover,.project-library .build-card--blue .build-repository:hover,.project-library .build-card--blue .build-save:hover,.featured-project--blue .featured-project-actions>a:hover{background:#dce6ff!important;color:#203b9d!important;border-color:#778ded!important}
.project-library .build-card--violet .build-action:hover,.project-library .build-card--violet .build-repository:hover,.project-library .build-card--violet .build-save:hover,.featured-project--violet .featured-project-actions>a:hover{background:#e9e2ff!important;color:#563993!important;border-color:#a18add!important}
.project-library .build-card--coral .build-action:hover,.project-library .build-card--coral .build-repository:hover,.project-library .build-card--coral .build-save:hover,.featured-project--coral .featured-project-actions>a:hover{background:#ffe5dd!important;color:#92372d!important;border-color:#e79483!important}
.project-library .build-card--mint .build-action:hover,.project-library .build-card--mint .build-repository:hover,.project-library .build-card--mint .build-save:hover,.featured-project--mint .featured-project-actions>a:hover{background:#dcf7e8!important;color:#176a4e!important;border-color:#76cbaa!important}
.project-library .build-card--sun .build-action:hover,.project-library .build-card--sun .build-repository:hover,.project-library .build-card--sun .build-save:hover,.featured-project--sun .featured-project-actions>a:hover{background:#fff1c1!important;color:#72530d!important;border-color:#dfbd55!important}
@keyframes project-card-select{0%{filter:saturate(1);box-shadow:inset 0 3px 0 rgba(255,255,255,.9),7px 8px 0 rgba(30,32,37,.16)}45%{filter:saturate(1.18);box-shadow:inset 0 3px 0 rgba(255,255,255,.96),0 0 0 6px color-mix(in srgb,var(--project-ink,#405dea) 16%,transparent),7px 8px 0 rgba(30,32,37,.16)}100%{filter:saturate(1);box-shadow:inset 0 3px 0 rgba(255,255,255,.9),7px 8px 0 rgba(30,32,37,.16)}}
.featured-project.is-selecting,.project-library .build-card.is-selecting{animation:project-card-select .5s cubic-bezier(.16,1,.3,1)}
.github-sync-status{margin:.9rem 0 -.1rem;color:#405dea;font:700 .68rem/1.35 var(--sans);letter-spacing:-.015em}
@media(prefers-reduced-motion:reduce){.hero .note[data-drag-note]{cursor:grab!important}.featured-project.is-selecting,.project-library .build-card.is-selecting{animation:none!important}}

/* About follows one deliberate reading path: summary, focus, experience,
   approach, toolkit, principles, then credentials. Each row remains obvious
   at every breakpoint instead of relying on an uneven masonry layout. */
.about-grid{position:relative;z-index:1;grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch;gap:1rem}
.about-intro{grid-column:1/-1;grid-row:auto;min-height:0;padding:clamp(1.35rem,2.2vw,2rem)}
.about-intro p{max-width:64ch}
.hand-note{margin-top:1.5rem}
.fact-card{grid-column:span 4;min-height:185px;border:1px solid rgba(30,32,37,.16);box-shadow:3px 4px 0 rgba(30,32,37,.09)}
.stack-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(135px,.38fr) minmax(0,1fr);align-items:start;gap:1rem;padding:1.15rem 1.25rem;border-color:rgba(30,32,37,.24);box-shadow:3px 4px 0 rgba(30,32,37,.08)}
.stack-card p{margin:0}
.about-principles{margin:1.25rem 0 0}
.credentials-section{margin-top:2.25rem}

/* The first note stays a little more compact than the other workspace notes,
   but retains a comfortably readable, draggable surface. */
.hero .note-rag{min-width:188px;min-height:136px;padding:1rem 1.05rem;font-size:1.33rem}
.hero .note-rag span{font-size:.52rem}

/* Card feedback is intentionally quiet: a brief colour-and-shadow resolve
   confirms hover without moving surrounding content or competing with copy. */
@keyframes card-soft-settle{0%,100%{filter:saturate(1) brightness(1)}50%{filter:saturate(1.07) brightness(1.015)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  :is(.about-intro,.fact-card,.stack-card,.principle-card,.education-item,.credential-card--skills,.certification-card){transition:border-color .2s ease,box-shadow .2s ease,filter .2s ease}
  :is(.about-intro,.fact-card,.stack-card,.principle-card,.education-item,.credential-card--skills,.certification-card):hover{border-color:rgba(64,93,234,.5)!important;box-shadow:inset 0 2px 0 rgba(255,255,255,.72),0 8px 18px rgba(30,32,37,.1)!important;animation:card-soft-settle .38s cubic-bezier(.16,1,.3,1)}
  .principle-card:hover{transform:none}
}
@media(max-width:900px){.fact-card{grid-column:span 6}.stack-card{grid-template-columns:1fr;gap:.45rem}.hero .note-rag{min-width:172px;min-height:130px;padding:.92rem 1rem;font-size:1.23rem}}
@media(max-width:620px){.fact-card,.stack-card{grid-column:1/-1}.hero .note-rag{min-width:calc(50% - .82rem);min-height:122px;padding:.8rem .72rem;font-size:1rem}.hero .note-rag span{font-size:.4rem}}
@media(prefers-reduced-motion:reduce){:is(.about-intro,.fact-card,.stack-card,.principle-card,.education-item,.credential-card--skills,.certification-card){animation:none!important;transition:none!important}}

/* The live time uses a compact, late-2010s digital-desk-clock treatment. It
   remains the visual anchor in the note board, while its value stays live. */
.hero .hero-time-note{isolation:isolate;min-width:286px;min-height:138px;padding:.7rem .8rem .8rem;border:2px solid #2b2a24!important;border-radius:7px!important;background:linear-gradient(145deg,#f3efd9 0%,#ddd7bd 100%)!important;box-shadow:5px 6px 0 #2b2a24,0 12px 22px rgba(40,39,32,.14)!important;color:#20251e;transform:translateX(-50%) rotate(0)!important}
.hero .hero-time-note::before{position:absolute;z-index:-1;inset:5px;border:1px solid rgba(43,42,36,.22);border-radius:3px;background:radial-gradient(circle at 11px 11px,#d1534e 0 2px,transparent 2.7px),radial-gradient(circle at calc(100% - 11px) 11px,#d1534e 0 2px,transparent 2.7px),linear-gradient(180deg,rgba(255,255,255,.44),rgba(255,255,255,0));content:""}
.hero .hero-time-note>span{display:flex;align-items:center;justify-content:space-between;margin:0;color:#383729;font:800 .47rem/1 var(--mono);letter-spacing:.1em}
.hero .hero-time-note>span b{font:inherit}.hero .hero-time-note>span i{padding:.19rem .28rem;border:1px solid rgba(43,42,36,.38);border-radius:2px;background:#ebe4c9;color:#695f42;font:700 .4rem/1 var(--mono);font-style:normal;letter-spacing:.075em}
.hero .hero-time-note strong{display:block;margin:.45rem 0 .3rem;padding:.22rem .4rem;border:2px inset #6e785e;border-radius:2px;background:#a8b48b;color:#1e2a22;font-family:var(--mono);font-size:2.45rem;line-height:.95;letter-spacing:.02em;font-variant-numeric:tabular-nums;text-shadow:1px 1px 0 rgba(239,244,213,.62),-1px -1px 0 rgba(48,64,45,.2)}
.hero .hero-time-note em{display:block;color:#494836;font:800 .46rem/1.2 var(--mono);letter-spacing:.065em;text-transform:uppercase}
.hero .hero-time-note:hover{filter:none!important;box-shadow:5px 6px 0 #2b2a24,0 12px 22px rgba(40,39,32,.14)!important;transform:translateX(-50%) rotate(0)!important}
@media(max-width:620px){.hero .hero-time-note{min-width:calc(100% - 3rem);min-height:105px;padding:.58rem .65rem}.hero .hero-time-note strong{margin:.32rem 0 .22rem;font-size:1.9rem}.hero .hero-time-note>span{font-size:.4rem}.hero .hero-time-note em{font-size:.4rem}}

/* One calm, site-wide hover language: a section-specific colour fill, paired
   double-line edge, and a short glow. The effect is intentionally stable—no
   card shifts that would make text or controls move under the cursor. */
:is(.featured-project,.project-library .build-card,.about-intro,.fact-card,.stack-card,.principle-card,.education-item,.credential-card--skills,.certification-card,.event-card,.tool-card,.social-card,.contact-form,.map-embed){--hover-accent:#405dea;--hover-wash:#eef1ff}
.featured-project--blue,.project-library .build-card--blue{--hover-accent:#2d46ad;--hover-wash:#e3eaff}.featured-project--violet,.project-library .build-card--violet{--hover-accent:#6343a6;--hover-wash:#eee8ff}.featured-project--coral,.project-library .build-card--coral{--hover-accent:#a94235;--hover-wash:#ffe6df}.featured-project--mint,.project-library .build-card--mint{--hover-accent:#167353;--hover-wash:#ddf7e9}.featured-project--sun,.project-library .build-card--sun{--hover-accent:#866313;--hover-wash:#fff1c4}
.about-intro{--hover-accent:#405dea;--hover-wash:#eff2ff}.mint-card{--hover-accent:#218265;--hover-wash:#dcf7eb}.lilac-card{--hover-accent:#725bb2;--hover-wash:#eee9ff}.site-card{--hover-accent:#b55041;--hover-wash:#ffe7e0}.stack-card{--hover-accent:#405dea;--hover-wash:#eff2ff}.principle-coral{--hover-accent:#ae584c;--hover-wash:#ffe4de}.principle-blue{--hover-accent:#445dbb;--hover-wash:#e6ecff}.principle-sun{--hover-accent:#8f6f21;--hover-wash:#fff2c5}.education-item{--hover-accent:#405dea;--hover-wash:#e9edff}.education-item:nth-child(2){--hover-accent:#287f61;--hover-wash:#e0f7ee}.credential-card--skills{--hover-accent:#287f61;--hover-wash:#e5f8ef}.certification-card{--hover-accent:#9a721c;--hover-wash:#fff2c9}.certification-card:nth-child(3n+2){--hover-accent:#405dea;--hover-wash:#e9edff}.certification-card:nth-child(3n){--hover-accent:#287f61;--hover-wash:#e3f8f0}.tool-card{--hover-accent:var(--tool-strong);--hover-wash:var(--tool-fill)}.linkedin-card{--hover-accent:#0a66c2;--hover-wash:#e3f0ff}.github-card{--hover-accent:#202124;--hover-wash:#eeeeee}.x-card{--hover-accent:#202124;--hover-wash:#eeeeee}.instagram-card{--hover-accent:#a84fb3;--hover-wash:#f7d6eb}.contact-form{--hover-accent:#3157ce;--hover-wash:#eef2ff}.map-embed{--hover-accent:#405dea;--hover-wash:#e8eeff}.event-timeline-step:nth-child(3n+1) .event-card{--hover-accent:#405dea;--hover-wash:#e7edff}.event-timeline-step:nth-child(3n+2) .event-card{--hover-accent:#a94235;--hover-wash:#ffe8e1}.event-timeline-step:nth-child(3n) .event-card{--hover-accent:#167353;--hover-wash:#e1f8ed}
@keyframes card-edge-resolve{0%,100%{filter:saturate(1) brightness(1)}50%{filter:saturate(1.12) brightness(1.015)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  :is(.featured-project,.project-library .build-card,.about-intro,.fact-card,.stack-card,.principle-card,.education-item,.credential-card--skills,.certification-card,.event-card,.tool-card,.social-card,.contact-form,.map-embed){transition:border-color .2s ease,outline-color .2s ease,box-shadow .24s ease,background-color .22s ease,filter .22s ease!important}
  :is(.featured-project,.project-library .build-card,.about-intro,.fact-card,.stack-card,.principle-card,.education-item,.credential-card--skills,.certification-card,.event-card,.tool-card,.social-card,.contact-form,.map-embed):hover{border-color:var(--hover-accent)!important;outline:1px solid color-mix(in srgb,var(--hover-accent) 52%,transparent);outline-offset:3px;box-shadow:inset 0 2px 0 rgba(255,255,255,.84),inset 0 -2px 0 color-mix(in srgb,var(--hover-accent) 16%,transparent),0 0 0 4px color-mix(in srgb,var(--hover-accent) 11%,transparent),0 11px 22px rgba(30,32,37,.11)!important;animation:card-edge-resolve .42s cubic-bezier(.16,1,.3,1);transform:none!important}
  .about-intro:hover,.fact-card:hover,.stack-card:hover,.principle-card:hover,.education-item:hover,.credential-card--skills:hover,.certification-card:hover,.social-card:not(.instagram-card):hover,.contact-form:hover{background-color:var(--hover-wash)!important}
  .event-card:hover>div{background:linear-gradient(135deg,#fff 0%,var(--hover-wash) 100%)!important}
  .map-embed:hover{filter:saturate(1.04) contrast(1.01)}
  .instagram-card:hover{box-shadow:inset 0 2px 0 rgba(255,255,255,.7),0 0 0 4px color-mix(in srgb,#a84fb3 18%,transparent),0 15px 28px rgba(128,84,149,.24)!important}
  .tool-card:hover{background:linear-gradient(145deg,#fff 4%,var(--hover-wash))!important}
  .project-library .build-card:hover{background:var(--hover-wash)!important;color:#202124}
  .project-library .build-card:hover :is(.build-card-top span,.build-card-top b,.build-card h3,.build-card p){color:#202124!important}
  .project-library .build-card:hover .build-tags li{border-color:color-mix(in srgb,var(--hover-accent) 24%,transparent);background:rgba(255,255,255,.8);color:#303640}
}
:is(.featured-project,.project-library .build-card,.tool-card,.social-card,.contact-form,.map-embed):focus-within{border-color:var(--hover-accent)!important;outline:2px solid color-mix(in srgb,var(--hover-accent) 42%,transparent);outline-offset:3px}
@media(prefers-reduced-motion:reduce){:is(.featured-project,.project-library .build-card,.about-intro,.fact-card,.stack-card,.principle-card,.education-item,.credential-card--skills,.certification-card,.event-card,.tool-card,.social-card,.contact-form,.map-embed){animation:none!important;transition:none!important}}

/* Supporting cards and contact routes use the same line treatment, so no
   section falls back to a flat, disconnected hover state. */
:is(.more-builds,.update-callout,.contact-links .contact-link){--hover-accent:#405dea;--hover-wash:#eef1ff}
.contact-links .contact-link--gmail{--hover-accent:#d53f31;--hover-wash:#fff0ed}.contact-links .contact-link--whatsapp{--hover-accent:#138b53;--hover-wash:#e4faec}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  :is(.more-builds,.update-callout,.contact-links .contact-link){transition:border-color .2s ease,outline-color .2s ease,box-shadow .24s ease,background-color .22s ease,filter .22s ease!important}
  :is(.more-builds,.update-callout,.contact-links .contact-link):hover{border-color:var(--hover-accent)!important;outline:1px solid color-mix(in srgb,var(--hover-accent) 52%,transparent);outline-offset:3px;background-color:var(--hover-wash)!important;box-shadow:inset 0 2px 0 rgba(255,255,255,.84),inset 0 -2px 0 color-mix(in srgb,var(--hover-accent) 16%,transparent),0 0 0 4px color-mix(in srgb,var(--hover-accent) 11%,transparent),0 11px 22px rgba(30,32,37,.11)!important;animation:card-edge-resolve .42s cubic-bezier(.16,1,.3,1);transform:none!important}
}
:is(.more-builds,.update-callout,.contact-links .contact-link):focus-within{border-color:var(--hover-accent)!important;outline:2px solid color-mix(in srgb,var(--hover-accent) 42%,transparent);outline-offset:3px}
@media(prefers-reduced-motion:reduce){:is(.more-builds,.update-callout,.contact-links .contact-link){animation:none!important;transition:none!important}}

/* Editorial clean-up: the workbench remains the one playful surface; every
   following section becomes a calm, easy-to-scan portfolio catalogue. */
:root{--sans:"Inter",ui-sans-serif,system-ui,sans-serif;--hand:"Inter",ui-sans-serif,system-ui,sans-serif;--mono:"Cascadia Mono","SFMono-Regular",ui-monospace,monospace}
body{font-size:17px;line-height:1.6}
.site-nav{gap:clamp(1rem,2vw,2rem);font-size:.92rem}.eyebrow{font-size:.68rem;letter-spacing:.1em}.profile-rail--wall .profile-name strong{font-size:1.45rem}.profile-rail--wall .profile-name span{font-size:.88rem;line-height:1.45}.profile-rail--wall .profile-location{font-size:.76rem}
:where(.work-section>.section-header,.project-library-heading,.about-heading,.events-section>.section-header,.social-heading){position:relative;margin-bottom:clamp(2rem,4vw,3.2rem);padding-bottom:1.15rem;border-bottom:1px solid rgba(30,32,37,.18)}
:where(.work-section>.section-header,.project-library-heading,.about-heading,.events-section>.section-header,.social-heading)::after{position:absolute;bottom:-1px;left:0;width:72px;height:2px;background:linear-gradient(90deg,#405dea,#8ba0ff);content:""}
.work-section,.project-library,.about-section,.events-section,.toolkit-section,.location-section,.social-section,.contact-section{padding-block:clamp(4.5rem,7vw,7rem)}
.section-header>p,.project-library-heading>p,.social-heading>p{font-size:1rem;line-height:1.65}

/* Small builds no longer form a heavy, dark isolated block. They are a clear
   light catalogue, with each card revealing its accent only on interaction. */
.project-library{position:relative;isolation:isolate;border-color:rgba(30,32,37,.2);background:linear-gradient(155deg,#fbfcff 0%,#fff 54%,#f7f9ff 100%);color:#202124}
.project-library::before,.project-library::after{display:none}.project-library .eyebrow,.project-library-heading>p,.project-library .build-count{color:#586270}.project-library h2{color:#202124}.project-library .build-controls button{border-color:rgba(30,32,37,.3);background:#fff;color:#303640;font:700 .72rem/1 var(--sans);letter-spacing:-.02em;text-transform:none}.project-library .build-grid{gap:1rem;border:0}.project-library .build-card{min-height:300px;overflow:hidden;border:1.25px solid rgba(30,32,37,.44);border-radius:17px;background:#fff;color:#202124;box-shadow:4px 5px 0 rgba(30,32,37,.1)}.project-library .build-card::before{top:1rem;right:1rem}.project-library .build-card-top span{color:#4c5662;font-size:.76rem}.project-library .build-card-top b{border-color:rgba(30,32,37,.28);background:#fff;color:#4d5562;font-size:.52rem}.project-library .build-card h3{max-width:90%;font-size:clamp(1.65rem,2.6vw,2.35rem);line-height:.95}.project-library .build-card p{color:#46505d;font-size:.96rem;line-height:1.58}.project-library .build-tags li{border:1px solid rgba(30,32,37,.15);border-radius:999px;background:#f6f7fb;color:#424a56;font-size:.58rem}.project-library .build-action{border-radius:9px;background:#202124;color:#fff;font-family:var(--sans);font-size:.66rem;letter-spacing:-.01em;text-transform:none}.project-library .build-private{border-radius:9px;color:#303640;font-family:var(--sans);font-size:.66rem;letter-spacing:-.01em;text-transform:none}

/* A normal readable type scale: descriptions are now body-sized instead of
   tiny UI labels, while metadata remains visibly secondary. */
.featured-project-top span{font-size:.62rem}.featured-project-top b{font-size:.54rem}.featured-project p{font-size:.94rem;line-height:1.62}.featured-project li{font-size:.58rem}.featured-project-actions>a,.featured-project-private{font-family:var(--sans);font-size:.64rem;letter-spacing:-.015em;text-transform:none}.about-intro p{font-size:1.12rem;line-height:1.72}.hand-note{font-size:1.22rem;line-height:1.25;font-weight:750;letter-spacing:-.03em}.fact-card span,.stack-card span,.credential-label{font-size:.64rem}.fact-card strong{font-size:clamp(1.2rem,1.7vw,1.48rem)}.stack-card p{font-size:1rem;line-height:1.65}.principle-card strong{font-size:1.25rem}.principle-card p{font-size:.9rem;line-height:1.6}.education-item strong{font-size:1.05rem}.education-item span{font-size:.88rem}.education-item small{font-size:.68rem}.skill-group,.skill-group b{font-size:.84rem}.credential-card li{font-size:.84rem}.certification-card strong{font-size:.9rem}.certification-card span{font-size:.78rem}.certification-card small{font-size:.66rem}.event-timeline-step .event-card p{font-size:1rem;line-height:1.65}.event-timeline-step .event-card span{font-size:.67rem}.event-highlights li{font-size:.68rem}.event-source{font-size:.82rem}.toolkit-copy{font-size:1rem;line-height:1.65}.tool-drag-hint,.tool-selection{font-size:.82rem}.tool-card b{font-size:.96rem}.social-card small{font-size:.66rem}.social-card strong{font-size:clamp(1.15rem,1.8vw,1.45rem)}.location-copy>p:not(.eyebrow),.contact-section>p:not(.eyebrow),.contact-intro>p{font-size:1rem;line-height:1.7}.contact-links .contact-link,.contact-field label,.contact-field input,.contact-field textarea{font-size:.9rem}

/* Common button finish: every visible action gets the same stable fill,
   active inset, and coloured focus line without making ordinary text look clickable. */
:where(.featured-project-actions>a,.featured-project-private,.project-library .build-action,.project-library .build-private,.project-library .build-save,.event-source,.location-actions a,.contact-links .contact-link,.contact-submit,.toolkit-notes-reset,.hero-notes-reset){border-width:1.25px;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,filter .18s ease!important}
:where(.featured-project-actions>a,.featured-project-private,.project-library .build-action,.project-library .build-private,.project-library .build-save,.event-source,.location-actions a,.contact-links .contact-link,.contact-submit,.toolkit-notes-reset,.hero-notes-reset):hover,:where(.featured-project-actions>a,.featured-project-private,.project-library .build-action,.project-library .build-private,.project-library .build-save,.event-source,.location-actions a,.contact-links .contact-link,.contact-submit,.toolkit-notes-reset,.hero-notes-reset):focus-visible{box-shadow:inset 0 2px 0 rgba(255,255,255,.7),0 0 0 3px rgba(64,93,234,.13)!important;filter:saturate(1.08);transform:none!important}
:where(.featured-project-actions>a,.featured-project-private,.project-library .build-action,.project-library .build-private,.project-library .build-save,.event-source,.location-actions a,.contact-links .contact-link,.contact-submit,.toolkit-notes-reset,.hero-notes-reset):active{box-shadow:inset 0 3px 0 rgba(30,32,37,.2)!important;filter:saturate(1.14)}
@media(max-width:900px){.site-nav{gap:.8rem;font-size:.83rem}.project-library .build-card{min-height:274px}.section-header>p,.project-library-heading>p,.social-heading>p{font-size:.92rem}}
@media(max-width:620px){body{font-size:16px}.site-nav{font-size:.9rem}.work-section,.project-library,.about-section,.events-section,.toolkit-section,.location-section,.social-section,.contact-section{padding-block:4rem}.project-library .build-card{min-height:0}.project-library .build-card p,.featured-project p,.about-intro p,.event-timeline-step .event-card p{font-size:.92rem}.section-header>p,.project-library-heading>p,.social-heading>p{font-size:.9rem}.skill-group,.skill-group b{font-size:.77rem}.contact-links .contact-link,.contact-field label,.contact-field input,.contact-field textarea{font-size:.86rem}}

/* Strict portfolio reading order: personal story and proof first, playful
   notes only after the main projects, then the supporting catalogue. */
.credentials-section{margin:0;padding:clamp(4.5rem,7vw,7rem) clamp(2rem,7vw,8rem);border-bottom:1px solid var(--line);background:linear-gradient(145deg,#fff 0%,#fafbff 100%)}
.credentials-heading{position:relative;max-width:780px;margin-bottom:clamp(2rem,4vw,3.2rem);padding-bottom:1.15rem;border-bottom:1px solid rgba(30,32,37,.18)}
.credentials-heading::before{position:absolute;right:0;bottom:-1px;left:0;height:1px;background:repeating-linear-gradient(90deg,rgba(30,32,37,.76) 0 11px,transparent 11px 21px);background-size:42px 1px;content:"";opacity:.48;animation:ink-line-drift 14s linear infinite}
.credentials-heading h2{margin:0;font-size:clamp(2.35rem,4.3vw,4.85rem);line-height:.92;letter-spacing:-.065em}.credentials-heading>p:not(.eyebrow){max-width:60ch;margin:1rem 0 0;color:#586270;font-size:1rem;line-height:1.65}
.credentials-grid{display:grid;grid-template-columns:1fr;gap:2rem}.credentials-education,.credentials-certifications,.credential-card--skills{display:grid;gap:1rem}.credential-card--skills{border:1.25px solid rgba(30,32,37,.48)!important;border-radius:17px;box-shadow:4px 5px 0 rgba(30,32,37,.1)}
.credentials-grid .credential-label{display:block;width:max-content;margin:0;padding:.44rem .68rem;border:1px solid rgba(30,32,37,.35);border-radius:999px;background:#fff;color:#303640;font:800 .72rem/1 var(--sans);letter-spacing:.01em;text-transform:none}.credentials-grid .credential-label::first-letter{text-transform:uppercase}

/* About is the opening proof: a composed story panel, current build context,
   and a tactile mechanical clock that stays useful rather than ornamental. */
.about-intro{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1.38fr) minmax(224px,.62fr);gap:clamp(1.25rem,3vw,2.6rem);align-items:center;overflow:hidden;border:1.25px solid rgba(30,32,37,.5)!important;background:linear-gradient(135deg,#fff 0%,#f4f6ff 100%)!important;box-shadow:5px 6px 0 rgba(30,32,37,.1)!important}
.about-intro::before{position:absolute;z-index:0;right:-12%;bottom:-42%;width:340px;height:340px;border:1px dashed rgba(32,33,36,.35);border-radius:50%;content:"";animation:about-orbit 24s linear infinite}.about-intro>*{position:relative;z-index:1}.about-story{max-width:66ch}.about-kicker{margin:0 0 .8rem!important;color:#405dea!important;font-size:.74rem!important;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.about-story h3{max-width:17ch;margin:0 0 1rem;font-size:clamp(1.85rem,3.2vw,3.25rem);line-height:.98;letter-spacing:-.065em}.about-story p{margin:0 0 .85rem!important;max-width:62ch}.about-signal-row{display:flex;flex-wrap:wrap;gap:.52rem;margin-top:1.3rem}.about-signal-row span{padding:.42rem .62rem;border:1px solid rgba(30,32,37,.25);border-radius:999px;background:rgba(255,255,255,.78);font-size:.76rem;font-weight:750}
.about-live-clock{--drag-x:0px;--drag-y:0px;--clock-light-x:58%;--clock-light-y:27%;position:relative;display:block;min-width:0;padding:1rem 1rem .92rem;border:1.5px solid #202124;border-radius:5px;appearance:none;background:radial-gradient(180px circle at var(--clock-light-x) var(--clock-light-y),rgba(255,255,255,.95),transparent 62%),linear-gradient(145deg,#efe5c5 0%,#d8c99e 100%);box-shadow:5px 6px 0 #202124,0 15px 24px rgba(40,39,32,.14);color:#26251f;cursor:grab;text-align:left;touch-action:none;user-select:none;transform:translate(var(--drag-x),var(--drag-y)) rotate(-1.2deg);transition:box-shadow .2s ease,filter .2s ease,transform .2s ease}
.about-live-clock::before,.about-live-clock::after{position:absolute;right:.75rem;left:.75rem;height:1px;background:repeating-linear-gradient(90deg,#202124 0 10px,transparent 10px 20px);background-size:40px 1px;content:"";opacity:.54;animation:ink-line-drift 9s linear infinite}.about-live-clock::before{top:.56rem}.about-live-clock::after{right:.75rem;bottom:.56rem;left:.75rem;animation-direction:reverse}.about-live-clock>span{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:#4c452e;font:800 .53rem/1 var(--mono);letter-spacing:.09em}.about-live-clock>span b{font:inherit}.about-live-clock>span i{padding:.22rem .3rem;border:1px solid rgba(32,33,36,.48);border-radius:2px;background:#eee1ba;color:#50462c;font:700 .43rem/1 var(--mono);font-style:normal;letter-spacing:.07em}.about-live-clock strong{display:block;margin:.65rem 0 .36rem;padding:.34rem .38rem;border:2px inset #6d775e;border-radius:2px;background:#aeb990;color:#1f2b22;font-family:var(--mono);font-size:clamp(2rem,3.3vw,2.7rem);line-height:.94;letter-spacing:.02em;font-variant-numeric:tabular-nums;text-shadow:1px 1px 0 rgba(242,245,220,.65),-1px -1px 0 rgba(45,61,42,.2)}.about-live-clock em{display:block;color:#504b38;font:800 .51rem/1.35 var(--mono);letter-spacing:.04em;text-transform:uppercase}.about-live-clock small{display:block;margin-top:.74rem;color:#37352b;font-size:.72rem;font-weight:750;line-height:1.4}.about-live-clock:focus-visible{outline:3px solid rgba(64,93,234,.45);outline-offset:4px}.about-live-clock.is-dragging{z-index:4;cursor:grabbing;transition:none}.about-live-clock.is-clock-activated{animation:clock-click-pulse .55s cubic-bezier(.16,1,.3,1)}
@keyframes ink-line-drift{to{background-position:80px 0}}@keyframes about-orbit{to{transform:rotate(360deg)}}@keyframes clock-click-pulse{0%,100%{filter:brightness(1);box-shadow:5px 6px 0 #202124,0 15px 24px rgba(40,39,32,.14)}42%{filter:brightness(1.08);box-shadow:7px 8px 0 #202124,0 0 0 7px rgba(64,93,234,.14),0 18px 29px rgba(40,39,32,.18)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.about-live-clock:hover{filter:saturate(1.08);box-shadow:6px 7px 0 #202124,0 0 0 5px rgba(64,93,234,.12),0 18px 30px rgba(40,39,32,.18)}}

/* A thin moving ink rule joins otherwise calm section borders. It gives the
   page a living craft detail without turning every card into an animation. */
:where(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading){isolation:isolate}
:where(.work-section>.section-header,.project-library-heading,.about-heading,.events-section>.section-header,.social-heading)::before{position:absolute;right:0;bottom:-1px;left:0;height:1px;background:repeating-linear-gradient(90deg,rgba(30,32,37,.8) 0 11px,transparent 11px 21px);background-size:42px 1px;content:"";opacity:.46;animation:ink-line-drift 14s linear infinite}

/* Build notes appear after featured work. Six notes give the board balance
   while the title keeps the movable interaction self-explanatory. */
.hero{min-height:680px!important;padding:clamp(4rem,7vw,6.5rem) clamp(2rem,7vw,8rem)!important}.hero-notes-label{position:absolute!important;z-index:1;top:50%;left:50%;max-width:13ch;margin:0;color:#303640;font-size:clamp(1.6rem,3vw,3.2rem);font-weight:800;line-height:1.02;letter-spacing:-.06em;text-align:center;transform:translate(-50%,-50%)}.hero .note-rag{top:15%!important;left:7%!important}.hero .note-left{top:16%!important;right:8%!important;left:auto!important}.hero .note-side{top:48%!important;right:7%!important;bottom:auto!important;left:auto!important}.hero .note-coral{right:32%!important;bottom:10%!important;left:auto!important;top:auto!important}.hero .note-agent-loop{bottom:10%!important;left:7%!important;top:auto!important}.hero .note-learning{--note-rotate:2deg;top:48%;left:11%;min-width:190px;min-height:128px;background:#e6ddff}.hero .hero-notes-reset{top:1.25rem!important;right:1.25rem!important;bottom:auto!important;left:auto!important}
@media(max-width:900px){.about-intro{grid-template-columns:minmax(0,1fr) minmax(220px,.62fr)}.hero{min-height:820px!important}.hero .note-rag{top:15%!important;left:5%!important}.hero .note-left{top:15%!important;right:5%!important}.hero .note-learning{top:40%!important;left:5%!important}.hero .note-side{top:40%!important;right:5%!important}.hero .note-agent-loop{bottom:8%!important;left:5%!important}.hero .note-coral{right:27%!important;bottom:8%!important}}
@media(max-width:620px){.site-nav.is-open{max-height:620px}.credentials-section{padding:4rem 1.2rem}.credentials-heading h2{font-size:2.55rem}.about-intro{grid-template-columns:1fr;padding:1.2rem!important}.about-story h3{font-size:2rem}.about-live-clock{max-width:300px;justify-self:center;width:100%}.hero{min-height:1010px!important;padding:4.75rem .8rem 2rem!important}.hero-notes-label{top:5.8rem;max-width:18ch;font-size:1.6rem}.hero .note{min-width:calc(50% - .86rem)!important;min-height:124px!important}.hero .note-rag{top:11rem!important;left:.7rem!important}.hero .note-left{top:11rem!important;right:.7rem!important}.hero .note-learning{top:21rem!important;left:.7rem!important}.hero .note-side{top:21rem!important;right:.7rem!important}.hero .note-agent-loop{top:31rem!important;bottom:auto!important;left:.7rem!important}.hero .note-coral{top:31rem!important;right:.7rem!important;bottom:auto!important}.hero .hero-notes-reset{top:.85rem!important;right:.7rem!important}.credentials-grid{gap:1.35rem}}
@media(prefers-reduced-motion:reduce){.credentials-heading::before,:where(.work-section>.section-header,.project-library-heading,.about-heading,.events-section>.section-header,.social-heading)::before,.about-intro::before,.about-live-clock::before,.about-live-clock::after{animation:none!important}.about-live-clock{transition:none!important}}

/* Navigation is a small tactile control strip: the current section is obvious,
   hover has a calm blue fill, and neither state changes the header layout. */
.site-header{isolation:isolate;border-bottom:1.5px solid rgba(30,32,37,.28)}
.site-header::after{position:absolute;right:0;bottom:-1.5px;left:0;z-index:-1;height:2px;background:repeating-linear-gradient(90deg,#202124 0 9px,rgba(64,93,234,.9) 9px 16px,transparent 16px 28px);background-size:56px 2px;content:"";opacity:.78;animation:header-ink-drift 8s linear infinite;pointer-events:none}
.site-nav a{position:relative;display:inline-flex;align-items:center;min-height:34px;padding:.34rem .5rem;border:1px solid transparent;border-radius:999px;color:#41464e;outline-offset:3px;transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.site-nav a::after{position:absolute;right:.7rem;bottom:4px;left:.7rem;height:2px;border-radius:99px;background:#405dea;content:"";opacity:0;transform:scaleX(.35);transform-origin:center;transition:opacity .2s ease,transform .2s ease}
.site-nav a:hover,.site-nav a:focus-visible,.site-nav a.is-current{border-color:rgba(64,93,234,.28);background:#eef1ff;color:#253eab;box-shadow:inset 0 -2px 0 rgba(64,93,234,.14),0 4px 12px rgba(64,93,234,.1)}
.site-nav a:hover::after,.site-nav a:focus-visible::after,.site-nav a.is-current::after{opacity:1;transform:scaleX(1)}
.site-nav a:active{background:#dce4ff;box-shadow:inset 0 2px 0 rgba(30,32,37,.14);transform:translateY(1px)}

/* About begins closer to the profile rail. This removes the unintentional
   white gap while retaining a clear anchor offset below the sticky header. */
.about-section{padding-top:clamp(2.25rem,3vw,3.5rem)!important;padding-bottom:clamp(4.5rem,7vw,7rem)!important}
.about-heading{margin-bottom:clamp(1.55rem,2.5vw,2.4rem)!important}

/* Section rules are deliberately visible now: a graphite travelling thread
   carries a blue signal marker across every editorial heading. */
:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading){position:relative;isolation:isolate;overflow:hidden;padding-bottom:1.25rem;border-bottom:1.5px solid rgba(30,32,37,.34)}
:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading)::before{position:absolute;right:0;bottom:-1.5px;left:0;height:2px;background:repeating-linear-gradient(90deg,#202124 0 10px,rgba(30,32,37,.38) 10px 13px,transparent 13px 27px);background-size:54px 2px;content:"";opacity:.76;animation:heading-ink-drift 7s linear infinite}
:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading)::after{position:absolute;bottom:-1.5px;left:0;width:104px;height:3px;border-radius:99px;background:linear-gradient(90deg,#405dea,#8ea4ff 68%,transparent);box-shadow:0 0 11px rgba(64,93,234,.5);content:"";animation:heading-marker-travel 7s cubic-bezier(.42,0,.2,1) infinite}
@keyframes header-ink-drift{to{background-position:112px 0}}
@keyframes heading-ink-drift{to{background-position:108px 0}}
@keyframes heading-marker-travel{0%,100%{transform:translateX(0);opacity:.95}50%{transform:translateX(min(46vw,580px));opacity:1}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.site-nav a:hover{transform:translateY(-1px)}}
@media(max-width:620px){.about-section{padding-top:2.75rem!important}.site-nav a{min-height:0;padding:1rem 1.2rem;border:0;border-radius:0}.site-nav a::after{right:1.2rem;left:1.2rem;bottom:.52rem}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a.is-current{border:0;background:#eef1ff;box-shadow:inset 3px 0 0 #405dea}.site-header::after{animation-duration:11s}}
@media(prefers-reduced-motion:reduce){.site-header::after,:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading)::before,:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading)::after{animation:none!important}.site-nav a{transition:none!important}}

/* Foundation is a clear summary rather than a broken multi-line slogan. */
.credentials-heading{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(250px,.72fr);column-gap:clamp(2rem,6vw,6rem);align-items:end;max-width:none!important;margin-bottom:clamp(1.65rem,3vw,2.5rem)!important}
.credentials-heading>.eyebrow{grid-column:1/-1;margin-bottom:.7rem}
.credentials-heading h2{max-width:15ch!important;font-size:clamp(2.3rem,4.15vw,4.4rem)!important;line-height:.94!important}
.credentials-heading>p:not(.eyebrow){max-width:31ch!important;margin:0 0 .35rem!important;color:#4e5966!important;font-size:1.05rem!important;line-height:1.55!important;text-align:left}

/* Cards in the personal foundation can be selected with a mouse, touch, or
   keyboard. Each content family has its own feedback grammar instead of one
   repeated hover effect. */
[data-interaction-card]{cursor:pointer;outline-offset:4px;touch-action:manipulation}
[data-interaction-card]:focus-visible{outline:3px solid color-mix(in srgb,var(--card-accent,#405dea) 58%,transparent)!important}
.fact-card{--card-accent:#167353;--selected-fill:#a9eed5}.lilac-card{--card-accent:#725bb2;--selected-fill:#d9ccff}.site-card{--card-accent:#b55041;--selected-fill:#ffbeac}.stack-card{--card-accent:#405dea;--selected-fill:#dce5ff}.principle-coral{--card-accent:#ae584c;--selected-fill:#ffd2c8}.principle-blue{--card-accent:#445dbb;--selected-fill:#dbe4ff}.principle-sun{--card-accent:#8f6f21;--selected-fill:#ffe9a5}
.fact-card.is-selected{border-color:var(--card-accent)!important;background:linear-gradient(140deg,#fff 0%,var(--selected-fill) 100%)!important;box-shadow:inset 0 -8px 0 color-mix(in srgb,var(--card-accent) 19%,transparent),6px 8px 0 color-mix(in srgb,var(--card-accent) 25%,transparent),0 13px 24px rgba(30,32,37,.12)!important}
.stack-card.is-selected{border-color:var(--card-accent)!important;background:linear-gradient(105deg,#fff 0%,var(--selected-fill) 100%)!important;box-shadow:inset 5px 0 0 var(--card-accent),6px 8px 0 rgba(64,93,234,.16)!important}
.principle-card.is-selected{border-color:var(--card-accent)!important;background:linear-gradient(145deg,#fff 0%,var(--selected-fill) 100%)!important;box-shadow:inset 0 3px 0 rgba(255,255,255,.84),5px 7px 0 color-mix(in srgb,var(--card-accent) 26%,transparent),0 12px 24px rgba(30,32,37,.1)!important}
.education-item{--card-accent:#405dea;--selected-fill:#e1e7ff}.education-item:nth-child(2){--card-accent:#238467;--selected-fill:#d9f6e9}
.education-item.is-selected{border-color:var(--card-accent)!important;background:linear-gradient(145deg,#fff 8%,var(--selected-fill) 100%)!important;box-shadow:7px 8px 0 color-mix(in srgb,var(--card-accent) 25%,transparent),0 13px 24px rgba(30,32,37,.09)!important}
.skill-group{appearance:none;width:100%;border:1px solid transparent;border-top-color:rgba(30,32,37,.13);border-radius:9px;background:transparent;color:#202124;text-align:left;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,filter .2s ease}
.skill-group:first-child{border-top-color:transparent}.skill-group:nth-child(4n+1){--card-accent:#405dea;--selected-fill:#e3e9ff}.skill-group:nth-child(4n+2){--card-accent:#168264;--selected-fill:#dcf8ec}.skill-group:nth-child(4n+3){--card-accent:#ad5647;--selected-fill:#ffe7df}.skill-group:nth-child(4n){--card-accent:#946b15;--selected-fill:#fff1c5}
.skill-group.is-selected{border-color:color-mix(in srgb,var(--card-accent) 58%,transparent)!important;background:var(--selected-fill)!important;box-shadow:inset 3px 0 0 var(--card-accent),0 4px 12px color-mix(in srgb,var(--card-accent) 13%,transparent)!important}
.certification-card{--card-accent:#9a721c;position:relative;overflow:hidden;cursor:pointer}.certification-card:nth-child(3n+2){--card-accent:#405dea}.certification-card:nth-child(3n){--card-accent:#287f61}
.certification-card.is-selected{border-color:var(--card-accent)!important;background:linear-gradient(145deg,#fff 0%,var(--hover-wash) 100%)!important;box-shadow:inset 0 3px 0 rgba(255,255,255,.88),6px 7px 0 color-mix(in srgb,var(--card-accent) 24%,transparent),0 12px 24px rgba(30,32,37,.1)!important}
.certification-card.is-selected::after{position:absolute;top:.6rem;right:.65rem;display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--card-accent);border-radius:50%;background:#fff;color:var(--card-accent);content:"✓";font-size:.72rem;font-weight:900;animation:certificate-mark .42s cubic-bezier(.16,1,.3,1)}
@keyframes focus-level-fill{0%{filter:saturate(1);box-shadow:inset 0 0 0 transparent}58%{filter:saturate(1.16);box-shadow:inset 0 -15px 0 color-mix(in srgb,var(--card-accent) 24%,transparent),0 0 0 5px color-mix(in srgb,var(--card-accent) 13%,transparent)}100%{filter:saturate(1);box-shadow:inset 0 -8px 0 color-mix(in srgb,var(--card-accent) 19%,transparent)}}
@keyframes education-ink-settle{0%{filter:saturate(1);box-shadow:3px 4px 0 rgba(30,32,37,.1)}55%{filter:saturate(1.14);box-shadow:11px 12px 0 color-mix(in srgb,var(--card-accent) 30%,transparent)}100%{filter:saturate(1);box-shadow:7px 8px 0 color-mix(in srgb,var(--card-accent) 25%,transparent)}}
@keyframes skill-scan{0%{filter:brightness(1)}45%{filter:brightness(1.08) saturate(1.12)}100%{filter:brightness(1)}}
@keyframes certificate-mark{0%{transform:scale(.35) rotate(-18deg);opacity:0}70%{transform:scale(1.12) rotate(4deg);opacity:1}100%{transform:scale(1) rotate(0)}}
.fact-card.is-activating,.stack-card.is-activating,.principle-card.is-activating{animation:focus-level-fill .56s cubic-bezier(.16,1,.3,1)}
.education-item.is-activating{animation:education-ink-settle .56s cubic-bezier(.16,1,.3,1)}
.skill-group.is-activating{animation:skill-scan .44s ease-out}

/* CallbackCV is a résumé scanner, so its selected state uses one restrained
   scan sweep rather than repeating the generic project pulse. */
.featured-project--sun{overflow:hidden;background:linear-gradient(135deg,#fff8df 0%,#fff 72%)}
.featured-project--sun.is-selected::after{position:absolute;z-index:0;top:0;bottom:0;left:-38%;width:32%;background:linear-gradient(90deg,transparent,rgba(255,224,138,.82),transparent);content:"";animation:callback-scan .72s cubic-bezier(.16,1,.3,1)}
@keyframes callback-scan{to{left:108%}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.education-item:hover{box-shadow:6px 7px 0 color-mix(in srgb,var(--card-accent) 18%,transparent),0 10px 20px rgba(30,32,37,.1)!important}.skill-group:hover{border-color:color-mix(in srgb,var(--card-accent) 40%,transparent);background:color-mix(in srgb,var(--selected-fill) 62%,#fff);box-shadow:inset 2px 0 0 var(--card-accent)}.certification-card:hover::after{position:absolute;top:.6rem;right:.65rem;color:var(--card-accent);content:"+";font-weight:900}}
@media(max-width:800px){.credentials-heading{grid-template-columns:1fr;gap:.7rem}.credentials-heading h2{max-width:18ch!important}.credentials-heading>p:not(.eyebrow){max-width:52ch!important;margin-top:.25rem!important}}
@media(prefers-reduced-motion:reduce){.fact-card.is-activating,.stack-card.is-activating,.principle-card.is-activating,.education-item.is-activating,.skill-group.is-activating,.certification-card.is-selected::after,.featured-project--sun.is-selected::after{animation:none!important}}

/* Long technical names must always wrap inside their own row. The interactive
   button surface is allowed to grow vertically, never clip its final word. */
.credential-card--skills,.credential-card--skills>div{min-width:0;overflow:visible}
.credential-card--skills>div{align-items:stretch}
.skill-group{min-width:0;overflow:visible;white-space:normal}
.skill-group>b,.skill-group>span{min-width:0;overflow-wrap:anywhere;word-break:normal}
.skill-group>span{display:block}

/* Straight animated rules: a calm graphite baseline stays in place while one
   blue light travels through it. This keeps the portfolio precise instead of
   using the old noisy dashed marquee. */
.site-header::after{height:2px;background:linear-gradient(90deg,rgba(30,32,37,.72) 0%,rgba(30,32,37,.72) 43%,#405dea 48%,#b9c8ff 50%,#405dea 52%,rgba(30,32,37,.72) 57%,rgba(30,32,37,.72) 100%);background-size:240% 100%;opacity:1;animation:straight-line-sweep 8s linear infinite}
:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading){overflow:hidden;border-bottom-color:rgba(30,32,37,.48)}
:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading)::before{right:0;bottom:-1.5px;left:0;height:1px;background:rgba(30,32,37,.62);background-size:auto;opacity:1;animation:none}
:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading)::after{bottom:-2px;left:-118px;width:108px;height:3px;border-radius:99px;background:linear-gradient(90deg,transparent 0%,#405dea 28%,#b9c8ff 50%,#405dea 72%,transparent 100%);box-shadow:0 0 13px rgba(64,93,234,.5);opacity:0;animation:heading-light-sweep 8.5s cubic-bezier(.38,0,.2,1) infinite}
@keyframes straight-line-sweep{from{background-position:0 0}to{background-position:240% 0}}
@keyframes heading-light-sweep{0%,8%{left:-118px;opacity:0}14%{opacity:.95}81%{opacity:.95}91%,100%{left:calc(100% + 10px);opacity:0}}
@media(prefers-reduced-motion:reduce){.site-header::after{animation:none!important;background:#202124}:is(.work-section>.section-header,.project-library-heading,.about-heading,.credentials-heading,.events-section>.section-header,.social-heading)::after{animation:none!important;left:0;opacity:.9}}

/* Outer-frame finish: the header and profile rail share one clear graphite
   baseline. A single blue signal passes through each edge, so the frame feels
   intentional without turning every border into a busy marquee. */
.site-header{overflow:visible;border-bottom:1px solid rgba(30,32,37,.52)}
.site-header::after{right:auto;bottom:-1px;left:-176px;z-index:3;width:164px;height:2px;background:linear-gradient(90deg,transparent 0%,#405dea 28%,#d6dfff 50%,#405dea 72%,transparent 100%);background-size:100% 100%;box-shadow:0 0 13px rgba(64,93,234,.52);opacity:0;animation:header-signal-travel 8.8s cubic-bezier(.38,0,.2,1) infinite}
@keyframes header-signal-travel{0%,8%{left:-176px;opacity:0}13%{opacity:1}85%{opacity:1}94%,100%{left:calc(100vw + 12px);opacity:0}}

@media(min-width:901px){
  .profile-rail--wall{isolation:isolate;border-right:1px solid rgba(30,32,37,.52)}
  .profile-rail--wall::after{position:absolute;z-index:3;top:-118px;right:-1px;width:2px;height:112px;background:linear-gradient(180deg,transparent 0%,#405dea 28%,#d6dfff 50%,#405dea 72%,transparent 100%);box-shadow:0 0 13px rgba(64,93,234,.5);content:"";opacity:0;pointer-events:none;animation:rail-signal-travel 10.5s cubic-bezier(.38,0,.2,1) infinite}
  .profile-rail--wall .rail-experience,.profile-rail--wall .rail-section-button,.profile-rail--wall .profile-download{position:relative;overflow:hidden}
  .profile-rail--wall .rail-experience{transition:border-color .2s ease,box-shadow .24s ease,background .22s ease}
  .profile-rail--wall .rail-experience::after{position:absolute;top:0;left:-102px;width:94px;height:2px;background:linear-gradient(90deg,transparent,#405dea,#d6dfff,#405dea,transparent);box-shadow:0 0 10px rgba(64,93,234,.42);content:"";opacity:0;pointer-events:none}
  .profile-rail--wall .rail-section-button::after,.profile-rail--wall .profile-download::after{position:absolute;top:-25%;bottom:-25%;left:-42%;width:28%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.82),transparent);content:"";opacity:0;pointer-events:none;transform:skewX(-20deg)}
}
@keyframes rail-signal-travel{0%,8%{top:-118px;opacity:0}13%{opacity:1}85%{opacity:1}94%,100%{top:calc(100% + 8px);opacity:0}}
@keyframes rail-edge-glide{0%{left:-102px;opacity:0}16%{opacity:1}100%{left:calc(100% + 8px);opacity:0}}
@keyframes rail-control-sheen{0%{left:-42%;opacity:0}20%{opacity:.78}100%{left:118%;opacity:0}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .profile-rail--wall .rail-experience:hover{border-color:#91a3f2;box-shadow:inset 0 2px 0 rgba(255,255,255,.86),4px 5px 0 rgba(64,93,234,.16),0 10px 20px rgba(30,32,37,.08)}
  .profile-rail--wall .rail-experience:hover::after{animation:rail-edge-glide .62s cubic-bezier(.16,1,.3,1)}
  .profile-rail--wall .rail-section-button:hover::after,.profile-rail--wall .profile-download:hover::after{animation:rail-control-sheen .5s cubic-bezier(.16,1,.3,1)}
}
@media(max-width:900px){.profile-rail--wall::after{display:none}}
@media(prefers-reduced-motion:reduce){.site-header::after,.profile-rail--wall::after{animation:none!important}.site-header::after{left:0;opacity:.9}.profile-rail--wall::after{top:0;opacity:.9}.profile-rail--wall .rail-experience::after,.profile-rail--wall .rail-section-button::after,.profile-rail--wall .profile-download::after{animation:none!important}}
