body:has(.academy-world){background:#fffcf6}
body:has(.academy-world) .header{background:transparent;border:0;max-width:none;padding:23px 42px;position:absolute;top:0;left:0;right:0;z-index:5}
body:has(.academy-world) .header :is(.how-link,[data-start]),body:has(.academy-world) .footer{display:none}
.academy-world{position:relative;isolation:isolate;min-height:800px;height:100svh;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#fffefa 0%,#fffaf2 55%,#faf2e5 100%);color:#303234}
.world-center{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:420px;text-align:center;z-index:3}
.world-eyebrow{font:10px var(--vinci-font-mono);letter-spacing:.2em;color:#7a6440;margin:0 0 22px}
.world-center h1{font-size:100px;line-height:.95;font-weight:450;letter-spacing:-.075em;margin:0 0 22px}
.world-center h1 span{display:block;font-size:62px;letter-spacing:-.055em;color:#92713b;line-height:1.15}
.world-center>p:not(.world-eyebrow){font-size:16px;line-height:1.6;color:#6f6658;margin:0 0 27px}
.world-start{display:inline-flex;align-items:center;gap:30px;background:#edac40;border:1px solid #e7a337;border-radius:999px;padding:18px 27px;text-decoration:none;color:#422d10;font-size:16px;box-shadow:0 8px 30px #b5802520,inset 0 1px 0 #ffe4aa;transition:transform .2s,box-shadow .2s}
.world-start:hover{transform:translateY(-3px);box-shadow:0 14px 35px #b5802530}
.world-course{display:flex;align-items:center;min-height:44px;width:fit-content;margin:6px auto 0;font-size:12px;color:#6f6658;text-underline-offset:4px;text-decoration-color:#d6cbb7}
.world-links{display:flex;justify-content:center;flex-wrap:wrap;gap:0 22px;margin:6px auto 0}.world-links .world-course{margin:0;gap:5px}
.world-center small{display:block;margin-top:26px;color:#746a5a;font-size:11px}
.world-float{position:absolute;z-index:2;animation:worldFloat 9s ease-in-out infinite;transform-origin:center;width:280px}
.world-float:hover,.world-float:focus-within{animation-play-state:paused;z-index:4}
.world-caption{display:block;text-align:center;font:10px/1.5 var(--vinci-font-mono);color:#7a6440;margin-top:12px}
.world-object{left:7%;top:18%;width:250px;rotate:-9deg}
.world-values{right:5%;top:18%;width:260px;rotate:11deg;animation-delay:-3s}
.world-function{right:5%;bottom:12%;width:260px;rotate:-8deg;animation-delay:-5s;scale:.9}
.world-number{left:8%;bottom:16%;width:250px;rotate:8deg;animation-delay:-2s}
.world-orbit{position:absolute;z-index:0;pointer-events:none;border:1px solid #c9ab7017;border-radius:50%;width:850px;height:850px;left:50%;top:48%;transform:translate(-50%,-50%)}
.orbit-two{width:1150px;height:1150px;border-style:dashed;opacity:.65}
.world-footnote{position:absolute;bottom:25px;left:0;right:0;text-align:center;font-size:12px;color:#746a5a;letter-spacing:.03em}
.academy-world a:focus-visible{outline:2px solid #98703b;outline-offset:5px}
@keyframes worldFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-17px)}}
@media(max-width:1100px){.world-object{left:1%;scale:.8}.world-values{right:0;scale:.8}.world-function{right:0;scale:.72}.world-number{left:1%;scale:.8}.world-center{width:340px}.world-center h1{font-size:88px}.world-center h1 span{font-size:55px}}
@media(max-width:680px){body:has(.academy-world) .header{padding:18px 22px}.academy-world{min-height:850px}.world-center{top:47%;width:290px}.world-center h1{font-size:78px}.world-center h1 span{font-size:51px}.world-center>p:not(.world-eyebrow){font-size:14px}.world-object{top:7%;left:-60px;scale:.57}.world-values{top:8%;right:-60px;scale:.6}.world-function{bottom:4%;right:-45px;scale:.58}.world-number{bottom:9%;left:-65px;scale:.65}.world-caption{display:none}.world-footnote{bottom:18px;font-size:9px}.world-center small{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.world-float{animation:none}.world-start{transition:none}}
@media(min-width:681px) and (max-height:760px){.academy-world{min-height:680px}.world-center{top:48%}.world-center h1{font-size:78px}.world-center h1 span{font-size:49px}.world-center>p:not(.world-eyebrow){font-size:14px;margin-bottom:20px}.world-eyebrow{margin-bottom:15px}.world-object{top:16%}.world-values{top:17%}.world-function{bottom:4%;scale:.65}.world-number{bottom:12%}}
.world-float[role=button]{cursor:pointer;outline-offset:8px;border-radius:20px}
.world-float[role=button]:focus-visible{outline:2px solid #98703b}
.world-float[role=button]:hover .world-caption{color:#795c30}
.world-detail{width:min(600px,calc(100vw - 32px));max-height:85svh;box-sizing:border-box;overflow:auto;border:1px solid #e8dcc2;border-radius:24px;background:#fffdf9;padding:30px;color:#303234;box-shadow:0 30px 100px #4f381b25}
.world-detail::backdrop{background:#eee7d9aa;backdrop-filter:blur(8px)}
.world-detail-close{float:right;border:0;background:transparent;color:#8a7148;font-size:28px;cursor:pointer;width:44px;height:44px}
.world-detail h2{font-size:36px;font-weight:400;letter-spacing:-.04em;margin:10px 0}
.world-detail-copy{font-size:14px;line-height:1.8;color:#5f5a52}
.world-detail-native{margin:20px 0;min-height:100px}
.world-detail-source{border-top:1px solid #eeeeec;padding:15px 0;margin-bottom:12px;font-size:12px;color:#777772}
.world-detail-source h3{margin:0 0 8px;font-size:12px;font-weight:600}.world-detail pre{font:12px/1.8 var(--vinci-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;color:#303234}
.world-detail-note{font-size:11px;color:#746a5a;line-height:1.6}
.world-float [hidden]{display:none!important}
.world-flip-code{margin:0;padding:18px;border:1px solid #e8dcc2;border-radius:16px;background:#fffdf8ee;box-shadow:0 12px 35px #95713712;font:12px/1.8 var(--vinci-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;color:#75592f;animation:codeAppear .45s ease both;min-height:90px}
.world-float[data-code=true]{z-index:4}
.world-caption{font-size:11px;color:#7a6440;letter-spacing:.02em}
.world-more{display:block;margin:7px auto 0;border:0;background:none;color:#746a5a;font:10px var(--vinci-font-ui);text-decoration:underline;text-decoration-color:#ded3c0;text-underline-offset:3px;cursor:pointer;position:relative;z-index:2}
.world-puff{position:absolute;left:50%;top:40%;pointer-events:none;z-index:5}
.world-puff i{position:absolute;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle,#ffe9b0,#eec97988 50%,transparent 75%);animation:magicPuff .8s ease-out var(--delay) both}
@keyframes magicPuff{0%{transform:translate(0,0) scale(.3);opacity:0}20%{opacity:1}100%{transform:translate(var(--px),var(--py)) scale(2.5);opacity:0}}
@keyframes codeAppear{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}
.world-database{left:43%;bottom:2%;width:220px;scale:.7;rotate:5deg;animation-delay:-4s}
.world-footnote{bottom:10px}
@media(min-width:681px){.world-database{left:32%;bottom:0%;scale:.58}.world-number{bottom:13%}.world-function{bottom:7%}.world-center{top:43%}}
@media(max-width:680px){.academy-world{min-height:950px}.world-center{top:43%}.world-database{left:35%;bottom:-1%;scale:.48}.world-number{bottom:16%}.world-function{bottom:10%}.world-more{font-size:12px}.world-caption{display:block;font-size:12px}}
@media(prefers-reduced-motion:reduce){.world-puff i,.world-flip-code{animation:none}.world-puff{display:none}}
.world-database{left:38%;bottom:4%;scale:.8;z-index:2}
@media(min-width:681px) and (max-height:760px){.world-database{left:37%;bottom:1%;scale:.62}.world-center{top:38%}}
@media(max-width:680px){.world-database{left:30%;bottom:4%;scale:.7}.world-center{top:40%}}
.world-database{width:290px;left:36%;bottom:1%;scale:.95;rotate:6deg}
.world-number{width:280px;rotate:10deg}
.world-float{transition:rotate .35s ease}
.world-float:hover{rotate:0deg}
@media(min-width:681px) and (max-height:760px){.world-database{left:35%;bottom:0;scale:.72}}
@media(max-width:680px){.academy-world{min-height:1040px}.world-database{left:20%;bottom:3%;scale:.85}.world-function{bottom:19%}.world-number{bottom:24%}}
/* Keep the invitation quiet; the floating language supplies the detail. */
body:has(.academy-world) .header .brand{display:none}
body:has(.academy-world) .header{justify-content:flex-end}
.world-start{padding:12px 21px;font-size:14px;gap:22px;box-shadow:0 5px 18px #b5802515}
.world-center>p:not(.world-eyebrow){font-size:14px;margin-bottom:22px}
.world-eyebrow{font-size:9px;letter-spacing:.14em}
.world-more{opacity:0;transition:opacity .2s}
.world-float:hover .world-more,.world-float:focus-within .world-more{opacity:1}
.world-caption{font-size:10px}
.world-orbit{display:none}
.world-footnote{font-size:9px;opacity:.7}
@media(hover:none){.world-more{opacity:1}}
@media(min-width:681px){.academy-world{min-height:820px}.world-center{top:37%}.world-database{top:70%;bottom:auto;left:calc(50% - 145px);transform-origin:top center;scale:.85}.world-function{bottom:16%}.world-number{bottom:22%}}
@media(max-width:680px){.world-database{top:77%;bottom:auto;left:calc(50% - 145px);transform-origin:top center;scale:.75}}
/* One viewport: balanced corners, with the invitation kept clear. */
body:has(.academy-world){height:100dvh;overflow:hidden}
body:has(.academy-world) main{height:100dvh;overflow:hidden}
.academy-world{height:100dvh!important;min-height:0!important;overflow:hidden}
.world-center{top:48%!important;width:340px}
.world-center h1{font-size:clamp(55px,7vw,88px)}
.world-center h1 span{font-size:clamp(36px,4.5vw,55px)}
.world-object{top:14%;left:5%;bottom:auto;scale:.78}
.world-database{top:12%!important;right:4%;left:auto!important;bottom:auto!important;width:290px;scale:.78;transform-origin:top center}
.world-number{top:auto;bottom:11%!important;left:5%;scale:.78}
.world-function{top:auto;bottom:10%!important;right:4%;scale:.7}
.world-values{top:auto;bottom:0%;right:auto;left:calc(50% - 130px);scale:.8;rotate:-5deg}
.world-function[data-code=true]{top:60%;bottom:auto!important;transform-origin:top center}
.world-footnote{display:none}
.world-center small{margin-top:17px}
.world-center>p:not(.world-eyebrow){margin-bottom:18px}
@media(max-width:780px){
 .world-center{width:280px;top:46%!important}.world-center h1{font-size:66px}.world-center h1 span{font-size:44px}
 .world-object{left:-42px;top:8%;scale:.54;transform-origin:center top}
 .world-database{right:-57px;top:8%!important;scale:.52}
 .world-number{left:-55px;bottom:10%!important;scale:.55}
 .world-function{right:-47px;bottom:9%!important;scale:.52}
 .world-values{bottom:-2%;scale:.65}
 .world-function[data-code=true]{top:70%;bottom:auto!important}
 .world-caption{font-size:11px}.world-more{font-size:11px}
 .world-center>p:not(.world-eyebrow){font-size:13px}.world-center small{font-size:10px}
}
@media(max-height:650px) and (min-width:781px){
 .world-center h1{font-size:65px}.world-center h1 span{font-size:43px}.world-center{top:46%!important}
 .world-object{top:10%;scale:.65}.world-database{top:9%!important;scale:.65}
 .world-number{bottom:6%!important;scale:.65}.world-function{bottom:3%!important;scale:.6}
 .world-values{bottom:-3%;scale:.7}.world-function[data-code=true]{top:60%}
 .world-eyebrow{margin-bottom:10px}.world-center small{margin-top:12px}
}
@media(max-height:700px) and (max-width:780px){
 .world-center h1{font-size:52px}.world-center h1 span{font-size:36px}.world-center>p:not(.world-eyebrow){font-size:12px;margin-bottom:12px}
 .world-center small{display:none}.world-object,.world-database{scale:.42}.world-number,.world-function{scale:.43}.world-values{scale:.55}
 .world-start{padding:10px 18px;font-size:13px}.world-course{margin-top:12px}.world-links{margin-top:12px}
}

/* The 44px discovery button owns its own touch target. Extending its hit
   area upwards covers the neighbouring caption that flips the illustration. */
@media(hover:none),(pointer:coarse){.world-more{min-height:44px;padding:0 10px}.world-more::before{content:'';position:absolute;inset:0}}

/* Phones: the invitation and all five illustrations share one scrolling
   column. Keep their native layout and touch coordinates at full size. */
@media(max-width:680px){
 body:has(.academy-world),body:has(.academy-world) main{height:auto;overflow:visible}
 .academy-world{height:auto!important;min-height:0!important;overflow:visible;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-items:start;gap:24px;padding:84px 12px 48px}
 .world-center{position:static;transform:none;grid-column:1/-1;width:min(100%,320px)!important;margin:0 auto 14px}
 .world-float,.world-float:hover{position:static;inset:auto!important;animation:none;rotate:0deg!important;scale:none!important;width:min(100%,290px)}
 .world-caption{display:block;font-size:12px}
 .world-more{font-size:12px;min-height:44px;opacity:1}
 .world-more::before{inset:0}
}

/* Armand: no tilted cards. Every example card sits upright at every width;
   the slow float stays (and stops under reduced motion). */
.world-float,.world-float:hover{rotate:0deg!important}

@media(max-width:600px){.world-detail{padding:20px}.world-detail h2{font-size:32px}}
