/* R I O M A T H  /  A U R O R A  — visual redesign, non-destructive */
:root{--rio-night:#190d22;--rio-violet:#37133f;--rio-pink:#f2b1d3;--rio-gold:#ffc2a1;--rio-glow:#c37ce1;--rio-surface:#fbf7fc}
html{scroll-behavior:smooth}body{background:#faf6fb;color:#29152f;-webkit-font-smoothing:antialiased}::selection{background:#d78fce;color:#200f29}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.11' filter='url(%23n)'/%3E%3C/svg%3E")}
.topbar{height:80px!important;background:rgba(251,245,252,.82)!important;backdrop-filter:blur(24px) saturate(150%)!important;-webkit-backdrop-filter:blur(24px) saturate(150%);border-bottom:1px solid rgba(119,56,129,.13)!important;box-shadow:0 8px 34px rgba(43,14,54,.035);transition:background .35s,box-shadow .35s}
body.rio-scrolled .topbar{background:rgba(251,245,252,.96)!important;box-shadow:0 12px 40px rgba(43,14,54,.10)}
.brand{font-weight:800!important;letter-spacing:-.075em!important}.topbar nav{gap:clamp(10px,1.5vw,24px)!important}.topbar nav a:not(.nav-cta){position:relative;white-space:nowrap}.topbar nav a:not(.nav-cta):after{content:"";position:absolute;left:0;right:100%;bottom:-9px;height:2px;background:linear-gradient(90deg,#ab65a8,#e79bbf);transition:right .3s}.topbar nav a:hover:after,.topbar nav a[aria-current=page]:after{right:0}.topbar nav .nav-cta{background:linear-gradient(125deg,#52205e,#8e4199)!important;color:white!important;border-radius:100px!important;box-shadow:0 7px 20px #4b175e2c;transition:transform .25s,box-shadow .25s}.topbar nav .nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 28px #4b175e45}
.hero.hero-refined{background:radial-gradient(ellipse at 78% 32%,rgba(160,74,156,.25),transparent 43%),radial-gradient(ellipse at 15% 90%,rgba(113,41,124,.24),transparent 55%),linear-gradient(125deg,#170b20,#2d1239 57%,#210f2d)!important;isolation:isolate;min-height:690px!important}
.hero.hero-refined:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(#b36abb20 1px,transparent 1px),linear-gradient(90deg,#b36abb20 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,transparent 10%,black 100%);z-index:0}
.hero.hero-refined:after{content:"";position:absolute;inset:auto -15% -50% 35%;height:90%;border-radius:50%;border:1px solid #e2a4e124;transform:rotate(-20deg);pointer-events:none}
.hero-refined .hero-inner{position:relative;z-index:2!important;padding-top:clamp(105px,11vw,160px)!important;padding-bottom:95px!important}
.hero-refined h1{font-size:clamp(3.7rem,6.9vw,7.7rem)!important;line-height:1.035!important;letter-spacing:-.075em!important;text-wrap:balance;text-shadow:0 12px 42px #11071630}
.hero-refined h1 i{background:linear-gradient(100deg,#f8d0e9 0%,#ef9ac8 52%,#ca90ef 100%);-webkit-background-clip:text;background-clip:text;color:transparent!important;font-style:italic}
.hero-refined .hero-micro{color:#dfb4db!important;letter-spacing:.25em!important}.hero-refined .eyebrow{color:#e9c5e8!important}.hero-refined p{color:#e6d4e9!important;max-width:610px!important;font-size:clamp(1rem,1.35vw,1.16rem)!important}
.btn{border-radius:100px!important;transition:transform .28s,box-shadow .28s,background .28s!important}.btn:hover{transform:translateY(-3px)}.btn-primary{background:linear-gradient(120deg,#ffd0e9,#e4a0df)!important;color:#2d1337!important;box-shadow:0 12px 35px #ee9bd12a}.btn-primary:hover{box-shadow:0 18px 44px #ee9bd14d}.btn-outline{background:#ffffff08!important;border:1px solid #f5d2ef55!important;backdrop-filter:blur(12px)}
.hero-refined .hero-art{filter:drop-shadow(0 12px 38px #c36caa2e)}.hero-refined .sun{background:linear-gradient(180deg,#ffd6d3 0%,#ffb8b4 17%,#f393ba 43%,#c959a2 69%,#85317f 100%)!important;box-shadow:0 0 100px #e28bb250,0 0 190px #aa4d8d25!important;animation:rio-sun-breathe 8s ease-in-out infinite alternate}.hero-refined .orbit{border-color:#e5b4e548!important}
@keyframes rio-sun-breathe{from{filter:brightness(1);box-shadow:0 0 70px #e28bb23c}to{filter:brightness(1.075);box-shadow:0 0 115px #e28bb25e}}
.specialization.specialization-premium{background:linear-gradient(135deg,#fff8fd 0%,#f5e6f5 48%,#f1e0f4 100%)!important;position:relative;overflow:hidden;border-bottom:1px solid #e7d0e7}.specialization.specialization-premium:before{content:"";position:absolute;width:500px;height:500px;border-radius:50%;border:1px solid #ba82bd2a;right:-230px;top:-240px;pointer-events:none}.specialization-premium .specialization-percent{background:linear-gradient(140deg,#63245f,#c069a0 70%,#d985b2)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}.specialization-math-art{background:linear-gradient(145deg,#fff8ffcc,#f0d9efb5)!important;backdrop-filter:blur(10px);box-shadow:0 28px 65px #7d39831f!important;border-color:#d8add6b0!important;transform:rotate(-2deg)!important;transition:transform .6s,box-shadow .6s}.specialization-math-art:hover{transform:rotate(0) translateY(-6px)!important;box-shadow:0 36px 85px #7d398335!important}
.strip{background:linear-gradient(90deg,#ead7ee,#f5e6f2,#e8d4ef)!important;box-shadow:inset 0 1px #fff8,inset 0 -1px #bd92c533}.strip span{letter-spacing:.11em!important;font-size:clamp(.63rem,.8vw,.8rem)!important}
.section{position:relative}.section-intro .kicker,.kicker{color:#9f599f}.home-highlights,.future-journey,.rio-new-hub{background:radial-gradient(circle at 88% 8%,#f2e4f8 0%,transparent 35%),#fcf9fd!important}.home-highlights h2,.future-journey h2,.rio-new-hub h2{letter-spacing:-.07em!important}.home-highlights h2 i,.future-journey h2 i,.rio-new-hub h2 i{color:#a45ba4!important}
.home-card-grid article,.journey-grid article,.rio-hub-grid>a{position:relative;overflow:hidden;background:linear-gradient(150deg,#fff 0%,#fcf7ff 100%)!important;border:1px solid #e9d6ec!important;border-radius:22px!important;box-shadow:0 14px 38px #4b175e0c!important;transition:transform .35s,box-shadow .35s,border-color .35s!important}.home-card-grid article:before,.journey-grid article:before,.rio-hub-grid>a:before{content:"";position:absolute;top:0;left:12%;right:12%;height:2px;background:linear-gradient(90deg,transparent,#c177c5,transparent);opacity:.6}.home-card-grid article:hover,.journey-grid article:hover,.rio-hub-grid>a:hover{transform:translateY(-8px)!important;box-shadow:0 25px 55px #652c7830!important;border-color:#d7acd9!important}
.future-quote{background:radial-gradient(circle at 75% 20%,#74387d88,transparent 45%),linear-gradient(135deg,#1b0c26,#381640)!important}.future-quote p{background:linear-gradient(110deg,#fff,#f1b5db);-webkit-background-clip:text;background-clip:text;color:transparent!important}.banner{background:linear-gradient(110deg,#5a2465,#8d4595 55%,#b76b9f)!important;position:relative;overflow:hidden}.banner:after{content:"";position:absolute;width:340px;height:340px;border:1px solid #ffffff40;border-radius:50%;right:18%;top:-180px;pointer-events:none}.banner .btn-light{border-radius:100px!important}
.rio-new-hub .rio-hub-grid>a{padding:clamp(24px,3vw,44px)!important}.rio-new-hub .hub-symbol{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:19px;background:linear-gradient(145deg,#f9e3f5,#ead1f0);color:#813d91;font-size:2rem;box-shadow:inset 0 1px #fff}
.rio-subhero-deep,.library-hero{background:radial-gradient(ellipse at 77% 30%,#6a357565,transparent 46%),linear-gradient(135deg,#1b0b25 0%,#34153e 62%,#2b1238 100%)!important;isolation:isolate;overflow:hidden}.rio-subhero-deep:before,.library-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#edb4eb0d 1px,transparent 1px),linear-gradient(90deg,#edb4eb0d 1px,transparent 1px);background-size:80px 80px;pointer-events:none;z-index:0}.rio-subhero-deep h1,.library-hero h1{letter-spacing:-.07em!important;text-shadow:0 12px 50px #14081c33}
.subpage-heading{background:radial-gradient(ellipse at 80% 20%,#713b7645,transparent 48%),linear-gradient(130deg,#1b0d25,#34183d)!important}.subpage-heading h1{letter-spacing:-.07em!important}
.library-hero .library-hero-cta{border-radius:100px!important;box-shadow:0 15px 40px #f0a2d025}.library-main{background:#fcf8fd!important}.library-filterbar{border-radius:18px!important;box-shadow:0 12px 35px #3c1c4c0c}.library-filter{transition:background .25s,color .25s,transform .25s!important}.library-filter:hover{transform:translateY(-2px)}.library-collection img{transition:transform .5s ease,filter .5s ease!important}.library-collection img:hover{transform:scale(1.025);filter:saturate(1.07)}
.grade-section,.official-tracker{background:linear-gradient(160deg,#fcf9ff,#f5ebf8)!important}.grade-stat,.grade-editor,.grade-summary,.official-form,.official-results{border-radius:22px!important;box-shadow:0 15px 45px #3f18510d}.grade-workspace button,.official-form button{transition:transform .2s,box-shadow .2s}.grade-workspace button:hover,.official-form button:hover{transform:translateY(-2px)}
.faq-list details{border-radius:16px!important;transition:box-shadow .25s,border-color .25s}.faq-list details[open]{box-shadow:0 12px 35px #5b2b7112;border-color:#d7b4df!important}
.rio-footer-future{background:radial-gradient(ellipse at 10% 0%,#59286150,transparent 50%),linear-gradient(135deg,#180a22,#2d1036 65%,#1e0c2a)!important;border-top:1px solid #c887c52a;position:relative}.rio-footer-future:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.24;background-image:linear-gradient(#f7c5f70c 1px,transparent 1px),linear-gradient(90deg,#f7c5f70c 1px,transparent 1px);background-size:75px 75px}.rio-footer-future .rio-footer-grid{position:relative}.rio-footer-links a,.rio-footer-contact a{transition:color .25s,transform .25s!important;display:inline-block}.rio-footer-links a:hover,.rio-footer-contact a:hover{color:#ffc1df!important;transform:translateX(4px)}.rio-footer-brand .brand{font-size:1.8rem!important}.rio-footer-links h3,.rio-footer-contact h3{color:#ffe1f4!important}
.rio-contact-toggle{background:linear-gradient(125deg,#6a2b77,#9f4da6)!important;box-shadow:0 10px 32px #35103d50,0 0 0 1px #e4b5e566!important;border-radius:100px!important;transition:transform .3s,box-shadow .3s!important}.rio-contact-toggle:hover{transform:translateY(-4px);box-shadow:0 16px 40px #35103d6b,0 0 0 1px #e4b5e5aa!important}.rio-contact-options{border-radius:20px!important;box-shadow:0 18px 55px #28122d3a!important}
.rio-reveal{opacity:0;transform:translateY(25px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}.rio-reveal.rio-visible{opacity:1;transform:translateY(0)}
.rio-scroll-progress{position:fixed;left:0;top:0;width:0;height:3px;z-index:1100;background:linear-gradient(90deg,#b35ab7,#f3a4c9,#ffceb1);box-shadow:0 0 12px #e6a0d0;pointer-events:none}
@media(max-width:1100px){.topbar nav{gap:12px!important}.topbar nav a{font-size:.72rem!important}}
@media(max-width:900px){.topbar{height:72px!important}.topbar nav{gap:0!important}.hero.hero-refined{min-height:0!important}.hero-refined .hero-inner{padding-top:90px!important;padding-bottom:55px!important}.hero-refined h1{font-size:clamp(3.3rem,10vw,5.8rem)!important}.rio-footer-future .rio-footer-grid{gap:35px}}
@media(max-width:650px){.hero-refined h1{font-size:clamp(3.1rem,12vw,4.8rem)!important}.hero-refined .hero-inner{padding-top:65px!important}.hero-refined .hero-art{min-height:350px!important}.specialization-math-art{transform:none!important}.rio-contact-toggle{padding:12px 16px!important}.rio-contact-widget{right:14px!important;bottom:15px!important}.strip{gap:18px!important;overflow-x:auto!important;justify-content:flex-start!important;padding-inline:20px!important}.strip span{white-space:nowrap}.rio-reveal{transform:translateY(12px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.rio-reveal{opacity:1;transform:none}}

/* Student journeys — replacing placeholder reviews; homepage only */
.rio-stories{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 86% 10%,rgba(142,74,145,.24),transparent 42%),radial-gradient(ellipse at 0% 100%,rgba(91,40,111,.22),transparent 48%),linear-gradient(135deg,#211629 0%,#2a1934 55%,#1d1328 100%);color:#fff;padding:clamp(78px,8vw,122px) 6%}
.rio-stories:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(238,177,228,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(238,177,228,.035) 1px,transparent 1px);background-size:88px 88px;mask-image:linear-gradient(180deg,transparent,black 30%,transparent)}
.rio-stories-shell{max-width:1320px;margin:auto}
.rio-stories-heading{text-align:center;max-width:890px;margin:0 auto 49px}
.rio-stories-kicker{display:block;font:800 .72rem/1.5 'DM Sans',sans-serif;letter-spacing:.19em;color:#e9a1cd;margin-bottom:21px}
.rio-stories-heading h2{font-family:'Manrope',sans-serif;font-size:clamp(2.35rem,4.55vw,4.7rem);line-height:1.1;letter-spacing:-.06em;font-weight:750;margin:0 0 25px;color:#fff;text-wrap:balance}
.rio-stories-heading h2 em{font-family:Georgia,serif;font-weight:400;color:#f1b7dc}
.rio-stories-heading p{font-size:clamp(.98rem,1.2vw,1.07rem);line-height:1.85;color:#d9c7dd;margin:0 auto 13px;max-width:820px}
.rio-stories-heading .rio-stories-lead{color:#f0b6d9;font-weight:650;margin-top:15px}
.rio-stories-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.rio-story-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:410px;padding:clamp(25px,2.8vw,36px);border:1px solid rgba(235,171,225,.20);border-radius:22px;background:linear-gradient(155deg,rgba(83,52,90,.86),rgba(48,32,62,.94));box-shadow:0 20px 50px rgba(13,6,19,.18),inset 0 1px rgba(255,255,255,.065);transition:transform .3s,box-shadow .3s,border-color .3s}
.rio-story-card:before{content:"";position:absolute;top:0;left:15%;right:15%;height:2px;background:linear-gradient(90deg,transparent,#d78dcb,transparent);opacity:.58}
.rio-story-card:hover{transform:translateY(-7px);border-color:rgba(244,188,231,.42);box-shadow:0 28px 60px rgba(13,6,19,.32)}
.rio-story-icon{width:47px;height:47px;display:grid;place-items:center;background:#57365e;border:1px solid rgba(240,176,215,.16);border-radius:14px;color:#f0b0d7;margin-bottom:25px}
.rio-story-icon svg{width:25px;height:25px}
.rio-story-label{font-size:.68rem;line-height:1.5;font-weight:800;letter-spacing:.15em;color:#e9a1cd;margin-bottom:15px}
.rio-story-card h3{font-family:'Manrope',sans-serif;font-size:clamp(1.32rem,1.9vw,1.8rem);line-height:1.32;letter-spacing:-.045em;color:#fff;font-weight:750;margin:0 0 19px;text-wrap:balance}
.rio-story-card>p{font-size:.97rem;line-height:1.8;color:#e5d5e8;margin:0 0 28px;flex:1}
.rio-story-foot{font-size:.92rem;font-weight:750;line-height:1.55;color:#f2b8dc;border-top:1px solid rgba(235,171,225,.23);padding-top:19px;margin-top:auto}
.rio-stories-outro{text-align:center;max-width:780px;margin:51px auto 0}
.rio-stories-outro p{font-family:'Manrope',sans-serif;font-size:clamp(1.3rem,2.2vw,1.95rem);line-height:1.45;letter-spacing:-.035em;color:#fff;margin:0 0 12px}
.rio-stories-outro strong{color:#f2b8dc;font-weight:750}
.rio-stories-outro span{color:#d9bbd8;font-size:.92rem;letter-spacing:.015em}
@media(max-width:1000px){.rio-stories-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rio-story-card:last-child{grid-column:1/-1;min-height:0}.rio-story-card{min-height:350px}}
@media(max-width:680px){.rio-stories{padding:75px 22px}.rio-stories-heading{margin-bottom:33px}.rio-stories-heading h2{font-size:clamp(2.15rem,9vw,3.1rem)}.rio-stories-grid{grid-template-columns:1fr;gap:16px}.rio-story-card,.rio-story-card:last-child{grid-column:auto;min-height:0;padding:28px 25px}.rio-stories-outro{margin-top:37px}}
@media(prefers-reduced-motion:reduce){.rio-story-card{transition:none}.rio-story-card:hover{transform:none}}

/* Mobile nav fix: remove the desktop-wide link underline inside the stacked menu.
   Scoped to navigation only; brand, logo and page artwork are unchanged. */
@media (max-width: 800px) {
  .topbar nav.open { gap: 8px !important; }
  .topbar nav a:not(.nav-cta) {
    font-size: .95rem !important;
    line-height: 1.35;
    padding: 3px 0;
  }
  .topbar nav a:not(.nav-cta)::after {
    content: none !important;
    display: none !important;
  }
  .topbar nav a[aria-current="page"]:not(.nav-cta) {
    text-decoration: none;
    color: #7a3b83;
  }
  .topbar nav .nav-cta { margin-top: 6px; }
}
