/* academy-calm-campus-r2 (base rules carried from r1) — calm 2.5D campus inside the homepage hero (.atlas-visual[data-acc-campus]). Scoped: acc-* only. */
/* hero takeover only when the engine has mounted (.acc-campus-hero); one extra :not(#id) beats the B5.5 photo-hero rules */
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);align-items:center;gap:8px;min-height:560px;height:auto;max-height:none;padding:24px 32px 24px 0!important;background:radial-gradient(900px 520px at 70% 45%,#fff,#F2F2F7 70%)!important}
html:root:not(#b55a):not(#b55b):not(#acc1)[dir=rtl] .atlas-hero.acc-campus-hero{padding:24px 0 24px 32px!important}
html:root:not(#b55a):not(#b55b):not(#acc1):is([data-theme=dark],[data-theme=pitch]) .atlas-hero.acc-campus-hero{background:radial-gradient(900px 520px at 70% 45%,#1C1C1E,#000 70%)!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero::before,html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero::after{display:none!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero>.b55-hero-media{display:none!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero h1,html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero h1 em{color:#000!important;-webkit-text-fill-color:#000!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero h1 em{background:linear-gradient(90deg,#0A84FF,#5E5CE6)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero :is(.atlas-lede,.atlas-kicker,.atlas-proof p,.atlas-proof b,.atlas-proof span){color:rgba(60,60,67,.78)!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero :is(.atlas-proof b,.atlas-kicker){color:#1c1c1e!important}
html:root:not(#b55a):not(#b55b):not(#acc1):is([data-theme=dark],[data-theme=pitch]) .atlas-hero.acc-campus-hero h1{color:#fff!important;-webkit-text-fill-color:#fff!important}
html:root:not(#b55a):not(#b55b):not(#acc1):is([data-theme=dark],[data-theme=pitch]) .atlas-hero.acc-campus-hero :is(.atlas-lede,.atlas-kicker,.atlas-proof p,.atlas-proof b,.atlas-proof span){color:rgba(235,235,245,.72)!important}
html:root:not(#b55a):not(#b55b):not(#acc1):is([data-theme=dark],[data-theme=pitch]) .atlas-hero.acc-campus-hero :is(.atlas-proof b,.atlas-kicker){color:#fff!important}
.acc-visual{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;z-index:2}
.acc-map{display:block;width:100%;aspect-ratio:16/10;height:auto;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;overflow:visible}
.acc-map .bld{cursor:pointer;outline:none}.acc-map .bld-in{transition:filter .25s}
.acc-map .bld:hover .bld-in,.acc-map .bld:focus-visible .bld-in{filter:brightness(1.08) drop-shadow(0 0 6px #64D2FF)}
.acc-map .bld.sel .bld-in{filter:url(#selGlow)}.acc-map .pill{cursor:pointer}.acc-map .pill.sel rect{stroke:#0A84FF;stroke-width:2.2}
.acc-map .spin{animation:acc-sp 7s linear infinite}@keyframes acc-sp{to{transform:rotate(360deg)}}
.acc-map .bob{animation:acc-bob 4s ease-in-out infinite}@keyframes acc-bob{50%{transform:translateY(-5px)}}
.acc-map .blink{animation:acc-bl 1.6s infinite}@keyframes acc-bl{50%{opacity:.15}}
@media (prefers-reduced-motion:reduce){.acc-map *{animation:none!important}}
.acc-bar{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}
.acc-sel,.acc-lb{height:36px;border-radius:999px;border:1px solid rgba(127,127,140,.28);background:rgba(255,255,255,.86);color:#000;font:600 13px -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;padding:0 14px;cursor:pointer;max-width:100%}
.acc-lb[aria-pressed=true]{background:#007AFF;color:#fff;border-color:transparent}
[data-theme=dark] .acc-sel,[data-theme=dark] .acc-lb,[data-theme=pitch] .acc-sel,[data-theme=pitch] .acc-lb{background:rgba(28,28,30,.86);color:#fff;border-color:rgba(255,255,255,.16)}
.acc-sel:focus-visible,.acc-lb:focus-visible,.acc-x:focus-visible,.acc-lc:focus-visible,.acc-dw a:focus-visible,.acc-map .bld:focus-visible{outline:3px solid #64D2FF;outline-offset:2px}
.acc-dw{--bg:#fff;--fg:#000;--sec:rgba(60,60,67,.62);--line:rgba(0,0,0,.08);--surf:#F2F2F7;position:fixed;top:84px;inset-inline-end:16px;bottom:16px;width:min(420px,calc(100vw - 32px));z-index:9000;overflow:auto;border-radius:24px;background:var(--bg);color:var(--fg);border:1px solid var(--line);box-shadow:0 24px 60px rgba(0,0,0,.22);transform:translateX(30px);opacity:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s;padding-bottom:18px;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif}
[dir=rtl] .acc-dw{transform:translateX(-30px)}.acc-dw.open{transform:none;opacity:1}
[data-theme=dark] .acc-dw,[data-theme=pitch] .acc-dw,[data-theme=dark] .acc-lv,[data-theme=pitch] .acc-lv{--bg:#1C1C1E;--fg:#fff;--sec:rgba(235,235,245,.62);--line:rgba(255,255,255,.1);--surf:#121214}
.acc-dh{position:sticky;top:0;z-index:2;display:flex;gap:14px;padding:20px 20px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--zc) 18%,var(--bg)),var(--bg));border-bottom:1px solid var(--line)}
.acc-ic{flex:none;width:44px;height:44px;border-radius:12px;background:var(--zc);color:#fff;display:grid;place-items:center;font-size:19px;font-weight:800}
.acc-kick{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--zc)}
.acc-dh h2{margin:2px 0 4px;font-size:21px;letter-spacing:-.02em;color:var(--fg)}.acc-dh p{margin:0;font-size:12.5px;color:var(--sec);line-height:1.45}
.acc-x{margin-inline-start:auto;flex:none;width:32px;height:32px;border-radius:50%;border:0;background:var(--line);color:var(--fg);font-size:14px;cursor:pointer}
.acc-dw section{padding:10px 20px 0}.acc-dw h3{display:flex;gap:8px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--sec);margin:10px 0 6px}.acc-dw h3 em{font-style:normal;color:var(--fg)}
.acc-dw ul{list-style:none;margin:0;padding:0;border-radius:14px;overflow:hidden;background:var(--surf);border:1px solid var(--line)}.acc-dw li+li{border-top:1px solid var(--line)}
.acc-dw li a{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;text-decoration:none;color:var(--fg)!important;font-size:13px;line-height:1.35}.acc-dw li a:hover{background:var(--line)}
.acc-it{flex:1}.acc-bd{display:flex;gap:4px;flex:none;flex-wrap:wrap;justify-content:flex-end;max-width:48%}.acc-bd b{font-size:10px;font-weight:800;padding:3px 7px;border-radius:999px}
.acc-bd .free{background:rgba(52,199,89,.16);color:#1f8a3b}.acc-bd .xp{background:rgba(175,82,222,.14);color:#8e3fc0}.acc-bd .fb{background:rgba(0,122,255,.12);color:#0062cc}.acc-bd .go{background:rgba(0,122,255,.12);color:#007AFF}
[data-theme=dark] .acc-bd .free,[data-theme=pitch] .acc-bd .free{color:#30D158}[data-theme=dark] .acc-bd .xp,[data-theme=pitch] .acc-bd .xp{color:#BF5AF2}[data-theme=dark] .acc-bd .fb,[data-theme=pitch] .acc-bd .fb{color:#64D2FF}
.acc-foot{margin:14px 20px 0;font-size:12px;color:var(--sec)}
.acc-lv{--bg:#F2F2F7;--fg:#000;--sec:rgba(60,60,67,.62);--line:rgba(0,0,0,.08);--surf:#fff;position:fixed;inset:0;z-index:8999;overflow:auto;background:var(--bg);color:var(--fg);padding:84px 44px 110px;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
.acc-lh{display:flex;align-items:center;margin-bottom:14px}.acc-lh h2{margin:0;font-size:24px}
.acc-lg{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.acc-lc{text-align:start;display:flex;flex-direction:column;gap:5px;padding:16px;border-radius:18px;border:1px solid var(--line);background:var(--surf);color:var(--fg);font:inherit;cursor:pointer}.acc-lc:hover{border-color:var(--zc)}
.acc-lc .acc-ic{width:34px;height:34px;font-size:15px}.acc-lc .t{font-weight:750;font-size:15px}.acc-lc .c{font-size:12px;font-weight:800;color:var(--zc)}.acc-lc .w{font-size:12.5px;color:var(--sec);line-height:1.4}
@media (max-width:760px){html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero{grid-template-columns:1fr;padding:0 0 18px!important;min-height:0}html:root:not(#b55a):not(#b55b):not(#acc1)[dir=rtl] .atlas-hero.acc-campus-hero{padding:0 0 18px!important}.acc-visual{padding:0 10px}.acc-dw{top:auto;inset-inline:8px;bottom:8px;width:auto;max-height:76vh;transform:translateY(40px)}[dir=rtl] .acc-dw{transform:translateY(40px)}.acc-dw.open{transform:none}.acc-lv{padding:72px 14px 100px}.acc-sel{flex:1;min-width:0}}
/* ===== academy-calm-campus-r2 overrides: full-viewport campus (appended after the verbatim 1031hk r1 rules) ===== */
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero.acc-full{display:block!important;position:relative;width:100%;height:calc(100vh - var(--acc-hh,68px));height:calc(100dvh - var(--acc-hh,68px));min-height:600px;max-height:none;padding:0!important;overflow:hidden;isolation:isolate;
 background:radial-gradient(120% 90% at 62% 38%,#ffffff 0%,#f4f6fb 46%,#e7ebf4 100%)!important}
html:root:not(#b55a):not(#b55b):not(#acc1)[dir=rtl] .atlas-hero.acc-campus-hero.acc-full{padding:0!important;background:radial-gradient(120% 90% at 38% 38%,#ffffff 0%,#f4f6fb 46%,#e7ebf4 100%)!important}
html:root:not(#b55a):not(#b55b):not(#acc1):is([data-theme=dark],[data-theme=pitch]) .atlas-hero.acc-campus-hero.acc-full{background:radial-gradient(120% 90% at 62% 38%,#1f2026 0%,#0d0d10 52%,#000 100%)!important}
.acc-full .acc-visual{position:absolute;inset:0;z-index:0;display:block;overflow:hidden;perspective:1800px;perspective-origin:50% 40%;touch-action:pan-y pinch-zoom;cursor:grab;contain:strict}
.acc-full .acc-visual:active{cursor:grabbing}
.acc-full .acc-cam{position:absolute;left:50%;top:50%;transform-origin:50% 50%;backface-visibility:hidden}
.acc-full .acc-cam.acc-cl{will-change:transform}
.acc-full .acc-map{width:100%;height:100%;aspect-ratio:auto;overflow:visible}
.acc-full .acc-amb{position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 60% at 30% 0%,rgba(255,255,255,.55),transparent 60%),radial-gradient(130% 100% at 50% 50%,transparent 62%,rgba(30,40,80,.10) 100%)}
:is([data-theme=dark],[data-theme=pitch]) .acc-full .acc-amb{background:radial-gradient(70% 60% at 30% 0%,rgba(120,150,255,.10),transparent 60%),radial-gradient(130% 100% at 50% 50%,transparent 58%,rgba(0,0,0,.55) 100%)}
.acc-full .acc-map .bld:hover .bld-in,.acc-full .acc-map .bld:focus-visible .bld-in{filter:brightness(1.06)}
.acc-paused .acc-map *{animation-play-state:paused!important}
/* compact glass overlay: headline + search + Explore courses */
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full>.atlas-copy{position:absolute;z-index:3;top:clamp(20px,5vh,64px);inset-inline-start:clamp(16px,3.4vw,64px);width:min(500px,calc(100% - 32px));max-width:none;margin:0;padding:26px 28px 22px;border-radius:28px;
 background:linear-gradient(160deg,rgba(255,255,255,.94),rgba(248,250,255,.86));border:1px solid rgba(255,255,255,.85);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 22px 60px rgba(30,40,80,.14);text-align:start}
html:root:not(#b55a):not(#b55b):not(#acc1):is([data-theme=dark],[data-theme=pitch]) .atlas-hero.acc-full>.atlas-copy{background:linear-gradient(160deg,rgba(34,34,38,.92),rgba(22,22,26,.86));border-color:rgba(255,255,255,.10);box-shadow:0 22px 60px rgba(0,0,0,.5)}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full h1{font-size:clamp(30px,2.9vw,50px)!important;line-height:1.04!important;margin:6px 0 10px!important;letter-spacing:-.035em}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full .atlas-lede{font-size:15px!important;margin:0 0 14px!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full .atlas-search{margin:0!important;max-width:none!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full .atlas-proof{margin-top:14px!important;gap:10px!important}
html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full>.atlas-visual{display:none!important}
/* world jump / list / zoom: floating above the B5.5 dock */
.acc-full .acc-bar{position:absolute;z-index:3;left:50%;bottom:clamp(96px,11vh,118px);transform:translateX(-50%);padding:6px;border-radius:999px;background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.85);box-shadow:0 12px 34px rgba(30,40,80,.14);flex-wrap:nowrap;max-width:calc(100% - 24px)}
:is([data-theme=dark],[data-theme=pitch]) .acc-full .acc-bar{background:rgba(28,28,30,.9);border-color:rgba(255,255,255,.1)}
.acc-zm{display:inline-flex;gap:4px}
.acc-z{width:36px;height:36px;border-radius:50%;border:1px solid rgba(127,127,140,.28);background:rgba(255,255,255,.9);color:#000;font:600 17px -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;cursor:pointer;line-height:1}
:is([data-theme=dark],[data-theme=pitch]) .acc-z{background:rgba(44,44,46,.9);color:#fff;border-color:rgba(255,255,255,.16)}
.acc-z:focus-visible{outline:3px solid #64D2FF;outline-offset:2px}
/* glass panels are opaque gradients, not backdrop-filter: a live backdrop blur over the moving campus halved frame rate in testing */
/* dynamic-resolution fallback (engine sets .acc-lite after sustained slow frames): drop the ambient overlay (tilt and oversampling are dropped in JS) */
.acc-lite .acc-amb{display:none}
@media (prefers-reduced-motion:reduce){.acc-full .acc-cam{will-change:auto}}
@media (max-width:999px){html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full>.atlas-copy{top:12px;inset-inline:12px;width:calc(100% - 24px)!important;max-width:none!important;padding:16px 16px 14px;border-radius:22px}
 html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full .atlas-proof{display:none!important}
 html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full .atlas-lede{font-size:13.5px!important;margin-bottom:10px!important}}
@media (max-width:760px){html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-campus-hero.acc-full{min-height:560px;padding:0!important}
 html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full h1{font-size:27px!important}
 html:root:not(#b55a):not(#b55b):not(#acc1) .atlas-hero.acc-full .atlas-kicker{display:none!important}
 .acc-full .acc-bar{bottom:92px;gap:5px;padding:5px}.acc-full .acc-sel{width:128px;flex:none;padding:0 10px}.acc-full .acc-lb{padding:0 10px;white-space:nowrap}.acc-z{width:34px;height:34px}}
