/* Cinematic imagery: full scenes, faithful casts, restrained native controls. */
.world-portals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-width:1130px;margin:0 auto;padding:0 28px 34px}
.world-portal{--world:#214c3b;display:flex;align-items:center;justify-content:center;gap:12px;min-height:64px;padding:15px 18px;border:1px solid #c5a363;border-radius:12px;background:linear-gradient(135deg,var(--world),#10251f);color:#fff8df;font:600 1rem/1.3 'DM Sans',sans-serif;text-decoration:none;box-shadow:0 5px 15px #1a352a18,inset 0 0 0 3px #d5b96f22;transition:transform .2s,box-shadow .2s}
.portal-jungle{--world:#276c56}.portal-dinosaur{--world:#854826}.portal-mythical{--world:#62437d}
.world-portal:hover{transform:translateY(-3px);box-shadow:0 9px 23px #1a352a30,inset 0 0 0 3px #d5b96f33}.world-portal:focus-visible{outline:3px solid #af7d25;outline-offset:4px}
.portal-glint{color:#f0d18c;font-size:1.2rem}.portal-arrow{margin-left:auto;color:#e7c485;font-size:1.6rem}
.world-page-hero .world-panorama{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;display:block}
.world-page-hero .hero-heading>.button{margin-bottom:12px}
.cinematic-page-art{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:14px;margin:28px 0 38px}
.subjects-cinematic-hero{margin-top:0}
.world>img,.subject-card>img,.next-grid img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.learning-editorial>img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.workbook-hero-scene>img,.workbook-hero-scene img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.search-help-art{display:block;width:100%;max-width:560px;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:10px;margin:0 0 22px}
.cart-success .cart-thank-you-art{display:block;width:100%;height:auto;max-height:none;aspect-ratio:16/9;object-fit:contain;border-radius:10px;margin:0 0 20px}
.collection-showcase img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.recommendation-section:before{content:'';width:180px;height:32px;padding:0 12px;background:#fff url('/assets/cinematic/v3-kjd-trail-divider.svg') center/contain no-repeat}


/* Keep all four learning companions visible. */
.learning-lanes{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:760px){.learning-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.world-portals{padding-bottom:34px}.portal-glint{font-size:1.35rem;flex-shrink:0}
@media(max-width:900px){.world-portals{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-inline:22px}.world-portal{min-height:60px}}
@media(max-width:760px){.world-portals{padding:0 18px 26px}.world-portal{padding:12px;font-size:.9375rem;gap:8px}}
@media(prefers-reduced-motion:reduce){.world-portal{transition:none}.world-portal:hover{transform:none}}

/* Proportional leader scenes on every world-selection card. */
.world-choice img{width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain;object-position:center}
.trail-match-invitation{display:block;width:100%;margin-top:26px;padding:26px 20px 22px;border:1px solid #bf9858;border-radius:16px;background:radial-gradient(ellipse at 50% 20%,#fffdf1,#f5edda);color:#214c3b;text-align:center;box-shadow:inset 0 0 0 5px #fffaf0,inset 0 0 0 6px #dec695,0 10px 25px #6c542615;cursor:pointer;transition:box-shadow .18s,border-color .18s}
.trail-match-invitation:hover{border-color:#8b652b;box-shadow:inset 0 0 0 5px #fffaf0,inset 0 0 0 6px #dec695,0 12px 30px #6c542625}
.match-kicker{display:block;font-size:.875rem;letter-spacing:.1em;color:#80602e;font-weight:600}
.match-title{display:block;font:clamp(1.8rem,3vw,2.6rem)/1.15 'Libre Caslon Display',Georgia,serif;max-width:480px;margin:12px auto 20px}
.match-covers{display:flex;justify-content:center;align-items:flex-end;gap:12px;margin:0 auto 22px;max-width:480px}
.match-covers img{width:min(21%,100px);height:auto;aspect-ratio:850/1100;object-fit:contain;box-shadow:0 7px 12px #452c2933;border-radius:2px}
.match-open{display:inline-flex;align-items:center;gap:12px;font-size:1rem;font-weight:600;border-top:1px solid #c4a970;padding:14px 10px 0}
.review-back{border:0;margin-top:8px;padding-top:0}.trail-no-matches{margin-top:24px;padding:24px;border:1px solid #d4be96;border-radius:12px;background:#fffaf0}.trail-no-matches p{margin:10px 0 16px}
@media(max-width:600px){.trail-match-invitation{padding:24px 16px 20px}.match-kicker{letter-spacing:.05em}.match-covers{gap:8px}.match-title{font-size:2rem}.cinematic-page-art{border-radius:9px}}
@media(prefers-reduced-motion:reduce){.trail-match-invitation{transition:none}}
