/* Public GCE page and homepage programme sections. */
.gce-shell { width: 100%; max-width: 1200px; margin: 0 auto; padding-left: 32px; padding-right: 32px; }
/* GCE hero: separate paper images beneath a gradient and blurred action area. */
.gce-intro { position: relative; isolation: isolate; overflow: hidden; min-height: 680px; padding: 124px 0 0; text-align: center; background: radial-gradient(ellipse at 50% 85%, #2c294b, transparent 70%), var(--landing-bg-primary); }
.gce-intro__copy { position: relative; z-index: 2; animation: gce-enter 400ms ease both; }
.gce-intro h1 { font-size: clamp(2.5rem, 5vw, 3.75rem); letter-spacing: -.045em; line-height: 1.06; font-weight: 800; margin: 0 0 18px; }
.gce-intro h1 span { color: #a8a5ff; }
.gce-intro p { max-width: 590px; margin: 0 auto; color: #c2c6d4; font-size: 1rem; line-height: 1.7; }
.gce-intro__papers { position: relative; width: 760px; height: 0; margin: 24px auto 0; }
.gce-intro__paper { position: absolute; width: 245px; filter: drop-shadow(0 18px 20px #0007); }
.gce-intro__paper img { display: block; width: 100%; height: auto; animation: gce-paper-float var(--hero-paper-duration, 9s) ease-in-out infinite; animation-delay: var(--hero-paper-delay, 0s); }
.gce-intro__paper--front { left: 258px; top: 0; --hero-paper-duration: 8s; }
.gce-intro__paper--left { left: 62px; top: 65px; transform: rotate(-14deg); --hero-paper-delay: -2s; }
.gce-intro__paper--right { left: 455px; top: 65px; transform: rotate(14deg); --hero-paper-duration: 10s; --hero-paper-delay: -5s; }
.gce-intro__fade { position: absolute; inset: auto 0 0; height: 220px; z-index: 3; pointer-events: none; background: linear-gradient(to bottom, transparent 0%, rgba(15,17,25,.55) 40%, rgba(15,17,25,.94) 78%, #0f1119 100%); }
.gce-intro__fade::before { content: ""; position: absolute; inset: 0; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); mask-image: linear-gradient(to bottom, transparent, #000 70%); -webkit-mask-image: linear-gradient(to bottom, transparent, #000 70%); }
.gce-intro__actions { position: absolute; bottom: 36px; left: 20px; right: 20px; z-index: 4; display: flex; flex-wrap: nowrap; justify-content: center; align-items: center; gap: 24px; }
.gce-intro__actions .landing-btn { min-height: 52px; padding: 18px 24px; font-size: .9375rem; transition: background-color 180ms ease; }
.gce-intro__secondary { padding: 16px 0; color: #ddddec; font-size: .875rem; font-weight: 600; min-height: 48px; }
.gce-intro__secondary:hover { color: #fff; }
.gce-intro__actions a:focus-visible { outline: 2px solid #c7c4ff; outline-offset: 5px; }
@keyframes gce-enter { from { opacity: .3; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (max-width: 760px) {
    .gce-intro { min-height: 710px; padding-top: 120px; }
    .gce-intro h1 { font-size: 2.5rem; }
    .gce-intro__papers { width: 620px; left: 50%; margin-left: -310px; margin-top: 48px; }
    .gce-intro__paper { width: 250px; }
    .gce-intro__paper--front { left: 185px; }
    .gce-intro__paper--left { left: -10px; top: 55px; }
    .gce-intro__paper--right { left: 380px; top: 55px; }
    .gce-intro__actions { bottom: 24px; left: 16px; right: 16px; gap: 8px; }
    .gce-intro__actions .landing-btn { padding: 16px 12px; gap: 8px; font-size: .875rem; white-space: nowrap; }
    .gce-intro__secondary { font-size: .8125rem; white-space: nowrap; }
    .gce-intro__fade { height: 210px; }
}
@media (max-width: 370px) { .gce-intro { min-height: 745px; } }
.gce-area { overflow-x: clip; }
.gce-area .landing-section { padding-top: 72px; padding-bottom: 72px; scroll-margin-top: 96px; }
.gce-area .landing-section__header { margin-bottom: 32px; }

.home-program { padding: 80px 0; scroll-margin-top: 96px; border-top: 1px solid var(--landing-border); overflow-x: clip; }
.home-program--gce { background: var(--landing-bg-secondary); }
.home-program--school { background: var(--landing-bg-primary); }
.home-program__layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 64px; align-items: center; }
@media (min-width: 761px) {
    .home-program--school .home-program__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
    .home-program--school .home-program__image { grid-column: 1; grid-row: 1; }
    .home-program--school .home-program__content { grid-column: 2; grid-row: 1; }
}
.home-program h2 { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.15; letter-spacing: -.025em; margin: 0 0 24px; }
.home-program__lead { font-size: 1.05rem; color: #c3c8d5; line-height: 1.7; margin: 0 0 24px; max-width: 560px; }
.home-program__features { display: grid; gap: 16px; padding: 0; margin: 0 0 32px; list-style: none; }
.home-program__features li { display: flex; gap: 12px; align-items: flex-start; color: #e0e3eb; font-size: .95rem; line-height: 1.6; }
.home-program__features li > span { color: #a5a7f9; flex: 0 0 16px; }
.home-program__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.home-program .landing-btn { min-height: 48px; transition: background-color 180ms ease, transform 180ms ease; }
.home-program .landing-btn:hover { transform: translateY(-2px); }
.home-program__secondary { display: inline-flex; gap: 8px; align-items: center; min-height: 48px; color: #d3d4ff; font-size: .9rem; font-weight: 600; transition: color 180ms ease; }
.home-program__secondary:hover { color: #fff; }
.home-program__actions :focus-visible { outline: 2px solid #a5a7f9; outline-offset: 4px; }
.home-program .home-program__note { font-size: .82rem; line-height: 1.7; color: #b1b8c8; margin: 24px 0 0; max-width: 560px; }
.home-program__image { margin: 0; overflow: hidden; border-radius: 16px; background: var(--landing-bg-tertiary); border: 1px solid var(--landing-border); }
.home-program__image img { display: block; width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; }
@media (max-width: 900px) { .gce-shell { padding-left: 24px; padding-right: 24px; } .home-program__layout { gap: 32px; } }
@media (max-width: 760px) {
    .home-program__layout { grid-template-columns: 1fr; gap: 32px; }
    .home-program__image img { aspect-ratio: 16 / 9; }
    .home-program { padding: 56px 0; text-align: center; }
    .home-program__lead, .home-program .home-program__note { margin-left: auto; margin-right: auto; }
    .home-program__features li { justify-content: center; }
    .home-program__actions { justify-content: center; }
}
@media (max-width: 600px) { .gce-shell { padding-left: 16px; padding-right: 16px; } .gce-area .landing-section { padding-top: 48px; padding-bottom: 48px; } .home-program { padding: 48px 0; } .home-program h2 { margin-bottom: 16px; } }
@media (prefers-reduced-motion: reduce) { .gce-intro *, .gce-area *, .home-program * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* Each paper is its own image; CSS arranges the stack at every width. */
.gce-paper-stack { position: relative; aspect-ratio: 5 / 4; margin: 0; overflow: hidden; border-radius: 16px; background: radial-gradient(ellipse at 50% 58%, #35344f 0, #1a1d2b 68%); }
.gce-paper-sheet { position: absolute; width: 38.9%; transform: rotate(var(--paper-angle)) translateY(var(--paper-lift, 0px)); transition: transform 400ms ease; }
.gce-paper-sheet img { display: block; width: 100%; height: auto; border-radius: 2px; box-shadow: 0 18px 36px #0006; }
.gce-paper-sheet--left { left: 17.2%; top: 16.9%; --paper-angle: -12deg; --paper-duration: 9s; --paper-delay: -2s; }
.gce-paper-sheet--right { left: 44.4%; top: 13.2%; --paper-angle: 12deg; --paper-duration: 10s; --paper-delay: -5s; }
.gce-paper-sheet--front { left: 30%; top: 13.9%; width: 40%; --paper-angle: -2deg; --paper-duration: 8s; --paper-delay: 0s; }
.gce-paper-stack.animate-visible .gce-paper-sheet img { animation: gce-paper-float var(--paper-duration) ease-in-out infinite; animation-delay: var(--paper-delay); }
@keyframes gce-paper-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@media (hover: hover) and (pointer: fine) { .gce-paper-stack:hover .gce-paper-sheet--left { --paper-lift: -3px; } .gce-paper-stack:hover .gce-paper-sheet--right { --paper-lift: -4px; } .gce-paper-stack:hover .gce-paper-sheet--front { --paper-lift: -6px; } }
@media (prefers-reduced-motion: reduce) { .gce-paper-sheet { --paper-lift: 0px !important; } }
