.folio{padding:clamp(48px,7vw,108px) var(--gutter);border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:6vw}
.folio small,.honors time{font:400 12px/1.6 var(--mono);color:var(--quiet)}
.folio header small{color:var(--accent)}
.folio h2{font-size:clamp(26px,3vw,48px);font-weight:450;letter-spacing:-.05em;margin:14px 0}
.folio p{line-height:1.75;margin:.45em 0}.folio-row{padding:17px 0;border-top:1px solid var(--line)}
.domains{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.folio details{border-top:1px solid var(--line)}.folio summary{padding:18px 0;cursor:pointer}
.honors{margin:0;padding:0;list-style:none}.honors li{position:relative;border-left:1px solid var(--line);padding:0 0 24px 24px;display:grid;grid-template-columns:4em 1fr;gap:16px}.honors li:last-child{padding-bottom:0}.honors li:before{content:"";width:7px;height:7px;background:var(--accent);border-radius:50%;position:absolute;left:-4px;top:7px}.honors time{color:var(--ink);font-size:16px}.honors p{margin:4px 0;font-size:clamp(16px,1.5vw,22px)}
#awards{background:#ebe7dd}#contact{background:var(--ink);color:var(--paper)}#contact small{color:#bab4aa}.folio a:hover,.folio summary:hover{color:var(--accent)}
@media(max-width:720px){.folio{grid-template-columns:1fr;gap:16px}.domains{grid-template-columns:1fr}.honors li{gap:8px}}
.profile{position:relative;overflow:hidden}.profile-grid{position:relative;z-index:1}.profile-grid>div{z-index:3}.lanyard-stage{overflow:visible}.lanyard-scene{width:300%!important;left:-100%!important;pointer-events:none}.lanyard-scene canvas{pointer-events:auto}.badge-sparks{position:absolute;inset:0;pointer-events:none;z-index:0}.profile-copy.easter-active{border-color:#c6402a}
#capabilities{display:block}#capabilities>header{margin-bottom:42px}.domains{grid-template-columns:repeat(4,1fr);gap:24px}.domains .folio-row{border-top:1px solid var(--accent);padding-top:25px}.domains small{font-size:19px;color:var(--ink)}.domains p{font-size:14px}
.skills-display{margin:64px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.skills-display h3,.credentials-display h3{font-weight:450;font-size:24px;grid-column:1/-1}.skill-panel{border:1px solid var(--line);padding:30px;min-height:240px;background:#ebe7dd}.skill-panel small{font-family:var(--cn);color:var(--ink);font-size:19px}.skill-panel p{font-size:13px;color:var(--quiet)}.skill-visual{width:100%;height:80px;margin-bottom:25px;fill:none;stroke:var(--accent);stroke-width:1.3}
.credentials-display{display:grid;grid-template-columns:repeat(2,1fr);gap:0 36px}.credential{padding:22px 36px 22px 0;border-top:1px solid var(--line);position:relative}.credential:after{content:'✓';position:absolute;right:0;top:24px;border:1px solid var(--line);border-radius:50%;width:24px;height:24px;text-align:center;color:var(--accent)}.credential small{font-size:10px;letter-spacing:.1em}.credential p{font-size:16px}
#awards.awards-wide{display:block}.awards-wide header{position:relative;margin-bottom:42px}.timeline-controls{display:flex;gap:8px;margin-top:20px}.timeline-controls button{border:1px solid var(--line);background:none;color:var(--ink);border-radius:50%;width:40px;height:40px;cursor:pointer}.timeline-controls button:hover{background:var(--ink);color:var(--paper)}
.honors{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:80px 0 24px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.honors li{display:block;flex:0 0 265px;border-left:0;border-top:1px solid var(--line);padding:25px 30px 0 0;scroll-snap-align:start}.honors li:before{top:-4px;left:0}.honors time{font-size:30px;display:block;margin-bottom:20px}.honors p{font-size:17px;margin-top:12px}.award-company{position:absolute;bottom:calc(100% + 24px);left:0;height:32px;display:flex;align-items:center}.award-company img{max-width:115px;height:32px;object-fit:contain}.award-company .mark{margin:0;height:32px}.future-line{display:block;border-top:1px dashed var(--accent);width:150px;margin-top:30px;mask-image:linear-gradient(90deg,#000,transparent)}
@media(max-width:720px){
  .domains{grid-template-columns:1fr 1fr}
  .skills-display,.credentials-display{grid-template-columns:1fr}
  .skill-panel{min-height:200px}
  .lanyard-scene{width:100%!important;left:0!important}

  /* Keep the horizontal timeline, but give each entry a readable phone width. */
  .honors{
    scroll-snap-type:x mandatory;
    scroll-padding-inline:0;
  }
  .honors li{
    flex:0 0 min(82vw,340px);
    min-width:0;
    padding-right:28px;
    scroll-snap-align:start;
  }
  .honors p{
    max-width:18em;
    font-size:16px;
    line-height:1.65;
    word-break:normal;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:pretty;
  }
  .honors .phrase{display:inline-block;max-width:100%}

  /* Avoid Chinese or English orphan fragments in the contact copy. */
  #contact .contact-copy{
    max-width:20em;
    line-height:1.75;
    word-break:normal;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:pretty;
  }
  #contact .contact-last-line{display:block}
  html[lang="en"] #contact .contact-copy{
    max-width:31em;
    hyphens:none;
  }
  html[lang="en"] #contact .contact-last-line{display:inline}

  /* Back-to-top is deliberately the final independent footer row. */
  #contact .footer-meta{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    margin-top:28px;
  }
  #contact .footer-meta small{display:block;line-height:1.7}
  #contact .back-to-top{
    display:block;
    width:max-content;
    order:2;
    white-space:nowrap;
  }
}
.profile-copy{position:relative;--badge-progress:0}
.profile-copy.easter-active{border-top-color:#3a383e}
.badge-progress{position:absolute;left:0;right:0;top:-2px;height:3px;pointer-events:none}
.badge-progress:before{content:"";display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(var(--badge-progress));transform-origin:right center;transition:transform .09s linear;box-shadow:0 0 8px #c6402a44}
.profile-copy:last-child .badge-progress:before{transform-origin:left center}
.badge-progress-hint{position:absolute;right:0;top:20px;font:400 10px/1.6 var(--cn);color:#96919a;letter-spacing:.03em}
.easter-active .badge-progress-hint{color:#de806c}
@media(prefers-reduced-motion:reduce){.badge-progress:before{transition:none}}
.skills-display{grid-template-columns:repeat(2,minmax(0,1fr))}
.badge-progress-hint{display:none}
@media(max-width:720px){.skills-display{grid-template-columns:1fr}}

#practice .sportshub-logo{display:block;width:154px;height:76px;object-fit:contain;object-position:left center;margin:18px 0 14px}
#practice header h2{margin-top:0}

/* Footer hierarchy is consistent across desktop and mobile. */
#contact .footer-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  margin-top:28px;
}
#contact .footer-meta small{display:block;line-height:1.7}
#contact .back-to-top{
  display:block;
  width:max-content;
  order:2;
  white-space:nowrap;
}
