@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--ink:#f2f4f1;--muted:#a3aaa8;--line:#293235;--paper:#080b0d;--white:#111719;--hot:#ff5738;--lime:#d9f45f;--blue:#111719;--max:1800px;--scroll:0}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--lime);color:#080b0d}
.scroll-progress{height:3px;background:linear-gradient(90deg,var(--lime),var(--hot));position:fixed;z-index:30;top:0;left:0;width:calc(var(--scroll)*100%);transform-origin:left;box-shadow:0 0 16px #d9f45f70}
.site-header{height:82px;width:100%;padding:0 clamp(22px,5vw,90px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(8,11,13,.84);position:sticky;top:0;z-index:20;backdrop-filter:blur(18px)}
.wordmark{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.16em}.wordmark img{width:38px;height:38px;object-fit:contain;filter:invert(1)}.wordmark b{font-weight:700}.site-header nav{display:flex;gap:clamp(15px,2.5vw,42px);align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.15em}.site-header nav a{position:relative;color:#c2c9c6;padding:11px 0}.site-header nav a:after{content:'';height:2px;background:var(--lime);position:absolute;left:0;right:100%;bottom:1px;transition:right .24s ease}.site-header nav a:hover:after,.site-header nav a[aria-current=page]:after{right:0}.site-header nav .nav-cta{padding:14px 19px;background:var(--lime);color:#080b0d;font-weight:800}.site-header nav .nav-cta:after{display:none}.nav-cta span,.button span{margin-left:13px}
main{width:100%;margin:0;padding:0}.hero{min-height:76vh;display:block;padding:clamp(76px,11vh,150px) clamp(22px,7vw,130px) 70px;position:relative;isolation:isolate;overflow:hidden}.hero:before{content:'';position:absolute;inset:-20%;z-index:-2;background:radial-gradient(ellipse at 75% 50%,#d9f45f14,transparent 30%),radial-gradient(ellipse at 90% 20%,#ff573814,transparent 28%),linear-gradient(135deg,transparent 45%,#ffffff04 45.1%,#ffffff04 45.3%,transparent 45.4%);animation:ambient 12s ease-in-out infinite alternate}.hero:after{content:'';position:absolute;z-index:-1;right:-5vw;top:3%;width:min(50vw,780px);aspect-ratio:1;background:url('david-sommerville-inc-mark.png') center/contain no-repeat;filter:invert(1);opacity:.045;transform:rotate(-8deg)}.hero-copy{width:100%;max-width:1550px;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:700;color:var(--lime);line-height:1.7}.hero h1,.page-intro h1{font:900 clamp(68px,10vw,180px)/.76 'Barlow Condensed',sans-serif;letter-spacing:-.065em;margin:28px 0 34px;max-width:100%;text-wrap:balance}.hero h1{text-transform:uppercase;max-width:1500px;text-shadow:0 10px 40px #000}.hero h1 span{display:block;white-space:nowrap}.lead{font-size:clamp(14px,1.15vw,17px);line-height:1.8;color:#bdc4c1;max-width:810px}.actions{display:flex;gap:clamp(16px,2.3vw,34px);align-items:center;margin-top:34px}.button{display:inline-flex;align-items:center;padding:17px 22px;font-size:10px;letter-spacing:.14em;font-weight:800;text-transform:uppercase;transition:transform .22s,background .22s,color .22s,box-shadow .22s}.button-dark{background:var(--lime);color:#080b0d;box-shadow:0 0 0 1px #d9f45f,0 0 28px #d9f45f19}.button-dark:hover{background:var(--hot);box-shadow:0 0 34px #ff573855;transform:translateY(-4px)}.text-link{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#dbe0dc;border-bottom:1px solid #66706f;padding-bottom:7px;transition:color .2s,border-color .2s}.text-link:hover{color:var(--lime);border-color:var(--lime)}.text-link span{margin-left:8px}
.hero-image{width:100%;position:relative;overflow:hidden;aspect-ratio:3.5;background:#050505;isolation:isolate;border-block:1px solid #435047}.hero-image:before{content:'DAVID SOMMERVILLE INC';position:absolute;z-index:2;top:13px;left:clamp(18px,4vw,64px);font:700 9px 'DM Sans',sans-serif;letter-spacing:.24em;color:var(--lime);mix-blend-mode:screen;pointer-events:none}.hero-image:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),rgba(217,244,95,.2),transparent 68%),linear-gradient(90deg,#05080928,transparent 25%,transparent 75%,#05080955);mix-blend-mode:screen}.hero-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .9s cubic-bezier(.2,.8,.2,1);animation:hero-arrive 1.1s cubic-bezier(.2,.8,.2,1) both}.hero-image:hover img{transform:scale(1.045)}
.service-marquee{overflow:hidden;border-block:1px solid #37403f;background:#0d1214;white-space:nowrap;padding:18px 0;color:#f1f4ef}.marquee-track{display:flex;width:max-content;animation:marquee 34s linear infinite}.marquee-track span{font:700 24px 'Barlow Condensed',sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:0 25px}.marquee-track i{display:inline-block;width:9px;height:9px;background:var(--hot);border-radius:50%;vertical-align:middle;margin-left:42px;box-shadow:0 0 18px #ff5738}
.section-band{width:100%;padding:clamp(62px,8vw,126px) clamp(22px,7vw,130px);background:linear-gradient(110deg,#101719,#0b1012 60%,#15191a);position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.section-band:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.9%,#ffffff08 50%,transparent 50.1%),linear-gradient(0deg,transparent 49.9%,#ffffff06 50%,transparent 50.1%);background-size:72px 72px;mask-image:linear-gradient(90deg,transparent,black 45%,black)}.section-band:after{content:'DS';position:absolute;right:3vw;top:-.65em;font:900 clamp(180px,33vw,500px)/1 'Barlow Condensed',sans-serif;letter-spacing:-.08em;color:rgba(217,244,95,.035);pointer-events:none}.section-band .eyebrow,.section-band h2,.section-band p,.section-band a{position:relative;z-index:1}.section-band h2{font:800 clamp(50px,8vw,126px)/.86 'Barlow Condensed',sans-serif;letter-spacing:-.045em;max-width:1420px;margin:22px 0 32px;color:var(--lime)}
.page-intro{padding:clamp(65px,9vw,140px) clamp(22px,7vw,130px) 55px;max-width:1600px}.page-intro h1{font-size:clamp(60px,10vw,150px);line-height:.82}.page-intro>p:not(.eyebrow){line-height:1.8;color:#b6bfbc;max-width:1020px}.skills-grid,.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#273032;border-block:1px solid #273032;padding:1px clamp(22px,5vw,90px) 80px}.info-card,.service-card{background:#0b1012;padding:clamp(24px,3vw,46px);position:relative;overflow:hidden;min-height:250px;transition:transform .32s cubic-bezier(.2,.8,.2,1),background .32s,box-shadow .32s;isolation:isolate}.info-card:before,.service-card:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(500px circle at var(--mx,50%) var(--my,50%),#d9f45f15,transparent 60%),linear-gradient(135deg,#ffffff00 35%,#ffffff04 35.1%,#ffffff04 35.3%,transparent 35.4%)}.info-card:after,.service-card:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:3px;background:linear-gradient(90deg,var(--lime),var(--hot));transform:scaleX(0);transform-origin:left;transition:transform .35s}.info-card:hover,.service-card:hover{transform:translateY(-6px);background:#151c1e;box-shadow:0 22px 50px #0008;z-index:2}.info-card:hover:after,.service-card:hover:after{transform:scaleX(1)}.info-card h2,.service-card h2{font:700 clamp(25px,2.1vw,34px)/.98 'Barlow Condensed',sans-serif;letter-spacing:-.015em;margin:16px 0 23px}.info-card ul,.service-card ul{padding:0;margin:0;list-style:none}.info-card li,.service-card li{border-top:1px solid #263032;padding:11px 0;font-size:12px;line-height:1.55;color:#b1b9b7}.services-intro{padding-bottom:50px}.service-card{min-height:350px}.service-card .eyebrow{color:var(--lime)}.service-card .tagline{color:var(--hot);font-size:13px;font-weight:600;margin:0 0 20px}.service-card li{font-size:13px}
.site-footer{width:100%;background:#050708;color:#eaf0f1;padding:45px clamp(22px,5vw,90px);display:grid;grid-template-columns:1fr auto;gap:25px;align-items:end;border-top:1px solid #343d3e}.footer-mark img{filter:invert(1)}.footer-links{display:flex;gap:clamp(12px,2vw,30px);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.footer-links a{transition:color .2s}.footer-links a:hover{color:var(--lime)}.site-footer small{grid-column:1/-1;border-top:1px solid #ffffff26;padding-top:17px;color:#899391;font-size:10px;letter-spacing:.12em}
.has-reveal [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1)}.has-reveal [data-reveal].is-visible{opacity:1;transform:translateY(0)}
@keyframes marquee{to{transform:translateX(-50%)}}@keyframes ambient{from{transform:translate3d(-1%,0,0) rotate(-1deg)}to{transform:translate3d(1%,1.5%,0) rotate(1deg)}}@keyframes hero-arrive{from{transform:scale(1.08);filter:grayscale(1) brightness(.65)}to{transform:scale(1);filter:grayscale(.25) brightness(1)}}
@media(max-width:850px){.site-header{height:74px;padding:0 22px}.site-header nav{gap:15px;font-size:10px}.site-header nav .nav-cta{padding:11px 13px}.hero{min-height:auto;padding:90px 22px 58px}.hero h1{font-size:clamp(80px,17vw,150px)}.hero-image{aspect-ratio:2.7}.skills-grid,.services-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:22px}.section-band{padding-inline:22px}.page-intro{padding-inline:22px}.site-footer{padding-inline:22px}}
@media(max-width:560px){.site-header{padding:0 16px}.wordmark{gap:8px;font-size:8px}.wordmark img{width:32px;height:32px}.site-header nav{gap:11px}.site-header nav a:first-child{display:none}.site-header nav .nav-cta{padding:10px}.hero{padding:68px 18px 42px}.hero h1{font-size:clamp(68px,18vw,105px);line-height:.79}.hero .lead{font-size:14px}.actions{gap:17px;flex-wrap:wrap}.hero-image{aspect-ratio:1.65}.hero-image:before{font-size:7px}.service-marquee{padding:14px 0}.marquee-track span{font-size:19px;padding-inline:17px}.marquee-track i{margin-left:26px}.section-band{padding:58px 18px}.section-band h2{font-size:clamp(47px,13vw,72px)}.page-intro{padding:58px 18px 32px}.page-intro h1{font-size:clamp(52px,14vw,83px);line-height:.88}.skills-grid,.services-grid{grid-template-columns:1fr;padding:1px 18px 55px}.info-card,.service-card{padding:25px;min-height:0}.site-footer{grid-template-columns:1fr;padding:30px 18px}.footer-links{grid-row:2;flex-wrap:wrap}.site-footer small{grid-column:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.has-reveal [data-reveal]{opacity:1;transform:none}}

.header-actions{display:flex;align-items:center;gap:12px}.header-actions .nav-cta{padding:14px 18px;background:var(--lime);color:#080b0d;font-size:10px;letter-spacing:.14em;font-weight:800}.menu-toggle,.menu-close{display:flex;align-items:center;gap:20px;padding:13px 16px;color:var(--ink);background:#111719;border:1px solid #3a4748;font:700 10px 'DM Sans',sans-serif;letter-spacing:.15em;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.menu-toggle:hover,.menu-close:hover{background:var(--hot);border-color:var(--hot);color:#fff}.menu-toggle b{font-size:20px;line-height:.7;color:var(--lime)}
.menu-overlay[hidden]{display:none!important}.menu-overlay{position:fixed;inset:0;z-index:25;background:#080b0d;display:grid;grid-template-rows:72px 1fr;padding:18px clamp(22px,5vw,90px) 44px;overflow:auto;isolation:isolate}.menu-overlay:before{content:'';position:absolute;z-index:-1;right:-4vw;top:14%;width:56vw;height:78vh;background:linear-gradient(90deg,#080b0d 0%,#080b0d20 45%,#080b0d25),url('cinematic-cycling-hero.png') center/cover;clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);opacity:.35;filter:saturate(.65)}.menu-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #303a3c}.menu-close b{font-size:22px;font-weight:400;color:var(--lime)}.menu-content{align-self:center;width:min(900px,75vw);padding:44px 0}.menu-links{display:grid;margin-top:24px}.menu-link{display:grid;grid-template-columns:55px 1fr 45px;align-items:center;border-bottom:1px solid #293335;padding:9px 0 12px;transition:padding .25s,color .25s,border-color .25s}.menu-link small{font-size:10px;letter-spacing:.15em;color:#858e8c}.menu-link span{font:800 clamp(52px,8vw,112px)/.95 'Barlow Condensed',sans-serif;letter-spacing:-.045em;text-transform:uppercase}.menu-link>b{font:400 24px 'DM Sans',sans-serif;color:var(--hot);transition:transform .25s}.menu-link:hover,.menu-link[aria-current=page]{color:var(--lime);border-color:#879856;padding-left:12px}.menu-link:hover>b{transform:translate(5px,-5px)}.menu-contact{display:inline-flex;gap:20px;align-items:center;margin-top:30px;padding:16px 19px;background:var(--hot);color:#fff;font-size:10px;font-weight:800;letter-spacing:.15em}.menu-contact span{font-size:16px}.menu-open{overflow:hidden}
.brand-banner{padding:clamp(36px,6vw,80px) clamp(22px,5vw,90px);background:#050708;border-bottom:1px solid #273032}.brand-banner img{display:block;width:100%;aspect-ratio:2.75;object-fit:cover;object-position:center;border:1px solid #303a3c;transition:filter .4s,transform .5s}.brand-banner:hover img{filter:contrast(1.15);transform:scale(1.008)}
@media(max-width:850px){.menu-overlay{padding:16px 22px 36px}.menu-overlay:before{width:65vw;opacity:.22}.menu-content{width:min(700px,90vw)}.menu-link{grid-template-columns:42px 1fr 35px}.menu-link span{font-size:clamp(48px,10vw,85px)}.brand-banner{padding:30px 22px}.brand-banner img{aspect-ratio:2.3}}
@media(max-width:560px){.header-actions{gap:7px}.header-actions .nav-cta{padding:11px 9px;font-size:8px}.menu-toggle{padding:10px 9px;gap:8px;font-size:8px}.menu-toggle b{font-size:16px}.menu-overlay{padding:14px 18px 28px}.menu-overlay:before{top:25%;width:100vw;height:65vh;opacity:.17}.menu-top .wordmark{font-size:7px}.menu-close{gap:8px;padding:10px;font-size:8px}.menu-content{width:100%;padding:25px 0}.menu-link{grid-template-columns:32px 1fr 25px}.menu-link span{font-size:clamp(44px,14vw,72px)}.brand-banner{padding:24px 18px}.brand-banner img{aspect-ratio:1.7}}

.hero h1{line-height:.84}
.work-intro{min-height:62vh;padding:clamp(75px,11vh,145px) clamp(22px,7vw,130px) 34px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 88% 46%,#d9f45f12,transparent 32%),linear-gradient(135deg,#080b0d 55%,#111719)}
.work-intro:after{content:'WORK';position:absolute;right:-.06em;bottom:-.3em;color:#ffffff07;font:900 min(32vw,460px)/.8 'Barlow Condensed',sans-serif;letter-spacing:-.08em;pointer-events:none}
.work-intro h1{position:relative;z-index:1;margin:22px 0 26px;font:900 clamp(92px,17vw,250px)/.72 'Barlow Condensed',sans-serif;letter-spacing:-.075em;text-transform:uppercase}
.work-intro h1 em{color:var(--lime);font-style:normal}
.work-intro .lead{position:relative;z-index:1;max-width:620px}
.work-intro-foot{display:flex;align-items:center;gap:15px;margin-top:38px;color:#b9c1bd;font-size:9px;letter-spacing:.2em;font-weight:700}
.work-intro-foot span:last-child{display:grid;place-items:center;width:31px;height:31px;border:1px solid #75806f;color:var(--lime);font-size:16px;animation:float-down 1.7s ease-in-out infinite}
.work-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,1.7vw,26px);padding:clamp(24px,4vw,64px) clamp(22px,5vw,90px) clamp(65px,9vw,130px)}
.project-card{min-width:0;grid-column:span 6;display:block;color:inherit;--project-color:var(--lime)}
.project-card:nth-child(1),.project-card:nth-child(4),.project-card:nth-child(5){grid-column:span 7}
.project-card:nth-child(2),.project-card:nth-child(3),.project-card:nth-child(6){grid-column:span 5}
.project-art{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:1.38;background:#111719;border:1px solid #303a3d;display:flex;align-items:center;justify-content:center;transition:border-color .35s,transform .5s cubic-bezier(.2,.8,.2,1)}
.project-art:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,#0b1012,#1a2425)}
.project-art:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#050708b8,transparent 48%),radial-gradient(500px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--project-color) 25%,transparent),transparent 65%);opacity:.9;transition:opacity .4s}
.project-art-orbit{position:absolute;width:58%;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--project-color) 55%,transparent);border-radius:50%;transform:rotate(-35deg) scaleY(.42);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.project-art-lines{position:absolute;inset:-20%;background:repeating-linear-gradient(132deg,transparent 0 43px,#ffffff12 44px,#ffffff12 45px,transparent 46px 85px);transform:translateX(-12%) rotate(-5deg);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.project-art-word{position:relative;z-index:1;max-width:90%;text-align:center;color:#f2f4f1;font:900 clamp(37px,7vw,108px)/.78 'Barlow Condensed',sans-serif;letter-spacing:-.065em;text-transform:uppercase;transition:transform .45s cubic-bezier(.2,.8,.2,1),color .3s}
.project-art-index{position:absolute;top:16px;left:18px;color:#ffffffaa;font-size:10px;letter-spacing:.16em}
.project-open{position:absolute;right:16px;bottom:15px;display:flex;align-items:center;gap:14px;color:#fff;font-size:9px;letter-spacing:.16em;font-weight:700;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.project-open b{display:grid;place-items:center;width:32px;height:32px;color:#080b0d;background:var(--project-color);font-size:15px}
.project-caption{display:flex;align-items:center;justify-content:space-between;padding:17px 0 0}
.project-type{font-size:9px;letter-spacing:.16em;color:#98a19e}
.project-caption h2{font:700 clamp(23px,2.3vw,35px)/1 'Barlow Condensed',sans-serif;letter-spacing:-.02em;margin:8px 0 0;overflow-wrap:anywhere}
.project-card:hover .project-art,.project-card:focus-visible .project-art{border-color:var(--project-color);transform:translateY(-5px)}
.project-card:hover .project-art-orbit,.project-card:focus-visible .project-art-orbit{transform:rotate(18deg) scaleY(.54) scale(1.14)}
.project-card:hover .project-art-lines,.project-card:focus-visible .project-art-lines{transform:translateX(8%) rotate(-5deg)}
.project-card:hover .project-art-word,.project-card:focus-visible .project-art-word{transform:scale(1.07);color:var(--project-color)}
.project-card:hover .project-open,.project-card:focus-visible .project-open{opacity:1;transform:translateY(0)}
.project-card--velorank{--project-color:#d9f45f}.project-card--velorank .project-art:before{background:radial-gradient(circle at 50% 52%,#162021 0 22%,transparent 23%),repeating-radial-gradient(circle at 50% 52%,transparent 0 34px,#d9f45f2b 35px 36px,transparent 37px 64px),linear-gradient(145deg,#111819,#050708)}.project-card--velorank .project-art-word{font-size:clamp(44px,9vw,130px)}
.project-card--devin{--project-color:#ffd756}.project-card--devin .project-art:before{background:linear-gradient(90deg,#050708c4,transparent 80%),url('cinematic-cycling-hero.png') center/cover}.project-card--devin .project-art-word{font-size:clamp(42px,6.8vw,100px)}
.project-card--waffles{--project-color:#f2b84b}.project-card--waffles .project-art{background:linear-gradient(90deg,transparent 0 91%,#275ecb 91% 95%,transparent 95%),radial-gradient(circle at 72% 64%,#ed4635 0 19%,transparent 19.3%),linear-gradient(130deg,transparent 0 28%,#f0c52d 28% 38%,transparent 38%),#f4eddd}.project-card--waffles .project-art:before{background:none}.project-card--waffles .project-art:after{background:linear-gradient(0deg,#11111126,transparent 38%),radial-gradient(500px circle at var(--mx,50%) var(--my,50%),#f2b84b2e,transparent 65%);opacity:.42}.project-card--waffles .project-art-feature{position:relative;z-index:1;display:grid;gap:6px;width:100%;padding:8%;text-align:left;color:#111!important}.project-card--waffles .project-art-feature small{font:700 9px 'DM Sans',sans-serif;letter-spacing:.2em}.project-card--waffles .project-art-feature strong{font:900 clamp(48px,8vw,116px)/.78 'Barlow Condensed',sans-serif;letter-spacing:-.075em;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.project-card--waffles:hover .project-art-feature strong,.project-card--waffles:focus-visible .project-art-feature strong{transform:scale(1.06) rotate(-2deg);transform-origin:left center}
.project-card--undershield{--project-color:#f15a45}.project-card--undershield .project-art:before{background:radial-gradient(ellipse at 80% 38%,#f15a4536,transparent 30%),repeating-linear-gradient(118deg,#111719 0 30px,#1a2021 31px 58px,#111719 59px 90px)}
.project-card--montecci{--project-color:#f5f5f0}.project-card--montecci .project-art:before{background:radial-gradient(circle at 68% 58%,#b3c0c122 0 12%,transparent 12.5%),radial-gradient(circle at 68% 58%,transparent 0 22%,#ffffff42 22.3% 22.7%,transparent 23%),radial-gradient(circle at 33% 58%,transparent 0 22%,#ffffff30 22.3% 22.7%,transparent 23%),linear-gradient(150deg,#121719,#202729 58%,#080b0d)}
.project-card--sommerville{--project-color:#d9f45f}.project-card--sommerville .project-art:before{background:linear-gradient(90deg,#050708a8,#05070838),url('cinematic-cycling-hero.png') 63% center/cover}.project-card--sommerville .project-art-word{font-size:clamp(43px,7vw,112px)}
.project-card--aerokit{--project-color:#e8f4f1}.project-card--aerokit .project-art:before{background:linear-gradient(90deg,#04060680,#04060633),url('das-banner.png') center/cover}
.work-preview{padding:clamp(64px,8vw,118px) clamp(22px,7vw,130px);background:linear-gradient(130deg,#111719,#080b0d 70%);border-bottom:1px solid var(--line)}
.work-preview-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}
.work-preview-head h2{font:800 clamp(55px,9vw,120px)/.82 'Barlow Condensed',sans-serif;letter-spacing:-.055em;text-transform:uppercase;margin:12px 0 0}
.work-preview-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #374143}
.work-chip{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:19px 20px 19px 0;border-bottom:1px solid #374143;font:700 clamp(17px,2vw,27px) 'Barlow Condensed',sans-serif;letter-spacing:.01em;transition:color .25s,padding .25s}
.work-chip+.work-chip{border-left:1px solid #374143;padding-left:20px}
.work-chip b{color:var(--lime);font:400 20px 'DM Sans',sans-serif;transition:transform .25s}
.work-chip:hover{color:var(--lime);padding-left:10px}.work-chip:hover b{transform:translate(4px,-4px)}
@keyframes float-down{50%{transform:translateY(5px);border-color:var(--lime)}}
@media(max-width:850px){.work-intro{min-height:55vh}.work-gallery{padding-inline:22px}.project-art{aspect-ratio:1.15}.project-card:nth-child(n){grid-column:span 6}.project-art-word{font-size:clamp(44px,9vw,88px)}.work-preview{padding-inline:22px}}
@media(max-width:560px){.hero h1{line-height:.82}.work-intro{min-height:60vh;padding:76px 18px 28px}.work-intro h1{font-size:clamp(83px,23vw,145px)}.work-intro:after{font-size:55vw}.work-intro .lead{font-size:14px}.work-gallery{grid-template-columns:1fr;padding:18px 18px 68px;gap:26px}.project-card:nth-child(n){grid-column:1}.project-art{aspect-ratio:1.17}.project-art-word{font-size:clamp(46px,13vw,76px)}.project-open{opacity:1;transform:none}.project-caption h2{font-size:29px}.work-preview{padding:58px 18px}.work-preview-head{align-items:start;flex-direction:column}.work-preview-head h2{font-size:74px}.work-preview-strip{grid-template-columns:1fr}.work-chip,.work-chip+.work-chip{padding:15px 0;border-left:0;font-size:22px}}

/* Sommerville portfolio direction */
:root{--wide-pad:clamp(24px,5.25vw,230px);--wide-max:5120px;--paper:#090b0c;--ink:#f4f4f0;--muted:#b2b4b1;--lime:#d9f45f}
body{background-color:var(--paper);background-image:radial-gradient(ellipse at 16% 3%,#1c2526 0,transparent 28%),radial-gradient(ellipse at 86% 22%,#15191a 0,transparent 32%),repeating-linear-gradient(118deg,transparent 0 117px,#ffffff04 118px,#ffffff04 119px,transparent 120px 240px)}
body:before{content:"";position:fixed;z-index:20;inset:0;pointer-events:none;opacity:.12;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='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
.site-header{height:clamp(72px,5.1vw,112px);padding:0 var(--wide-pad);background:linear-gradient(180deg,#07090be8,#07090b99 76%,transparent);border:0;position:fixed;inset:0 0 auto;z-index:26;backdrop-filter:blur(14px)}
.header-mark{display:flex;align-items:center;width:clamp(38px,3.3vw,66px);height:clamp(38px,3.3vw,66px);overflow:hidden}
.header-mark img{width:100%;height:100%;object-fit:contain;filter:invert(1);mix-blend-mode:screen;opacity:.92}
.menu-toggle{width:54px;height:54px;padding:12px 9px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;border:0;background:transparent;color:#fff}
.menu-toggle span{display:block;width:30px;height:2px;background:#f2f3ed;transition:width .25s,transform .25s,background .25s}
.menu-toggle span:nth-child(2){width:21px;margin-left:9px}
.menu-toggle:hover{background:transparent;border:0;color:var(--lime)}
.menu-toggle:hover span:nth-child(2){width:30px;margin-left:0;background:var(--lime)}
.menu-open .menu-toggle span:first-child{transform:translateY(8px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:last-child{transform:translateY(-8px) rotate(-45deg)}
.menu-overlay{background:radial-gradient(ellipse at 85% 45%,#263231,#0a0d0e 52%);padding:24px var(--wide-pad) 6vh}.menu-overlay:before{inset:0;width:100%;height:100%;clip-path:none;background:linear-gradient(90deg,#090b0c 3%,#090b0cbb 52%,#090b0c45),url('cinematic-cycling-hero.png') 78% center/cover;opacity:.38;filter:grayscale(.65)}.menu-top{border-color:#ffffff24}.menu-monogram{font-size:10px;letter-spacing:.22em;font-weight:700}.menu-content{width:min(1100px,80vw)}.menu-link{border-color:#ffffff24}.menu-link span{font-size:clamp(60px,9.2vw,170px)}
.menu-close{border:0;background:transparent}.menu-close:hover{background:transparent;color:var(--lime)}.menu-contact{background:var(--lime);color:#090b0c}
.hero-carousel{height:100svh;min-height:720px;max-height:1600px;position:relative;overflow:hidden;background:#07090a;isolation:isolate}
.hero-slides,.hero-slide{position:absolute;inset:0}
.hero-slide{display:grid;align-items:center;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 1.1s}
.hero-slide.is-active{opacity:1;visibility:visible;z-index:1}
.hero-slide-image{position:absolute;inset:-2%;width:104%;height:104%;object-fit:cover;object-position:center 46%;filter:grayscale(.4) saturate(.7) brightness(.73);opacity:.94;transform:scale(1.04);transition:transform 8s cubic-bezier(.2,.7,.2,1),filter 1s ease;mask-image:linear-gradient(90deg,#000 0%,#000 45%,#000c 68%,#0005 100%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 45%,#000c 68%,#0005 100%)}
.hero-slide.is-active .hero-slide-image{transform:scale(1);filter:grayscale(.2) saturate(.78) brightness(.76)}
.hero-slide:nth-child(2) .hero-slide-image{object-position:61% 50%}
.hero-slide:nth-child(3) .hero-slide-image{object-position:70% 42%;filter:grayscale(.5) saturate(.58) brightness(.58)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#050708ed 0%,#050708ca 28%,#05070864 53%,#05070813 84%),linear-gradient(0deg,#080a0bc9 0%,transparent 28%,transparent 75%,#05070872);pointer-events:none}
.hero-slide:nth-child(1) .hero-shade{background:linear-gradient(90deg,#050708ea 0%,#050708a8 38%,#05070829 74%,#0507082b),linear-gradient(0deg,#080a0bd9 0%,transparent 31%,transparent 77%,#0507088c)}
.hero-slide:nth-child(3) .hero-shade{background:linear-gradient(90deg,#050708d9 0%,#050708b8 35%,#0507084a 70%,#0507082b),linear-gradient(0deg,#080a0bd9,transparent 32%,transparent 78%,#05070880)}
.hero-grain{position:absolute;inset:0;pointer-events:none;opacity:.36;background:radial-gradient(ellipse at 82% 48%,transparent 15%,#07090b2a 82%),repeating-linear-gradient(0deg,transparent 0 4px,#0507080b 5px,#0507080b 6px);mask-image:linear-gradient(90deg,#000,transparent 96%)}
.hero-content{position:relative;z-index:2;width:min(1800px,72vw);margin:7vh 0 0 var(--wide-pad);padding-bottom:clamp(54px,9vh,150px)}
.hero-kicker{color:var(--lime);font-size:clamp(10px,.9vw,15px);letter-spacing:.23em}
.hero-content h1{font:900 clamp(88px,13.8vw,260px)/.75 'Barlow Condensed',sans-serif;letter-spacing:-.07em;text-transform:uppercase;margin:clamp(24px,4vh,58px) 0 0;max-width:1600px;text-shadow:0 16px 48px #0007}
.hero-content h1 em{font-style:normal;color:var(--lime)}
.hero-lead{max-width:660px;margin:34px 0 0;color:#e3e5df;font-size:clamp(15px,1.15vw,23px);line-height:1.65;text-shadow:0 2px 20px #000}
.hero-actions{display:flex;gap:clamp(22px,3vw,52px);align-items:center;flex-wrap:wrap;margin-top:32px}
.hero-link{display:inline-flex;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid #ffffff85;font-size:clamp(10px,.8vw,14px);font-weight:800;letter-spacing:.16em;transition:color .2s,border-color .2s,transform .2s}
.hero-link span{font-size:15px;color:var(--lime)}.hero-link:hover{color:var(--lime);border-color:var(--lime);transform:translateY(-3px)}
.hero-slide-count{position:absolute;z-index:3;right:var(--wide-pad);bottom:clamp(64px,8vh,130px);display:flex;align-items:center;gap:13px;font-size:11px;letter-spacing:.16em}.hero-slide-count i{width:54px;height:1px;background:#ffffff8c}.hero-slide-count span:first-child{color:var(--lime)}
.hero-carousel-controls{position:absolute;z-index:5;inset:auto var(--wide-pad) 30px var(--wide-pad);display:flex;align-items:center;gap:20px}
.hero-dots{display:flex;align-items:center;gap:12px}.hero-dot{width:40px;height:24px;display:flex;align-items:center;padding:0;background:none;border:0;cursor:pointer}.hero-dot span{display:block;width:100%;height:2px;background:#ffffff75;transition:height .2s,background .2s}.hero-dot.is-active span{height:4px;background:var(--lime)}
.carousel-pause{display:flex;gap:8px;align-items:center;border:0;background:none;color:#d8dbd5;cursor:pointer;font-size:9px;letter-spacing:.14em}.pause-icon{font-size:14px;color:var(--lime)}.carousel-pause:hover{color:var(--lime)}
.hero-scroll-note{margin-left:auto;color:#d0d2cc;font-size:9px;letter-spacing:.2em}.hero-scroll-note span{margin-left:10px;color:var(--lime);font-size:16px}
.role-ribbon{overflow:hidden;white-space:nowrap;border-block:1px solid #ffffff23;background:linear-gradient(90deg,#0b0e0f,#141819,#0b0e0f);padding:clamp(18px,2vw,35px) 0}.role-ribbon-track{display:flex;width:max-content;animation:marquee 28s linear infinite}.role-ribbon-track span{font:800 clamp(24px,3.5vw,64px)/1 'Barlow Condensed',sans-serif;letter-spacing:.04em;padding:0 2vw}.role-ribbon-track i{color:var(--lime);font-style:normal;padding:0 2vw;font-size:.6em;vertical-align:middle}
.section-wide,.history-section,.tech-stack-section,.achievement-band{width:100%;padding:clamp(90px,10vw,230px) var(--wide-pad)}
.me-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.72fr);gap:clamp(44px,8vw,170px);align-items:center;max-width:var(--wide-max);margin:auto}
.me-intro h2,.section-heading h2,.tech-stack-section h2{font:800 clamp(64px,8vw,150px)/.82 'Barlow Condensed',sans-serif;letter-spacing:-.06em;margin:26px 0 40px;max-width:1100px}.me-intro h2{color:var(--lime);font-size:clamp(52px,6.2vw,104px);line-height:.88}
.me-summary{display:grid;gap:15px;font-size:clamp(17px,1.4vw,27px);line-height:1.75;color:#c0c4bf;max-width:1150px}.me-summary p{margin:0}
.inline-links{display:flex;gap:24px 38px;flex-wrap:wrap;margin-top:36px}.inline-links a,.category-next a{display:inline-flex;gap:14px;border-bottom:1px solid #747a75;padding:12px 0;font-size:10px;letter-spacing:.15em;font-weight:800}.inline-links a span,.category-next span{color:var(--lime);font-size:15px}.inline-links a:hover,.category-next a:hover{color:var(--lime);border-color:var(--lime)}
.me-photo-wrap{position:relative;max-width:780px;margin-left:auto;isolation:isolate}.me-photo-wrap:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(0deg,#080a0bcc,transparent 42%),radial-gradient(ellipse at 50% 50%,transparent 42%,#090b0c66 100%);pointer-events:none}.me-photo-wrap img{display:block;width:100%;height:auto;max-height:930px;object-fit:cover;object-position:center 30%;border-radius:52% 48% 44% 56% / 44% 38% 62% 56%;mask-image:radial-gradient(ellipse at center,#000 62%,#000b 80%,transparent 100%);filter:grayscale(.35);mix-blend-mode:screen}.me-photo-wrap span{position:absolute;left:10%;bottom:7%;z-index:2;font-size:9px;letter-spacing:.18em;color:#f1f3ec}
.history-section{background:linear-gradient(135deg,#101516,#0a0d0e 55%,#171d1c);position:relative;overflow:hidden}.history-section:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(120deg,transparent 0 108px,#ffffff06 109px,#ffffff06 110px,transparent 111px 220px);mask-image:linear-gradient(90deg,transparent,#000 30%,#000)}
.section-heading{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:clamp(55px,8vw,140px)}.section-heading h2{margin-bottom:0}.section-heading h2 em,.tech-stack-section h2 em{color:var(--lime);font-style:normal}
.timeline{position:relative;max-width:2200px;margin-left:auto}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(transparent,#d9f45f99 5%,#d9f45f66 95%,transparent)}
.timeline-item{display:grid;grid-template-columns:minmax(140px,.38fr) minmax(0,1fr);gap:clamp(24px,5vw,90px);padding:0 0 clamp(46px,7vw,125px);position:relative}.timeline-item:before{content:"";position:absolute;left:-4px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 24px #d9f45f88}.timeline-time{padding-left:28px;color:var(--lime);font-size:clamp(11px,.9vw,15px);letter-spacing:.1em}.timeline-copy{max-width:1050px}.timeline-copy .eyebrow{color:#858d88}.timeline-copy h3{font:800 clamp(32px,4vw,70px)/.92 'Barlow Condensed',sans-serif;margin:12px 0;text-transform:uppercase}.timeline-copy h4{font-size:clamp(13px,1vw,17px);font-weight:600;color:#daddd6;margin:0 0 16px}.timeline-copy>p:last-child{color:#aeb4af;line-height:1.75;max-width:920px;font-size:clamp(13px,1vw,18px)}
.achievement-band{max-width:var(--wide-max);margin:auto;display:grid;grid-template-columns:.5fr 1fr;gap:8vw}.achievement-band>.eyebrow{color:var(--lime);padding-top:15px}.achievement-list>div{display:grid;grid-template-columns:55px 1fr;gap:24px;padding:20px 0;border-top:1px solid #ffffff24}.achievement-list>div:last-child{border-bottom:1px solid #ffffff24}.achievement-list span{color:var(--lime);font-size:10px;letter-spacing:.15em;padding-top:4px}.achievement-list p{font-size:clamp(15px,1.5vw,26px);line-height:1.55;margin:0;color:#e4e5e0}
.tech-stack-section{background:#101516;display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:center;position:relative;overflow:hidden}.tech-stack-section:after{content:"CODE / CRAFT / COACH";position:absolute;right:-.06em;bottom:-.18em;color:#ffffff05;font:900 clamp(90px,18vw,380px)/.8 'Barlow Condensed',sans-serif;white-space:nowrap;pointer-events:none}.tech-stack-section>div{position:relative;z-index:1}.tech-stack-section h2{margin:25px 0 24px}.tech-note{max-width:450px;color:#aeb4af;line-height:1.7}.tech-tags{display:flex;gap:12px;align-content:center;flex-wrap:wrap}.tech-tags span{border:1px solid #6670649c;border-radius:99px;padding:14px 20px;font-size:clamp(11px,.9vw,16px);color:#e7eadf;background:linear-gradient(140deg,#ffffff0c,#ffffff02);box-shadow:inset 0 1px #ffffff18;transition:transform .25s,color .25s,border-color .25s}.tech-tags span:hover{transform:translateY(-4px);border-color:var(--lime);color:var(--lime)}
.category-launches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#454c49;border-block:1px solid #454c49}.category-launches a{min-height:clamp(260px,30vw,560px);padding:clamp(24px,4vw,82px) clamp(24px,4vw,76px);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,#141a1b,#080a0b);position:relative;overflow:hidden;transition:background .4s}.category-launches a:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 70%,#d9f45f14,transparent 48%);opacity:0;transition:opacity .3s}.category-launches a:hover:after{opacity:1}.category-launches small,.category-launches span,.category-launches b{position:relative;z-index:1}.category-launches small{font-size:10px;letter-spacing:.16em;color:#a8afaa}.category-launches b{font:900 clamp(44px,7vw,120px)/.8 'Barlow Condensed',sans-serif;letter-spacing:-.06em}.category-launches span{font-size:11px;color:var(--lime);letter-spacing:.1em}
.category-hero{min-height:min(82vh,1300px);padding:clamp(160px,19vh,310px) var(--wide-pad) 55px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 84% 25%,#d9f45f13,transparent 30%),linear-gradient(135deg,#0a0d0e,#151a1b 57%,#0a0d0e)}.category-hero:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(120deg,transparent 0 140px,#ffffff06 141px,#ffffff06 142px,transparent 143px 280px);mask-image:linear-gradient(90deg,transparent,#000)}.category-hero>*{position:relative;z-index:1}.category-hero .eyebrow{color:var(--lime)}.category-hero h1{font:900 clamp(100px,17vw,320px)/.72 'Barlow Condensed',sans-serif;letter-spacing:-.075em;text-transform:uppercase;margin:32px 0 30px}.category-hero h1 em{font-style:normal;color:var(--lime)}.category-hero .lead{max-width:700px;font-size:clamp(16px,1.25vw,24px);line-height:1.65;color:#bec4bf}.category-hero-foot{display:flex;gap:16px;margin-top:70px;font-size:10px;letter-spacing:.18em;color:#b6bcb6}.category-hero-foot span:last-child{color:var(--lime);font-size:17px}
.work-gallery{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(20px,3.6vw,72px);padding:clamp(50px,7vw,140px) var(--wide-pad) clamp(75px,10vw,190px);max-width:var(--wide-max);margin:auto}.project-card:nth-child(n){grid-column:span 6}.project-card:nth-child(3n+2){grid-column:span 5}.project-card:nth-child(3n+1){grid-column:span 7}.project-art{isolation:isolate;aspect-ratio:1.55;overflow:hidden;border:0;border-radius:22px;background:#111718;box-shadow:0 28px 100px #0008;transform:translateZ(0)}.project-art:before{inset:0;z-index:1;border-radius:inherit;background:linear-gradient(0deg,#05070892,transparent 55%),radial-gradient(ellipse at center,transparent 55%,#06080977 100%);pointer-events:none}.project-art:after{inset:0;z-index:2;border:1px solid #ffffff15;border-radius:inherit;background:linear-gradient(110deg,#ffffff08,transparent 30%,transparent 70%,#ffffff09);opacity:.85;pointer-events:none}.project-art img{position:absolute;inset:0;z-index:0;width:100%;height:100%;display:block;object-fit:cover;object-position:top center;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s;filter:saturate(.82) contrast(1.02);mask-image:radial-gradient(ellipse at center,#000 72%,#000b 88%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse at center,#000 72%,#000b 88%,transparent 100%)}
.project-art-index,.project-open,.project-screen-label{z-index:3}.project-art-index{top:18px;left:18px;background:#080a0b9c;padding:8px 10px;border-radius:20px;backdrop-filter:blur(8px)}.project-screen-label{position:absolute;left:20px;bottom:18px;color:#ffffffe0;font-size:8px;letter-spacing:.16em;text-shadow:0 2px 8px #000}.project-open{right:18px;bottom:13px}.project-card:hover .project-art img{transform:scale(1.05);filter:saturate(1.05)}
.project-caption{padding:20px 6px 0}.project-caption h2{font-size:clamp(28px,3vw,58px)}.project-type{color:#abb2ac}
.category-next{padding:30px var(--wide-pad) clamp(80px,10vw,180px);display:flex;justify-content:space-between;gap:25px;max-width:var(--wide-max);margin:auto}
.page-intro{max-width:none;padding:clamp(160px,18vw,320px) var(--wide-pad) 70px;background:radial-gradient(ellipse at 85% 25%,#d9f45f14,transparent 30%),linear-gradient(120deg,#0a0d0e,#141a1b)}.page-intro h1{font:800 clamp(65px,9vw,160px)/.8 'Barlow Condensed',sans-serif;letter-spacing:-.05em;text-transform:uppercase;max-width:1300px}.page-intro .lead{font-size:clamp(17px,1.3vw,24px);max-width:1000px}.skills-grid,.services-grid{padding:1px var(--wide-pad) clamp(70px,9vw,160px);max-width:var(--wide-max);margin:auto;background:transparent;gap:15px}.info-card,.service-card{border:1px solid #ffffff20;border-radius:18px;background:linear-gradient(145deg,#151a1b,#0b0e0f);min-height:310px}.service-card{min-height:390px}.info-card li,.service-card li{font-size:clamp(12px,.9vw,15px)}
.site-footer{grid-template-columns:1fr auto;padding:clamp(48px,6vw,100px) var(--wide-pad);background:#050708;border-top:1px solid #ffffff2c;max-width:none}.footer-mark{display:flex;align-items:center;gap:20px}.footer-mark img{width:clamp(52px,4.5vw,90px);height:clamp(52px,4.5vw,90px);object-fit:contain;filter:invert(1);mix-blend-mode:screen}.footer-mark span{font-size:10px;line-height:1.7;letter-spacing:.16em}.footer-links{flex-wrap:wrap;justify-content:flex-end}.site-footer small{color:#929a94}
.menu-toggle:focus-visible,.hero-dot:focus-visible,.carousel-pause:focus-visible,.hero-link:focus-visible,.menu-link:focus-visible{outline:2px solid var(--lime);outline-offset:5px}
.hero-content h1,.category-hero h1{letter-spacing:-.035em}
.project-card .project-art:before{background:linear-gradient(0deg,#05070892,transparent 55%),radial-gradient(ellipse at center,transparent 55%,#06080977 100%)}
@media(min-width:3000px){:root{--wide-pad:clamp(180px,7vw,420px)}.hero-content{width:min(2200px,70vw)}.hero-content h1{font-size:clamp(250px,14vw,480px)}.hero-lead{max-width:1000px}.me-intro,.achievement-band,.timeline{max-width:3600px}.work-gallery{gap:95px}.project-art{aspect-ratio:1.7}.category-launches a{min-height:620px}}
@media(max-width:900px){.hero-carousel{min-height:690px}.hero-content{width:82vw;margin-top:8vh}.hero-content h1{font-size:clamp(90px,17vw,180px)}.hero-slide-image{object-position:65% center}.me-intro{grid-template-columns:1fr 0.8fr;gap:38px}.section-heading{align-items:start;flex-direction:column}.achievement-band{grid-template-columns:1fr;gap:28px}.tech-stack-section{grid-template-columns:1fr;gap:35px}.category-hero{min-height:70vh}.category-hero h1{font-size:clamp(95px,18vw,190px)}}
@media(max-width:600px){:root{--wide-pad:20px}.site-header{height:70px}.hero-carousel{height:88svh;min-height:680px;max-height:900px}.hero-slide-image{inset:0;width:100%;height:100%;object-position:64% center;mask-image:linear-gradient(90deg,#000 0%,#000c 58%,#0007 100%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000c 58%,#0007 100%)}.hero-slide:nth-child(1) .hero-slide-image{object-position:60% center}.hero-shade,.hero-slide:nth-child(1) .hero-shade,.hero-slide:nth-child(3) .hero-shade{background:linear-gradient(90deg,#050708e6 0%,#050708a8 60%,#05070840),linear-gradient(0deg,#080a0bf2 0%,transparent 42%,#0507085c 100%)}.hero-content{width:auto;margin:48px var(--wide-pad) 0;padding-bottom:74px}.hero-content h1{font-size:clamp(76px,19vw,128px);margin-top:22px;line-height:.78}.hero-lead{font-size:15px;margin-top:25px;max-width:370px}.hero-actions{gap:15px 23px;margin-top:21px}.hero-link{font-size:9px;gap:7px}.hero-carousel-controls{bottom:17px;gap:8px}.hero-dot{width:28px}.hero-scroll-note{font-size:0}.hero-scroll-note span{font-size:17px}.hero-slide-count{right:var(--wide-pad);bottom:70px}.role-ribbon{padding:17px 0}.role-ribbon-track span{font-size:27px;padding:0 18px}.role-ribbon-track i{padding:0 14px}.section-wide,.history-section,.tech-stack-section,.achievement-band{padding-block:78px}.me-intro{grid-template-columns:1fr;gap:35px}.me-intro h2,.section-heading h2,.tech-stack-section h2{font-size:clamp(61px,17vw,96px)}.me-intro h2{font-size:clamp(45px,12vw,68px);line-height:.88;margin-bottom:28px}.me-summary{font-size:16px}.me-photo-wrap{width:82%;margin:0 auto}.me-photo-wrap span{font-size:7px}.history-section{padding-inline:var(--wide-pad)}.timeline-item{grid-template-columns:1fr;gap:13px;padding-bottom:48px}.timeline-time{padding-left:24px}.timeline-copy{padding-left:24px}.timeline-copy h3{font-size:38px}.achievement-list>div{grid-template-columns:32px 1fr;gap:12px}.achievement-list p{font-size:15px}.tech-tags{gap:8px}.tech-tags span{padding:10px 13px;font-size:10px}.category-launches{grid-template-columns:1fr}.category-launches a{min-height:240px;padding:25px}.category-launches b{font-size:60px}.category-hero{min-height:70vh;padding-top:150px}.category-hero h1{font-size:clamp(79px,20vw,125px);line-height:.76}.category-hero .lead{font-size:15px}.work-gallery{grid-template-columns:1fr;padding:40px var(--wide-pad) 75px;gap:33px}.project-card:nth-child(n){grid-column:1}.project-art{aspect-ratio:1.18;border-radius:18px}.project-art img{object-position:top center}.project-open{opacity:1;transform:none}.project-caption h2{font-size:30px}.category-next{padding:18px var(--wide-pad) 70px;flex-direction:column;align-items:flex-start}.page-intro{padding-top:145px;padding-bottom:40px}.page-intro h1{font-size:clamp(61px,17vw,98px)}.skills-grid,.services-grid{grid-template-columns:1fr;padding-inline:var(--wide-pad)}.info-card,.service-card{min-height:0}.site-footer{grid-template-columns:1fr;padding-block:35px}.footer-links{justify-content:flex-start;grid-row:auto}.site-footer small{grid-column:1}.menu-overlay{padding:14px var(--wide-pad) 26px}.menu-content{width:100%;padding:20px 0}.menu-link{grid-template-columns:34px 1fr 26px}.menu-link span{font-size:clamp(44px,14vw,70px)}.menu-monogram{font-size:9px}}
@media(prefers-reduced-motion:reduce){.role-ribbon-track{animation:none}.hero-slide,.hero-slide-image,.hero-dot span,.project-art img{transition:none}.carousel-pause{display:none}}

/* Latest direction: clean header, TT imagery, and a shared brand footer. */
.site-header{justify-content:flex-end}
.hero-slide:nth-child(1) .hero-slide-image{object-position:64% center}
.hero-slide:nth-child(1).is-active .hero-slide-image{filter:grayscale(1) saturate(.58) brightness(.57) contrast(1.08)}
.hero-slide:nth-child(1) .hero-shade{background:linear-gradient(90deg,#050708f0 0%,#050708cf 30%,#05070869 55%,#05070818 88%),linear-gradient(0deg,#050708e0 0%,transparent 34%,transparent 75%,#05070895)}
.category-hero--coaching:before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,#050708ed 0%,#050708d2 30%,#05070874 58%,#05070825 100%),linear-gradient(0deg,#050708d4 0%,transparent 55%,#05070888 100%),url('david-tt-hero-expanded.png') 61% center/cover no-repeat;filter:grayscale(1) brightness(.64) contrast(1.08);transform:scale(1.02)}
.category-hero--coaching:after{background:linear-gradient(90deg,transparent,#05070812),repeating-linear-gradient(120deg,transparent 0 140px,#ffffff05 141px,#ffffff05 142px,transparent 143px 280px)}
.category-hero--coaching h1 em{color:#f0f2ef}
.category-launches i{position:absolute;left:clamp(24px,4vw,76px);bottom:clamp(22px,3vw,48px);z-index:3;font:600 10px 'DM Mono',monospace;font-style:normal;letter-spacing:.2em;color:var(--lime);opacity:.92;transition:transform .35s,letter-spacing .35s}
.category-launches a:hover i{transform:translateY(-4px);letter-spacing:.28em}
.service-description{font-size:13px;line-height:1.65;color:#aeb8b7;margin:0 0 15px}
.project-logo-wrap{position:absolute;z-index:4;top:20px;right:20px;display:grid;place-items:center;width:clamp(90px,12vw,170px);height:clamp(62px,8vw,112px);padding:12px 16px;border:1px solid #ffffff27;border-radius:24px;background:radial-gradient(ellipse,#15191beF,#101314c9);box-shadow:0 14px 40px #0007;backdrop-filter:blur(10px);overflow:hidden}
.project-brand-logo{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 12px #0008)}
.project-card--hans-kniebes .project-logo-wrap{background:#f8f8f4d9;padding:7px;border-radius:18px}
.project-card--hans-kniebes .project-brand-logo{border-radius:12px;mix-blend-mode:multiply}
.universal-footer{display:grid;grid-template-columns:1fr;gap:clamp(30px,4vw,65px);padding:clamp(40px,5vw,86px) var(--wide-pad) 26px;background:#050708;border-top:1px solid #ffffff2c;max-width:none}
.universal-footer-head{display:flex;align-items:center;gap:clamp(20px,3vw,52px);padding-bottom:clamp(25px,3vw,48px);border-bottom:1px solid #ffffff23}
.universal-footer .footer-mark{display:flex;align-items:center;justify-content:center;width:clamp(76px,7vw,125px);height:clamp(76px,7vw,125px);padding:4px}
.universal-footer .footer-mark img{display:block;width:100%;height:100%;object-fit:contain;filter:invert(1);mix-blend-mode:screen}
.universal-footer-head p{display:flex;flex-direction:column;gap:9px;margin:0}
.universal-footer-head strong{font:700 clamp(14px,1.2vw,20px) 'DM Mono',monospace;letter-spacing:.14em}
.universal-footer-head p span{font:9px 'DM Mono',monospace;letter-spacing:.13em;color:#a5abaa;line-height:1.8}
.universal-footer-groups{display:grid;grid-template-columns:.75fr 1.5fr .75fr;gap:clamp(26px,6vw,100px)}
.universal-footer-group{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.universal-footer-group h2{margin:0 0 10px;color:#87918f;font:10px 'DM Mono',monospace;letter-spacing:.18em}
.universal-footer-group>a:not(.footer-brand){font-size:10px;letter-spacing:.12em;line-height:1.5;transition:color .2s}
.universal-footer-group>a:hover{color:var(--lime)}
.footer-ownership{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:center;gap:12px}
.footer-ownership h2{grid-column:1/-1}
.universal-footer-group .footer-brand{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid #ffffff1b;border-radius:18px;background:radial-gradient(ellipse at 50% 10%,#ffffff0c,transparent 80%);transition:border-color .25s,background .25s;overflow:hidden}
.universal-footer-group .footer-brand:hover{border-color:#d9f45f6a;background-color:#d9f45f0a}
.footer-brand img{display:block;max-width:55%;width:108px;height:44px;object-fit:contain}
.footer-brand .footer-sommerville-wordmark{filter:invert(1)}
.footer-brand span{font:8px 'DM Mono',monospace;letter-spacing:.09em;color:#c3c8c6;text-align:right}
.universal-footer-group .footer-brand--hans img{width:46px;height:46px;max-width:46px;border-radius:10px}
.universal-footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff23;padding-top:18px;color:#8f9896}
.universal-footer-bottom small{font:9px 'DM Mono',monospace;letter-spacing:.13em}
@media(max-width:700px){.universal-footer{gap:30px;padding-block:34px 20px}.universal-footer-head{gap:17px}.universal-footer-head strong{font-size:12px}.universal-footer-head p span{font-size:7px}.universal-footer-groups{grid-template-columns:1fr 1.5fr;gap:30px 20px}.footer-ownership{grid-column:1/-1;grid-row:2}.footer-ownership h2{grid-column:1/-1}.footer-brand span{font-size:7px}.footer-brand img{width:88px}.universal-footer-group .footer-brand{min-height:68px;padding:8px 10px;border-radius:15px}.universal-footer-bottom small{font-size:7px}.category-launches i{left:25px;bottom:23px}.project-logo-wrap{top:12px;right:12px;width:100px;height:68px;padding:10px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.hero-slide:nth-child(1) .hero-slide-image{transition:none}}

/* Landing page capability overview */
.landing-capabilities{position:relative;overflow:hidden;padding:clamp(90px,10vw,210px) var(--wide-pad);background:radial-gradient(ellipse at 83% 8%,#d9f45f16,transparent 27%),radial-gradient(ellipse at 3% 35%,#aab1e20c,transparent 30%),linear-gradient(160deg,#080b0c,#111718 48%,#080a0b);isolation:isolate}
.landing-capabilities:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.22;background:repeating-linear-gradient(115deg,transparent 0 125px,#ffffff09 126px,#ffffff09 127px,transparent 128px 250px);mask-image:linear-gradient(180deg,transparent,#000 12%,#000 85%,transparent)}
.landing-capabilities-head,.landing-skills-head{display:flex;justify-content:space-between;align-items:end;gap:40px;max-width:var(--wide-max);margin:0 auto clamp(42px,6vw,90px)}
.landing-capabilities-head h2,.landing-skills-head h2{margin:18px 0 0;font:900 clamp(64px,9vw,170px)/.78 'Barlow Condensed',sans-serif;letter-spacing:-.055em;text-transform:uppercase}
.landing-capabilities-head h2 em,.landing-skills-head h2 em{font-style:normal;color:var(--lime)}
.landing-capabilities-head>p{max-width:510px;margin:0 0 8px;color:#c0c7c2;font-size:clamp(16px,1.3vw,23px);line-height:1.7}
.landing-services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:var(--wide-max);margin:0 auto clamp(90px,11vw,190px)}
.landing-service-card{position:relative;min-height:390px;padding:clamp(23px,2.4vw,40px);overflow:hidden;border:1px solid #ffffff24;border-radius:26px;background:linear-gradient(145deg,#1a2021eF,#0c1011ee 72%);box-shadow:0 20px 80px #0003;transition:transform .35s,border-color .35s,background .35s}
.landing-service-card:before{content:"";position:absolute;inset:auto -20% -40% 30%;height:65%;background:radial-gradient(ellipse,#d9f45f12,transparent 65%);pointer-events:none;transition:transform .45s}
.landing-service-card:hover{transform:translateY(-7px);border-color:#d9f45f70;background:linear-gradient(145deg,#202727,#101516 72%)}
.landing-service-card:hover:before{transform:translateY(-20px)}
.landing-card-index{position:absolute;right:22px;top:20px;color:#e7ecda;font:12px 'DM Mono',monospace;letter-spacing:.1em}
.landing-service-card>.eyebrow{color:var(--lime);font-size:9px;letter-spacing:.19em}
.landing-service-card h3{position:relative;margin:28px 0 15px;font:800 clamp(26px,2.25vw,42px)/.92 'Barlow Condensed',sans-serif;letter-spacing:-.02em;text-transform:uppercase;max-width:450px}
.landing-card-tagline{margin:0 0 12px;color:#f0f2ed;font-size:14px;font-weight:700;line-height:1.5}
.landing-card-copy{margin:0;color:#aeb8b5;font-size:13px;line-height:1.7}
.landing-service-card ul{list-style:none;padding:17px 0 0;margin:18px 0 0;border-top:1px solid #ffffff20}
.landing-service-card li{padding:4px 0;color:#c5cbc7;font-size:11px;line-height:1.5}
.landing-skills-wrap{max-width:var(--wide-max);margin:0 auto}
.landing-skills-head{margin-bottom:35px}
.landing-skills-head h2{font-size:clamp(55px,7vw,130px)}
.landing-more-link{display:inline-flex;align-items:center;min-height:48px;padding:0 19px;border:1px solid #d9f45f72;border-radius:99px;color:var(--lime);font:10px 'DM Mono',monospace;letter-spacing:.14em;transition:background .25s,color .25s}
.landing-more-link:hover{background:var(--lime);color:#080b0c}
.landing-skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.landing-skill-card{min-height:175px;padding:clamp(18px,2vw,30px);border:1px solid #ffffff20;border-radius:20px;background:#ffffff08;backdrop-filter:blur(12px);transition:border-color .25s,background .25s}
.landing-skill-card:hover{border-color:#d9f45f72;background:#ffffff0d}
.landing-skill-card h3{margin:0 0 17px;font:750 clamp(20px,1.6vw,29px)/1 'Barlow Condensed',sans-serif;text-transform:uppercase}
.landing-skill-card>div{display:flex;flex-wrap:wrap;gap:7px}
.landing-skill-card span{padding:7px 10px;border:1px solid #ffffff1d;border-radius:99px;color:#c1c8c3;font-size:10px;line-height:1.3}
.landing-services-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:var(--wide-max);margin:clamp(55px,7vw,105px) auto 0;padding:21px 0;border-block:1px solid #ffffff35;color:#f0f2ed;transition:color .25s,border-color .25s}
.landing-services-cta:hover{color:var(--lime);border-color:#d9f45f88}
.landing-services-cta>span:first-child{font:800 clamp(17px,2vw,29px) 'Barlow Condensed',sans-serif;letter-spacing:.12em}
.landing-cta-label{color:#9fa9a4;font:9px 'DM Mono',monospace;letter-spacing:.13em}
@media(min-width:3000px){.landing-services-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.landing-service-card{min-height:520px;padding:50px}.landing-service-card h3{font-size:clamp(48px,2.3vw,76px)}.landing-card-copy{font-size:18px}.landing-service-card li{font-size:15px}.landing-skill-card{min-height:240px;padding:38px}.landing-skill-card h3{font-size:38px}.landing-skill-card span{font-size:15px;padding:11px 15px}}
@media(max-width:1050px){.landing-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.landing-capabilities{padding-block:82px}.landing-capabilities-head,.landing-skills-head{align-items:flex-start;flex-direction:column;gap:23px}.landing-capabilities-head h2{font-size:clamp(62px,17vw,100px)}.landing-capabilities-head>p{font-size:15px}.landing-services-grid{grid-template-columns:1fr;gap:10px;margin-bottom:72px}.landing-service-card{min-height:0;padding:26px;border-radius:21px}.landing-service-card h3{font-size:34px;margin-top:22px}.landing-service-card ul{padding-top:12px;margin-top:14px}.landing-skills-head h2{font-size:clamp(54px,14vw,88px)}.landing-skills-grid{grid-template-columns:1fr;gap:8px}.landing-skill-card{min-height:0;padding:22px}.landing-skill-card h3{font-size:25px}.landing-services-cta{align-items:flex-start;flex-direction:column;padding:19px 0}.landing-cta-label{font-size:8px}}
@media(prefers-reduced-motion:reduce){.landing-service-card,.landing-service-card:before,.landing-skill-card,.landing-more-link,.landing-services-cta{transition:none}}

/* Tech portfolio: a calm, consistent six-project grid, then one strong contact moment. */
.page-portfolio .work-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2.3vw,42px);padding-bottom:clamp(45px,6vw,100px)}
.page-portfolio .project-card:nth-child(n){grid-column:auto;min-width:0}
.page-portfolio .project-art{aspect-ratio:1.55;border-radius:clamp(16px,2vw,30px)}
.page-portfolio .project-caption{display:flex}
.digital-cta{position:relative;isolation:isolate;display:flex;align-items:center;min-height:clamp(560px,58vw,1040px);overflow:hidden;padding:clamp(80px,9vw,170px) var(--wide-pad);background-color:#080a0b;background-image:linear-gradient(90deg,#080a0bf2 0%,#080a0bdd 28%,#080a0b7a 52%,#080a0b08 100%),linear-gradient(0deg,#080a0b 0%,transparent 19%,transparent 82%,#080a0b 100%),url("digital-cta-blueprint.png");background-size:cover;background-position:center right;background-repeat:no-repeat;mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 91%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 91%,transparent 100%)}
.digital-cta-copy{position:relative;width:min(100%,var(--wide-max));margin:auto;z-index:1}
.digital-cta-copy .eyebrow{color:var(--lime);font:700 10px 'DM Mono',monospace;letter-spacing:.19em}
.digital-cta-copy h2{margin:25px 0 35px;font:900 clamp(76px,10vw,190px)/.78 'Barlow Condensed',sans-serif;letter-spacing:-.055em;text-transform:uppercase}
.digital-cta-copy h2 em{font-style:normal;color:var(--lime)}
.digital-cta-link{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 25px;border:1px solid #d9f45f9c;border-radius:99px;background:#d9f45f;color:#080a0b;font:800 10px 'DM Mono',monospace;letter-spacing:.16em;transition:transform .25s,background .25s}
.digital-cta-link:hover{transform:translateY(-3px);background:#efffa7}
.digital-cta-note{position:absolute;right:var(--wide-pad);bottom:clamp(65px,8vw,140px);color:#dfe5dfb0;font:10px 'DM Mono',monospace;letter-spacing:.18em}
@media(min-width:3000px){.page-portfolio .work-gallery{gap:clamp(50px,3vw,110px)}.page-portfolio .project-art{aspect-ratio:1.7}.digital-cta-copy h2{font-size:clamp(230px,11vw,420px)}.digital-cta-copy .eyebrow,.digital-cta-note{font-size:16px}.digital-cta-link{min-height:76px;padding-inline:38px;font-size:15px}}
@media(max-width:600px){.page-portfolio .work-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:25px var(--wide-pad) 48px}.page-portfolio .project-card:nth-child(n){grid-column:auto}.page-portfolio .project-art{aspect-ratio:.92;border-radius:14px}.page-portfolio .project-art-index{font-size:8px}.page-portfolio .project-screen-label{font-size:6px}.page-portfolio .project-open{font-size:7px}.digital-cta{min-height:590px;padding:80px var(--wide-pad);align-items:flex-end;background-position:62% center;background-image:linear-gradient(0deg,#080a0bf7 0%,#080a0bd9 34%,#080a0b56 72%,#080a0b36 100%),url("digital-cta-blueprint.png")}.digital-cta-copy h2{font-size:clamp(74px,18vw,112px);margin:17px 0 27px}.digital-cta-copy .eyebrow{font-size:8px}.digital-cta-note{right:var(--wide-pad);top:55px;bottom:auto;font-size:7px}}
@media(prefers-reduced-motion:reduce){.digital-cta-link{transition:none}}

/* Compact the portfolio flow so the work and shared footer stay in focus. */
.site-header{height:64px;padding-inline:var(--wide-pad)}
.category-hero{min-height:min(68vh,1000px);padding-top:clamp(105px,12vh,205px);padding-bottom:35px}
.page-portfolio .work-gallery{gap:clamp(12px,1.8vw,30px);padding-top:clamp(28px,4vw,72px);padding-bottom:clamp(30px,4vw,70px)}
.page-portfolio .project-art{aspect-ratio:1.8}
.digital-cta{min-height:clamp(460px,43vw,780px);padding-block:clamp(55px,6vw,110px)}
.digital-cta-copy h2{margin-block:18px 25px}
.digital-cta-note{bottom:clamp(36px,5vw,76px)}
.universal-footer{gap:clamp(20px,2.3vw,38px);padding:clamp(30px,3.1vw,54px) var(--wide-pad) 17px}
.universal-footer-head{gap:clamp(16px,2vw,34px);padding-bottom:clamp(16px,1.8vw,28px)}
.universal-footer .footer-mark{width:clamp(64px,5.8vw,96px);height:clamp(64px,5.8vw,96px)}
.universal-footer-head p{gap:5px}
.universal-footer-groups{gap:clamp(20px,4vw,64px)}
.universal-footer-group{gap:9px}
.universal-footer-group h2{margin-bottom:5px}
.universal-footer-group .footer-brand{min-height:60px;padding:7px 10px;border-radius:14px}
.footer-ownership{gap:9px}
.universal-footer-bottom{padding-top:12px}
@media(min-width:3000px){.page-portfolio .work-gallery{gap:clamp(32px,2vw,70px);padding-block:55px 65px}.page-portfolio .project-art{aspect-ratio:2}.digital-cta{min-height:clamp(680px,30vw,940px)}.universal-footer{gap:34px;padding-block:60px 22px}.universal-footer .footer-mark{width:108px;height:108px}}
@media(max-width:600px){.site-header{height:58px}.category-hero{min-height:0;padding-top:clamp(104px,18vh,145px);padding-bottom:24px}.page-portfolio .work-gallery{gap:9px;padding:20px var(--wide-pad) 30px}.page-portfolio .project-art{aspect-ratio:1.05}.digital-cta{min-height:480px;padding-block:64px}.digital-cta-note{top:38px}.universal-footer{gap:22px;padding-block:26px 15px}.universal-footer-head{padding-bottom:15px}.universal-footer .footer-mark{width:58px;height:58px}.universal-footer-head p span{font-size:7px}.universal-footer-groups{gap:24px 16px}.universal-footer-group{gap:8px}.universal-footer-group .footer-brand{min-height:54px}.universal-footer-bottom{padding-top:10px}}

.cycling-services-callout{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,90px);align-items:center;max-width:var(--wide-max);margin:0 auto;padding:clamp(32px,5vw,72px) var(--wide-pad);overflow:hidden;border:1px solid #d9f45f36;border-radius:24px;background:radial-gradient(ellipse at 0 0,#d9f45f18,transparent 54%),linear-gradient(135deg,#151b1c,#0b0e0f 75%);}
.cycling-services-callout .eyebrow{color:var(--lime)}
.cycling-services-heading h2{margin:14px 0 0;font:850 clamp(56px,7vw,106px)/.82 'Barlow Condensed',sans-serif;letter-spacing:-.04em;text-transform:uppercase}
.cycling-services-copy>p{max-width:680px;color:#d0d6d2;font-size:clamp(15px,1.2vw,19px);line-height:1.7}
.cycling-services-copy ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0;padding:0;list-style:none}
.cycling-services-copy li{padding:13px;border-top:1px solid #ffffff2b;color:#c7cfcb;font-size:12px;line-height:1.5}
.cycling-services-copy>a{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border:1px solid #d9f45f88;border-radius:99px;color:var(--lime);font:700 10px 'DM Mono',monospace;letter-spacing:.13em;transition:background .2s,color .2s}
.cycling-services-copy>a:hover{background:var(--lime);color:#080a0b}
@media(max-width:700px){.cycling-services-callout{grid-template-columns:1fr;gap:20px;margin-inline:var(--wide-pad);padding:25px 20px;border-radius:18px}.cycling-services-heading h2{font-size:62px}.cycling-services-copy ul{grid-template-columns:1fr;gap:0;margin:18px 0}.cycling-services-copy li{padding:10px 0}}
.page-me .hero-carousel{height:88svh;min-height:640px;max-height:1380px}
.page-me .hero-content{margin-top:4vh}
.page-me .me-intro,.page-me .landing-capabilities,.page-me .achievement-band,.page-me .tech-stack-section,.page-me .history-section{padding-block:clamp(58px,6.5vw,132px)}
.page-me .landing-capabilities-head{margin-bottom:clamp(30px,4vw,58px)}
.page-me .landing-skills-head{margin-bottom:clamp(22px,3vw,40px)}
.page-me .landing-services-grid{margin-bottom:0}
@media(max-width:600px){.page-me .hero-carousel{height:82svh;min-height:590px;max-height:800px}.page-me .hero-content{margin-top:2vh}.page-me .me-intro,.page-me .landing-capabilities,.page-me .achievement-band,.page-me .tech-stack-section,.page-me .history-section{padding-block:56px}.page-me .landing-capabilities-head{margin-bottom:30px}}

/* A single, image-only ownership and distribution row */
.footer-ownership{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,3vw,48px);align-items:center;width:100%}
.footer-ownership h2{grid-column:1/-1}
.universal-footer-group .footer-brand{min-height:76px;padding:8px 12px;border:0;border-radius:0;background:none;justify-content:center}
.universal-footer-group .footer-brand:hover{border-color:transparent;background:none}
.footer-brand img{width:100%;max-width:250px;height:68px;object-fit:contain}
.footer-brand--sommerville img{mix-blend-mode:screen}
.universal-footer-group .footer-brand--hans img{width:100%;max-width:250px;height:68px;border-radius:0}
@media(max-width:700px){.footer-ownership{grid-column:1/-1;grid-row:auto;grid-template-columns:repeat(4,minmax(92px,1fr));gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:5px}.footer-ownership h2{grid-column:1/-1}.universal-footer-group .footer-brand{min-height:54px;padding:4px}.footer-brand img,.footer-brand--hans img{height:48px;max-width:180px}}

.experience-switch{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.experience-choice{display:grid;place-items:center;width:48px;height:36px;padding:0!important;border:0!important;background:none!important;color:inherit!important;text-decoration:none;outline-offset:4px}
.experience-choice:after{display:none!important}
.experience-pill-shape{--pill-light:#ff6972;--pill-dark:#b51e38;--pill-glow:#ff304e;position:relative;display:block;width:40px;height:19px;border:1px solid color-mix(in srgb,var(--pill-light) 80%,white);border-radius:99px;background:linear-gradient(155deg,#ffffff58 0%,#ffffff1c 22%,transparent 48%),linear-gradient(115deg,var(--pill-light) 0%,var(--pill-dark) 82%);box-shadow:inset 0 -4px 6px #0006,inset 0 2px 4px #ffffff55,0 0 22px var(--pill-glow),0 9px 17px -7px var(--pill-glow);transform:rotate(-24deg);animation:capsule-glow 3.2s ease-in-out infinite,pill-once-in-a-while 13s ease-in-out infinite;transition:rotate .3s,scale .3s,box-shadow .3s,filter .3s}
.experience-choice--red .experience-pill-shape{--pill-light:#ff6972;--pill-dark:#b51e38;--pill-glow:#ff304e;--experience-color:#ff304e}
.experience-choice--blue .experience-pill-shape{--pill-light:#79c4ff;--pill-dark:#244ec9;--pill-glow:#397bff;--experience-color:#397bff;animation-delay:1.6s,5.5s}
.experience-pill-shape:before,.experience-pill-shape:after{content:"";position:absolute}
.experience-pill-shape:before{top:3px;bottom:3px;left:47%;width:2px;border-radius:4px;background:color-mix(in srgb,var(--pill-light) 65%,white);box-shadow:0 0 6px var(--pill-light)}
.experience-pill-shape:after{top:3px;left:12%;width:30%;height:4px;border-radius:50%;background:#ffffff9a;box-shadow:0 0 6px var(--pill-light)}
.experience-choice:hover .experience-pill-shape,.experience-choice:focus-visible .experience-pill-shape{rotate:-12deg;scale:1.13;filter:brightness(1.28) saturate(1.15);animation-play-state:paused;box-shadow:inset 0 -4px 6px #0005,inset 0 2px 4px #ffffff80,0 0 34px var(--pill-glow),0 12px 22px -7px var(--pill-glow)}
.experience-choice[aria-current=page] .experience-pill-shape{filter:brightness(1.12);box-shadow:inset 0 -4px 6px #0005,inset 0 2px 4px #ffffff70,0 0 27px var(--pill-glow),0 10px 19px -7px var(--pill-glow)}
.experience-lego-shape{--experience-color:#f4c83d;position:relative;display:grid;place-items:center;width:34px;height:28px;border:1px solid #f4c83d88;border-radius:999px;background:linear-gradient(155deg,#ffffff30,transparent 55%),#121416b5;box-shadow:0 0 14px #f4c83d55,0 7px 15px -8px #f4c83d;animation:capsule-glow 3.2s ease-in-out infinite,pill-once-in-a-while 13s ease-in-out infinite;transition:rotate .3s,scale .3s,box-shadow .3s,filter .3s}
.experience-lego-shape img{width:25px;height:31px;object-fit:contain;filter:drop-shadow(0 0 4px #f4c83d88)}
.experience-lego-shape:before,.experience-lego-shape:after{content:"";position:absolute;z-index:2;opacity:0;pointer-events:none}
.experience-lego-shape:before{top:10px;right:2px;width:7px;height:11px;border:1px solid #151719;border-radius:3px;background:linear-gradient(90deg,#1255a1 0 58%,#f4c83d 58%);transform:rotate(18deg);transform-origin:bottom left}
.experience-lego-shape:after{top:10px;right:-1px;width:8px;height:8px;border:1px solid #151719;border-radius:4px;background:#f4c83d;transform-origin:bottom left}
.experience-choice--manga:hover .experience-lego-shape,.experience-choice--manga:focus-visible .experience-lego-shape{rotate:-8deg;scale:1.1;animation-play-state:paused;box-shadow:0 0 24px #f4c83d99,0 7px 15px -7px #f4c83d;filter:brightness(1.15)}
.experience-choice--manga[aria-current=page] .experience-lego-shape{box-shadow:0 0 18px #f4c83d77,0 7px 15px -8px #f4c83d}
.experience-choice--manga:hover .experience-lego-shape:before,.experience-choice--manga:focus-visible .experience-lego-shape:before{opacity:1;animation:lego-wave-arm .24s ease-in-out infinite alternate}
.experience-choice--manga:hover .experience-lego-shape:after,.experience-choice--manga:focus-visible .experience-lego-shape:after{opacity:1;animation:lego-wave-hand .24s ease-in-out infinite alternate}
.site-header .experience-switch{margin-right:auto;margin-left:0}
@keyframes capsule-glow{0%,100%{filter:brightness(.96)}50%{filter:brightness(1.16)}}
@keyframes pill-once-in-a-while{0%,76%,100%{transform:rotate(-24deg) translateY(0)}79%{transform:rotate(-13deg) translateY(-2px)}82%{transform:rotate(-27deg) translateY(1px)}85%{transform:rotate(-24deg) translateY(0)}}
@keyframes lego-wave-arm{from{transform:rotate(18deg)}to{transform:rotate(-38deg)}}
@keyframes lego-wave-hand{from{transform:rotate(-12deg)}to{transform:rotate(26deg)}}
@media(max-width:600px){.experience-switch{gap:8px}.experience-choice{width:40px;height:32px}.experience-pill-shape{width:33px;height:17px}.experience-lego-shape{width:30px;height:26px}.experience-lego-shape img{width:22px;height:27px}.entry-header{align-items:center}}
@media(prefers-reduced-motion:reduce){.experience-pill-shape,.experience-lego-shape,.experience-lego-shape:before,.experience-lego-shape:after{animation:none;transition:none}}


/* Shared, minimal footer and the landing-page reset control. */
.universal-footer{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:clamp(22px,3vw,48px) var(--wide-pad);background:#050708;border-top:1px solid #ffffff24;max-width:none}
.universal-footer-head{display:flex;align-items:center;gap:18px;padding:0;border:0}
.universal-footer .footer-mark{display:flex;align-items:center;justify-content:center;width:58px;height:58px;padding:3px}
.universal-footer .footer-mark img{display:block;width:100%;height:100%;object-fit:contain;filter:invert(1);mix-blend-mode:screen}
.universal-footer-head p{display:flex;flex-direction:column;gap:6px;margin:0}
.universal-footer-head strong{font:700 12px 'DM Mono',monospace;letter-spacing:.13em}
.universal-footer-head p span{font:8px 'DM Mono',monospace;letter-spacing:.11em;color:#a5abaa}
.footer-connect{display:flex;flex-direction:row;align-items:center;gap:clamp(14px,2.2vw,34px)}
.footer-connect h2{margin:0 8px 0 0;color:#87918f;font:9px 'DM Mono',monospace;letter-spacing:.18em}
.footer-connect>a{font:9px 'DM Mono',monospace;letter-spacing:.1em;transition:color .2s}
.footer-connect>a:hover{color:var(--lime)}
.experience-choice--reset .experience-reset-shape{position:relative;display:block;width:21px;height:21px;border:1px solid #dfe4dfc9;border-right-color:#dfe4df4a;border-radius:50%;box-shadow:0 0 10px #ffffff20;transition:transform .55s cubic-bezier(.2,.7,.2,1),border-color .25s,box-shadow .25s}
.experience-choice--reset .experience-reset-shape:after{content:"";position:absolute;left:8px;top:8px;width:3px;height:3px;border-radius:50%;background:#dfe4df}
.experience-choice--reset:hover .experience-reset-shape,.experience-choice--reset:focus-visible .experience-reset-shape{transform:rotate(360deg);border-color:#fff;box-shadow:0 0 16px #ffffff75}
@media(max-width:700px){.universal-footer{align-items:flex-start;flex-direction:column;gap:23px;padding-block:28px}.footer-connect{flex-wrap:wrap;gap:13px 20px}.footer-connect h2{width:100%;margin:0}.universal-footer .footer-mark{width:48px;height:48px}.universal-footer-head strong{font-size:10px}.universal-footer-head p span{font-size:7px}}
@media(prefers-reduced-motion:reduce){.experience-choice--reset .experience-reset-shape{transition:none}}

/* White reset mark with a quick spin and radial burst on hover/focus. */
.experience-choice--reset .experience-reset-shape{width:27px;height:27px;border:0;border-radius:0;box-shadow:none;display:grid;place-items:center;overflow:visible;transition:transform .62s cubic-bezier(.2,.8,.2,1),filter .25s}
.experience-choice--reset .experience-reset-shape:after{display:none}
.experience-reset-svg{display:block;width:100%;height:100%;fill:none;stroke:var(--reset-ink,#fff);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;filter:none;transition:filter .25s}
.experience-reset-burst{position:absolute;inset:50% auto auto 50%;width:4px;height:4px;border-radius:50%;background:var(--reset-ink,#fff);opacity:0;transform:translate(-50%,-50%) scale(.2);box-shadow:0 -14px var(--reset-ink,#fff),10px -10px var(--reset-ink,#fff),14px 0 var(--reset-ink,#fff),10px 10px var(--reset-ink,#fff),0 14px var(--reset-ink,#fff),-10px 10px var(--reset-ink,#fff),-14px 0 var(--reset-ink,#fff),-10px -10px var(--reset-ink,#fff);pointer-events:none}
.experience-choice--reset,.experience-choice--reset:hover,.experience-choice--reset:focus-visible{background:transparent!important;box-shadow:none!important}
.experience-choice--reset .experience-reset-shape{background:transparent}
.experience-choice--reset:hover .experience-reset-shape,.experience-choice--reset:focus-visible .experience-reset-shape{transform:rotate(720deg) scale(1.12);filter:drop-shadow(0 0 9px color-mix(in srgb,var(--reset-ink,#fff) 75%,transparent))}
.experience-choice--reset:hover .experience-reset-svg,.experience-choice--reset:focus-visible .experience-reset-svg{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--reset-ink,#fff) 75%,transparent))}
.experience-choice--reset:hover .experience-reset-burst,.experience-choice--reset:focus-visible .experience-reset-burst{animation:reset-burst .58s cubic-bezier(.16,.75,.28,1) both}
/* The reset control has no plate; use a crisp mark that contrasts with each page. */
.experience-choice--reset .experience-reset-shape{background:transparent!important;border:0!important;box-shadow:none!important}
.business-page{--reset-ink:#111518}
.manga-page{--reset-ink:#fff}
.experience-reset-svg{stroke:var(--reset-ink,#fff);stroke-width:2.8;filter:none}
@keyframes reset-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.25)}}
@media(prefers-reduced-motion:reduce){.experience-choice--reset .experience-reset-shape{transition:none}.experience-choice--reset:hover .experience-reset-burst,.experience-choice--reset:focus-visible .experience-reset-burst{animation:none;opacity:.65;transform:translate(-50%,-50%) scale(1)}}

/* Keep section headlines inside the same card system as their content. */
.landing-service-card{isolation:isolate;transition:transform .4s cubic-bezier(.2,.8,.2,1),border-color .35s,background .35s,box-shadow .35s}
.landing-service-card:after{content:"";position:absolute;inset:0 auto 0 0;width:3px;z-index:-1;background:linear-gradient(180deg,var(--lime),#ff5738);transform:scaleY(0);transform-origin:bottom;transition:transform .38s cubic-bezier(.2,.8,.2,1)}
.landing-service-card:hover,.landing-service-card:focus-within{transform:translateY(-7px) scale(1.012);border-color:#d9f45f88;box-shadow:0 24px 65px #0008,0 0 30px #d9f45f0b}
.landing-service-card:hover:after,.landing-service-card:focus-within:after{transform:scaleY(1)}
.landing-service-card h3,.landing-card-tagline,.landing-service-card li{transition:color .3s,transform .3s}
.landing-service-card:hover h3,.landing-service-card:focus-within h3{transform:translateX(3px)}
.landing-service-card:hover .landing-card-tagline,.landing-service-card:focus-within .landing-card-tagline{color:var(--lime)}
.landing-service-intro h3{margin-top:26px;font-size:clamp(29px,2.7vw,48px);line-height:.94}
.landing-service-intro .landing-card-copy{margin-top:auto;padding-top:12px}
.landing-service-intro .landing-more-link{margin-top:22px}
.landing-skill-card{position:relative;isolation:isolate;overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,background .3s,box-shadow .3s}
.landing-skill-card:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),#d9f45f18,transparent 68%);opacity:0;transition:opacity .35s}
.landing-skill-card:hover,.landing-skill-card:focus-within{transform:translateY(-5px);border-color:#d9f45f80;background:#ffffff0d;box-shadow:0 20px 55px #0007}
.landing-skill-card:hover:before,.landing-skill-card:focus-within:before{opacity:1}
.landing-skill-card span{position:relative;z-index:1;transition:transform .24s,border-color .24s,background .24s,color .24s}
.landing-skill-card:hover span,.landing-skill-card:focus-within span{border-color:#d9f45f40;background:#d9f45f0b;color:#e7efcf}
.landing-skill-card:hover span:nth-child(3n+1){transform:translateY(-2px)}
.landing-section-card{display:flex;flex-direction:column;justify-content:center;min-height:100%;padding:clamp(22px,2.4vw,36px);background:linear-gradient(145deg,#263031,#111718 72%)}
.landing-section-card .eyebrow{color:var(--lime)}
.landing-section-card h2{margin:15px 0;font:850 clamp(44px,4.4vw,70px)/.86 'Barlow Condensed',sans-serif;letter-spacing:-.045em;text-transform:uppercase}
.landing-section-card h2 em{color:var(--lime);font-style:normal}
.landing-section-card>p:not(.eyebrow){max-width:32ch;color:#b6c0ba;font-size:12px;line-height:1.65}
.landing-section-card .landing-more-link{align-self:flex-start;margin-top:16px}
.page-portfolio .project-caption{display:none}
@media(max-width:650px){.landing-section-card{min-height:250px}.landing-section-card h2{font-size:clamp(48px,13vw,78px)}.landing-service-intro h3{font-size:38px}}
@media(prefers-reduced-motion:reduce){.landing-service-card,.landing-service-card:before,.landing-service-card:after,.landing-service-card h3,.landing-card-tagline,.landing-service-card li,.landing-skill-card,.landing-skill-card:before,.landing-skill-card span{transition:none}.landing-service-card:hover,.landing-service-card:focus-within,.landing-skill-card:hover,.landing-skill-card:focus-within{transform:none}}

/* Long-scroll portfolio: distinct skill, service, coaching, and site sections. */
.page-me #skills,.page-me #services,.page-me #coaching,.page-me #portfolio{scroll-margin-top:100px}
.page-me .landing-capabilities{padding-block:clamp(76px,8vw,150px)}
.page-me .landing-skills-section{background:radial-gradient(ellipse at 82% 18%,#d9f45f13,transparent 28%),linear-gradient(160deg,#080b0c,#111718 48%,#080a0b)}
.page-me .landing-services-section{background:radial-gradient(ellipse at 18% 15%,#ff57380c,transparent 30%),linear-gradient(160deg,#101516,#090b0c 72%)}
.page-me .landing-skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.page-me .landing-skill-card{min-height:190px}
.page-me .landing-services-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:var(--wide-max)}
.page-me .landing-service-card{min-height:340px}
.coaching-feature-section{padding:clamp(62px,8vw,145px) var(--wide-pad);background:radial-gradient(ellipse at 76% 46%,#d9f45f14,transparent 28%),linear-gradient(135deg,#0d1112,#141a1b 53%,#080b0c)}
.coaching-feature-card{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(35px,7vw,120px);align-items:center;max-width:var(--wide-max);margin:auto;padding:clamp(28px,5vw,82px);border:1px solid #ffffff24;border-radius:30px;background:linear-gradient(140deg,#1c2324eb,#0b0f10f2 76%);box-shadow:0 30px 100px #0005}
.coaching-feature-copy h2,.portfolio-micro-head h2{margin:18px 0 24px;font:900 clamp(58px,8vw,132px)/.79 'Barlow Condensed',sans-serif;letter-spacing:-.06em;text-transform:uppercase}
.coaching-feature-copy h2 em,.portfolio-micro-head h2 em{color:var(--lime);font-style:normal}
.coaching-feature-copy>p:not(.eyebrow){max-width:66ch;color:#bac2be;font-size:clamp(14px,1.1vw,17px);line-height:1.75}
.coaching-feature-copy .landing-more-link{margin-top:18px}
.coaching-feature-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.coaching-feature-facts div{display:flex;min-height:190px;flex-direction:column;justify-content:space-between;padding:clamp(18px,2vw,30px);border:1px solid #ffffff20;border-radius:20px;background:#ffffff08}
.coaching-feature-facts strong{color:#f3f5ef;font:900 clamp(42px,5vw,78px)/.82 'Barlow Condensed',sans-serif;letter-spacing:-.04em}
.coaching-feature-facts span{color:var(--lime);font:9px 'DM Mono',monospace;letter-spacing:.14em}
.portfolio-micro-section{padding:clamp(70px,9vw,160px) var(--wide-pad);background:linear-gradient(160deg,#080b0c,#111718 52%,#090b0c)}
.portfolio-micro-head{display:flex;align-items:end;justify-content:space-between;gap:35px;max-width:var(--wide-max);margin:0 auto 38px}
.portfolio-micro-head h2{margin-bottom:0}
.portfolio-micro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:var(--wide-max);margin:auto}
.portfolio-micro-grid .project-card:nth-child(n){grid-column:auto}
.portfolio-micro-grid .project-art{aspect-ratio:1.8;border-radius:18px}
.portfolio-micro-grid .project-card--compact .project-art:before{background:linear-gradient(0deg,#050708b8,transparent 70%),radial-gradient(ellipse at center,transparent 55%,#06080966 100%)}
.micro-project-name{position:absolute;z-index:3;left:16px;bottom:15px;max-width:72%;color:#fff;font:700 clamp(13px,1.4vw,20px)/1 'Barlow Condensed',sans-serif;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 2px 12px #000}
.portfolio-micro-grid .project-open{right:13px;bottom:10px;font-size:7px}
@media(max-width:1050px){.page-me .landing-skills-grid,.page-me .landing-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.coaching-feature-card{grid-template-columns:1fr}.coaching-feature-facts div{min-height:145px}}
@media(max-width:650px){.page-me .landing-capabilities{padding-block:64px}.page-me .landing-skills-grid,.page-me .landing-services-grid,.portfolio-micro-grid{grid-template-columns:1fr}.page-me .landing-skill-card{min-height:0}.page-me .landing-service-card{min-height:0}.coaching-feature-section,.portfolio-micro-section{padding-block:64px}.coaching-feature-card{gap:28px;padding:24px;border-radius:22px}.coaching-feature-copy h2,.portfolio-micro-head h2{font-size:clamp(52px,15vw,80px)}.coaching-feature-facts div{min-height:130px;padding:18px}.coaching-feature-facts strong{font-size:clamp(39px,12vw,60px)}.portfolio-micro-head{align-items:flex-start;flex-direction:column;gap:22px;margin-bottom:26px}.portfolio-micro-grid .project-art{aspect-ratio:1.65}.micro-project-name{font-size:16px}}
