/* ── FIT TO SCREEN (desktop): each section's content fits one viewport, no scrolling to read it ── */
@media (min-width:901px) and (min-height:700px){
  html{scroll-padding-top:3.5rem}
  section{min-height:calc(100dvh - 3.5rem);display:flex;flex-direction:column;justify-content:center;padding-block:clamp(1.25rem,3.5vh,2.75rem)}
  .hero{min-height:calc(100dvh - 3.5rem)}
  h2{font-size:clamp(2rem,min(5vw,8.5vh),3.6rem);margin-bottom:clamp(1rem,3vh,2rem)}
  .eyebrow{margin-bottom:.7rem}
  /* hero */
  h1{font-size:clamp(3rem,min(7.4vw,13.5vh),6.4rem);margin-top:.8rem}
  .lede{margin-top:clamp(1rem,2.5vh,1.8rem);font-size:clamp(1.15rem,1.7vw,1.45rem)}
  .cta-row{margin-top:clamp(1rem,2.5vh,1.8rem)}
  .glance-card-body{padding:.8rem 1rem .9rem}
  .glance-header{padding-bottom:.5rem}
  .glance-identity{grid-template-columns:6rem minmax(0,1fr);padding-block:.7rem;gap:.9rem}
  .glance-name{font-size:clamp(1.5rem,2.2vw+.4rem,2.1rem);margin-bottom:.5rem}
  .glance-meta{gap:.25rem}.glance-meta dd{font-size:.86rem}.glance-meta dt{font-size:.68rem}
  .stats{padding:.65rem 0;gap:.45rem}.stats .stat-value{font-size:1.3rem}.stats .stat-name{font-size:.88rem}.stats .stat-name small{font-size:.74rem}
  .skill-loadout{padding:.65rem 0 .1rem}.label-text{margin-bottom:.4rem}.skill-loadout li{padding:.38rem .25rem;font-size:.78rem}
  .open-to-work{margin-top:.65rem;padding:.65rem .8rem;gap:.3rem}.open-to-work p:not(.label-text){font-size:.88rem}.open-to-work .button{padding:.5rem .9rem;margin-top:0}
  /* about: photo beside text */
  .about-grid{gap:clamp(1.5rem,3vw,3rem)}
  .person{display:grid;grid-template-columns:minmax(0,14.5rem) minmax(0,1fr);column-gap:1.5rem;align-items:start;align-content:start}
  .person:nth-child(2){margin-top:0}
  .person .photo{grid-row:1 / span 2;aspect-ratio:3/4;padding:.5rem}
  .photo .photo-frame{inset:.5rem}
  .person h3{margin:.2rem 0 .6rem;font-size:1.9rem}
  .person p{font-size:1.2rem;line-height:1.55}
  .fact-list{margin-top:clamp(1rem,3vh,2rem)}
  /* projects player */
  .playlist-label{margin:0 0 .6rem}
  .player{gap:clamp(1.25rem,3vw,3rem);grid-template-columns:minmax(0,23.1rem) minmax(0,1fr)}
  .project-deck{padding:.9rem;gap:.6rem}
  .album-cover{aspect-ratio:16/9}.vinyl{height:92%;width:auto}
  .track-title{font-size:1.3rem}.track-artist{font-size:.85rem}.waveform{height:40px}
  .player-controls button{width:2.6rem;height:2.6rem}.player-controls .play{width:3.1rem;height:3.1rem}
  .project-lyrics h3{display:none}.project-lyrics .when{margin-bottom:.4rem}
  .project-lyrics .prob{font-size:1.02rem;margin-bottom:.9rem}
  .project-lines{gap:.55rem;margin-bottom:.9rem}.project-lines li{font-size:.98rem;line-height:1.4}
  .playlist{margin-top:clamp(.8rem,2vh,1.4rem);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;border:0}
  .playlist button{border:1.5px solid var(--line);border-radius:10px;padding:.55rem .8rem;grid-template-columns:1.2rem minmax(0,1fr)}
  .playlist button[aria-current="true"]{border-color:var(--ink)}
  .playlist .track-text-block small,.playlist .track-tag{display:none}
  .playlist .track-text-block{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* experience board */
  .experience-board{padding:clamp(1rem,2.5vh,1.8rem) clamp(1rem,2.5vw,2rem)}
  .notes.two-column{gap:clamp(1.2rem,2.5vw,2.2rem)}
  .notes.two-column .note:nth-child(2){margin-top:0}
  .note{padding:1.1rem 1rem .9rem;gap:.55rem}
  .wish{font-size:1.45rem}.note h3{font-size:1.25rem}
  .note-points{gap:.45rem}.note-points li{font-size:.88rem;line-height:1.4}
  .note .company{font-size:.85rem}
  /* skills / wins / contact */
  .skills{gap:clamp(1.2rem,3vw,3rem)}.skill-groups{gap:1.1rem}.skill-chips li{padding:.3rem .7rem;font-size:.9rem}
  .achievement{padding:clamp(1rem,2vh,1.5rem)}.achievement.featured .achievement-position{font-size:clamp(4rem,min(10vw,18vh),7.5rem)}
  .contact h2{font-size:clamp(2.6rem,min(8vw,15vh),6.4rem);margin-bottom:1rem}
  .contact .tag{margin-bottom:1.3rem}
  .form-field textarea{min-height:6rem}form{gap:.7rem}
}

@media (min-width:901px) and (min-height:700px){
  .glance-meta{gap:.15rem}.glance-meta div{flex-direction:row;align-items:baseline;gap:.6rem}.glance-meta dt{width:4.2rem;flex:none}.glance-meta dd{font-size:.84rem}
  .stats .stat-name small{display:inline;margin-left:.45rem;font-size:.76rem}
  .stats li{gap:.5rem}.stats{gap:.4rem}
  .skill-loadout ul{gap:.3rem}
  .open-to-work{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.8rem}.open-to-work .label-text{grid-column:1 / -1}.open-to-work .button{justify-self:end;margin:0;grid-row:2}
  .skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 2rem}
  .skills{grid-template-columns:minmax(0,12.5rem) minmax(0,1fr)}
  .skill-group h3{margin-bottom:.5rem}.skill-categories button{padding:.55rem .8rem}
  .achievements-list{gap:.8rem}.achievement{gap:.5rem}.achievement p{font-size:.92rem;line-height:1.45}.achievement .achievement-position{font-size:clamp(1.8rem,4vw,2.6rem)}.achievement.featured .achievement-position{font-size:clamp(3.4rem,min(8vw,14vh),6rem)}.achievement h3{font-size:1.05rem}
  .experience-board{padding:1rem 1.2rem}.note{padding:1rem .95rem .8rem;gap:.45rem}.wish{font-size:1.3rem;margin-top:.2rem}.tags li{font-size:.72rem;padding:.12rem .45rem}
  .person .photo{aspect-ratio:3/4}.project-lyrics .prob{font-size:.98rem;margin-bottom:.7rem}.project-lines{gap:.45rem}.project-lines li{font-size:.93rem;line-height:1.35}
  .project-deck{padding:.8rem}.album-cover{aspect-ratio:16/8.5}
}

