/* V4 — mobile-first refinements and interaction safety */
html{overflow-anchor:none}
.hero,.hero-inner,.carousel-shell,.section{overflow-anchor:none}
.hero-wave{opacity:.25;filter:blur(5px);bottom:-25px}
#work{margin-top:-10px;position:relative;z-index:1}
.hero{overflow:hidden}
.theme-toggle svg{width:17px;height:17px;vertical-align:middle}
.theme-pill{width:77px;height:37px;box-shadow:none}
.theme-sun,.theme-moon{display:flex;align-items:center;justify-content:center;height:28px}
.theme-indicator{background:rgba(190,204,224,.3)}
body[data-theme="light"] .theme-pill{background:#edf0f5}
body[data-theme="light"] .theme-sun{color:#8c6118}
body[data-theme="light"] .theme-moon{color:#27344b}
.projects-grid{scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y;overflow-y:hidden;scroll-padding-inline:0;padding:2px 2px 6px;isolation:isolate}
.project-card{flex-basis:min(346px,86vw);min-height:190px;padding:22px 24px;border-radius:15px;cursor:pointer;box-shadow:none;scroll-snap-align:start;transition:border-color .18s,background .18s}
.project-card:hover,.project-card:focus-visible{transform:none;z-index:1;border-color:var(--accent2);outline-offset:-2px;background:var(--panel-hover)}
.project-card h3{font-size:20px;line-height:1.23;margin:10px 0 7px}
.project-card .project-body>p:not(.project-category){font-size:13px;line-height:1.5;-webkit-line-clamp:3}
.project-card .read-link{font-size:13px;pointer-events:none}
.project-category{font-size:10px;letter-spacing:.10em}
.carousel-nav{min-height:39px}.carousel-dots{gap:9px}
.carousel-dots button{cursor:pointer;width:9px;height:9px;min-width:9px;min-height:9px;touch-action:manipulation}
.skills-group{margin:17px 0 21px}.skills-group h3{font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin-bottom:8px;font-weight:750}
.skills-grid{display:flex!important;flex-wrap:wrap!important;gap:0!important}
.skill-word{font-weight:590;font-size:14px;white-space:normal}
.timeline-viewport{max-height:none;overflow:visible;mask-image:none;padding:2px 3px;scroll-snap-type:none;scrollbar-width:none}
.timeline-viewport.experience-scrollable{max-height:330px;overflow-y:auto;mask-image:linear-gradient(to bottom,transparent 0%,black 8%,black 92%,transparent 100%);padding:15px 3px;scroll-snap-type:y proximity}
.timeline-viewport.experience-scrollable::-webkit-scrollbar{display:none}
.timeline-card{min-height:0!important;padding:16px 22px!important}
.timeline-card .experience-description{font-size:12.5px}
.cert-card-link{color:inherit;text-decoration:none;cursor:pointer}
.cert-card-link:hover,.cert-card-link:focus-visible{border-color:var(--accent);transform:none;outline-offset:2px}
.cert-card-link .credential-link{text-decoration:none}
.contact-wrap{margin-top:16px;background:radial-gradient(ellipse at 50% 110%,var(--wave),transparent 75%),var(--bg);border-top-color:transparent}
.contact-content{padding:30px 0 28px!important}
.contact-content h2 span{color:inherit}
.contact-content h2{font-weight:800;font-size:clamp(37px,5.5vw,63px)}
.social-button svg{width:18px;height:18px;margin-right:5px;flex:none}
.contact-links .button{font-size:14px;min-height:48px}
.contact-wave{opacity:.26;filter:blur(7px)}
.case-dialog{z-index:99999!important}
.case-dialog::backdrop{background:rgba(5,8,13,.75)}
@media(max-width:640px){
  .hero-inner{display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;min-height:310px;gap:0}
  .hero-copy{grid-column:1;grid-row:1;z-index:3;padding:22px 0 35px}
  .hero-art{grid-column:2;grid-row:1;z-index:1;width:180%;max-width:none;margin:0 -24% 0 -48%;height:240px;pointer-events:none;opacity:.93}
  .orbital-scene{transform:scale(.62);inset:0 -10% 2%}
  .art-plinth{width:155px;bottom:23px;left:48%}
  .art-halo{width:170px;bottom:28px;left:50%}
  .plinth-shadow{width:170px;bottom:20px;left:50%}
  .hero h1{font-size:clamp(29px,7.7vw,46px);line-height:1.06;letter-spacing:-.06em;overflow-wrap:anywhere}
  .hero-role{font-size:14px;line-height:1.3;margin-top:10px}
  .hero-intro{font-size:12px;line-height:1.5;margin:11px 0 12px;max-width:240px}
  .availability{font-size:10px;line-height:1.4;max-width:245px;padding:6px 9px}
  .hero-wave{bottom:-30px;opacity:.13;filter:blur(7px)}
  #work{margin-top:-3px}
  .project-card{flex-basis:79%;min-height:180px;padding:16px 17px}
  .project-card h3{font-size:18px;margin:9px 0 5px}
  .project-card .project-body>p:not(.project-category){font-size:12px;line-height:1.45;-webkit-line-clamp:2}
  .project-card .read-link{font-size:12px;padding-top:8px}
  .carousel-nav>button{display:none!important}
  .carousel-dots button{width:10px;height:10px;min-width:10px;min-height:10px}
  .carousel-dots button.active{width:24px}
  .section{padding-top:25px}
  .skills-group{margin:12px 0 17px}
  .skills-group h3{font-size:11px}
  .skill-word{font-size:12px;padding:4px 10px 4px 0}
  .timeline-viewport{max-height:none}
  .timeline-card{padding:14px 15px!important}
  .timeline-card .experience-description{font-size:12px;-webkit-line-clamp:2}
  .contact-content{padding:25px 0 20px!important}
  .contact-content h2{font-size:clamp(31px,8vw,41px)}
  .contact-links .button{font-size:12px;min-height:42px}
  .social-button svg{width:17px;height:17px;margin-right:1px}
}
@media(max-width:380px){.hero-art{height:215px;transform:scale(.92)}.hero-inner{min-height:280px}.hero h1{font-size:28px}.project-card{flex-basis:84%}}
@media(prefers-reduced-motion:reduce){.projects-grid{scroll-behavior:auto!important}}

/* Friday enterprise case study details */
.case-initiatives{display:grid;gap:16px;margin:12px 0 24px;}
.initiative-item{border:1px solid var(--line,rgba(140,160,180,.25));border-radius:15px;padding:18px;background:var(--panel,rgba(140,160,180,.055));}
.initiative-item h4{font-size:1.08rem;line-height:1.4;margin:6px 0 7px;}
.initiative-id{font-size:.73rem;letter-spacing:.12em;text-transform:uppercase;opacity:.65;}
.initiative-highlight{font-weight:650;}
.initiative-item p{line-height:1.65;}
@media(max-width:600px){.initiative-item{padding:13px}.initiative-item h4{font-size:1rem}}
