/* Follow-up to October 7 layout polish: a compact desktop index and
   a whole-sheet resume. No artwork is cropped to force it to fit. */
@media (min-width:861px) {
  .v3 {
    --index-frame:clamp(64px,10svh,144px);
    --v3-strip:36px;
    --v3-floor:36px;
    height:calc(100svh - var(--header-h));
    min-height:0;
    grid-template-columns:minmax(0,min(48vw,740px)) minmax(0,1fr);
    grid-template-rows:minmax(0,1fr) 36px;
  }
  .v3:not(:has(.strip)) {grid-template-rows:minmax(0,1fr); --v3-floor:0px;}
  .v3-index {height:100%; min-height:0; padding:10px clamp(20px,2vw,32px) 10px var(--gutter);}
  .v3-index-in {
    height:100%; min-height:0; max-width:none;
    display:grid; grid-template-rows:26px auto 26px 28px minmax(0,1fr);
  }
  .v3-about {grid-column:1; grid-row:1; min-height:26px; font-size:.75rem;}
  .v3-hello,.v3-card {grid-template-columns:var(--index-frame) minmax(0,1fr); gap:18px;}
  .v3-hello {grid-column:1; grid-row:2; margin-top:4px; align-items:center;}
  .v3-hello-text {grid-column:2; grid-row:1; min-width:0;}
  .v3-portrait {grid-column:1; grid-row:1; width:var(--index-frame); height:var(--index-frame);}
  .v3-greeting {font-size:clamp(1.75rem,3.9svh,2.75rem); line-height:1.04;}
  .v3-teaser {font-size:clamp(.9375rem,1.9svh,1.125rem); line-height:1.35; margin-top:10px; max-width:36ch;}
  .geo {grid-column:1; grid-row:3; height:26px; margin:0;}
  .geo-strip {top:9px; height:9px; width:64px;}
  .geo-block,.geo-disc {top:3px; width:20px; height:20px;}
  .geo-tri {top:3px; width:24px; height:20px;}
  .v3-h {grid-column:1; grid-row:4; min-height:24px; font-size:.75rem; padding-right:110px;}
  .v3-work {grid-column:1; grid-row:5; min-height:0; margin-top:0;}
  .v3-work ol {height:100%; display:grid; grid-template-rows:repeat(var(--index-rows,5),minmax(0,1fr));}
  .v3-row {min-height:0; margin:0;}
  .v3-card {height:100%; min-height:0; padding:6px 0; align-items:center;}
  .v3-thumb {grid-column:1; grid-row:1; width:var(--index-frame); height:var(--index-frame);}
  .v3-card-text {grid-column:2; grid-row:1; min-width:0;}
  .v3-client {font-size:clamp(1.5rem,min(2.8vw,3.6svh),2.5rem); line-height:1.03;}
  .v3-name {font-size:.6875rem; margin-top:7px; line-height:1.3;}
  .v3-card-idea {display:none;}
  .v3-motion {grid-column:1; grid-row:4; min-height:26px; margin:0; font-size:.6875rem; justify-self:end; align-self:center;}
  .v3-wall {position:relative; top:auto; height:100%; min-height:0; align-self:stretch;}
  .v3-stage {grid-template-rows:minmax(0,1fr) auto auto; gap:12px; padding:clamp(20px,2vw,36px);}
  .v3-stage img {grid-row:1;}
  .v3-stage .v3-idea {display:block; grid-row:2; margin:0; min-height:0;}
  .v3-stage .v3-idea-text {color:inherit; font-size:1rem; line-height:1.4; max-width:62ch;}
  .v3-stage .v3-idea-meta {margin-top:6px;}
  .v3-stage .v3-idea-meta span {color:inherit; font-size:.6875rem;}
  .v3-stage-label {grid-row:3; font-size:.75rem;}
  .strip {position:relative; bottom:auto;}
}
@media (min-width:861px) and (max-height:900px) {
  .v3-hello,.v3-card {gap:14px;}
  .v3-greeting {font-size:1.875rem;}
  .v3-teaser {font-size:.9375rem; margin-top:8px;}
  .v3-client {font-size:clamp(1.375rem,2.15vw,1.875rem);}
  .v3-name {font-size:.625rem; margin-top:5px;}
  .v3-stage .v3-idea-text {font-size:.9375rem;}
}
@media (min-width:861px) and (max-height:720px) {
  .v3-index {padding-top:6px; padding-bottom:6px;}
  .v3-index-in {grid-template-rows:22px auto 22px 24px minmax(0,1fr);}
  .v3-greeting {font-size:1.625rem;}
  .v3-teaser {font-size:.875rem; line-height:1.3; margin-top:6px;}
  .v3-about,.v3-h,.v3-motion {min-height:22px; font-size:.625rem;}
  .v3-card {padding:4px 0;}
  .v3-client {font-size:1.375rem;}
  .geo {height:22px;}
  .v3-stage {gap:8px; padding:16px;}
  .v3-stage .v3-idea-meta {display:none;}
}
/* A large accessibility text size or an exceptionally short viewport must
   keep every link reachable. Normal desktop windows use the fitted grid. */
@media (min-width:861px) {
  .v3[data-fit-layout="flow"] {height:auto; min-height:calc(100svh - var(--header-h)); grid-template-rows:auto 36px;}
  .v3[data-fit-layout="flow"] .v3-index,.v3[data-fit-layout="flow"] .v3-index-in {height:auto; display:block;}
  .v3[data-fit-layout="flow"] .v3-work ol {height:auto; display:block;}
  .v3[data-fit-layout="flow"] .v3-card {height:auto; min-height:70px;}
  .v3[data-fit-layout="flow"] .v3-wall {position:sticky; top:var(--header-h); height:calc(100svh - var(--header-h) - 36px);}
}

/* Resume: controls, a flexible image row, then the two navigation links. */
@media (min-width:861px) and (min-height:540px) {
  .resume-page {height:calc(100svh - var(--header-h));}
  .resume-page > .wrap {height:100%; min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:12px;}
  .resume-page .side-head--resume {display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 0 0;}
  .resume-page .side-head--resume h1 {font-size:clamp(1.75rem,4svh,2.5rem);}
  .resume-page .resume-actions {margin:0; max-width:none;}
  .resume-page .btn {min-height:44px; padding:10px 16px; font-size:.75rem;}
  .resume-page .resume-sheet {justify-self:center; width:auto; height:100%; min-height:0; max-height:100%; max-width:100%; margin:0; border:0; background:transparent;}
  .resume-page .resume-sheet img {display:block; width:auto; height:100%; max-width:100%; object-fit:contain;}
  .resume-page .cp-bottom {padding:4px 0 10px;}
  .resume-page .cp-bottom a {min-height:36px; font-size:1rem;}
}
