/* Colour, light and useful motion — glass enhancement layer. */
:root{--bg:#f7f5fa;--ink:#24213a;--muted:#686477;--line:#dbd7e7;--blue:#6942e8;--lime:#e9d4ff}
body{background:radial-gradient(ellipse at 2% 8%,#d8e8ff85,transparent 30%),radial-gradient(ellipse at 97% 18%,#ffdacf80,transparent 29%),var(--bg)}
header{position:sticky;top:0;z-index:20;height:86px;max-width:none;background:#f7f5fae8;border-bottom:1px solid #fff;box-shadow:0 8px 35px #3c255d08}
@supports(backdrop-filter:blur(10px)){header{background:#f7f5faad;backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%)}}
.reading-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#744df3,#f28bb8,#ff9256);width:var(--progress,0%);z-index:100;pointer-events:none}
.blue{background:linear-gradient(100deg,#6743dd 10%,#b050b5 53%,#d55642);background-clip:text;-webkit-background-clip:text;color:transparent}
.primary,.contact-section{background:linear-gradient(115deg,#4930a0,#6741d6 48%,#aa4779)}
.primary{box-shadow:0 8px 25px #734ee52b}.navcta{background:#ffffff60;border-color:#bcb2d1}
.hero-art{background:radial-gradient(ellipse at 18% 25%,#99d1f7,transparent 60%),radial-gradient(ellipse at 90% 20%,#ffb6a5,transparent 50%),radial-gradient(ellipse at 75% 85%,#b7a3ff,transparent 60%),#dad2ef;border:1px solid white;box-shadow:0 25px 60px #84709c20;isolation:isolate}
.sphere{background:radial-gradient(circle at 28% 23%,#ffdac5,#e997d5 24%,#9a63e4 49%,#4c53c3 73%,#262777);box-shadow:inset -18px -24px 30px #52338744,0 25px 35px #8264a333;transform:translate(var(--art-x,0px),var(--art-y,0px)) rotate(-15deg);transition:transform .6s ease-out}.sphere span{color:#ffffff9c}.orbit{border-color:#ffffffa0}
.floating{background:#ffffffe0;border:1px solid #ffffffb0;box-shadow:0 12px 40px #65458c22,inset 0 1px 0 #ffffff;}.floating.ai{background:#efdbf0e8}.hero-art .art-top,.hero-art .art-bottom{color:#413150}
@supports(backdrop-filter:blur(10px)){.floating{background:#ffffff52;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}.floating.ai{background:#ffdee962}}
.hero-note .initials{background:linear-gradient(140deg,#ded8f5,#ffe2d4);border-color:white}.techstrip{background:#ffffff60}
.services{gap:12px;border:0}.service{border:1px solid #ffffff;border-radius:12px;background:#ffffff9e;box-shadow:0 5px 30px #32284c06;transition:transform .25s,box-shadow .25s,background .25s}.service:hover{transform:translateY(-5px);box-shadow:0 16px 35px #6743bd12;background:#fff}.service-top span:first-child{color:#8b6baa}
.ai-section{background:radial-gradient(ellipse at 5% 20%,#743b8080,transparent 55%),radial-gradient(ellipse at 95% 95%,#316c9580,transparent 55%),#25203f}.ai-card{background:#3d3457e8;border:1px solid #ffffff38;border-radius:18px;box-shadow:inset 0 1px 0 #ffffff17,0 20px 40px #0f052c20}.ai-card p{color:#ded7e9}.ai-card ul{border-color:#ffffff25;color:#e4dcec}.ai-section .sectionhead>p,.ai-foot p{color:#d3cadd}
@supports(backdrop-filter:blur(10px)){.ai-card{background:#ffffff0d;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}}
.project-preview{border-radius:12px;background:linear-gradient(135deg,#c5dbf2,#d0bfea);border:1px solid #fff}.project:nth-child(3n+2) .project-preview{background:linear-gradient(140deg,#f4d2bd,#e5bbda)}.project:nth-child(3n+3) .project-preview{background:linear-gradient(140deg,#c9d8ef,#bac6f0)}.project-preview span{background:#ffffffe0;border:1px solid #ffffffb0;backdrop-filter:blur(15px)}
.project-tools{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;flex-wrap:wrap}.filter-group{display:flex;gap:8px;flex-wrap:wrap}.filter-button,.view-button{border:1px solid var(--line);border-radius:30px;background:#ffffff80;padding:9px 16px;font-size:12px;color:var(--ink)}.filter-button[aria-pressed=true],.view-button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.project-count{font-size:11px;color:var(--muted);margin:0}.project-index{display:grid;border-top:1px solid var(--line)}.index-row{display:grid;grid-template-columns:38px 1fr 160px 70px;gap:20px;align-items:center;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;padding:15px 10px;color:var(--ink);transition:background .2s}.index-row:hover,.index-row:focus-visible{background:#e8def650}.index-row>span{font-size:11px;color:var(--muted)}.index-row strong{font:500 17px Manrope,sans-serif}.index-row img{width:70px;height:45px;object-fit:cover;object-position:top;border-radius:5px;transition:transform .2s}.index-row:hover img{transform:scale(1.3)}.project-index[hidden]{display:none}
.about-section{background:radial-gradient(ellipse at 10% 40%,#dcd4f5,transparent 50%),linear-gradient(115deg,#ece7f4,#f6e5df)}.portrait img{filter:saturate(.9)}.portrait>span{background:#302441c9;backdrop-filter:blur(16px);border:1px solid #ffffff45;border-radius:6px}.skills span{background:#ffffff60;border-color:#ffffffaa}
.contact form{background:#ffffff12;padding:30px;border:1px solid #ffffff3b;border-radius:18px;box-shadow:inset 0 1px 0 #ffffff33;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.contact .light{background:linear-gradient(105deg,#f1d0ff,#ffb0b4 68%,#ffb68f);color:#34213d;border:1px solid #ffffff40}select,textarea{background:#ffffff0f;border-color:#ffffff57}
.service-finder{display:grid;grid-template-columns:1fr 1.3fr;gap:30px;margin-top:35px;padding:30px;border:1px solid white;border-radius:14px;background:linear-gradient(110deg,#e4def7ad,#f9e2ddb0)}.service-finder h3{font-size:21px;margin-bottom:10px}.service-finder p{font-size:13px;color:var(--muted);margin-bottom:0}.finder-options{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.finder-result{padding-top:15px;border-top:1px solid #c2b7d7}.finder-result a{display:inline-block;margin-top:13px;color:var(--blue);font-size:12px;font-weight:700}
.section-reveal{animation:appear .65s both}@keyframes appear{from{opacity:.25;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:750px){header{height:80px}nav{background:#f7f5faed;backdrop-filter:blur(22px)}.service-finder{grid-template-columns:1fr;padding:22px;gap:20px}.index-row{grid-template-columns:25px 1fr 55px;gap:12px}.index-row .index-type{display:none}.index-row strong{font-size:14px}.index-row img{width:55px}.contact form{padding:24px}.project-tools{gap:12px}}
@media(prefers-reduced-motion:reduce){.section-reveal{animation:none}.sphere{transition:none}}

/* Personal projects and a warmer, softly coloured page canvas. */
body{background:radial-gradient(ellipse at 0% 3%,#c8dcfa99,transparent 24%),radial-gradient(ellipse at 100% 17%,#ffcbb98c,transparent 27%),radial-gradient(ellipse at 5% 44%,#d4bdf270,transparent 22%),radial-gradient(ellipse at 95% 74%,#c4e8dd88,transparent 24%),radial-gradient(ellipse at 12% 94%,#f4c9df70,transparent 20%),#f6f2fa}.personal-projects{display:grid;gap:10px;margin:25px 0}.personal-project{display:block;padding:16px 18px;border:1px solid #ffffffcc;border-radius:10px;background:#ffffff70;transition:transform .2s,background .2s}.about .personal-project{text-decoration:none}.personal-project:hover{background:#ffffffe0;transform:translateX(4px)}.personal-project>span{font-size:9px;letter-spacing:1px;color:#70578b;display:block;margin-bottom:6px}.personal-project strong{font:600 17px Manrope,sans-serif;display:block}.about .personal-project p{font-size:12px;margin:6px 0 0}.client-reveal{animation:appear .45s both}.clients{align-items:stretch}.all-clients summary{display:flex;justify-content:space-between;gap:15px}.all-clients summary span{float:none}.all-clients[open] .clients{margin-top:15px}.portrait img{height:560px}@media(max-width:750px){.portrait img{height:420px}}@media(prefers-reduced-motion:reduce){.client-reveal{animation:none}}
