:root{--ink:#171717;--paper:#f1f0dd;--orange:#6c4dff;--acid:#dfff00}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-geist),Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}.shell{padding-left:clamp(22px,4vw,72px);padding-right:clamp(22px,4vw,72px)}
.nav{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1c1c1c33}.wordmark{font-weight:700;font-size:25px;letter-spacing:-1.5px}.wordmark span{font-size:9px;vertical-align:top;margin-left:3px}.nav nav{display:flex;align-items:center;gap:34px;font-size:14px}.pill{padding:15px 25px;border-radius:40px}.dark{background:var(--ink);color:white}
.hero{min-height:760px;position:relative;padding-top:42px;padding-bottom:72px}.eyebrow{display:flex;gap:42px;text-transform:uppercase;font-size:11px;letter-spacing:.1em}.hero h1,.section-head h2,.about h2,.footer h2{font-size:clamp(55px,8.2vw,132px);line-height:.84;letter-spacing:-.075em;font-weight:430;margin:78px 0 0;text-align:center}.hero h1 em,.section-head em,.about em,.footer em{font-style:normal;color:var(--orange)}.hero-copy{position:absolute;right:8%;bottom:95px;max-width:300px;line-height:1.45;font-size:15px}
.signal{height:clamp(390px,52vw,720px);overflow:hidden;position:relative;background:#25185f;isolation:isolate}.signal:before{content:"";position:absolute;inset:-30%;background:repeating-linear-gradient(100deg,transparent 0 28px,#0e0e0e 29px 34px,transparent 35px 55px);transform:skewY(-8deg) scale(1.4);opacity:.6}.orb{position:absolute;border-radius:50%;filter:blur(3px);mix-blend-mode:screen}.orb-one{width:42vw;height:42vw;background:radial-gradient(circle at 35% 30%,#fff 0,#dfff00 12%,#6c4dff 42%,transparent 68%);left:8%;top:3%}.orb-two{width:35vw;height:35vw;background:radial-gradient(circle,#fff 0,#8b7aff 18%,#4025d6 48%,transparent 70%);right:5%;bottom:-8%}.orb-three{width:20vw;height:20vw;background:#dfff00;right:35%;top:20%;filter:blur(60px)}.signal-copy{position:absolute;inset:auto 4vw 3vw;display:flex;justify-content:space-between;color:#fff;text-transform:uppercase;font-size:11px;letter-spacing:.12em}
.work{padding-top:120px;padding-bottom:150px}.section-head{display:grid;grid-template-columns:1fr 3fr;align-items:start}.section-head>span,.about-label,.footer>span{font-size:11px;letter-spacing:.1em}.section-head h2{margin:0;text-align:left;font-size:clamp(70px,11vw,160px)}.project-list{margin-top:100px;display:grid;grid-template-columns:repeat(12,1fr);gap:70px 25px}.project:nth-child(1){grid-column:1/8}.project:nth-child(2){grid-column:8/13;margin-top:180px}.project:nth-child(3){grid-column:3/11}.project-art{aspect-ratio:1.35;position:relative;display:grid;place-items:center;overflow:hidden}.project-art span{position:absolute;left:18px;top:15px;font-size:11px}.project-art i{font-style:normal;font-weight:700;font-size:clamp(50px,11vw,150px);letter-spacing:-.1em}.project-dark{background:var(--ink);color:var(--acid)}.project-meta{border-top:1px solid;margin-top:14px;padding-top:12px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:20px}.project-meta h3{font-size:19px;margin:0;font-weight:500}.project-meta span{font-size:11px;text-transform:uppercase}.project-meta b{font-size:20px}
.about{background:var(--ink);color:var(--paper);padding-top:110px;padding-bottom:120px;display:grid;grid-template-columns:1fr 3fr}.about h2{text-align:left;margin:0 0 70px;font-size:clamp(60px,8vw,120px)}.about p{font-size:clamp(22px,2.8vw,42px);line-height:1.22;letter-spacing:-.03em;max-width:1050px}.services{grid-column:2;display:grid;grid-template-columns:1fr 1fr;margin-top:70px;border-top:1px solid #eeeeca55}.services span{padding:18px 0;border-bottom:1px solid #eeeeca55;text-transform:uppercase;font-size:11px;letter-spacing:.08em}
.footer{background:var(--acid);padding-top:100px;padding-bottom:35px}.footer h2{text-align:left;font-size:clamp(60px,9vw,140px);margin:90px 0 70px}.footer h2 em{color:var(--ink)}.email{font-size:clamp(24px,4vw,58px);border-bottom:2px solid}.footer-bottom{border-top:1px solid;margin-top:110px;padding-top:20px;display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase}.footer-bottom div{display:flex;gap:30px}
@media(max-width:700px){.nav{height:82px}.nav nav>a:not(.pill){display:none}.hero{min-height:650px}.eyebrow span:nth-child(2){display:none}.hero h1{text-align:left;margin-top:95px}.hero-copy{position:static;margin:50px 0 0 32%;}.section-head,.about{grid-template-columns:1fr}.section-head h2,.about>div:nth-child(2){margin-top:35px}.project-list{display:block;margin-top:65px}.project{margin:0 0 65px!important}.project-art{aspect-ratio:1.15}.about .services{grid-column:1;grid-template-columns:1fr}.footer-bottom{gap:20px;flex-wrap:wrap}.footer-bottom>div{order:3;width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.project:nth-child(4){grid-column:8/13;margin-top:80px}.project-blue{background:#2563eb;color:#ffd8c9}.capabilities{padding-top:140px;padding-bottom:160px}.capabilities>span{text-transform:uppercase;font-size:11px;letter-spacing:.1em}.capabilities h2{font-size:clamp(45px,7vw,110px);line-height:1;letter-spacing:-.065em;text-align:center;font-weight:430;margin:80px auto 140px;max-width:1250px}.capabilities h2 em{font-style:normal;color:var(--orange)}

/* High-energy motion system */
.nav{animation:navDrop .8s cubic-bezier(.16,1,.3,1) both}.hero h1{animation:heroHit 1.15s cubic-bezier(.16,1,.3,1) .15s both}.hero h1 em{display:inline-block;animation:accentPulse 3s ease-in-out 1.2s infinite}.eyebrow,.hero-copy{animation:fadeSlide .8s ease .75s both}.signal:before{animation:gridRush 12s linear infinite}.orb-one{animation:orbOne 8s ease-in-out infinite alternate}.orb-two{animation:orbTwo 10s ease-in-out infinite alternate}.orb-three{animation:orbThree 5s ease-in-out infinite alternate}.signal-copy span{animation:signalBlink 2s steps(2) infinite}.project{transition:transform .65s cubic-bezier(.16,1,.3,1)}.project:hover{transform:translateY(-24px) rotate(-1deg)}.project-art{transition:clip-path .7s cubic-bezier(.16,1,.3,1);clip-path:inset(0)}.project:hover .project-art{clip-path:inset(3% round 24px)}.project-art i{transition:transform .8s cubic-bezier(.16,1,.3,1);animation:letterFloat 4s ease-in-out infinite}.project:hover .project-art i{transform:scale(1.22) rotate(-5deg)}.services span,.footer a{transition:color .25s,transform .25s}.services span:hover,.footer a:hover{color:var(--orange);transform:translateX(8px)}.reveal{opacity:0;transform:translateY(90px) scale(.97);transition:opacity .9s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}.reveal.in{opacity:1;transform:none}
@keyframes navDrop{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}@keyframes heroHit{from{opacity:0;transform:scale(1.2) rotate(2deg);filter:blur(18px)}to{opacity:1;transform:none;filter:none}}@keyframes fadeSlide{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes accentPulse{50%{transform:skewX(-5deg) scale(1.025);text-shadow:8px 8px 0 var(--acid)}}@keyframes gridRush{to{transform:skewY(-8deg) translateX(18%) scale(1.4)}}@keyframes orbOne{to{transform:translate(35%,18%) scale(1.3)}}@keyframes orbTwo{to{transform:translate(-45%,-15%) scale(.7)}}@keyframes orbThree{to{transform:scale(1.8);opacity:.35}}@keyframes signalBlink{50%{opacity:.25;letter-spacing:.4em}}@keyframes letterFloat{50%{transform:translateY(-12px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.menu-toggle{display:none;border:1px solid var(--ink);border-radius:50px;background:transparent;padding:10px 17px;text-transform:uppercase;font-size:11px}.code-rain{position:absolute;top:45%;left:-10%;width:120%;font:700 clamp(24px,4vw,70px)/1 monospace;color:#fff;white-space:nowrap;opacity:.12;animation:codeFlow 13s linear infinite}.section-intro{max-width:590px;margin:45px 0 0 auto;font-size:18px;line-height:1.5}.about-note{font-size:15px!important;line-height:1.55!important;max-width:620px!important;color:#eeeeca99;margin-top:40px}.timeline{margin-top:140px;border-top:1px solid}.timeline-title{text-transform:uppercase;font-size:11px;letter-spacing:.1em;padding:20px 0 60px}.timeline article{display:grid;grid-template-columns:1fr 3fr;border-top:1px solid #17171733;padding:30px 0 70px}.timeline time{font-size:12px;color:var(--orange)}.timeline h3{font-size:clamp(26px,4vw,56px);font-weight:450;letter-spacing:-.04em;margin:0 0 14px}.timeline p{max-width:650px;line-height:1.5}.contact-lead{font-size:clamp(20px,2.2vw,34px);line-height:1.3;max-width:720px}.contact-links{display:grid;grid-template-columns:repeat(2,1fr);margin-top:80px}.contact-links a{font-size:clamp(18px,2.3vw,34px);padding:22px 0;border-top:1px solid}@keyframes codeFlow{to{transform:translateX(-35%)}}
@media(max-width:700px){.menu-toggle{display:block}.nav nav{display:none;position:absolute;z-index:30;left:0;right:0;top:82px;background:var(--acid);padding:28px 22px;flex-direction:column;align-items:stretch;gap:0}.nav nav.open{display:flex}.nav nav>a:not(.pill){display:block;padding:18px 0;border-bottom:1px solid}.nav .pill{text-align:center;margin-top:18px}.timeline article{grid-template-columns:1fr;gap:18px}.contact-links{grid-template-columns:1fr}.section-intro{margin-left:0}}
.stack-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:110px;border-top:1px solid}.stack-grid article{padding:25px 25px 55px 0;border-bottom:1px solid;min-height:190px}.stack-grid article:nth-child(3n+2),.stack-grid article:nth-child(3n+3){padding-left:25px;border-left:1px solid}.stack-grid span{font-size:10px;color:var(--orange)}.stack-grid h3{font-size:clamp(19px,2vw,30px);font-weight:500;letter-spacing:-.035em;margin:35px 0 14px}.stack-grid p{font-size:13px;line-height:1.5;text-transform:uppercase}.contact-links a{display:flex;flex-direction:column;gap:8px}.contact-links small{font-size:11px;text-transform:none;opacity:.65}@media(max-width:700px){.stack-grid{grid-template-columns:1fr}.stack-grid article,.stack-grid article:nth-child(3n+2),.stack-grid article:nth-child(3n+3){padding:22px 0 38px;border-left:0}}
.timeline .company{color:var(--orange);font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.08em;margin:0 0 18px}
.project-meta>div p{font-size:12px;line-height:1.45;max-width:510px;margin:7px 0 0;color:#171717aa}.project-meta>a{font-size:24px;font-weight:700}.project-meta>a:hover{color:var(--orange)}
.project-art img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1),filter .5s}.project-art span{z-index:2;background:var(--ink);color:#fff;border-radius:30px;padding:8px 12px}.project:hover .project-art img{transform:scale(1.08);filter:saturate(1.2)}.project details{border-top:1px solid #17171733;margin-top:20px}.project summary{cursor:pointer;padding:18px 0;text-transform:uppercase;font-size:11px;letter-spacing:.1em}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:12px 0 30px}.case-grid p{font-size:13px;line-height:1.5;margin:0}.case-grid b{display:block;color:var(--orange);text-transform:uppercase;font-size:10px;letter-spacing:.1em;margin-bottom:7px}.github-proof{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:20px;border-top:1px solid;border-bottom:1px solid;padding:24px 0;margin-top:100px}.github-proof strong{font-size:clamp(38px,5vw,72px);color:var(--orange)}.github-proof span{font-size:11px;text-transform:uppercase;max-width:130px}.github-proof a{text-transform:uppercase;font-size:11px}.contact-links{grid-template-columns:repeat(2,1fr)}@media(max-width:700px){.case-grid{grid-template-columns:1fr}.github-proof{grid-template-columns:auto 1fr}.github-proof a{grid-column:1/-1;padding-top:15px}.project-meta{grid-template-columns:1fr auto}.project-meta>span{grid-column:1/-1}.contact-links{grid-template-columns:1fr}}

/* Projects — editorial engineering showcase */.project-list{margin-top:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:90px 28px}.project:nth-child(n){grid-column:auto;margin-top:0}.project{position:relative;counter-increment:projects}.project:before{content:"0" counter(projects);position:absolute;right:0;top:-38px;font:11px/1 monospace;color:var(--orange);letter-spacing:.1em}.project-art{aspect-ratio:16/10;border-radius:18px;background:#d9d8cf;box-shadow:0 20px 60px #17171716}.project-art:after{content:"View repository ↗";position:absolute;right:16px;bottom:16px;z-index:2;background:var(--acid);color:var(--ink);border-radius:40px;padding:10px 14px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;transform:translateY(15px);opacity:0;transition:.35s ease}.project:hover{transform:translateY(-10px)}.project:hover .project-art{clip-path:none}.project:hover .project-art:after{transform:none;opacity:1}.project-art img{object-position:top center}.project-meta{border-top:0;margin-top:21px;padding:0;grid-template-columns:1fr auto;align-items:start}.project-meta>div{padding-right:20px}.project-meta h3{font-size:clamp(24px,2.5vw,38px);letter-spacing:-.04em;line-height:1}.project-meta>div p{font-size:14px;line-height:1.5;margin-top:14px;color:#171717b8}.project-meta>span{grid-column:1;font-family:monospace;color:var(--orange);margin-top:18px}.project-meta>a{grid-column:2;grid-row:1/3;align-self:center;font-size:0;background:var(--ink);color:#fff;border-radius:40px;padding:13px 17px;white-space:nowrap}.project-meta>a:before{content:"Live ↗";font-size:11px;text-transform:uppercase;letter-spacing:.08em}.project-meta>a:hover{background:var(--orange);color:#fff}.project details{margin-top:22px;border-top:1px solid}.project summary{display:flex;justify-content:space-between;list-style:none;padding:18px 0}.project summary::-webkit-details-marker{display:none}.project summary:after{content:"+";font-size:18px;transition:transform .3s}.project details[open] summary:after{transform:rotate(45deg)}.case-grid{border-radius:16px;background:#fff8;padding:24px;gap:28px}.case-grid p{font-size:13px}.work{overflow:hidden}
@media(max-width:800px){.project-list{grid-template-columns:1fr;gap:90px}.project-art{aspect-ratio:4/3}.project:before{top:-28px}}@media(max-width:520px){.project-meta{grid-template-columns:1fr}.project-meta>a{grid-column:1;grid-row:auto;justify-self:start;margin-top:18px}.project-meta>span{grid-column:1}.project-art:after{opacity:1;transform:none}.case-grid{padding:18px}}
.project-list{counter-reset:projects}
.project-meta>a.repo-only:before{content:"GitHub ↗"}
.project-art.live-art:after{content:"View live project ↗"}

/* Recruiter-impact visual direction */
:root{--ink:#0c0c10;--paper:#f4f3ea;--orange:#7457ff;--acid:#c8ff35;--violet:#7457ff;--muted:#6e6d73}body{background-image:radial-gradient(circle at 12% 8%,#7457ff0f,transparent 28%),radial-gradient(circle at 88% 32%,#c8ff3510,transparent 24%)}
.nav{position:relative;z-index:20}.nav:after{content:"";position:absolute;left:0;bottom:-1px;width:32%;height:2px;background:linear-gradient(90deg,var(--violet),var(--acid),transparent);animation:navScan 4s ease-in-out infinite}.wordmark{font-size:27px}.nav nav a{position:relative}.nav nav>a:not(.pill):after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--violet);transition:right .3s}.nav nav>a:hover:after{right:0}.pill.dark{box-shadow:0 8px 24px #0002;transition:transform .3s,box-shadow .3s}.pill.dark:hover{transform:translateY(-3px);box-shadow:0 14px 30px #7457ff45}
.hero{min-height:880px;padding-top:34px;background:linear-gradient(115deg,transparent 0 64%,#7457ff0b 64% 64.15%,transparent 64.15%)}.availability{display:flex;align-items:center;gap:8px}.availability i{width:7px;height:7px;background:#28c76f;border-radius:50%;box-shadow:0 0 0 5px #28c76f1c;animation:statusPulse 2s infinite}.hero-kicker{margin:90px auto -54px;text-align:center;font:11px/1.2 monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--violet)}.hero h1{font-size:clamp(65px,10.6vw,170px);line-height:.76;margin-top:76px;text-shadow:0 1px 0 #fff}.hero h1 span{display:inline-block}.hero h1 em{position:relative;color:var(--violet);text-shadow:10px 10px 0 #c8ff35}.hero h1 em:after{content:"";position:absolute;left:-2%;right:-2%;bottom:-4%;height:10%;background:var(--violet);opacity:.15;transform:skewX(-18deg)}.hero-aside{position:absolute;right:6%;bottom:135px;width:min(390px,31vw)}.hero-copy{position:static;max-width:none;margin:0;font-size:16px;line-height:1.55}.hero-actions{display:flex;align-items:center;gap:12px;margin-top:26px}.hero-actions a{border:1px solid #17171744;border-radius:50px;padding:13px 18px;text-transform:uppercase;font-size:10px;letter-spacing:.08em;transition:.3s}.hero-actions .hero-primary{background:var(--ink);color:#fff;border-color:var(--ink)}.hero-actions a:hover{background:var(--violet);border-color:var(--violet);color:#fff;transform:translateY(-3px)}.hero-proof{position:absolute;left:6%;bottom:56px;display:grid;grid-template-columns:repeat(3,auto);gap:clamp(25px,4vw,65px)}.hero-proof div{display:flex;align-items:center;gap:10px}.hero-proof strong{font-size:clamp(30px,3vw,52px);font-weight:450;letter-spacing:-.06em;color:var(--violet)}.hero-proof span{max-width:88px;font:10px/1.35 monospace;text-transform:uppercase}
.signal{height:clamp(520px,60vw,820px);background:#090812;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20}.signal-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:55px 55px;mask-image:radial-gradient(circle,#000 10%,transparent 75%)}.signal-center{position:absolute;z-index:3;inset:0;display:grid;place-content:center;text-align:center;color:white}.signal-center span{font:10px/1 monospace;letter-spacing:.2em;color:var(--acid);margin-bottom:26px}.signal-center strong{font-size:clamp(52px,9vw,145px);line-height:.78;letter-spacing:-.075em;font-weight:450}.signal-center em{font-style:normal;color:var(--acid)}.orb{opacity:.75}.ticker{overflow:hidden;background:var(--acid);border-bottom:1px solid;padding:14px 0;font:700 12px/1 monospace;letter-spacing:.1em;white-space:nowrap}.ticker div{width:max-content;animation:tickerMove 24s linear infinite}.project-art{border:1px solid #17171715;box-shadow:0 28px 80px #18142a20;transform:translateZ(0)}.project-art:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(120deg,transparent 38%,#ffffff40 48%,transparent 58%);transform:translateX(-120%);transition:transform .85s}.project:hover .project-art:before{transform:translateX(120%)}.project-meta h3{font-weight:550}.project:before{background:var(--acid);color:var(--ink);border-radius:20px;padding:7px 9px;top:-44px}.case-grid{box-shadow:inset 0 0 0 1px #1717170c}.about{position:relative;background:radial-gradient(circle at 90% 10%,#7457ff55,transparent 28%),var(--ink);overflow:hidden}.about:after{content:"CKM";position:absolute;right:-3vw;bottom:-8vw;font-size:32vw;line-height:1;font-weight:800;letter-spacing:-.12em;color:#ffffff04;pointer-events:none}.about>*,.capabilities>*{position:relative;z-index:1}.services span:before{content:"↗";display:inline-block;margin-right:12px;color:var(--acid)}.github-proof{background:var(--ink);color:white;border:0;border-radius:20px;padding:28px 32px;box-shadow:0 24px 70px #17171720}.stack-grid article{transition:background .35s,transform .35s}.stack-grid article:hover{background:#7457ff0c;transform:translateY(-7px)}.timeline article{transition:padding-left .4s,background .4s}.timeline article:hover{padding-left:20px;background:linear-gradient(90deg,#7457ff0c,transparent)}.footer{position:relative;background:var(--acid);overflow:hidden}.footer:before{content:"AVAILABLE FOR IMPACT";position:absolute;right:-4%;top:12%;font-size:11vw;white-space:nowrap;font-weight:800;letter-spacing:-.07em;color:#0c0c1007;transform:rotate(-8deg)}.contact-links a{transition:padding-left .35s,background .35s}.contact-links a:hover{padding-left:18px;background:#fff5}
@keyframes navScan{50%{width:100%;opacity:.25}}@keyframes statusPulse{50%{box-shadow:0 0 0 10px #28c76f00}}@keyframes tickerMove{to{transform:translateX(-50%)}}
@media(max-width:900px){.hero{min-height:820px}.hero-aside{width:38vw}.hero-proof{gap:25px}}
@media(max-width:700px){.hero{min-height:790px;padding-bottom:38px}.hero-kicker{text-align:left;margin:65px 0 -55px}.hero h1{font-size:clamp(57px,17vw,92px);line-height:.78}.hero h1 em{text-shadow:5px 5px 0 #c8ff35}.hero-aside{position:static;width:auto;margin:52px 0 0 16%}.hero-copy{margin:0}.hero-actions{flex-wrap:wrap}.hero-proof{position:static;margin:55px 0 0;grid-template-columns:repeat(3,1fr);gap:10px}.hero-proof div{display:block}.hero-proof strong{display:block}.hero-proof span{display:block;margin-top:4px}.signal-center strong{font-size:15vw}.github-proof{padding:22px}.footer:before{font-size:22vw}}
.mobile-project{grid-column:1/-1!important}.mobile-showcase{min-height:720px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);align-items:center;overflow:hidden;border-radius:28px;background:radial-gradient(circle at 72% 42%,#b833ff66,transparent 27%),radial-gradient(circle at 18% 15%,#7457ff55,transparent 30%),linear-gradient(135deg,#100a19,#21102c 58%,#09070d);box-shadow:0 35px 100px #17102035;position:relative}.mobile-showcase:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,#000,transparent 75%)}.mobile-copy{position:relative;z-index:2;color:#fff;padding:clamp(38px,6vw,90px)}.mobile-copy small{font:10px/1 monospace;letter-spacing:.18em;color:#d893ff}.mobile-copy strong{display:block;font-size:clamp(54px,6.5vw,105px);line-height:.82;letter-spacing:-.07em;font-weight:480;margin:36px 0}.mobile-copy strong em{font-style:normal;color:#d245ff}.mobile-copy p{font-size:clamp(15px,1.5vw,20px);line-height:1.5;color:#ffffffb5;max-width:470px}.mobile-copy>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.mobile-copy>div span{border:1px solid #ffffff30;border-radius:30px;padding:9px 12px;font:9px/1 monospace;text-transform:uppercase;letter-spacing:.08em}.project-mobile{height:720px;aspect-ratio:auto;border-radius:0;background:transparent;box-shadow:none;padding:55px 8% 0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.phone-frame{position:relative;width:min(390px,76%);height:650px;border:10px solid #0b0910;border-bottom:0;border-radius:58px 58px 0 0;background:#0b0910;padding:9px 8px 0;box-shadow:0 45px 90px #000a,0 0 0 1px #ffffff25;transition:transform .8s cubic-bezier(.16,1,.3,1)}.phone-frame:before{content:"";position:absolute;inset:0;border-radius:48px 48px 0 0;box-shadow:inset 0 0 0 2px #ffffff18;pointer-events:none;z-index:3}.phone-speaker{position:absolute;z-index:4;top:14px;left:50%;width:78px;height:20px;transform:translateX(-50%);background:#08070b;border-radius:0 0 16px 16px}.project-mobile img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:top;border-radius:41px 41px 0 0;filter:none}.mobile-project:hover .phone-frame{transform:translateY(-18px) rotate(1deg)}.mobile-project:hover .project-mobile img{transform:none;filter:saturate(1.08)}.project-mobile>span{top:22px;left:auto;right:22px}.project-mobile:after{content:"Mobile product";opacity:1;transform:none}.mobile-project .project-meta{grid-template-columns:1fr auto}.mobile-project .project-meta>div{max-width:760px}
@media(max-width:800px){.mobile-showcase{min-height:0;grid-template-columns:1fr}.mobile-copy{padding:48px 34px 28px}.mobile-copy strong{font-size:clamp(52px,13vw,88px)}.project-mobile{height:600px;padding-top:30px}.phone-frame{height:570px;width:min(350px,75%)}.mobile-project .project-meta{grid-template-columns:1fr auto}}
@media(max-width:520px){.mobile-showcase{border-radius:18px}.mobile-copy{padding:34px 22px 24px}.mobile-copy strong{font-size:15vw;margin:25px 0}.mobile-copy p{font-size:14px}.project-mobile{height:470px;padding:24px 12px 0}.phone-frame{height:450px;width:82%;border-width:7px;border-radius:43px 43px 0 0;padding:7px 6px 0}.phone-frame:before{border-radius:35px 35px 0 0}.phone-speaker{top:10px;width:62px;height:16px}.project-mobile img{border-radius:34px 34px 0 0}.project-mobile>span{top:13px;right:13px}.mobile-project .project-meta{grid-template-columns:1fr}}

/* Project layout — thirteen web builds + two featured mobile builds */
.work{padding-inline:clamp(22px,4vw,72px)}.project-list{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(18px,2vw,32px);row-gap:92px;align-items:start}.project:nth-child(n){grid-column:auto;width:auto;justify-self:stretch}.project:not(.mobile-project){display:flex;flex-direction:column;min-width:0}.project:not(.mobile-project) .project-art{aspect-ratio:16/10;border-radius:16px}.project:not(.mobile-project) .project-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px}.project:not(.mobile-project) .project-meta>div{grid-column:1/-1;padding-right:0;min-height:138px}.project:not(.mobile-project) .project-meta h3{font-size:clamp(23px,2vw,34px)}.project:not(.mobile-project) .project-meta>div p{font-size:13px;line-height:1.5}.project:not(.mobile-project) .project-meta>span{grid-column:1;align-self:center;margin-top:0}.project:not(.mobile-project) .project-meta>a{grid-column:2;grid-row:2;align-self:center}.project:not(.mobile-project) details{margin-top:auto}.mobile-project{grid-column:1/-1!important;margin-top:10px}.mobile-project:before{top:-44px}.mobile-project .project-meta{padding-inline:clamp(0px,2vw,24px)}
@media(max-width:1100px){.project-list{grid-template-columns:repeat(2,minmax(0,1fr))}.project:not(.mobile-project) .project-meta>div{min-height:120px}.mobile-project{grid-column:1/-1!important;width:100%!important}}
@media(max-width:800px){.project-list{grid-template-columns:1fr;row-gap:82px}.project:nth-child(n){grid-column:1;width:100%;justify-self:stretch}.project:not(.mobile-project) .project-meta>div{min-height:0}.project:not(.mobile-project) .project-art{aspect-ratio:16/10}.mobile-project{grid-column:1!important}.mobile-showcase{margin-inline:0}}
@media(max-width:520px){.work{padding-inline:18px}.project-list{gap:72px}.project:not(.mobile-project) .project-art{aspect-ratio:4/3;border-radius:14px}.project:not(.mobile-project) .project-meta{grid-template-columns:1fr}.project:not(.mobile-project) .project-meta>div,.project:not(.mobile-project) .project-meta>span,.project:not(.mobile-project) .project-meta>a{grid-column:1}.project:not(.mobile-project) .project-meta>a{grid-row:auto;justify-self:start}.mobile-project .project-meta{padding-inline:0}}
.play-store-cta{display:inline-flex;align-items:center;gap:12px;margin-top:30px;background:#fff;color:#0c0c10;border-radius:14px;padding:11px 17px;box-shadow:0 14px 35px #0005;transition:transform .3s,box-shadow .3s}.play-store-cta:hover{transform:translateY(-4px);box-shadow:0 20px 45px #0007}.play-store-cta>b{font-size:25px;color:#4cdd84}.play-store-cta>span{display:flex;flex-direction:column;font-size:18px;line-height:1.05;font-weight:600}.play-store-cta small{font-size:8px!important;letter-spacing:.12em!important;color:#555!important;margin-bottom:3px}.mobile-project .project-meta>a.play-link{grid-column:2;grid-row:1/3;align-self:center;font-size:0;background:var(--ink);color:#fff;border-radius:40px;padding:13px 17px}.mobile-project .project-meta>a.play-link:before{content:"Google Play ↗";font-size:11px;text-transform:uppercase;letter-spacing:.08em}.mobile-project .project-meta>a.play-link:hover{background:var(--violet)}@media(max-width:520px){.mobile-project .project-meta>a.play-link{grid-column:1;grid-row:auto;justify-self:start;margin-top:16px}}
.pilot-art{background:linear-gradient(145deg,#10172b,#283d79);isolation:isolate}.pilot-art:before{z-index:3}.pilot-admin{position:absolute;inset:7% 5% 9% 23%;width:72%!important;height:84%!important;border-radius:12px;box-shadow:0 20px 48px #0007;object-fit:cover!important;object-position:top!important}.pilot-phone{position:absolute;z-index:2;left:6%;bottom:-9%;width:25%;height:88%;border:6px solid #090b13;border-radius:24px;background:#090b13;padding:5px;box-shadow:0 24px 45px #000a;transition:transform .7s cubic-bezier(.16,1,.3,1)}.pilot-phone>span{position:absolute;z-index:2;left:50%;top:7px;transform:translateX(-50%);width:40%;height:8px;padding:0;background:#090b13}.pilot-phone img{width:100%!important;height:100%!important;border-radius:17px;object-fit:cover!important;object-position:top!important}.pilot-art>small{position:absolute;z-index:4;right:12px;bottom:12px;color:#fff;background:#7457ff;border:1px solid #ffffff30;border-radius:12px;padding:9px 11px;font:8px/1.25 monospace;letter-spacing:.1em;text-align:right}.pilot-project:hover .pilot-phone{transform:translateY(-12px) rotate(-2deg)}.pilot-project:hover .pilot-admin{transform:scale(1.025)!important}.pilot-project .project-art:after{content:"View repository ↗"}@media(max-width:520px){.pilot-admin{inset:8% 4% 10% 20%;width:76%!important;height:82%!important}.pilot-phone{left:4%;width:29%;border-width:4px;border-radius:17px;padding:3px}.pilot-phone img{border-radius:12px}.pilot-art>small{font-size:7px;padding:7px 8px}}.smartvend-art{background:#174f9a}.smartvend-art:after{content:"Product website";opacity:1;transform:none}.project-badge{align-self:center;background:#7457ff14;border:1px solid #7457ff55;border-radius:30px;color:var(--violet);font:10px/1 monospace;letter-spacing:.08em;padding:12px 14px;text-transform:uppercase;white-space:nowrap}@media(min-width:1101px){.project-list{grid-template-columns:repeat(6,minmax(0,1fr))}.project-list>.project:not(.mobile-project){grid-column:span 2}.project-list>.project.smartvend-project{grid-column:4/span 2}.project-list>.mobile-project{grid-column:1/-1!important}}@media(min-width:801px) and (max-width:1100px){.project-list>.smartvend-project{grid-column:1/-1;width:calc(50% - 16px);justify-self:center}}@media(max-width:520px){.project-badge{justify-self:start}}

/* Projects — studio gallery refresh */
.work{position:relative;isolation:isolate;overflow:hidden;padding-top:clamp(110px,11vw,180px);padding-bottom:clamp(130px,13vw,210px);background:radial-gradient(circle at 4% 9%,#7457ff1a,transparent 25%),radial-gradient(circle at 96% 48%,#c8ff3518,transparent 22%),linear-gradient(180deg,#f4f3ea 0%,#eeecfa 52%,#f4f3ea 100%);border-bottom:1px solid #17171718}.work:before{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(#17171708 1px,transparent 1px),linear-gradient(90deg,#17171708 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,#0009,transparent 72%);pointer-events:none}.work .section-head{position:relative;grid-template-columns:minmax(170px,.72fr) 3fr;gap:clamp(28px,4vw,70px);padding-top:24px;border-top:1px solid #17171735}.work .section-head>span{display:inline-flex;width:max;align-items:center;background:var(--ink);color:#fff;border-radius:99px;padding:10px 13px;font:9px/1 monospace;letter-spacing:.12em}.work .section-head h2{max-width:1120px;line-height:.82}.work .section-head h2 em{position:relative;display:inline-block}.work .section-head h2 em:after{content:"";position:absolute;left:1%;right:-2%;bottom:-10%;height:10%;background:var(--acid);z-index:-1;transform:rotate(-1.5deg)}.project-list{row-gap:clamp(76px,8vw,124px)}.project:not(.mobile-project){padding:10px 10px 24px;background:#ffffffa8;border:1px solid #ffffff;border-radius:26px;box-shadow:0 18px 55px #25203910,0 2px 0 #fff inset;backdrop-filter:blur(14px);transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s cubic-bezier(.16,1,.3,1)}.project:not(.mobile-project):hover{transform:translateY(-14px);box-shadow:0 35px 90px #251b5922,0 2px 0 #fff inset}.project:not(.mobile-project):before{z-index:5;top:22px;right:22px;background:var(--ink);color:#fff;border:1px solid #ffffff25;box-shadow:0 8px 20px #0003;padding:8px 10px}.project:not(.mobile-project) .project-art{border-radius:18px;border-color:#17171712;box-shadow:none}.project:not(.mobile-project) .project-art:after{right:13px;bottom:13px;box-shadow:0 9px 24px #0002}.project:not(.mobile-project) .project-meta{margin:0;padding:25px 10px 0}.project:not(.mobile-project) .project-meta h3{font-size:clamp(24px,2.2vw,36px);line-height:.96}.project:not(.mobile-project) .project-meta>div p{min-height:60px;color:#171717a8}.project:not(.mobile-project) .project-meta>span{display:inline-flex;width:max;max-width:100%;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#7457ff0d;border:1px solid #7457ff2e;border-radius:99px;padding:9px 11px;color:var(--violet)}.project:not(.mobile-project) .project-meta>a{box-shadow:0 9px 22px #17171720;transition:transform .3s,background .3s,box-shadow .3s}.project:not(.mobile-project) .project-meta>a:hover{transform:translateY(-3px);box-shadow:0 14px 28px #7457ff38}.project:not(.mobile-project) details{margin:22px 10px 0;border-top:1px solid #17171720}.project summary{align-items:center;font:9px/1 monospace;letter-spacing:.12em;color:#171717b8}.project summary:after{display:grid;place-items:center;width:28px;height:28px;border:1px solid #17171720;border-radius:50%;background:#fff;line-height:1}.project details[open] summary{color:var(--violet)}.case-grid{background:#f8f7f1d9;border:1px solid #17171710;box-shadow:0 14px 34px #1717170b;padding:24px}.case-grid b{display:flex;align-items:center;gap:8px}.case-grid b:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 4px #7457ff12}.mobile-project{position:relative}.mobile-project:before{z-index:6;top:20px;right:20px;background:var(--acid);color:var(--ink);border:1px solid #ffffff55;box-shadow:0 10px 25px #0003;padding:8px 10px}.mobile-project .mobile-showcase{border:1px solid #ffffff20;box-shadow:0 40px 110px #17102038;transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s cubic-bezier(.16,1,.3,1)}.mobile-project:hover .mobile-showcase{transform:translateY(-8px);box-shadow:0 55px 130px #1710204d}.mobile-project .project-meta{margin:0;padding:28px clamp(4px,2vw,26px) 0}.mobile-project .project-meta h3{font-size:clamp(29px,3vw,48px)}.mobile-project details{margin-inline:clamp(4px,2vw,26px)}.project a:focus-visible,.project summary:focus-visible{outline:3px solid var(--violet);outline-offset:4px}
@media(max-width:800px){.work .section-head{grid-template-columns:1fr}.work .section-head h2{margin-top:14px}.project-list{row-gap:76px}.project:not(.mobile-project) .project-meta>div p{min-height:0}.mobile-project:before{top:14px;right:14px}}
@media(max-width:520px){.work{padding-left:18px;padding-right:18px}.work .section-head h2{font-size:clamp(58px,18vw,86px)}.project:not(.mobile-project){padding:8px 8px 20px;border-radius:20px}.project:not(.mobile-project) .project-art{border-radius:14px}.project:not(.mobile-project) .project-meta{padding:22px 8px 0}.project:not(.mobile-project) .project-meta>span{width:auto;white-space:normal;line-height:1.3}.project:not(.mobile-project) details{margin-inline:8px}.case-grid{padding:18px}.mobile-project .project-meta,.mobile-project details{padding-inline:0;margin-inline:0}}

/* Hero — personal portrait composition */
.hero{min-height:940px;overflow:hidden}.hero .eyebrow,.hero-kicker{position:relative;z-index:5}.hero h1{position:relative;z-index:3;width:min(76%,1100px);margin-left:0;text-align:left}.hero-portrait{position:absolute;z-index:2;right:-2%;bottom:-4px;width:clamp(340px,38vw,580px);height:720px;margin:0;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;isolation:isolate;animation:portraitRise 1.15s cubic-bezier(.16,1,.3,1) .3s both}.hero-portrait:before{content:"";position:absolute;z-index:-2;right:2%;bottom:3%;width:88%;height:79%;border:1px solid #ffffff70;border-radius:999px 999px 34px 34px;background:linear-gradient(155deg,var(--violet) 0 68%,var(--acid) 68% 100%);box-shadow:0 36px 100px #7457ff42}.hero-portrait:after{content:"";position:absolute;z-index:-1;right:8%;bottom:9%;width:78%;height:66%;border-radius:999px 999px 24px 24px;background-image:linear-gradient(#ffffff25 1px,transparent 1px),linear-gradient(90deg,#ffffff25 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(#000,transparent 88%)}.hero-portrait img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 24px 26px #17112040)}.hero-portrait figcaption{position:absolute;z-index:4;left:2%;bottom:31px;width:max-content;max-width:76%;padding:10px 13px;border:1px solid #ffffff30;border-radius:99px;background:var(--ink);color:var(--acid);font:9px/1 monospace;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 10px 25px #0004}.hero-aside{z-index:5;right:auto;left:6%;bottom:148px;width:min(390px,32vw)}.hero-proof{z-index:5;left:41%;bottom:56px}@keyframes portraitRise{from{opacity:0;transform:translateY(70px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:1050px){.hero h1{width:80%;font-size:clamp(65px,10vw,135px)}.hero-portrait{right:-7%;width:43vw;height:670px}.hero-aside{width:39vw}.hero-proof{left:39%;gap:20px}}
@media(max-width:700px){.hero{min-height:auto;padding-bottom:54px}.hero h1{width:auto}.hero-portrait{position:relative;right:auto;bottom:auto;width:min(100%,390px);height:520px;margin:34px auto 0}.hero-portrait:before{right:4%;width:92%;height:82%}.hero-portrait figcaption{left:0;bottom:22px}.hero-aside{position:relative;left:auto;bottom:auto;width:auto;margin:40px 0 0 8%}.hero-proof{position:relative;left:auto;bottom:auto;margin-top:50px}}
@media(max-width:440px){.hero-portrait{width:96%;height:455px}.hero-portrait figcaption{font-size:8px}.hero-aside{margin-left:0}}
@media(prefers-reduced-motion:reduce){.hero-portrait{animation:none}}

/* Hero — editorial balance pass */
.hero{min-height:clamp(780px,calc(100svh - 108px),880px);padding-top:34px;padding-bottom:30px;background:radial-gradient(circle at 82% 30%,#7457ff12,transparent 24%),linear-gradient(115deg,transparent 0 64%,#7457ff0b 64% 64.15%,transparent 64.15%)}.hero-kicker{width:max-content;margin:58px 0 -34px;padding:9px 12px;border:1px solid #7457ff28;border-radius:99px;background:#ffffffa6;text-align:left;box-shadow:0 8px 24px #7457ff0d;backdrop-filter:blur(10px)}.hero h1{width:min(72%,1080px);margin-top:56px;font-size:clamp(76px,9.4vw,150px);line-height:.73}.hero h1 em{text-shadow:7px 7px 0 var(--acid)}.hero h1 em:after{bottom:-1%;height:7%;opacity:.11}.hero-portrait{right:0;bottom:0;width:clamp(380px,32vw,520px);height:clamp(590px,68vh,650px)}.hero-portrait:before{right:0;width:92%;height:82%;border-radius:999px 999px 28px 28px;box-shadow:0 30px 85px #7457ff36}.hero-portrait:after{right:6%;width:82%;height:69%}.hero-portrait img{filter:drop-shadow(0 22px 24px #17112032)}.hero-portrait figcaption{left:-2%;bottom:26px;padding:11px 14px}.hero-aside{left:6%;bottom:38px;width:min(420px,29vw);padding-top:18px;border-top:1px solid #17171738}.hero-aside:before{content:"PROFILE / 2026";display:block;margin-bottom:12px;color:var(--violet);font:9px/1 monospace;letter-spacing:.15em}.hero-copy{font-size:15px;line-height:1.5}.hero-actions{margin-top:22px}.hero-actions a{padding:13px 19px;background:#ffffff82;backdrop-filter:blur(8px)}.hero-actions .hero-primary{box-shadow:0 12px 28px #17171722}.hero-proof{left:38%;bottom:34px;gap:clamp(22px,3vw,48px);padding-top:14px;border-top:1px solid #17171728}.hero-proof div{align-items:flex-start;gap:9px}.hero-proof strong{font-size:clamp(34px,2.8vw,48px);line-height:.85}.hero-proof span{font-size:9px}
@media(max-width:1050px) and (min-width:701px){.hero{min-height:820px}.hero-kicker{margin-top:52px}.hero h1{width:82%;font-size:clamp(72px,10vw,112px)}.hero-portrait{right:-4%;width:44vw;height:610px}.hero-aside{width:40vw;bottom:42px}.hero-proof{left:48%;bottom:42px;grid-template-columns:repeat(3,1fr);gap:12px}.hero-proof div{display:block}.hero-proof span{display:block;margin-top:6px}}
@media(max-width:700px){.hero{min-height:auto;padding-bottom:54px}.hero-kicker{width:max-content;max-width:100%;margin:58px 0 -38px;padding:8px 10px}.hero h1{width:auto;margin-top:72px;font-size:clamp(57px,17vw,92px);line-height:.77}.hero h1 em{text-shadow:5px 5px 0 var(--acid)}.hero-portrait{right:auto;width:min(100%,390px);height:500px;margin-top:30px}.hero-portrait:before{right:2%;width:96%;height:82%}.hero-portrait figcaption{left:0;bottom:20px}.hero-aside{left:auto;bottom:auto;width:auto;margin:38px 0 0 8%;padding-top:16px}.hero-proof{left:auto;bottom:auto;margin-top:46px;padding:18px 0 0;gap:10px}.hero-proof div{padding-left:10px;border-left:1px solid #17171720}}
@media(max-width:440px){.hero-kicker{font-size:9px}.hero-portrait{width:96%;height:440px}.hero-aside{margin-left:0}.hero-proof strong{font-size:30px}.hero-proof span{font-size:8px}}

/* BangkokFinds — commerce operations dashboard */
.bangkokfinds-art{padding:9% 5% 7%;isolation:isolate;background:radial-gradient(circle at 82% 16%,#526a9638,transparent 26%),linear-gradient(145deg,#0e1829,#25344e 58%,#dfe6f1)}.bangkokfinds-art img{position:relative;z-index:2;width:96%!important;height:auto!important;aspect-ratio:2/1;object-fit:cover!important;object-position:left top!important;border:1px solid #ffffff8c;border-radius:13px;box-shadow:0 24px 55px #050a146e;transform:none!important}.bangkokfinds-art>span{z-index:4;top:20px;left:20px;padding:8px 10px;border:1px solid #ffffff35;border-radius:99px;background:#111c30e6;color:#fff;box-shadow:0 8px 24px #0004}.bangkokfinds-art:after{content:"Commerce operations";opacity:1;transform:none}.bangkok-project .project-badge{border-color:#20314f55;background:#20314f10;color:#20314f}
@media(min-width:1101px){.project-list>.project.smartvend-project,.project-list>.project.bangkok-project{grid-column:span 2!important}}
@media(min-width:801px) and (max-width:1100px){.project-list>.smartvend-project{grid-column:auto!important;width:auto!important;justify-self:stretch!important}}
@media(max-width:520px){.bangkokfinds-art{padding:12% 4% 8%}.bangkokfinds-art img{width:100%!important;border-radius:9px}.bangkokfinds-art>span{top:13px;left:13px}}

/* Daccoffee — editorial café landing page */

/* Project cards: a steady gallery rhythm with room for the work itself. */
.project-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(30px,4vw,58px) clamp(20px,2.6vw,38px);align-items:stretch}
.project-list>.project:not(.mobile-project){grid-column:auto!important;width:100%!important;justify-self:stretch!important;height:100%;margin:0!important;padding:12px 12px 22px;border-radius:22px;background:#fff;border:1px solid #e9e7ed;box-shadow:0 14px 42px #25203912}
.project-list>.project:not(.mobile-project) .project-art{aspect-ratio:16/9;border-radius:13px}
.project-list>.project:not(.mobile-project) .project-meta{padding:24px 10px 0;gap:18px 16px}
.project-list>.project:not(.mobile-project) .project-meta>div{min-height:0}
.project-list>.project:not(.mobile-project) .project-meta h3{font-size:clamp(27px,2.8vw,42px);line-height:1.05}
.project-list>.project:not(.mobile-project) .project-meta>div p{min-height:0;max-width:64ch;margin-top:11px;font-size:14px;line-height:1.55;color:#4a4852}
.project-list>.project:not(.mobile-project) .project-meta>span{white-space:normal;line-height:1.35;width:fit-content;max-width:100%}
.project-list>.project:not(.mobile-project) details{margin:24px 10px 0}
.project-list>.mobile-project{grid-column:1/-1!important;width:100%!important;margin:8px 0 16px!important}
.mobile-showcase{min-height:620px}
@media(max-width:800px){.project-list{grid-template-columns:minmax(0,1fr);gap:54px}.project-list>.project:not(.mobile-project),.project-list>.mobile-project{grid-column:1!important}.project-list>.project:not(.mobile-project){height:auto}.mobile-showcase{min-height:0}}
@media(max-width:520px){.project-list{gap:46px}.project-list>.project:not(.mobile-project){padding:8px 8px 18px;border-radius:18px}.project-list>.project:not(.mobile-project) .project-art{aspect-ratio:4/3;border-radius:11px}.project-list>.project:not(.mobile-project) .project-meta{display:flex;flex-wrap:wrap;align-items:center;padding:20px 8px 0;gap:14px}.project-list>.project:not(.mobile-project) .project-meta>div{flex:1 0 100%}.project-list>.project:not(.mobile-project) .project-meta h3{font-size:28px}.project-list>.project:not(.mobile-project) .project-meta>div p{font-size:13px}.project-list>.project:not(.mobile-project) .project-meta>a{margin:0 0 0 auto}.project-list>.project:not(.mobile-project) details{margin:18px 8px 0}.project-list>.mobile-project{margin:8px 0!important}}
@media(max-width:520px){.project-list>.project:not(.mobile-project) .project-meta>span{font-size:9px;padding:7px 9px}}

/* Expand the archive on demand while keeping the first six projects visible. */
.project-list.is-collapsed>.project:nth-child(n+7){display:none}
.projects-more{display:flex;justify-content:center;margin-top:clamp(44px,5vw,76px)}
.projects-more-button{display:inline-flex;align-items:center;justify-content:center;gap:34px;min-width:min(100%,310px);padding:18px 25px;border:1px solid var(--ink);border-radius:99px;background:var(--ink);color:#fff;font:11px/1 monospace;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s,transform .25s}
.projects-more-button[hidden]{display:none}
.projects-more-button:hover{background:var(--acid);color:var(--ink);transform:translateY(-3px)}
.projects-more-button:focus-visible{outline:3px solid var(--violet);outline-offset:4px}
.projects-more-button span{font-size:18px;line-height:.5}
@media(max-width:520px){.projects-more-button{width:100%}}

/* Text wordmark: name + role */
.brand-wordmark{display:flex;flex-direction:column;gap:6px;flex:none;line-height:1}
.brand-wordmark strong{font-size:clamp(18px,1.7vw,24px);font-weight:700;letter-spacing:-.05em}
.brand-wordmark small{font:9px/1 monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--violet)}
@media(max-width:700px){.brand-wordmark strong{font-size:17px}.brand-wordmark small{font-size:8px}}

/* Services — founder offers */
.offers{position:relative;padding-top:clamp(110px,11vw,180px);padding-bottom:clamp(90px,9vw,140px);border-bottom:1px solid #17171718}
.offers .section-head{grid-template-columns:minmax(170px,.72fr) 3fr;gap:clamp(28px,4vw,70px);padding-top:24px;border-top:1px solid #17171735}
.offers .section-head>span{display:inline-flex;width:max-content;align-items:center;background:var(--ink);color:#fff;border-radius:99px;padding:10px 13px;font:9px/1 monospace;letter-spacing:.12em}
.offers .section-head h2{line-height:.82}
.offers .section-head h2 em{position:relative;display:inline-block}
.offers .section-head h2 em:after{content:"";position:absolute;left:1%;right:-2%;bottom:-10%;height:10%;background:var(--acid);z-index:-1;transform:rotate(-1.5deg)}
.offer-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:clamp(58px,7vw,92px)}
.offer{display:flex;flex-direction:column;padding:30px 26px 26px;background:#ffffffa8;border:1px solid #fff;border-radius:26px;box-shadow:0 18px 55px #25203910,0 2px 0 #fff inset;backdrop-filter:blur(14px)}
.offer.reveal.in{transition:opacity .9s ease,transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s cubic-bezier(.16,1,.3,1)}
.offer.in:hover{transform:translateY(-14px);box-shadow:0 35px 90px #251b5922,0 2px 0 #fff inset}
.offer-index{align-self:flex-start;background:var(--acid);color:var(--ink);border-radius:20px;padding:8px 10px;font:10px/1 monospace;letter-spacing:.1em}
.offer h3{font-size:clamp(28px,2.6vw,42px);font-weight:550;letter-spacing:-.045em;line-height:.96;margin:42px 0 14px}
.offer>p{font-size:15px;line-height:1.5;color:#171717a8;margin:0}
.offer dl{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:28px 0 0;padding:16px 0;border-top:1px solid #17171720;border-bottom:1px solid #17171720}
.offer dt{font:9px/1 monospace;letter-spacing:.12em;text-transform:uppercase;color:#171717b8}
.offer dd{margin:0;font-size:18px;font-weight:550;letter-spacing:-.03em;color:var(--violet)}
.offer ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 30px;padding:0}
.offer li{border:1px solid #7457ff2e;background:#7457ff0d;color:var(--violet);border-radius:99px;padding:9px 11px;font:9px/1 monospace;letter-spacing:.08em;text-transform:uppercase}
.offer-cta{margin-top:auto;align-self:flex-start;background:var(--ink);color:#fff;border-radius:40px;padding:13px 18px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 9px 22px #17171720;transition:transform .3s,background .3s,box-shadow .3s}
.offer-cta:hover{background:var(--violet);transform:translateY(-3px);box-shadow:0 14px 28px #7457ff38}
.offers-note{margin:56px 0 0;text-align:center;font-size:clamp(18px,2vw,26px);line-height:1.3;letter-spacing:-.025em}
.offers-note a{border-bottom:2px solid var(--violet);color:var(--violet)}
.offers-note a:hover{background:var(--acid)}
.offer a:focus-visible,.offers-note a:focus-visible{outline:3px solid var(--violet);outline-offset:4px}
@media(max-width:1100px){.offer-list{grid-template-columns:1fr 1fr}.offer:last-child{grid-column:1/-1}}
@media(max-width:800px){.offers .section-head{grid-template-columns:1fr}.offers .section-head h2{margin-top:14px}.offer-list{grid-template-columns:1fr;gap:22px}}
@media(max-width:520px){.offers{padding-left:18px;padding-right:18px}.offers .section-head h2{font-size:clamp(58px,18vw,86px)}.offer{padding:24px 20px 22px;border-radius:20px}.offer h3{margin-top:30px}.offers-note{text-align:left}}

.work .section-head>span{width:max-content;align-self:start}
.project-list.is-collapsed>.project:nth-child(n+7){display:none!important}
.project-list .project-meta>b.project-badge{font:10px/1 monospace;letter-spacing:.08em}

/* Projects — stacking cards: each card sticks, the next slides over it; --cover (0–1) is set on scroll */
@media(min-width:801px) and (min-height:720px){
.work{overflow:clip}
.project-list{display:block}
.project-list>.project:not(.mobile-project):nth-child(1){--i:0}.project-list>.project:not(.mobile-project):nth-child(2){--i:1}.project-list>.project:not(.mobile-project):nth-child(3){--i:2}.project-list>.project:not(.mobile-project):nth-child(4){--i:3}.project-list>.project:not(.mobile-project):nth-child(5){--i:4}.project-list>.project:not(.mobile-project):nth-child(6){--i:5}.project-list>.project:not(.mobile-project):nth-child(7){--i:6}.project-list>.project:not(.mobile-project):nth-child(8){--i:7}.project-list>.project:not(.mobile-project):nth-child(9){--i:8}.project-list>.project:not(.mobile-project):nth-child(10){--i:9}.project-list>.project:not(.mobile-project):nth-child(11){--i:10}.project-list>.project:not(.mobile-project):nth-child(12){--i:11}.project-list>.project:not(.mobile-project):nth-child(13){--i:12}
.project-list>.project:not(.mobile-project){position:sticky;top:calc(28px + var(--i)*12px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);column-gap:clamp(24px,3vw,48px);height:clamp(460px,calc(100vh - 220px),600px)!important;margin:0 0 14vh!important;padding:14px clamp(18px,2.4vw,36px) 14px 14px;border-radius:28px;box-shadow:0 -6px 24px #25203914;scale:calc(1 - var(--cover,0)*.06);transform-origin:50% 0;will-change:scale;backdrop-filter:none;overflow:hidden}
.project-list>.project:not(.mobile-project):hover{transform:none}
.project-list>.project:not(.mobile-project):nth-child(3n+2){background:linear-gradient(135deg,#fff 0 55%,#f1edff)}
.project-list>.project:not(.mobile-project):nth-child(3n+3){background:linear-gradient(135deg,#fff 0 55%,#f4ffdc)}
.project-list>.project:not(.mobile-project):after{content:counter(projects,decimal-leading-zero);position:absolute;z-index:0;right:clamp(14px,2vw,30px);bottom:-.16em;font-size:clamp(110px,12vw,200px);font-weight:800;line-height:1;letter-spacing:-.08em;color:transparent;-webkit-text-stroke:1.5px #7457ff30;pointer-events:none}
.project-list>.project:not(.mobile-project) .project-art{grid-column:1;grid-row:1/-1;height:100%;aspect-ratio:auto;border-radius:20px}
.project-list>.project:not(.mobile-project) .project-meta{position:relative;z-index:1;grid-column:2;grid-row:1;padding:clamp(28px,3.4vw,54px) 0 0}
.project-list>.project:not(.mobile-project) .project-meta h3{font-size:clamp(34px,3.8vw,62px);line-height:.92;letter-spacing:-.055em}
.project-list>.project:not(.mobile-project) .project-meta>div p{font-size:15px}
.project-list>.project:not(.mobile-project) details{position:relative;z-index:1;grid-column:2;grid-row:2;min-height:0;overflow:auto;margin:22px 0 0;scrollbar-width:thin}
.project-list>.project:not(.mobile-project) .case-grid{grid-template-columns:1fr}
.project-list>.mobile-project{position:relative;z-index:30;margin:0!important;padding:40px 0;background:#f3f2ef;box-shadow:-90px 0 0 #f3f2ef,90px 0 0 #f3f2ef}
}
@media(min-width:801px) and (max-width:1100px) and (min-height:720px){
.project-list>.project:not(.mobile-project){grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.project-list>.project:not(.mobile-project) .project-meta>div p{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.project-list>.project:not(.mobile-project){scale:none;will-change:auto}}
.project:before{content:counter(projects,decimal-leading-zero)}
@media(min-width:701px){.hero-portrait figcaption{left:auto;right:4%}}
/* Cleanup: removed job-seeker labels; keep spacing after removing the projects intro */
.hero-aside:before,.footer:before{content:none}
.work .project-list{margin-top:clamp(58px,7vw,92px)}
@media(min-width:801px){.contact-links{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1101px){.contact-links{grid-template-columns:repeat(4,1fr)}}

/* Conversion: availability, reassurance, mid-page CTA, call promise, sticky mobile CTA */
.eyebrow .availability{display:flex!important;align-items:center;gap:8px;color:var(--ink)}
.hero-note{margin:14px 0 0;font:9px/1 monospace;letter-spacing:.14em;text-transform:uppercase;color:#171717a0}
.cta-band{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end;gap:clamp(30px,5vw,80px);padding-top:clamp(80px,9vw,130px);padding-bottom:clamp(80px,9vw,130px);background:radial-gradient(circle at 12% 20%,#7457ff40,transparent 32%),radial-gradient(circle at 92% 90%,#c8ff3522,transparent 28%),var(--ink);color:var(--paper)}
.cta-band h2{margin:0;font-size:clamp(56px,8vw,128px);line-height:.84;letter-spacing:-.075em;font-weight:430}
.cta-band h2 em{font-style:normal;color:var(--acid)}
.cta-band p{max-width:560px;margin:34px 0 0;font-size:clamp(18px,1.8vw,24px);line-height:1.35;color:#f4f3eacc}
.cta-band-action{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.cta-band-button,.call-promise-button{display:inline-flex;align-items:center;border-radius:99px;padding:20px 30px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;transition:transform .3s,box-shadow .3s,background .3s,color .3s}
.cta-band-button{background:var(--acid);color:var(--ink);box-shadow:0 18px 45px #c8ff3530}
.cta-band-button:hover{transform:translateY(-4px);background:#fff;box-shadow:0 24px 55px #c8ff3545}
.cta-band small,.call-promise small{font:9px/1 monospace;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.call-promise{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px 40px;margin-top:56px;padding:28px 32px;border-radius:24px;background:#ffffff8c;border:1px solid #0c0c1018}
.call-promise>span{font:9px/1.3 monospace;letter-spacing:.14em;text-transform:uppercase;max-width:110px}
.call-promise ol{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0;padding:0;list-style:none;counter-reset:promise;font-size:clamp(16px,1.5vw,20px);letter-spacing:-.02em}
.call-promise li{counter-increment:promise;display:flex;align-items:center;gap:10px}
.call-promise li:before{content:counter(promise);display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--acid);font:11px/1 monospace}
.call-promise-button{background:var(--ink);color:#fff;white-space:nowrap}
.call-promise-button:hover{transform:translateY(-3px);background:var(--violet);box-shadow:0 14px 30px #7457ff45}
.call-promise small{grid-column:3;justify-self:center}
.cta-band a:focus-visible,.call-promise a:focus-visible,.mobile-cta:focus-visible{outline:3px solid var(--violet);outline-offset:4px}
.mobile-cta{display:none}
@media(max-width:1000px){.call-promise{grid-template-columns:1fr}.call-promise small{grid-column:1;justify-self:start}}
@media(max-width:800px){.cta-band{grid-template-columns:1fr;align-items:start}}
@media(max-width:700px){
.mobile-cta{position:fixed;z-index:50;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));display:flex;justify-content:center;padding:17px 20px;border-radius:99px;background:var(--violet);color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;border:1px solid #ffffff40;box-shadow:0 18px 40px #7457ff55,0 4px 14px #0c0c1030;transform:translateY(160%);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.mobile-cta.show{transform:none}
.call-promise{padding:22px 20px}
.call-promise ol{flex-direction:column}
.call-promise-button,.cta-band-button{width:100%;justify-content:center}
}

/* Credibility: verifiable "Shipped & live" proof strip */
.proof{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(20px,3vw,48px);padding-top:34px;padding-bottom:34px;border-bottom:1px solid #17171718}
.proof h2{margin:0;font:600 10px/1.3 monospace;letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:10px;white-space:nowrap}
.proof h2:before{content:"";width:8px;height:8px;border-radius:50%;background:#28c76f;box-shadow:0 0 0 5px #28c76f1c;animation:statusPulse 2s infinite}
.proof ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.proof a{display:flex;flex-direction:column;gap:6px;height:100%;padding:16px 18px;border:1px solid #17171714;border-radius:16px;background:#ffffffa0;transition:transform .3s,box-shadow .3s,border-color .3s}
.proof a:hover{transform:translateY(-4px);border-color:#7457ff55;box-shadow:0 14px 30px #7457ff1f}
.proof a:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.proof b{font-size:16px;font-weight:600;letter-spacing:-.02em}
.proof b:after{content:" ↗";color:var(--violet)}
.proof span{font:9px/1.3 monospace;letter-spacing:.08em;text-transform:uppercase;color:#171717a0}
@media(max-width:1100px){.proof{grid-template-columns:1fr}.proof ul{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.proof ul{grid-template-columns:1fr 1fr}.proof li:last-child{grid-column:1/-1}}

/* How it works */
.process{border-bottom:0}
.process-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:clamp(58px,7vw,92px) 0 0;padding:0;list-style:none;counter-reset:none}
.process-step{position:relative;padding:28px 24px 30px 0;border-top:2px solid var(--ink)}
.process-step:before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 5px #7457ff22}
.process-step>span{font:10px/1 monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--violet)}
.process-step h3{margin:26px 0 12px;font-size:clamp(24px,2.2vw,32px);font-weight:550;letter-spacing:-.045em;line-height:1}
.process-step p{margin:0;font-size:15px;line-height:1.55;color:#171717b0}
@media(max-width:1100px){.process-steps{grid-template-columns:1fr 1fr;row-gap:34px}}
@media(max-width:600px){.process-steps{grid-template-columns:1fr}}

/* FAQ */
.faq-list{display:grid;gap:12px;max-width:980px;margin:clamp(58px,7vw,92px) auto 0}
.faq-item{border:1px solid #17171714;border-radius:20px;background:#ffffffa8;box-shadow:0 10px 30px #2520390a;transition:border-color .3s,box-shadow .3s}
.faq-item[open]{border-color:#7457ff40;box-shadow:0 18px 44px #7457ff14}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 26px;cursor:pointer;list-style:none;font-size:clamp(18px,1.8vw,23px);font-weight:550;letter-spacing:-.025em}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"+";flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--acid);font:16px/1 monospace;transition:transform .3s}
.faq-item[open] summary:after{transform:rotate(45deg)}
.faq-item summary:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:20px}
.faq-item p{margin:0;padding:0 26px 24px;max-width:760px;font-size:16px;line-height:1.6;color:#171717b8}
@media(max-width:520px){.faq-item summary{padding:18px 18px;font-size:17px}.faq-item p{padding:0 18px 20px;font-size:15px}}

/* Starting price on service cards */
.offer dl+dl{margin-top:0;border-top:0}
.offer dd.offer-price{font-size:clamp(26px,2.4vw,34px);letter-spacing:-.05em;color:var(--ink)}

/* Service landing pages */
.breadcrumb{display:flex;align-items:center;gap:10px;padding-top:22px;font:10px/1 monospace;letter-spacing:.12em;text-transform:uppercase;color:#171717a0}
.breadcrumb a:hover{color:var(--violet)}
.page-hero{position:relative;padding-top:34px;padding-bottom:clamp(70px,8vw,120px)}
.page-hero h1{max-width:1200px;margin:56px 0 0;font-size:clamp(52px,8.4vw,134px);line-height:.84;letter-spacing:-.075em;font-weight:430;animation:heroHit 1.15s cubic-bezier(.16,1,.3,1) .15s both}
.page-hero h1 em{font-style:normal;color:var(--violet);text-shadow:6px 6px 0 var(--acid)}
.page-intro{max-width:760px;margin:44px 0 0;font-size:clamp(18px,1.8vw,24px);line-height:1.4;letter-spacing:-.015em}
.page-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,5vw,90px);padding-top:clamp(70px,8vw,120px);padding-bottom:clamp(70px,8vw,120px);background:radial-gradient(circle at 92% 8%,#7457ff40,transparent 30%),var(--ink);color:var(--paper)}
.page-body h2{margin:0 0 26px;font-size:clamp(32px,3.6vw,54px);line-height:.95;letter-spacing:-.05em;font-weight:450}
.page-body p{margin:0 0 18px;font-size:17px;line-height:1.65;color:#f4f3eacc}
.page-body ul{margin:28px 0 0;padding:0;list-style:none;border-top:1px solid #f4f3ea30}
.page-body li{padding:15px 0;border-bottom:1px solid #f4f3ea30;font-size:15px}
.page-body li:before{content:"↗";margin-right:12px;color:var(--acid)}
.offer-list.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:960px;margin-inline:auto}
.offer-list.cols-1{grid-template-columns:minmax(0,480px);justify-content:center}
.offer-more{align-self:flex-start;margin:-10px 0 22px;color:var(--violet);font-size:13px;border-bottom:1px solid #7457ff60}
.offer-more:hover{border-color:var(--violet)}
.page-project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-top:clamp(58px,7vw,92px)}
.page-project{display:flex;flex-direction:column;padding:10px 10px 22px;background:#fff;border:1px solid #e9e7ed;border-radius:22px;box-shadow:0 14px 42px #25203912}
.page-project img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;border-radius:14px;background:#eceaf3}
.page-project>div{display:flex;flex-direction:column;flex:1;padding:20px 8px 0}
.page-project span{font:9px/1.3 monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--violet)}
.page-project h3{margin:10px 0;font-size:24px;font-weight:550;letter-spacing:-.04em}
.page-project p{flex:1;margin:0;font-size:14px;line-height:1.55;color:#4a4852}
.page-project-link{align-self:flex-start;margin-top:18px;padding:11px 15px;border-radius:40px;background:var(--ink);color:#fff;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.page-project-link:hover{background:var(--violet)}
.footer-services{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;margin-top:64px;font-size:14px}
.footer-services span{font:9px/1 monospace;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.footer-services a{border-bottom:1px solid #0c0c1040}
.footer-services a:hover{border-color:var(--ink)}
@media(max-width:1100px){.page-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.page-body{grid-template-columns:1fr}.offer-list.cols-2{grid-template-columns:1fr}}
@media(max-width:560px){.page-project-grid{grid-template-columns:1fr}.breadcrumb{flex-wrap:wrap}}
.eyebrow .availability-text{display:inline!important}
/* Featured projects */
.project-art .featured-tag{position:absolute;right:16px;top:15px;z-index:4;background:var(--acid);color:var(--ink);border-radius:30px;padding:8px 12px;font:700 10px/1 monospace;letter-spacing:.1em;text-transform:uppercase;font-style:normal;box-shadow:0 8px 22px #17171726}
.project-list>.featured-project:not(.mobile-project){border-color:#17171740;box-shadow:0 0 0 2px var(--acid),0 24px 60px #18142a1f}
@media(max-width:800px){.project-art .featured-tag{right:auto;left:18px;top:52px}}
/* Custom cursor (public/cursor.js). The native cursor is hidden only once the script sees a mouse. */
html.has-cursor,html.has-cursor *{cursor:none!important}
html.has-cursor :is(input:not([type=button],[type=submit],[type=checkbox],[type=radio]),textarea,select,[contenteditable=true]){cursor:text!important}
.cursor{position:fixed;left:0;top:0;width:0;height:0;z-index:10000;pointer-events:none;mix-blend-mode:difference;opacity:0;transition:opacity .3s ease}
.cursor.is-visible{opacity:1}
.cursor-dot,.cursor-follow{position:absolute;left:0;top:0;will-change:transform}
.cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#dfff00;transition:scale .25s cubic-bezier(.16,1,.3,1),opacity .2s}
.cursor-ring{--w:38px;--h:38px;--r:999px;position:absolute;left:0;top:0;width:var(--w);height:var(--h);border:1.5px solid #dfff00;border-radius:var(--r);transition:width .45s cubic-bezier(.16,1,.3,1),height .45s cubic-bezier(.16,1,.3,1),border-radius .35s,background-color .3s,border-color .3s,scale .3s cubic-bezier(.16,1,.3,1)}
.cursor-label{position:absolute;left:0;top:0;translate:-50% -50%;scale:.4;opacity:0;white-space:nowrap;color:#0c0c10;font:700 11px/1 monospace;letter-spacing:.08em;text-transform:uppercase;transition:scale .4s cubic-bezier(.16,1,.3,1),opacity .2s}
.cursor.is-hover .cursor-ring{--w:64px;--h:64px;background:#dfff00}
.cursor.is-hover .cursor-dot{scale:0}
.cursor.is-magnet .cursor-ring{border-color:#dfff00;background:transparent}
.cursor.is-magnet .cursor-dot{scale:1.4}
.cursor.is-media{mix-blend-mode:normal}
.cursor.is-media .cursor-ring{--w:116px;--h:116px;background:#dfff00;border-color:#dfff00;box-shadow:0 14px 40px #0c0c1033}
.cursor.is-media .cursor-label{opacity:1;scale:1}
.cursor.is-media .cursor-dot{scale:0}
.cursor.is-text .cursor-ring{--w:3px;--h:26px;--r:2px;background:#dfff00}
.cursor.is-text .cursor-dot{scale:0}
.cursor.is-down .cursor-ring{scale:.82}
.cursor.is-down .cursor-dot{scale:2}
@media(hover:none),(pointer:coarse){.cursor{display:none}}
@media(min-width:701px){.github-proof{grid-template-columns:auto 1fr auto}}
/* LeSgo showcase: aurora background, delivery route, giant wordmark, and a 3D phone that follows the pointer (--mx/--my from the homepage script) */
.lesgo-showcase{--mx:0;--my:0;position:relative;isolation:isolate;background:linear-gradient(140deg,#07030f 0%,#140827 45%,#22093d 78%,#0b0414 100%);box-shadow:inset 0 0 0 1px #ffffff14,inset 0 1px 0 #ffffff26}
.lesgo-showcase:before{display:none}
.lesgo-showcase:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.14;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.lesgo-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.lesgo-aurora{position:absolute;border-radius:50%;filter:blur(70px);opacity:.85;will-change:transform;transition:translate 1.2s cubic-bezier(.16,1,.3,1)}
.lesgo-aurora-1{width:620px;height:620px;right:2%;top:-18%;background:radial-gradient(circle,#7b2ff7,transparent 68%);animation:lesgoDrift 18s ease-in-out infinite;translate:calc(var(--mx)*-60px) calc(var(--my)*-40px)}
.lesgo-aurora-2{width:520px;height:520px;right:24%;bottom:-30%;background:radial-gradient(circle,#d245ffbb,transparent 66%);animation:lesgoDrift 22s ease-in-out -7s infinite reverse;translate:calc(var(--mx)*50px) calc(var(--my)*30px)}
.lesgo-aurora-3{width:460px;height:460px;left:-10%;top:-20%;background:radial-gradient(circle,#4f2bd9aa,transparent 66%);animation:lesgoDrift 26s ease-in-out -12s infinite;translate:calc(var(--mx)*30px) calc(var(--my)*30px)}
.lesgo-spot{position:absolute;inset:0;background:radial-gradient(520px circle at calc((var(--mx) + .5)*100%) calc((var(--my) + .5)*100%),#ffffff12,transparent 62%);transition:background .2s}
.lesgo-wordmark{position:absolute;left:-1%;bottom:-.19em;font-size:clamp(150px,21vw,330px);font-weight:800;line-height:.8;letter-spacing:-.08em;color:transparent;-webkit-text-stroke:1.5px #ffffff26;user-select:none;translate:calc(var(--mx)*-24px) 0;transition:translate 1.2s cubic-bezier(.16,1,.3,1)}
.lesgo-route{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.lesgo-route path{fill:none;stroke-linecap:round}
.lesgo-route-glow{stroke:url(#lesgo-route-fill);stroke-width:16;opacity:.32;filter:blur(8px)}
.lesgo-route-line{stroke:url(#lesgo-route-fill);stroke-width:3;stroke-dasharray:2 12;animation:lesgoDash 1.4s linear infinite}
.lesgo-rider{fill:#fff;filter:drop-shadow(0 0 10px #d245ff) drop-shadow(0 0 22px #dfff00aa)}
.lesgo-pin-dot{fill:#dfff00}
.lesgo-pin-ping{fill:none;stroke:#dfff00;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:lesgoPing 2.2s cubic-bezier(.16,1,.3,1) infinite}
.lesgo-showcase .mobile-copy{z-index:3}
.lesgo-showcase .mobile-copy>small{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #d893ff40;border-radius:30px;background:#d245ff14}
.lesgo-showcase .mobile-copy>small:before{content:"";width:6px;height:6px;border-radius:50%;background:#dfff00;box-shadow:0 0 0 0 #dfff00aa;animation:lesgoLive 2s ease-out infinite}
.lesgo-showcase .mobile-copy strong em{background:linear-gradient(100deg,#f0a8ff,#d245ff 40%,#8b3dff);-webkit-background-clip:text;background-clip:text;color:transparent}
.lesgo-showcase .mobile-copy>div span{background:#ffffff0d;backdrop-filter:blur(8px)}
.lesgo-showcase .play-store-cta{box-shadow:0 14px 35px #0006,0 0 0 1px #ffffff,0 0 40px #d245ff55}
.lesgo-art{position:relative;z-index:2;perspective:1400px}
.lesgo-art:before{content:"";position:absolute;z-index:-1;left:50%;bottom:-16%;width:min(620px,96%);aspect-ratio:1;translate:-50% 0;border-radius:50%;background:radial-gradient(circle,#9d4dffa6,#7b2ff733 45%,transparent 68%);filter:blur(14px);pointer-events:none;animation:lesgoBreathe 6s ease-in-out infinite}
.lesgo-showcase .phone-frame{border-color:#16101f;background:#16101f;box-shadow:0 60px 120px #000c,0 0 0 1px #ffffff30,inset 0 0 0 1px #ffffff1a,0 0 140px #8b3dff66;transform-origin:50% 100%;transform:rotateY(calc(var(--mx)*-16deg)) rotateX(calc(var(--my)*9deg)) translateY(var(--lift,0px));transition:transform .7s cubic-bezier(.16,1,.3,1)}
.lesgo-showcase .phone-frame:after{content:"";position:absolute;inset:9px 8px 0;z-index:3;border-radius:41px 41px 0 0;pointer-events:none;background:linear-gradient(115deg,#ffffff26 0%,#ffffff08 28%,transparent 42%);mix-blend-mode:screen;translate:calc(var(--mx)*-30px) 0;transition:translate .7s cubic-bezier(.16,1,.3,1)}
.mobile-project:hover .lesgo-showcase .phone-frame{--lift:-16px;transform:rotateY(calc(var(--mx)*-16deg)) rotateX(calc(var(--my)*9deg)) translateY(var(--lift))}
.lesgo-showcase .project-mobile:after{background:var(--acid);color:var(--ink);box-shadow:0 0 30px #dfff0066}
@keyframes lesgoDrift{33%{transform:translate(-6%,8%) scale(1.08)}66%{transform:translate(5%,-5%) scale(.95)}}
@keyframes lesgoDash{to{stroke-dashoffset:-34}}
@keyframes lesgoPing{0%{transform:scale(.6);opacity:1}100%{transform:scale(2.6);opacity:0}}
@keyframes lesgoLive{70%{box-shadow:0 0 0 8px #dfff0000}100%{box-shadow:0 0 0 0 #dfff0000}}
@keyframes lesgoBreathe{50%{opacity:.7;scale:1.06}}
@media(max-width:800px){.lesgo-wordmark{font-size:38vw;left:-4%}.lesgo-aurora-1{width:420px;height:420px;top:auto;bottom:-10%;right:-20%}.lesgo-aurora-3{width:360px;height:360px}.lesgo-route{opacity:.75}}
@media(prefers-reduced-motion:reduce){.lesgo-aurora,.lesgo-route-line,.lesgo-pin-ping,.lesgo-art:before,.lesgo-showcase .mobile-copy>small:before{animation:none}.lesgo-rider{display:none}}
/* Page-load intro (homepage). Shown only while html.is-loading; the hero's own entrance waits until it leaves. */
.intro{display:none}
html.is-loading{overflow:hidden}
html.is-loading :is(.nav,.hero,.hero *){animation-play-state:paused!important}
html.is-loading .intro,.intro.is-leaving{position:fixed;inset:0;z-index:9000;display:block;overflow:hidden;background:#09070f;color:#fff;cursor:pointer;clip-path:inset(0 0 0 0);transition:clip-path 1s cubic-bezier(.76,0,.24,1)}
.intro.is-leaving{clip-path:inset(0 0 100% 0);pointer-events:none}
.intro-glow i{position:absolute;border-radius:50%;filter:blur(80px);opacity:0;animation:introGlow 1.6s cubic-bezier(.16,1,.3,1) forwards}
.intro-glow i:nth-child(1){width:70vmax;height:70vmax;left:50%;top:60%;translate:-50% -50%;background:radial-gradient(circle,#7457ffaa,transparent 65%)}
.intro-glow i:nth-child(2){width:40vmax;height:40vmax;left:-8%;top:-12%;background:radial-gradient(circle,#d245ff66,transparent 65%);animation-delay:.2s}
.intro-glow i:nth-child(3){width:34vmax;height:34vmax;right:-6%;bottom:-14%;background:radial-gradient(circle,#dfff0040,transparent 65%);animation-delay:.35s}
.intro-name{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding-bottom:6vh;text-align:center;font-size:clamp(60px,12.5vw,230px);font-weight:430;line-height:.8;letter-spacing:-.075em;white-space:nowrap;pointer-events:none}
.intro-line{position:relative;isolation:isolate;display:block;overflow:hidden;padding:0 .06em .16em}
.intro-accent{color:var(--orange)}
.intro-accent:after{content:"";position:absolute;z-index:-1;left:8%;right:6%;bottom:.1em;height:.09em;background:var(--acid);transform:rotate(-1.5deg) scaleX(0);transform-origin:left;animation:introUnderline .7s cubic-bezier(.16,1,.3,1) 1s forwards}
.intro-name-front .intro-accent:after{display:none}
.intro-name .ch{display:inline-block;translate:0 110%;rotate:8deg;animation:introLetter .9s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(.15s + var(--i)*.045s)}
.intro-name-front{z-index:3;color:transparent;-webkit-text-stroke:1.5px #ffffffcc;clip-path:inset(0 calc(50% - min(19vh,28.5vw)))}
.intro-name-front .intro-accent{-webkit-text-stroke-color:#d6ccff}
.intro-name-front .intro-line:not(.intro-accent){visibility:hidden}
.intro-portrait{position:absolute;z-index:2;left:50%;bottom:0;width:min(52vh,78vw);aspect-ratio:2/3;margin:0;translate:-50% 0}
.intro-arch{position:absolute;left:6%;right:6%;bottom:0;height:72%;border-radius:999px 999px 0 0;background:linear-gradient(180deg,#7457ff,#4c2bd9 70%,#2a1677);box-shadow:0 0 120px #7457ff88;transform-origin:bottom;scale:1 0;animation:introArch 1s cubic-bezier(.16,1,.3,1) .25s forwards}
.intro-arch:after{content:"";position:absolute;inset:auto -10% -2% -10%;height:34%;background:#dfff00;clip-path:polygon(0 70%,100% 0,100% 100%,0 100%);opacity:0;animation:introFade .5s ease .9s forwards}
.intro-portrait img{position:relative;display:block;width:100%;height:100%;object-fit:contain;object-position:bottom;clip-path:inset(100% 0 0 0);scale:1.12;filter:blur(10px) brightness(1.4);animation:introPortrait 1.15s cubic-bezier(.16,1,.3,1) .4s forwards}
.intro-role{position:absolute;z-index:4;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);top:clamp(22px,4vh,44px);display:flex;justify-content:space-between;gap:16px;margin:0;font:11px/1.3 monospace;letter-spacing:.14em;text-transform:uppercase;color:#ffffffb3}
.intro-role span{opacity:0;translate:0 -12px;animation:introDrop .7s cubic-bezier(.16,1,.3,1) 1s forwards}
.intro-role span+span{animation-delay:1.1s}
.intro-count{position:absolute;z-index:4;right:clamp(20px,4vw,56px);bottom:clamp(30px,5vh,56px);font:430 clamp(44px,6.5vw,104px)/1 Arial,sans-serif;letter-spacing:-.07em;color:var(--acid);text-shadow:0 0 30px #dfff0066}
.intro-bar{position:absolute;z-index:4;left:0;right:0;bottom:0;height:3px;background:#ffffff14}
.intro-bar i{display:block;height:100%;background:linear-gradient(90deg,#7457ff,#d245ff,#dfff00);transform:scaleX(0);transform-origin:left;box-shadow:0 0 18px #dfff00}
.intro-skip{position:absolute;z-index:4;left:clamp(20px,4vw,56px);bottom:clamp(30px,5vh,56px);font:10px/1 monospace;letter-spacing:.14em;text-transform:uppercase;color:#ffffff59}
.intro.is-full .intro-count{animation:introPulse .26s ease}
.intro.is-leaving .intro-name .ch{animation:introLetterOut .6s cubic-bezier(.7,0,.84,0) forwards;animation-delay:calc(var(--i)*.015s);translate:0 0;rotate:0deg}
.intro.is-leaving .intro-portrait{animation:introLift 1s cubic-bezier(.76,0,.24,1) forwards}
@keyframes introGlow{to{opacity:1}}
@keyframes introLetter{to{translate:0 0;rotate:0deg}}
@keyframes introLetterOut{to{translate:0 -110%;rotate:-6deg}}
@keyframes introArch{to{scale:1 1}}
@keyframes introFade{to{opacity:1}}
@keyframes introPortrait{to{clip-path:inset(0 0 0 0);scale:1;filter:blur(0) brightness(1)}}
@keyframes introDrop{to{opacity:1;translate:0 0}}
@keyframes introUnderline{to{transform:rotate(-1.5deg) scaleX(1)}}
@keyframes introPulse{50%{scale:1.12;text-shadow:0 0 60px #dfff00}}
@keyframes introLift{to{translate:-50% -14%;scale:.92}}
@media(max-width:700px){.intro-name{font-size:15vw;padding-bottom:22vh}.intro-name-front{display:none}.intro-portrait{width:min(78vw,54vh)}.intro-role{flex-direction:column;gap:6px}.intro-skip{display:none}.intro-count{top:22px;bottom:auto;font-size:34px}}
@media(prefers-reduced-motion:reduce){.intro *,.intro *:before,.intro *:after{animation-duration:1ms!important;animation-delay:0s!important}html.is-loading .intro,.intro.is-leaving{transition:opacity .3s;clip-path:none}.intro.is-leaving{opacity:0}}
