/* v155: homepage-only soft surfaces. All live content and link behavior stay native. */
body.landing-shell{
 --home-soft-light:#fff;
 --home-soft-shadow:#233d572b;
 --home-soft-inset:#233d5729;
 --home-soft-surface-shadow:-7px -7px 17px var(--home-soft-light),9px 12px 21px var(--home-soft-shadow),inset 1px 1px 1px color-mix(in srgb,var(--home-soft-light) 65%,transparent);
}
html:not([data-theme="chalk-light"]) body.landing-shell{
 --home-soft-light:#ffffff0c;
 --home-soft-shadow:#00000085;
 --home-soft-inset:#00000075;
}
html[data-theme] body.landing-shell{grid-template-rows:auto 1fr auto;align-content:start}
html[data-theme] body.landing-shell>.app-viewport-content{grid-row:2}
html[data-theme] body.landing-shell>.site-footer{grid-row:3}
html[data-theme] body.landing-shell>header.topbar.container.student-mobile-topbar{
 position:relative;inset:auto;grid-row:1;display:flex;align-items:center;justify-content:space-between;
 width:var(--home-desktop-width,min(1000px,calc(100% - 48px)));height:88px;min-height:88px;
 margin:24px auto 0;padding:8px 24px;border:1px solid transparent;border-radius:24px;
 background:var(--bg);box-shadow:var(--home-soft-surface-shadow);color:var(--text);backdrop-filter:none;z-index:210;
}
body.landing-shell>header.topbar::after{display:none}
html[data-theme] body.landing-shell>header.topbar .site-brand{margin:0 auto 0 0;padding:0;background:none;border:0;border-radius:0;box-shadow:none}
html[data-theme] body.landing-shell>header.topbar .site-brand-copy :is(strong,small){color:var(--text)}
html[data-theme] body.landing-shell>header.topbar .mobile-menu-toggle{background:none;border:0;box-shadow:none;color:var(--text);width:48px;height:48px;padding:11px}
html[data-theme] body.landing-shell>header.topbar .mobile-menu-toggle span{background:var(--text)}
html[data-theme] body.landing-shell>header.topbar>nav.open{background:var(--bg);border:1px solid var(--line);border-radius:22px;box-shadow:var(--home-soft-surface-shadow);z-index:300}
html[data-theme] body.landing-shell>header.topbar>nav.open .nav-action{background:var(--bg);border-color:transparent;color:var(--text);box-shadow:-3px -3px 7px var(--home-soft-light),4px 5px 8px var(--home-soft-shadow)}
html[data-theme] body.landing-shell .landing-page{padding:28px 0 0;gap:26px}
body.landing-shell .landing-page .landing-introduction{margin:0 auto;padding:0}
body.landing-shell .landing-page .landing-introduction h1{margin:0}
body.landing-shell .landing-page .landing-value-line{font-size:17px;line-height:1.7;font-weight:650;letter-spacing:0;color:var(--muted)}
body.landing-shell .landing-page .landing-catalog{margin-top:0}
body.landing-shell .landing-page .landing-actions{gap:20px}
/* Card fills always match the active page background, including pink/blue palettes. */
body.landing-shell .landing-page :is(.landing-action,.home-podium,.home-intro,.october-cover){background:var(--bg);color:var(--text);border:1px solid transparent;border-radius:24px;box-shadow:var(--home-soft-surface-shadow);filter:none}
body.landing-shell .landing-page .landing-action{min-height:166px;transition:transform .12s ease;overflow:visible}
body.landing-shell .landing-page .landing-actions .landing-action--game{min-height:150px;overflow:hidden}
/* A quiet live marker, physically top-right in both interface languages. */
body.landing-shell .landing-page .landing-action--game>.landing-game-live{position:absolute;top:18px;right:18px;left:auto;bottom:auto;z-index:2;width:11px;height:11px;border-radius:50%;background:#18a66a;box-shadow:0 0 0 5px #18a66a18;pointer-events:none}
/* Center the game artwork on its own at every viewport size. */
body.landing-shell .landing-page .landing-action--game .landing-action__icon--game{inset:0;width:min(368px,calc(100% - 48px));height:100%;margin:0 auto}
body.landing-shell .landing-page .landing-action--game .landing-action__icon--game img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom}
body.landing-shell .landing-page .landing-action__icon:not(.landing-action__icon--game){display:grid;place-items:center;width:58px;height:58px;min-width:58px;min-height:58px;margin:0 auto 5px;border-radius:50%;border:0;background:var(--bg);color:var(--text);box-shadow:-3px -3px 7px var(--home-soft-light),4px 5px 8px var(--home-soft-shadow)}
body.landing-shell .landing-page .landing-action__copy strong{color:var(--text)}
body.landing-shell .landing-page .landing-action__copy small{color:var(--muted)}
html[data-theme] body.landing-shell .landing-page .landing-action>.landing-action__free{color:var(--muted)}
body.landing-shell .landing-page .landing-action__icon:not(.landing-action__icon--game) svg{width:31px;height:31px;animation:none;transform:none;filter:none}
body.landing-shell .landing-page :is(.landing-action,.october-cover):active{box-shadow:inset 4px 5px 10px var(--home-soft-inset),inset -3px -3px 8px var(--home-soft-light)}
body.landing-shell .landing-page .landing-action:active .landing-action__icon:not(.landing-action__icon--game){box-shadow:inset 3px 3px 7px var(--home-soft-inset),inset -2px -2px 5px var(--home-soft-light)}
body.landing-shell .landing-page :is(.landing-action,.october-cover,.home-podium__avatar):focus-visible{outline:3px solid var(--text);outline-offset:6px}
/* Keep ranking decoration and real avatar links, without making the podium a button. */
body.landing-shell .landing-page .home-podium{height:auto;min-height:152px;overflow:visible;padding:16px 22px}
body.landing-shell .landing-page .home-podium::before,body.landing-shell .landing-page .home-podium::after{display:none}
body.landing-shell .landing-page .home-podium__name{color:var(--text)}
body.landing-shell .landing-page .home-podium__avatar{background:var(--bg);box-shadow:0 0 0 3px var(--bg),-3px -3px 7px var(--home-soft-light),4px 5px 8px var(--home-soft-shadow)}
body.landing-shell .landing-page .home-podium__points{background:var(--bg);border-color:transparent;box-shadow:inset 2px 2px 4px var(--home-soft-inset),inset -2px -2px 4px var(--home-soft-light)}
body.landing-shell .landing-page .home-podium__points :is(strong,span){color:var(--text)}
body.landing-shell .landing-page .home-podium__card--1 .home-podium__points{background:#ffe09a;box-shadow:none}
body.landing-shell .landing-page .home-podium__card--1 .home-podium__points :is(strong,span){color:#4e3611}
body.landing-shell .landing-page .home-podium__empty strong{color:var(--text)}
body.landing-shell .landing-page .home-podium__empty p{color:var(--muted)}
/* Compact October card; artwork and Arabic title occupy separate physical columns. */
body.landing-shell .landing-page>.october-cover{
 position:relative;display:block;width:var(--home-desktop-width,min(1000px,calc(100% - 48px)));max-width:none;
 height:190px;min-height:190px;margin:0 auto;overflow:hidden;isolation:isolate;text-decoration:none;transition:transform .12s ease;
}
body.landing-shell .october-cover-image{position:absolute;inset:auto auto 0 20px;width:42%;height:180px;object-fit:contain;object-position:center bottom;z-index:0;filter:none}
body.landing-shell .october-cover-copy{position:absolute;top:0;bottom:0;right:32px;left:auto;width:50%;max-width:none;margin:0;padding:16px 0;transform:none;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;direction:rtl;text-align:right;z-index:1}
body.landing-shell .october-cover-kicker{display:inline-flex;font-size:12px;font-weight:650;color:var(--muted);padding:0;background:none;border:0}
body.landing-shell .october-cover-copy h2{color:var(--text);font-size:29px;font-weight:800;line-height:1.45;margin:0;letter-spacing:0}
body.landing-shell .october-cover-copy>p{color:var(--muted);font-size:15px;margin:0;font-weight:650}
body.landing-shell .october-cover-copy>p>span{padding-inline:8px}
body.landing-shell .october-cover-button{min-height:0;display:inline-block;margin-top:2px;padding:0;font-size:14px;font-weight:800;background:none;color:var(--text);border:0;border-radius:0;box-shadow:none}
/* The announcements still use saved admin content and retain their calendar and pin. */
body.landing-shell .landing-page .home-intro{min-height:186px;padding:32px 32px 24px}
body.landing-shell .landing-page .home-intro__title{color:var(--text);font-size:26px}
body.landing-shell .landing-page .home-intro__body{color:var(--text);font-size:16px}
body.landing-shell .landing-page :is(.home-intro__title,.home-intro__body) strong{color:var(--text)}
body.landing-shell .landing-page .home-intro__icon{background:var(--bg);color:var(--text);border:0;box-shadow:inset 2px 2px 4px var(--home-soft-inset),inset -2px -2px 4px var(--home-soft-light)}
@media(max-width:760px){
 body.landing-shell{--home-mobile-feature-height:130px}
 html[data-theme] body.landing-shell>header.topbar.container.student-mobile-topbar{width:min(440px,calc(100% - 24px));height:78px;min-height:78px;margin-top:16px;padding:6px 16px;border-radius:20px}
 html[data-theme] body.landing-shell .landing-page{gap:22px;padding-top:24px}
 body.landing-shell .landing-page :is(.landing-action,.home-podium,.home-intro,.october-cover){border-radius:19px}
 body.landing-shell .landing-page .landing-actions{gap:14px}
 body.landing-shell .landing-page .landing-action{min-height:133px}
 body.landing-shell .landing-page .landing-actions .landing-action--game{min-height:var(--home-mobile-feature-height,130px)}
 body.landing-shell .landing-page .landing-action__icon:not(.landing-action__icon--game){width:47px;height:47px;min-width:47px;min-height:47px}
 body.landing-shell .landing-page .landing-action__icon:not(.landing-action__icon--game) svg{width:26px;height:26px}
 body.landing-shell .landing-page .home-podium{min-height:121px;padding:10px 8px}
 body.landing-shell .landing-page>.october-cover{width:min(440px,calc(100% - 24px));height:164px;min-height:164px}
 body.landing-shell .october-cover-image{left:-5px;bottom:0;width:43%;height:140px;object-fit:cover;object-position:49% top}
 body.landing-shell .october-cover-copy{top:0;bottom:0;right:16px;left:auto;width:52%;padding:12px 0;gap:6px;align-items:flex-start;text-align:right}
 body.landing-shell .october-cover-kicker{font-size:10px}
 body.landing-shell .october-cover-copy h2{font-size:21px;line-height:1.4}
 body.landing-shell .october-cover-copy>p{font-size:12px}
 body.landing-shell .october-cover-copy>p>span{padding-inline:3px}
 body.landing-shell .october-cover-button{font-size:12px;margin-top:2px}
 body.landing-shell .landing-page .home-intro{min-height:180px;padding:28px 16px 20px}
 body.landing-shell .landing-page .home-intro__title{font-size:23px}
 body.landing-shell .landing-page .home-intro__body{font-size:14px}
}
@media(max-width:350px){body.landing-shell .october-cover-copy h2{font-size:18px}body.landing-shell .october-cover-kicker{display:none}body.landing-shell .october-cover-copy>p{font-size:11px}}
@media(prefers-reduced-motion:reduce){body.landing-shell .landing-page :is(.landing-action,.october-cover){transition:none}}
/* An earlier layer beats the shared important transform reset on real pointer press. */
@layer foundation{
 body.landing-shell .landing-page :is(.landing-action,.october-cover):active{transform:translateY(4px) scale(.99)!important}
 @media(prefers-reduced-motion:reduce){body.landing-shell .landing-page :is(.landing-action,.october-cover):active{transform:none!important}}
}