@media (min-width:901px) and (min-height:700px){
  .hero{padding-block:clamp(1.25rem,3.5vh,2.5rem)}
  .album-cover{aspect-ratio:16/7.4}.waveform{height:32px}.project-deck{gap:.5rem}.now-playing{margin:0}.track-title{margin:0}
  .skill-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem 1.4rem}
  .skill-chips{gap:.35rem}.skill-chips li{padding:.24rem .6rem;font-size:.84rem;box-shadow:1.5px 2px 0 var(--ink)}
  .skills{grid-template-columns:minmax(0,11.25rem) minmax(0,1fr)}
}

@media (min-width:901px) and (min-height:700px){
  .open-to-work p:not(.label-text){grid-column:1;grid-row:2}.open-to-work .button{grid-column:2;grid-row:2;white-space:nowrap;align-self:center}
  .person{grid-template-rows:auto auto 1fr}.person .photo{grid-row:1 / span 3}
}
@media (min-width:901px) and (min-height:700px) and (max-height:780px){
  .skill-loadout{display:none}.playlist-label{display:none}.album-cover{aspect-ratio:16/6.5}.fact-list{display:none}
  .achievement.featured .achievement-position{font-size:clamp(3rem,7vw,4.6rem)}.eyebrow{margin-bottom:.4rem}h2{margin-bottom:.9rem}
  .project-lines li{font-size:.9rem}.project-lyrics .prob{font-size:.92rem}.note{gap:.35rem}.note-points li{font-size:.84rem}
}

@media (min-width:901px) and (min-height:700px){
  section:not(.hero){justify-content:flex-start;padding-top:clamp(1rem,3vh,2rem);padding-bottom:clamp(1rem,3vh,2rem)}
  .hero{padding-top:clamp(.8rem,2.5vh,1.8rem)}
}
/* playlist scales with the number of projects: up to 3 fit in a row, more become a scrollable strip */
.playlist[data-count]:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]){display:grid;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:.5rem;scrollbar-width:thin}
.playlist[data-count]:not([data-count="1"]):not([data-count="2"]):not([data-count="3"]) li{scroll-snap-align:start}
@media (min-width:901px) and (min-height:700px){.playlist[data-count="1"],.playlist[data-count="2"]{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}}

/* scale the whole layout with the window so content isn't tiny on big screens (everything is in rem) */
@media (min-width:901px) and (min-height:700px){
  html{font-size:clamp(16px,min(1.111vw,2vh),28px)}
  .container{max-width:73.75rem}.glance-card{max-width:26.9rem}
}
