/* ATR polish guided by unslop, Damir Sokolovsky, CC BY 4.0.
   https://github.com/heydamir/unslop
   Preserve the composition and all particle geometry/timing. */
:root{--ease:cubic-bezier(.22,1,.36,1);--ui-fast:160ms;--ui-enter:200ms}

/* 1. Spacing: related components share a rhythm. */
.team-grid,.feedback-grid,.format-grid,.module-grid,.excursion-grid{gap:24px}
.module-grid article,.format-card>div,.excursion-body{padding:32px}
.team-card-body{padding:24px 0 0}
.feedback-card{padding:24px 0}
.section-heading{margin-bottom:48px}
.hero .lead{margin:32px 0 24px}
.hero-details{margin-top:24px}
.hero-bottom{padding-top:16px;bottom:24px;gap:24px}
.tracks article{padding:24px 0}
.timeline>div,.roles article{padding-top:24px}
.parent-answer{padding-top:24px;margin-top:24px}
.family-checklist{gap:24px 48px}
.excursion-brief{gap:64px;padding-top:48px}
form{gap:24px}label{gap:8px}
select,textarea{padding:12px 16px}
.settings-panel{padding:16px;gap:8px}
.team-card summary{padding:16px 0}
.review-placeholder{padding-top:24px;margin-top:24px}

/* 2–4. Keep the established palette, functional symbols and exact copy. */
.eyebrow,h4,.team-card .eyebrow,.excursion-body h4{color:var(--muted)}
.photo-story .eyebrow,.closing .eyebrow{color:inherit;opacity:.8}
.team-card .team-role{color:var(--ink)}
.checks li:before{color:var(--muted)}
.timeline time,.roles span,.field-experiences article>span{color:var(--muted)}

/* 5. Quiet metadata, readable prose, restrained display tracking. */
.eyebrow{font-size:13px;font-weight:500;letter-spacing:.015em;text-transform:none;line-height:1.5}
h4{font-size:14px;font-weight:500;letter-spacing:0;text-transform:none}
.team-card .eyebrow{font-size:12px;letter-spacing:0;margin-bottom:12px}
.excursion-body h4{font-size:14px;margin:24px 0 12px}
h1{letter-spacing:-.035em}
h2,.chapter-caption h2,.day-panel h3{letter-spacing:-.02em}
h3{letter-spacing:0}
.hero-bottom,.deck-direction{font-size:12px;letter-spacing:0}
.timeline time,.roles span,.day-card summary>span,.tracks article>span,
.field-experiences article>span{font-size:13px;letter-spacing:0;font-variant-numeric:tabular-nums}
.day-navigation,.panel-folio,.family-checklist span{font-variant-numeric:tabular-nums}
.preview-badge{font-size:12px!important;line-height:1.6!important}
.team-portrait>span{font-size:12px;letter-spacing:0;padding:8px 12px}
.team-card h3{font-size:36px;line-height:1.15;margin-bottom:12px}
.team-card .team-role{font-weight:500}
.section-heading>p:not(.eyebrow),.reading>p,.parent-answer p,.excursion-body>p{max-width:64ch}

/* 6. Photographs and words carry the sections; remove repeated card frames. */
.team-card{border:0;border-radius:0;background:transparent;overflow:visible}
.team-portrait{border-radius:4px;overflow:hidden}
.feedback-card{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.feedback-card h3{margin:24px 0 16px}
.feedback-card .preview-badge{border:0;padding:0}
.feedback-card>p:last-child{margin-bottom:0}
.module-grid article{border:0;border-top:1px solid var(--line);border-radius:0;padding:24px 0}
.module-grid h3{margin:16px 0;line-height:1.25}
.module-outcome{padding-top:16px;margin:24px 0}
.team-card-body>p:last-of-type{margin-bottom:24px}

/* 7. Consistent controls and explicit, visible interaction states. */
.season-switch{border-radius:12px;padding:4px}
.season-switch button{border-radius:8px;padding:8px 12px;gap:8px;min-height:36px}
.season-switch b{font-weight:500;letter-spacing:0}
.season-switch span{font-size:12px}
.display-settings>summary,.motion-toggle{border-radius:8px}
.motion-toggle{width:44px;height:44px;flex-shrink:0}
.settings-panel{border-radius:12px;box-shadow:0 8px 24px #0000000f}
.settings-panel button{border-radius:8px;padding:8px 12px}
html[data-theme=dark] .settings-panel{box-shadow:none}
.day-navigation{gap:8px;padding:16px 0 24px}
.day-navigation button{border-radius:8px;min-width:44px;min-height:44px;padding:8px 12px}
.button{border-radius:8px;padding:12px 24px;min-height:48px;gap:32px}
select,textarea{border-radius:8px}
.button:hover{background:var(--ink);color:var(--paper);box-shadow:inset 0 0 0 1px var(--paper)}
.button:hover span{transform:none}
.primary a:hover,.mobile-links a:hover,.text-link:hover{color:var(--clay)}
.languages button:hover{background:var(--sage);border-radius:4px}
.team-card summary:hover,.faq summary:hover{color:var(--clay)}

/* 8–9. Particle visuals unchanged; only interface feedback is standardized. */
.button,.season-switch button,.settings-panel button,.languages button,
.day-navigation button,.motion-toggle,.primary a,.mobile-links a,.text-link,
.team-card summary,.faq summary{transition:color var(--ui-fast) var(--ease),background-color var(--ui-fast) var(--ease),border-color var(--ui-fast) var(--ease),transform var(--ui-fast) var(--ease)}
.primary a:after,.mobile-links a:after,.day-card summary>b,.faq summary>b{transition:transform var(--ui-enter) var(--ease)}

@media(max-width:1099px){.excursion-brief{gap:40px}}
@media(max-width:700px){
 .team-grid,.feedback-grid,.module-grid,.format-grid,.excursion-grid{gap:32px}
 .format-card>div,.excursion-body{padding:24px}
 .team-card-body{padding:24px 0 0}
 .section-heading{margin-bottom:32px}
 .hero .lead{margin:24px 0}
 .hero-bottom{font-size:11px;gap:16px}
 .eyebrow{font-size:12px;margin-bottom:20px}
 .hero h1{letter-spacing:-.03em}
 .day-navigation{padding:16px 0 24px}
 .season-switch button{padding:8px;gap:4px}
 .header-right{gap:4px}
 .motion-toggle{width:36px;height:44px}
 .display-settings>summary{min-width:36px;min-height:44px}
 .family-checklist{gap:16px}
 .excursion-brief{gap:32px}
}
@media(max-width:380px){
 .header{padding:0 8px;gap:4px}
 .season-switch{padding:2px}
 .season-switch button{padding:8px 6px}
 .header-right{gap:2px}
 .motion-toggle{width:32px}
 .display-settings>summary{min-width:32px}
}
@media(prefers-reduced-motion:reduce){.button,.season-switch button,.day-navigation button{transition:none}}
