/* A compact invitation into the services side of the same universe. */
.hero-visual { display: flex; flex-direction: column; align-items: center; gap: clamp(18px, 2.5svh, 30px); min-width: 0; }
.hero-visual .portrait { width: min(100%, 440px, 47svh); margin: 0; }
.hero-visual .portrait figcaption { margin-top: 16px; }
.services-entry { width: min(100%, 420px); display: flex; align-items: center; gap: 14px; padding: 13px 18px 13px 12px; border: 1px solid #c3d0ff50; border-radius: 12px; background: #c3d0ff08; transition: border-color .2s, background .2s, transform .2s; }
.services-entry:hover { border-color: var(--lavender); background: #c3d0ff14; transform: translateY(-3px); }
.services-entry-art { flex: 0 0 58px; width: 58px; height: 52px; }
.services-entry-copy { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.services-entry-copy strong { font-weight: 500; color: var(--lavender); font-size: clamp(14px, 1.15vw, 17px); letter-spacing: -.025em; }
.services-entry-copy > span { font-size: 12px; color: var(--muted); }
.entry-arrow { margin-left: auto; font-size: 28px; color: var(--mint); line-height: 1; transition: transform .2s; }
.services-entry:hover .entry-arrow { transform: translate(2px, -2px); }
@media (max-width: 1050px) and (min-width: 821px) { .services-entry { gap: 9px; padding-inline: 9px 13px; } .services-entry-art { width: 48px; flex-basis: 48px; } }
@media (max-width: 820px) {
  .hero { grid-template-rows: repeat(5, auto); grid-template-areas: "intro portrait" "title title" "summary summary" "actions actions" "services services"; row-gap: clamp(14px, 2.2svh, 20px); align-content: safe center; }
  h1 { line-height: 1; }
  .intro { line-height: 1.65; }
  .hero-visual { display: contents; }
  .hero-visual .portrait { width: clamp(139.5px, 24.75svh, 234px); margin: 8px 4px 0 0; }
  .services-entry { grid-area: services; width: 100%; max-width: 420px; gap: 12px; padding: 9px 14px 9px 8px; }
  .services-entry-art { width: 45px; height: 42px; flex-basis: 45px; }
  .services-entry-copy { gap: 6px; }
  .services-entry-copy strong { font-size: 15px; }
  .services-entry-copy > span { font-size: 11px; }
  .entry-arrow { font-size: 25px; }
}
@media (max-height: 650px) and (min-width: 821px) { .hero-visual { gap: 12px; } .hero-visual .portrait { width: min(100%, 38svh); } .services-entry { padding-block: 8px; } .services-entry-art { height: 40px; } }
/* Keep the larger portrait clear of the header and footer on shorter phones. */
@media (max-height: 800px) and (max-width: 820px) and (orientation: portrait) {
  .hero { row-gap: 11px; padding-block: 10px 8px; }
  h1 { font-size: clamp(46px, min(13.65vw, 10svh), 86px); }
  .services-entry { padding-block: 6px; }
  .services-entry-art { height: 38px; }
}
@media (max-height: 740px) and (max-width: 820px) and (orientation: portrait) {
  .hero { row-gap: 7px; padding-block: 7px; }
  h1 { font-size: clamp(36px, min(12.5vw, 8.65svh), 60px); }
  .services-entry { padding-block: 6px; }
  .services-entry-art { height: 38px; }
}
@media (max-height: 650px) and (max-width: 820px) and (orientation: portrait) {
  .site-header { height: 56px; }
  .hero { row-gap: 5px; padding-block: 6px; }
  .intro { line-height: 1.55; }
  .hero-visual .portrait { width: 126px; }
  .site-footer { min-height: 88px; padding-block: 6px 2px; gap: 2px 12px; }
  .motion-toggle, .reset-game { min-height: 28px; }
}
@media (max-height: 560px) and (orientation: portrait) { .hero-visual .portrait { width: 90px; } .services-entry-art { height: 34px; width: 36px; flex-basis: 36px; } .services-entry-copy strong { font-size: 13px; } .services-entry-copy > span { font-size: 10px; } }
@media (max-height: 500px) and (orientation: landscape) {
  .hero { grid-template-columns: minmax(0, 1fr) minmax(230px, .8fr); grid-template-rows: auto; grid-template-areas: none; }
  .hero-visual { display: flex; gap: 10px; }
  .hero-visual .portrait { width: min(100%, 36svh); margin: 0; }
  .services-entry { grid-area: auto; padding: 6px 10px; gap: 8px; }
  .services-entry-art { width: 36px; height: 36px; flex-basis: 36px; }
  .services-entry-copy strong { font-size: 12px; }
  .services-entry-copy > span { font-size: 10px; }
}
@media (max-width: 1024px) and (max-height: 500px) and (orientation: landscape) {
  .hero-visual .portrait { width: min(100%, 40.5svh); margin-top: 8px; }
}
@media (max-height: 330px), (max-width: 300px) {
  .hero { grid-template-columns: 1fr; grid-template-areas: "intro" "title" "summary" "actions" "services"; }
  .hero-visual { display: contents; }
  .services-entry { grid-area: services; }
  .services-entry-art { display: none; }
}
