:root{--bg:#06111c;--bg2:#091a29;--panel:#0b1c2c;--text:#f5f8fb;--muted:#9cafbf;--cyan:#10d2e4;--blue:#1689ff;--violet:#6756ff;--line:rgba(255,255,255,.1);--max:1240px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,sans-serif;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 80% 10%,rgba(22,137,255,.12),transparent 25%),radial-gradient(circle at 15% 45%,rgba(103,86,255,.07),transparent 22%);pointer-events:none;z-index:-2}.noise{position:fixed;inset:0;opacity:.035;pointer-events:none;z-index:99;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:auto;padding:0 28px;position:relative;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-family:"Space Grotesk";font-size:15px;letter-spacing:.06em}.brand-mark{width:55px;height:auto}.site-header nav{display:flex;gap:32px;align-items:center}.site-header nav a{color:#b7c5d2;text-decoration:none;font-size:13px;transition:.2s}.site-header nav a:hover{color:#fff}.site-header .nav-cta{border:1px solid var(--line);padding:10px 16px;border-radius:999px;color:#fff}.menu{display:none;background:none;border:0;color:#fff;font-size:24px}.section{max-width:var(--max);margin:auto;padding:120px 28px}.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px;padding-top:70px;padding-bottom:90px}.eyebrow,.section-kicker{font-family:"Space Grotesk";font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#86a0b5}.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 16px var(--cyan);margin-right:9px}.hero h1,.split-heading h2,.stack h2,.lab h2,.about h2,.contact h2{font-family:"Space Grotesk";font-weight:500;letter-spacing:-.045em;margin:24px 0}.hero h1{font-size:clamp(52px,6vw,86px);line-height:.98}.gradient-text,.split-heading h2 span,.stack h2 span,.lab h2 span,.about h2 span{background:linear-gradient(90deg,var(--cyan),var(--blue),#8d6bff);-webkit-background-clip:text;color:transparent}.lede{max-width:670px;font-size:19px;line-height:1.75;color:#afbfcc}.hero-actions{display:flex;gap:14px;margin:36px 0}.button{display:inline-flex;align-items:center;gap:18px;padding:14px 20px;border-radius:10px;text-decoration:none;color:#fff;font-weight:600;font-size:14px}.button.primary{background:linear-gradient(100deg,#0f8fff,#22cedc);box-shadow:0 12px 35px rgba(15,143,255,.18)}.button.ghost{border:1px solid var(--line);background:rgba(255,255,255,.025)}.hero-meta{display:flex;gap:12px;align-items:center;color:#71879a;font-size:11px;text-transform:uppercase;letter-spacing:.11em}.hero-meta i{width:3px;height:3px;background:#486174;border-radius:50%}.hero-art{position:relative;height:520px;display:flex;align-items:center;justify-content:center}.hero-logo{width:110%;filter:drop-shadow(0 25px 40px rgba(0,150,255,.18))}.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.18}.orb-a{width:220px;height:220px;background:var(--cyan);top:50px;right:20px}.orb-b{width:200px;height:200px;background:var(--violet);bottom:40px;left:40px}.glass{background:rgba(7,20,33,.74);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.13);box-shadow:0 30px 70px rgba(0,0,0,.28)}.code-card{position:absolute;right:-10px;bottom:20px;width:280px;padding:18px 20px;border-radius:14px}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:5px}.dot.cyan{background:var(--cyan)}.dot.blue{background:var(--blue)}.dot.violet{background:var(--violet)}.code-card code{display:block;margin-top:16px;line-height:1.8;color:#91a9bb;font-size:12px}.code-card em{color:var(--cyan);font-style:normal}.code-card span{color:#c9d7e2}.code-card b{font-weight:400;color:#64d9ba}.marquee{border-block:1px solid var(--line);overflow:hidden;white-space:nowrap;padding:16px 0;color:#526b7d;font-family:"Space Grotesk";font-size:11px;letter-spacing:.18em}.marquee div{display:inline-block;min-width:200%;animation:marquee 28s linear infinite}.marquee span{margin-left:40px}@keyframes marquee{to{transform:translateX(-50%)}}.section-kicker{color:#5e7b91;margin-bottom:28px}.split-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:end;margin-bottom:60px}.split-heading h2,.stack h2,.lab h2,.about h2{font-size:clamp(40px,4.5vw,66px);line-height:1.05}.split-heading p,.stack-layout>div>p,.lab-panel p,.about-copy p{color:var(--muted);line-height:1.8;font-size:16px;max-width:560px}.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.cap-card{position:relative;min-height:360px;padding:30px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.01));border-radius:18px;transition:.3s}.cap-card:hover{transform:translateY(-5px);border-color:rgba(16,210,228,.28);background:linear-gradient(145deg,rgba(16,210,228,.06),rgba(255,255,255,.01))}.num{position:absolute;right:25px;top:24px;color:#40586b;font-family:"Space Grotesk"}.icon{font-size:36px;color:var(--cyan);margin:42px 0 32px}.cap-card h3{font:500 30px "Space Grotesk";margin:0 0 14px}.cap-card p{color:#9aabba;line-height:1.7;font-size:14px}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:24px}.tags span{border:1px solid var(--line);color:#7f96a8;border-radius:999px;padding:6px 9px;font-size:10px}.projects{padding-top:70px}.project-list{display:grid;gap:18px}.project{display:grid;grid-template-columns:1fr .9fr;min-height:390px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#081725}.project-copy{padding:50px}.project-label{font-size:10px;letter-spacing:.18em;color:var(--cyan);margin-bottom:28px}.project h3{font:500 36px "Space Grotesk";margin:0 0 16px}.project p{color:var(--muted);line-height:1.75;max-width:600px}.project-visual{min-height:330px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(circle at center,rgba(0,206,230,.14),transparent 55%),#07131e}.fake-window{width:78%;height:72%;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:#0d2031;box-shadow:0 25px 60px rgba(0,0,0,.35);transform:rotate(2deg)}.fake-bar{height:30px;border-bottom:1px solid var(--line);display:flex;gap:5px;align-items:center;padding:0 12px}.fake-bar i{width:6px;height:6px;background:#365268;border-radius:50%}.calendar{padding:22px}.cal-head{font:600 13px "Space Grotesk";display:flex;justify-content:space-between}.cal-head span{color:#718ca0}.cal-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:20px}.cal-grid b{font-size:9px;color:#557084;text-align:center}.cal-grid i{height:30px;border:1px solid rgba(255,255,255,.06);border-radius:4px}.cal-grid .event{background:linear-gradient(135deg,rgba(16,210,228,.8),rgba(22,137,255,.8));border:0}.cal-grid .alt{background:linear-gradient(135deg,#5c56ff,#1a85ff)}.screen{width:70%;aspect-ratio:16/9;border:7px solid #142737;border-radius:8px;background:linear-gradient(135deg,#0b2638,#0c1725);box-shadow:0 30px 70px #0008;padding:25px;transform:perspective(900px) rotateY(-8deg);display:flex;flex-direction:column;justify-content:center}.screen span{font-size:9px;letter-spacing:.18em;color:var(--cyan)}.screen strong{font:600 86px "Space Grotesk";line-height:1;background:linear-gradient(120deg,var(--cyan),var(--blue));-webkit-background-clip:text;color:transparent}.screen small{color:#6d899c}.metric{width:70%;padding:30px;border:1px solid var(--line);border-radius:15px;background:#0b1e2e;box-shadow:0 30px 70px #0008}.metric span{font-size:10px;letter-spacing:.18em;color:#688398}.metric strong{display:block;font:600 64px "Space Grotesk";margin:12px 0}.bars{display:flex;gap:4px}.bars i{height:40px;flex:1;background:linear-gradient(to top,var(--blue),var(--cyan));border-radius:3px;opacity:.8}.bars i:nth-child(2){height:30px}.bars i:nth-child(4){height:34px}.bars i:nth-child(7){height:25px}.stack{border-block:1px solid var(--line);max-width:none;background:rgba(255,255,255,.015)}.stack-layout{max-width:var(--max);margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;padding-inline:28px}.stack-cloud{display:flex;flex-wrap:wrap;align-content:center;gap:10px}.stack-cloud span{padding:13px 16px;border:1px solid var(--line);border-radius:9px;color:#91a7b8;font:500 13px "Space Grotesk";background:#071522}.stack-cloud .big{font-size:18px;color:#fff;border-color:rgba(16,210,228,.35);box-shadow:inset 0 0 30px rgba(16,210,228,.06)}.lab-panel{border:1px solid var(--line);border-radius:24px;background:linear-gradient(130deg,#081928,#07131e);padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:40px;overflow:hidden}.lab-nodes{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.lab-nodes span{font-size:11px;color:#8fa6b7;padding:8px 11px;border:1px solid var(--line);border-radius:999px}.network{position:relative;min-height:390px}.network svg{position:absolute;inset:0;width:100%;height:100%}.network line{stroke:#1a779a;stroke-width:1;stroke-dasharray:5 7;opacity:.5}.node{position:absolute;width:60px;height:60px;border:1px solid rgba(16,210,228,.3);background:#0b2030;border-radius:50%;display:grid;place-items:center;font:600 10px "Space Grotesk";color:#83b5c7;z-index:2;box-shadow:0 0 25px rgba(16,210,228,.07)}.node.core{width:90px;height:90px;left:calc(50% - 45px);top:calc(50% - 45px);color:#fff;background:radial-gradient(circle,#12394b,#0a1d2c);border-color:var(--cyan);box-shadow:0 0 45px rgba(16,210,228,.14)}.n1{left:9%;top:10%}.n2{right:6%;top:13%}.n3{right:3%;bottom:12%}.n4{left:7%;bottom:8%}.n5{left:calc(50% - 30px);top:0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.aside{font-family:"Space Grotesk";color:#d6e2ea!important}.life-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.life-card{min-height:190px;border:1px solid var(--line);border-radius:16px;padding:24px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008));display:flex;flex-direction:column;justify-content:flex-end}.life-card small{color:var(--cyan);letter-spacing:.15em;font-size:9px;margin-bottom:auto}.life-card strong{font:500 23px "Space Grotesk"}.life-card span{font-size:12px;color:#7890a2;margin-top:5px}.clemson{background:radial-gradient(circle at 80% 20%,rgba(245,102,0,.14),transparent 42%),#091725}.jill{background:radial-gradient(circle at 80% 20%,rgba(16,210,228,.1),transparent 42%),#091725}.contact{padding-top:40px}.contact-panel{text-align:center;padding:100px 30px;border:1px solid var(--line);border-radius:24px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 0,rgba(22,137,255,.13),transparent 45%),#071522}.signal-line{position:absolute;width:100%;height:70px;top:20px;left:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 1000 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 50 C100 0 150 100 250 50 S400 0 500 50 650 100 750 50 900 0 1000 50' fill='none' stroke='%2310d2e4' stroke-opacity='.18' stroke-width='2'/%3E%3C/svg%3E") center/cover}.contact h2{font-size:clamp(42px,5vw,72px);margin-bottom:16px}.contact p{max-width:650px;margin:0 auto 30px;color:var(--muted);line-height:1.7}.contact small{display:block;margin-top:16px;color:#5e7a8f}footer{max-width:var(--max);margin:auto;padding:40px 28px 55px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:#60798c;font-size:11px}.footer-brand span{color:#8399aa}footer p{margin:0}footer>a:last-child{color:#8399aa;text-decoration:none}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.delay{transition-delay:.12s}@media(max-width:900px){.site-header nav{display:none;position:absolute;top:70px;right:20px;flex-direction:column;align-items:flex-start;background:#091927;border:1px solid var(--line);padding:20px;border-radius:12px}.site-header nav.open{display:flex}.menu{display:block}.hero{grid-template-columns:1fr;padding-top:60px}.hero-art{height:390px}.hero-logo{width:90%}.code-card{right:5%;bottom:0}.split-heading,.stack-layout,.lab-panel,.about-grid{grid-template-columns:1fr;gap:25px}.cap-grid{grid-template-columns:1fr}.project{grid-template-columns:1fr}.project-visual{min-height:300px}.section{padding-top:85px;padding-bottom:85px}.stack{padding-inline:0}.network{min-height:330px}}@media(max-width:600px){.site-header{height:70px;padding:0 18px}.brand span{font-size:13px}.brand-mark{width:45px}.section{padding:70px 18px}.hero{padding-top:40px}.hero h1{font-size:48px}.lede{font-size:16px}.hero-meta{flex-wrap:wrap}.hero-art{height:320px}.code-card{width:230px}.split-heading{margin-bottom:35px}.split-heading h2,.stack h2,.lab h2,.about h2{font-size:39px}.project-copy{padding:30px 24px}.project h3{font-size:29px}.lab-panel{padding:30px 22px}.life-grid{grid-template-columns:1fr}.contact-panel{padding:75px 20px}footer{flex-direction:column;gap:18px;text-align:center}}
/* Refined Kevin Martin brand mark — faceted K + signal-M ribbon */
.brand-mark{width:68px;height:42px;object-fit:contain;object-position:left center;filter:drop-shadow(0 5px 12px rgba(0,180,255,.14))}
.hero-logo{width:min(112%,760px);height:auto;object-fit:contain;filter:drop-shadow(0 28px 48px rgba(0,145,255,.18));transform:translateY(-12px)}
.footer-brand .brand-mark{width:62px;height:40px}
@media(max-width:600px){.brand-mark{width:54px;height:36px}.hero-logo{width:100%;transform:translateY(-4px)}}

/* Exact approved logo artwork supplied by Kevin — no SVG reinterpretation. */
.brand-mark{width:82px;height:42px;object-fit:contain;object-position:left center;border-radius:3px;mix-blend-mode:normal}
.hero-logo{width:min(100%,700px);height:auto;object-fit:contain;border-radius:10px;filter:drop-shadow(0 28px 52px rgba(0,145,255,.22));transform:none}
.hero-art{padding:20px}
.footer-brand .brand-mark{width:78px;height:40px}
@media(max-width:600px){.brand-mark{width:66px;height:34px}.hero-logo{width:100%;border-radius:7px}}


/* Keep the approved logo fully visible; PowerShell card sits beneath it. */
.hero-art{
  height:auto;
  min-height:560px;
  padding:18px 0 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:22px;
}
.hero-logo{
  position:relative;
  z-index:2;
  width:min(100%,700px);
  display:block;
  flex:0 0 auto;
}
.code-card{
  position:relative;
  right:auto;
  bottom:auto;
  z-index:3;
  width:min(360px,82%);
  align-self:flex-end;
  margin:-4px 10px 0 0;
}
@media(max-width:900px){
  .hero-art{height:auto;min-height:0;padding-top:24px;gap:18px}
  .hero-logo{width:min(92%,700px)}
  .code-card{right:auto;bottom:auto;align-self:center;margin:0;width:min(360px,88%)}
}
@media(max-width:600px){
  .hero-art{height:auto;min-height:0;gap:16px}
  .hero-logo{width:100%}
  .code-card{width:92%;margin:0}
}

/* Contact form */
.contact-form{max-width:640px;margin:0 auto;text-align:left;display:grid;gap:16px}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-form label{display:grid;gap:8px;font:500 12px "Space Grotesk";letter-spacing:.12em;text-transform:uppercase;color:#7f96a8}
.contact-form input,.contact-form textarea{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03);color:var(--text);font:400 15px Inter,sans-serif;letter-spacing:normal;text-transform:none;transition:border-color .2s,background .2s}
.contact-form textarea{resize:vertical;min-height:130px}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:rgba(16,210,228,.5);background:rgba(16,210,228,.04)}
.contact-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-form .cf-turnstile{min-height:65px}
.contact-form button{justify-self:start;border:0;cursor:pointer;font-family:Inter,sans-serif}
.contact-form button:disabled{opacity:.6;cursor:wait}
.form-status{margin:0!important;min-height:1.5em;font-size:14px;text-align:left!important}
.form-status.ok{color:#64d9ba!important}
.form-status.err{color:#ff8a8a!important}
@media(max-width:600px){.contact-form .form-row{grid-template-columns:1fr}.contact-form button{justify-self:stretch;justify-content:center}}

/* ---------- Hero network background ---------- */
.hero{position:relative}
.hero>*:not(.hero-canvas){position:relative;z-index:1}
.hero-canvas{position:absolute;top:-82px;bottom:0;left:50%;width:100vw;height:calc(100% + 82px);transform:translateX(-50%);z-index:0;pointer-events:none;opacity:.85;
  -webkit-mask-image:radial-gradient(ellipse 75% 70% at 68% 45%,#000 35%,transparent 80%);mask-image:radial-gradient(ellipse 75% 70% at 68% 45%,#000 35%,transparent 80%)}

/* ---------- Capability illustrations ---------- */
.cap-card .icon{margin:34px 0 26px;height:110px}
.cap-art{width:180px;max-width:100%;height:110px;overflow:visible;display:block}
.cap-art *{vector-effect:non-scaling-stroke}

/* Lead: tickets get resolved one by one */
.art-lead .tk rect:first-child{fill:rgba(255,255,255,.025);stroke:rgba(255,255,255,.12)}
.art-lead .st{fill:none;stroke:#3a5568;stroke-width:1.5;animation:tk-status 6s infinite}
.art-lead .ck{fill:none;stroke:#06111c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0;animation:tk-check 6s infinite}
.art-lead .ln,.art-lead .ln2{stroke:#3d566a;stroke-width:3;stroke-linecap:round}
.art-lead .ln2{stroke:#2a3f50}
.art-lead .pill{fill:rgba(103,86,255,.25);animation:tk-pill 6s infinite}
.art-lead .tk2 *{animation-delay:.9s}.art-lead .tk3 *{animation-delay:1.8s}
@keyframes tk-status{0%,15%{fill:transparent;stroke:#3a5568}25%,85%{fill:var(--cyan);stroke:var(--cyan)}100%{fill:transparent;stroke:#3a5568}}
@keyframes tk-check{0%,18%{opacity:0}26%,85%{opacity:1}100%{opacity:0}}
@keyframes tk-pill{0%,15%{fill:rgba(103,86,255,.25)}25%,85%{fill:rgba(100,217,186,.35)}100%{fill:rgba(103,86,255,.25)}}

/* Automate: terminal types, gears turn */
.art-automate .win{fill:#0b1c2c;stroke:rgba(255,255,255,.14)}
.art-automate .bar{stroke:rgba(255,255,255,.1)}
.art-automate .d1{fill:var(--cyan)}.art-automate .d2{fill:var(--blue)}.art-automate .d3{fill:var(--violet)}
.art-automate .prompt{fill:none;stroke:var(--cyan);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.art-automate .type{stroke:#4f6b80;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:80;animation:type 5s infinite}
.art-automate .t1{stroke:#c9d7e2}.art-automate .t2{animation-delay:.6s}.art-automate .t3{stroke:#64d9ba;animation-delay:1.2s}
.art-automate .cursor{fill:var(--cyan);animation:blink 1s steps(1) infinite}
.art-automate .gear{transform-box:fill-box;transform-origin:center;animation:spin 8s linear infinite}
.art-automate .gear-sm{animation-direction:reverse;animation-duration:5.4s}
.art-automate .teeth{fill:none;stroke:var(--blue);stroke-width:7;stroke-dasharray:5.5 4.97}
.art-automate .gear-sm .teeth{stroke-width:5;stroke-dasharray:4 4.64}
.art-automate .body{fill:#0d2a40;stroke:var(--blue);stroke-width:1.5}
.art-automate .hole{fill:#06111c;stroke:rgba(16,210,228,.6)}
@keyframes type{0%{stroke-dashoffset:80}25%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:0;opacity:0}}
@keyframes blink{50%{opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}

/* Build: blocks stack up */
.art-build .f-top{fill:rgba(16,210,228,.28);stroke:var(--cyan)}
.art-build .f-left{fill:rgba(22,137,255,.18);stroke:rgba(16,210,228,.7)}
.art-build .f-right{fill:rgba(103,86,255,.18);stroke:rgba(16,210,228,.7)}
.art-build path{stroke-width:1.2;stroke-linejoin:round}
.art-build .cube{animation:drop 6s cubic-bezier(.3,1.4,.5,1) infinite}
.art-build .c2{animation-delay:.25s}.art-build .c3{animation-delay:.5s}.art-build .c4{animation-delay:.85s}
.art-build .c4 .f-top{fill:rgba(16,210,228,.5)}
@keyframes drop{0%{transform:translateY(-26px);opacity:0}12%,85%{transform:none;opacity:1}100%{transform:none;opacity:0}}

/* ---------- Toolkit grid ---------- */
.stack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:center}
.tool{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:#071522;transition:border-color .25s,background .25s,transform .25s}
.tool svg{grid-row:span 2;width:36px;height:36px;padding:7px;border-radius:9px;background:rgba(16,210,228,.07);fill:none;stroke:var(--cyan);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:background .25s}
.tool strong{font:500 14px "Space Grotesk";color:#dfe8ef;line-height:1.2}
.tool small{font-size:11px;color:#6d889c}
.tool:hover{border-color:rgba(16,210,228,.35);background:linear-gradient(145deg,rgba(16,210,228,.07),#071522);transform:translateY(-2px)}
.tool:hover svg{background:rgba(16,210,228,.15)}
.tool.big{grid-column:span 2;border-color:rgba(16,210,228,.35);box-shadow:inset 0 0 30px rgba(16,210,228,.06)}
.tool.big svg{width:44px;height:44px;padding:9px}
.tool.big strong{font-size:18px}
@media(max-width:600px){.stack-grid{grid-template-columns:1fr 1fr}.tool{padding:12px;column-gap:10px}.tool svg{width:32px;height:32px;padding:6px}.tool strong{font-size:13px}}
@media(max-width:380px){.stack-grid{grid-template-columns:1fr}.tool.big{grid-column:auto}}

@media(prefers-reduced-motion:reduce){.cap-art *{animation:none!important}.art-automate .type{stroke-dashoffset:0}.art-lead .st{fill:var(--cyan);stroke:var(--cyan)}.art-lead .ck{opacity:1}}

/* Refinements */
.cap-card .icon{height:134px}
.cap-art{width:220px;height:134px}
.bars{align-items:flex-end}
.tool.big{grid-column:auto} /* 12 tiles = even 3x4 grid; PowerShell stays highlighted */
.tool.big svg{width:36px;height:36px;padding:7px}
.tool.big strong{font-size:15px}

/* Toolkit: contained panel to match Home Lab / Contact */
.stack{max-width:var(--max);border-block:0;background:none;padding-inline:28px}
.stack-layout{max-width:none;margin:0;padding:60px;gap:60px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(130deg,#081928,#07131e)}
@media(max-width:900px){.stack{padding-inline:28px}.stack-layout{gap:30px}}
@media(max-width:600px){.stack{padding-inline:18px}.stack-layout{padding:30px 22px}}
@media(min-width:901px){.stack-layout{grid-template-columns:.8fr 1.2fr}}

/* Even section rhythm: every gap matches What I Do -> Selected Work (120px bottom + 70px top) */
@media(min-width:901px){.projects,.stack,.lab,.about,.contact{padding-top:70px}}

/* Tighter hero: size to content instead of filling the screen */
.hero{min-height:0;padding-top:40px;padding-bottom:56px}
@media(max-width:600px){.hero{padding-top:28px;padding-bottom:48px}}

/* Hero fills the first screen again; a scroll cue uses the extra room */
@media(min-width:901px){.hero{min-height:calc(100svh - 82px);padding-bottom:120px}}
.section>.scroll-cue{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:#6f889b;text-decoration:none;font:500 10px "Space Grotesk";letter-spacing:.3em;text-transform:uppercase;padding-left:.3em;transition:color .2s}
.section>.scroll-cue:hover{color:var(--cyan)}
.scroll-cue i{position:relative;width:1px;height:46px;background:linear-gradient(to bottom,rgba(16,210,228,.45),rgba(16,210,228,0));overflow:hidden}
.scroll-cue i:after{content:"";position:absolute;left:0;top:-14px;width:1px;height:14px;background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:cue 2.2s cubic-bezier(.6,0,.4,1) infinite}
@keyframes cue{0%{top:-14px;opacity:0}20%{opacity:1}80%{opacity:1}100%{top:46px;opacity:0}}
@media(max-width:900px){.section>.scroll-cue{display:none}}
@media(prefers-reduced-motion:reduce){.scroll-cue i:after{animation:none;top:16px}}
@media(min-width:901px){.hero{padding-bottom:136px}}

/* Marquee: track holds two identical groups; script.js sizes them so there is never a gap */
.marquee .marquee-track{display:flex;width:max-content;min-width:0;animation:marquee 40s linear infinite}
.marquee .marquee-group{white-space:pre;margin:0}
@media(prefers-reduced-motion:reduce){.marquee .marquee-track{animation:none}}

/* One section per screen on laptops/desktops: each fills the window, content centred, cue at the bottom */
@media(min-width:901px){
  .section:not(.hero){min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;padding-top:90px;padding-bottom:130px}
  .section.contact{padding-bottom:90px}
}

/* Shorter desktop windows: tighten so each section fits on one screen */
@media(min-width:901px) and (max-height:1000px){
  .section:not(.hero){padding-top:56px;padding-bottom:116px}
  .section.contact{padding-bottom:56px}
  .split-heading{margin-bottom:32px}
  .split-heading h2{font-size:clamp(36px,3.8vw,56px);margin:12px 0}
  .cap-card{min-height:0;padding:24px 28px}
  .cap-card .icon{margin:10px 0 14px;height:118px}
  .cap-art{height:118px}
  .contact-panel{padding:48px 30px 40px}
  .contact h2{font-size:clamp(36px,4vw,56px);margin:8px 0 12px}
  .contact p{margin-bottom:20px}
  .contact-form{gap:12px}
  .contact-form textarea{min-height:96px}
}
@media(min-width:901px) and (max-height:820px){
  .section:not(.hero){padding-top:36px;padding-bottom:100px}
  .section.contact{padding-bottom:36px}
  .section-kicker{margin-bottom:18px}
  .contact-panel{padding:36px 30px 30px}
  .contact-form textarea{min-height:76px}
  .stack-layout{padding:44px 60px}
}
@media(min-width:901px) and (max-height:820px){.section.projects{padding-bottom:120px}}

/* Selected Work: three projects side by side on wide screens (illustration on top, text below) */
@media(min-width:1100px){
  .project-list{grid-template-columns:repeat(3,1fr);gap:16px}
  .project{grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:0;transition:border-color .3s,transform .3s}
  .project:hover{border-color:rgba(16,210,228,.3);transform:translateY(-4px)}
  .project.featured{border-color:rgba(16,210,228,.28)}
  .project-visual{order:-1;min-height:0;height:220px;border-bottom:1px solid var(--line)}
  .project-copy{padding:26px 28px 30px}
  .project-label{margin-bottom:14px}
  .project h3{font-size:25px;margin-bottom:10px}
  .project p{font-size:14px;line-height:1.65}
  .project .tags{margin-top:18px}
  .fake-window{width:80%;height:76%}
  .calendar{padding:14px 16px}
  .cal-grid{margin-top:12px;gap:5px}
  .cal-grid i{height:20px}
  .screen{width:72%;padding:16px 20px;border-width:5px}
  .screen strong{font-size:58px}
  .metric{width:72%;padding:20px 22px}
  .metric strong{font-size:44px;margin:6px 0 12px}
  .bars i{height:30px}.bars i:nth-child(2){height:22px}.bars i:nth-child(4){height:25px}.bars i:nth-child(7){height:18px}
}
@media(min-width:1100px) and (max-height:820px){
  .project-visual{height:180px}
  .project-copy{padding:20px 24px 24px}
  .project p{font-size:13.5px}
}
@media(min-width:1100px) and (max-height:820px){
  .project-visual{height:150px}
  .projects .split-heading{margin-bottom:22px}
  .projects .split-heading h2{font-size:clamp(32px,3.2vw,46px)}
  .projects .split-heading p{font-size:14.5px;line-height:1.65}
  .project-label{margin-bottom:10px}
  .project h3{font-size:22px}
  .project .tags{margin-top:14px}
  .screen strong{font-size:46px}
  .metric{padding:14px 18px}.metric strong{font-size:36px;margin:2px 0 8px}
  .bars i{height:22px}.bars i:nth-child(2){height:16px}.bars i:nth-child(4){height:19px}.bars i:nth-child(7){height:13px}
}
@media(min-width:1100px) and (max-height:820px){
  /* Scale the mini illustrations instead of cropping them */
  .project-visual .fake-window,.project-visual .screen,.project-visual .metric{scale:.68}
  .screen strong{font-size:58px}
  .metric{padding:20px 22px}.metric strong{font-size:44px;margin:6px 0 12px}
  .bars i{height:30px}.bars i:nth-child(2){height:22px}.bars i:nth-child(4){height:25px}.bars i:nth-child(7){height:18px}
}
@media(min-width:1100px){.project-visual .fake-window{height:auto;padding-bottom:4px}}
