/* Homepage proposal v0.2, scoped. No shared site, book, or project styles are overridden. */
body:has(.home-shell) #title-block-header { display: none; }
body:has(.home-shell) #quarto-content main.content { padding-top: 1rem; }
.home-shell { --home-ink: #243950; --home-accent: #bc7f24; --home-muted: #5c7084; color: #263442; max-width: 1170px; margin: 0 auto 3rem; }
.home-shell *, .home-shell *::before, .home-shell *::after { box-sizing: border-box; }
.home-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: clamp(1.4rem, 4vw, 3.8rem); padding: clamp(1.35rem, 4.1vw, 3.4rem); background: linear-gradient(115deg, #f4f8fc 0%, #fff 80%); border: 1px solid #dce6ef; border-radius: 19px; margin: .4rem 0 2.9rem; }
.home-hero-copy { min-width: 0; }
.home-hero .home-hero-thesis { color: #42627f; font-size: clamp(1.35rem, 2.3vw, 2rem); line-height: 1.25; letter-spacing: -.025em; font-weight: 625; margin: 0 0 1.15rem; max-width: 25ch; }

.home-hero h1 { font-size: clamp(2.2rem, 4.7vw, 4.3rem); color: var(--home-ink); font-weight: 750; line-height: 1.12; letter-spacing: -.035em; margin: 0 0 .55rem; border: 0; }
.home-hero-copy > p:not(.home-hero-thesis) { font-size: 1.06rem; line-height: 1.66; max-width: 55ch; margin: 0 0 .92rem; }
.home-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.6rem 0 .1rem; }
.home-actions p { display: contents; }
.home-actions a.home-button { text-decoration: none; border-radius: 9px; padding: .78rem 1.12rem; font-weight: 690; font-size: .95rem; line-height: 1.32; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.home-button-primary { background: #21456c; color: #fff !important; border: 1px solid #21456c; }
.home-button-primary:hover, .home-button-primary:focus-visible { background: #163556; color: #fff !important; }
.home-button-secondary { color: #21456c !important; background: #fff; border: 1px solid #b8cbdc; }
.home-button-secondary:hover, .home-button-secondary:focus-visible { background: #edf4fc; }
.home-shell a:focus-visible { outline: 3px solid #bb7724; outline-offset: 3px; }
.home-hero-art { text-align: center; min-width: 0; }
.home-hero-art p { margin: 0; }
.home-hero-art .home-hero-image { display: block; width: 100%; height: auto; max-height: 330px; object-fit: contain; }
.home-hero-art .home-art-caption { font-size: .82rem; color: #63778c; margin-top: .5rem; }
.home-shell h2.home-section-title { color: var(--home-ink); font-size: clamp(1.45rem, 2.5vw, 1.85rem); letter-spacing: -.02em; border: 0; padding: 0; margin: 2.55rem 0 1.25rem; }
.home-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.2rem; }
.home-feature { border: 1px solid #dae3ec; border-radius: 15px; overflow: hidden; background: #fff; min-width: 0; display: flex; flex-direction: column; transition: box-shadow .2s, transform .2s; }
.home-feature:hover { box-shadow: 0 10px 24px rgba(31,62,93,.075); transform: translateY(-2px); }
.home-feature > p { margin: 0; background: #f7f9fb; }
.home-feature-art { display: block; width: 100%; height: 205px; object-fit: contain; padding: .7rem; background: #f7fafc; }
.home-feature-art-circuit { object-fit: cover; object-position: center; padding: 0; }
.home-feature-body { padding: 1.3rem; display: flex; flex-direction: column; flex: 1; }
.home-feature-body > p { margin: 0 0 .85rem; line-height: 1.56; }
.home-feature-body > p:last-child { margin-top: auto; margin-bottom: 0; }
.home-feature-body .home-feature-label { color: #8b5d22; font-size: .71rem; font-weight: 790; letter-spacing: .085em; margin-bottom: .48rem; }
.home-feature-body h3 { color: var(--home-ink); font-size: 1.2rem; line-height: 1.3; margin: 0 0 .65rem; }
.home-feature-body a { font-weight: 700; text-decoration-thickness: 1.4px; text-underline-offset: .18em; }
.home-compact-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.1rem; }
.home-compact-item { display: grid; grid-template-columns: 128px minmax(0,1fr); align-items: center; gap: 1rem; min-width: 0; padding: 1rem; border: 1px solid #dce4ed; border-radius: 13px; }
.home-compact-item > p { margin: 0; }
.home-compact-art { display: block; width: 128px; height: 132px; object-fit: contain; }
.home-compact-copy { min-width: 0; }
.home-compact-copy h3 { font-size: 1.09rem; line-height: 1.35; margin: 0 0 .4rem; color: var(--home-ink); }
.home-compact-copy p { font-size: .94rem; line-height: 1.48; margin: .2rem 0 .5rem; }
.home-compact-copy a { font-weight: 650; }
.home-more { margin-top: 2.4rem; padding: 1.1rem 1.4rem; border-left: 3px solid #c29b63; background: #f8fafc; color: #43566c; border-radius: 0 9px 9px 0; font-size: .98rem; line-height: 1.6; }
.home-more p { margin: 0; }
@media (max-width: 990px) { .home-hero { grid-template-columns: minmax(0,1fr) minmax(0,.75fr); gap: 1.2rem; } .home-feature-art { height: 165px; } .home-compact-item { grid-template-columns: 100px minmax(0,1fr); } .home-compact-art { width: 100px; height: 120px; } }
@media (max-width: 940px) {
  .home-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-feature:last-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
  .home-feature:last-child > p { min-height: 220px; }
  .home-feature:last-child .home-feature-art { height: 100%; max-height: 290px; }
}
@media (max-width: 690px) {
  .home-hero { grid-template-columns: 1fr; }
  .home-hero-art { max-width: 430px; margin: 0 auto; }
  .home-feature-grid { grid-template-columns: 1fr; }
  .home-feature:last-child { grid-column: auto; display: flex; }
  .home-feature:last-child .home-feature-art { height: 220px; max-height: none; }
  .home-feature-art { height: 220px; }
  .home-compact-grid { grid-template-columns: 1fr; }
}
@media (max-width: 390px) { .home-hero { padding: 1.1rem; border-radius: 13px; } .home-hero h1 { font-size: 2.08rem; } .home-hero .home-hero-thesis { font-size: 1.4rem; } .home-hero-copy > p:not(.home-hero-thesis) { font-size: .98rem; } .home-actions a.home-button { width: 100%; } .home-compact-item { grid-template-columns: 82px minmax(0,1fr); gap: .75rem; padding: .8rem; } .home-compact-art { width: 82px; height: 110px; } .home-compact-copy h3 { font-size: 1rem; } }
@media (prefers-reduced-motion: reduce) { .home-feature { transition: none; } .home-feature:hover { transform: none; } }

@media (max-width: 350px) { .home-compact-item { grid-template-columns: 1fr; } .home-compact-art { width: 100%; max-width: 160px; height: 125px; margin: 0 auto; } }
