/* Space School — course reviews, friendly chunky style on the dark course page */
.rv h2{margin-bottom:14px}
.rv-top{display:grid;grid-template-columns:200px 1fr 220px;gap:22px;align-items:center;padding:22px;border-radius:24px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.rv-score{display:grid;justify-items:center;gap:6px;text-align:center}
.rv-avg{font:800 64px/1 "Nunito Sans",Cairo,sans-serif;color:#ffc800;text-shadow:0 5px 0 #b98a00}
.rv-stars{display:flex;gap:4px}.rv-star{width:26px;height:26px}
.rv-score small{color:#c3cfdc;font-weight:700}
.rv-dist{display:grid;gap:8px}
.rv-row{display:grid;grid-template-columns:18px 1fr 30px;align-items:center;gap:10px;color:#dbe4ee;font-weight:800}
.rv-row small{color:#8d99ae;text-align:right}
.rv-bar{height:14px;border-radius:7px;background:rgba(255,255,255,.08);overflow:hidden}
.rv-bar em{display:block;height:100%;width:0;border-radius:7px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.18);transition:width 1s cubic-bezier(.2,.8,.3,1)}
.rv.is-in .rv-bar em{width:var(--w)}
.rv-bar .s5{background:#58cc02}.rv-bar .s4{background:#a5ed6e}.rv-bar .s3{background:#ffc800}.rv-bar .s2{background:#ff9600}.rv-bar .s1{background:#ff4b4b}
.rv-side{display:grid;gap:12px;justify-items:start}
.rv-tops{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rv-tops small{width:100%;color:#8d99ae;font-weight:800}
.rv-tag{display:inline-block;padding:5px 11px;border-radius:999px;font:800 12px/1.2 "Nunito Sans",Cairo,sans-serif;color:#fff;background:#6c7a91;box-shadow:inset 0 -3px 0 rgba(0,0,0,.18)}
.rv-tag.t-fun{background:#ff6fb5}.rv-tag.t-teacher{background:#1cb0f6}.rv-tag.t-learned{background:#58cc02}.rv-tag.t-hard{background:#ff9600}.rv-tag.t-more{background:#8b6cff}
.rv-go{padding:12px 20px;border:0;border-radius:16px;background:#ffc800;color:#2b2d42;font:800 15px "Nunito Sans",Cairo,sans-serif;box-shadow:0 5px 0 #b98a00;cursor:pointer;transition:transform .12s}
.rv-go:hover{transform:translateY(-2px)}.rv-go:active{transform:translateY(3px);box-shadow:0 2px 0 #b98a00}
.rv-wait{color:#ffd84d;font-weight:700}
.rv-track-wrap{position:relative;margin-top:16px}
.rv-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 14px;scrollbar-width:none}
.rv-track::-webkit-scrollbar{display:none}
.rv-card{flex:0 0 min(300px,82%);scroll-snap-align:start;display:grid;gap:10px;align-content:start;padding:16px;border-radius:22px;background:#ffffff;color:#2b2d42;box-shadow:0 6px 0 #c3cfdc;transition:transform .2s}
.rv-card:nth-child(odd):hover{transform:rotate(-1.5deg) translateY(-3px)}.rv-card:nth-child(even):hover{transform:rotate(1.5deg) translateY(-3px)}
.rv-card header{display:flex;align-items:center;gap:10px}
.rv-av{width:52px;height:52px;flex:0 0 52px;border-radius:16px;background:#eef1ff;overflow:hidden;display:grid;place-items:center}
.rv-av svg,.rv-av img{width:100%;height:100%}
.rv-card header b{display:block;font-weight:800}.rv-card header small{display:block;color:#8d99ae;font-size:12px}
.rv-grad{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:#ffc800;color:#2b2d42;font:800 10px "Nunito Sans",sans-serif;font-style:normal;vertical-align:2px}
.rv-cstars{display:flex;gap:3px}.rv-cstars i{width:18px;height:18px;background:#dbe4ee;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.rv-cstars i.on{background:#ffc800}
.rv-ctags{display:flex;flex-wrap:wrap;gap:5px}
.rv-card p{margin:0;color:#3d4a63;line-height:1.5}
.rv-arrow{position:absolute;top:42%;z-index:2;width:40px;height:40px;border:0;border-radius:50%;background:#ffc800;color:#2b2d42;font:800 24px/1 sans-serif;box-shadow:0 4px 0 #b98a00;cursor:pointer}
.rv-arrow.l{left:-14px}.rv-arrow.r{right:-14px}
.rv-empty{margin:16px 0 0;padding:16px;border-radius:18px;background:rgba(255,255,255,.05);color:#dbe4ee;font-weight:800;text-align:center}
/* rating window */
.rv-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:16px;background:rgba(7,10,40,.72);backdrop-filter:blur(4px);animation:rvfade .2s}
@keyframes rvfade{from{opacity:0}}
.rv-box{position:relative;width:min(460px,100%);padding:24px;border-radius:28px;background:#ffffff;color:#2b2d42;text-align:center;box-shadow:0 10px 0 #c3cfdc;animation:rvpop .4s cubic-bezier(.2,1.5,.4,1)}
@keyframes rvpop{from{transform:scale(.7);opacity:0}}
.rv-x{position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:50%;background:#edf2f7;color:#56637a;font-size:16px;cursor:pointer}
.rv-box h3{margin:0 0 12px;font:800 22px "Nunito Sans",Cairo,sans-serif;color:#2b2d42}
.rv-pick{display:flex;justify-content:center;gap:6px}
.rv-p{width:52px;height:52px;padding:0;border:0;background:none;cursor:pointer;transition:transform .12s}
.rv-p svg{width:100%;height:100%;fill:#dbe4ee;filter:drop-shadow(0 3px 0 #b8c5d4)}
.rv-p.is-on svg{fill:#ffc800;filter:drop-shadow(0 3px 0 #b98a00)}
.rv-p:hover{transform:scale(1.12)}.rv-p.is-pop{animation:rvstar .35s cubic-bezier(.2,1.8,.4,1)}
@keyframes rvstar{40%{transform:scale(1.35) rotate(-12deg)}}
.rv-word{margin:6px 0 12px;font:800 18px "Nunito Sans",Cairo,sans-serif;color:#ff9600;min-height:1.3em}
.rv-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:12px}
.rv-chip{border:0;cursor:pointer;opacity:.45;transition:opacity .15s,transform .12s}.rv-chip.is-on{opacity:1;transform:translateY(-2px)}
.rv-box textarea{width:100%;min-height:90px;padding:12px;border:2px solid #dbe4ee;border-radius:16px;background:#f8fafc;color:#2b2d42;font:600 15px "Nunito Sans",Cairo,sans-serif;resize:vertical;box-sizing:border-box}
.rv-box textarea:focus{outline:none;border-color:#1cb0f6}
.rv-err{min-height:1em;margin:6px 0;color:#e04848;font-weight:800}
.rv-send{width:100%;padding:14px;border:0;border-radius:16px;background:#58cc02;color:#fff;font:800 16px "Nunito Sans",Cairo,sans-serif;box-shadow:0 5px 0 #46a302;cursor:pointer}
.rv-send:disabled{opacity:.6}
.rv-thanks{position:relative;display:grid;gap:8px;justify-items:center;padding:20px 0 0}
.rv-thanks b{font:800 28px "Nunito Sans",sans-serif;color:#58cc02}.rv-thanks p{margin:0 0 8px;color:#56637a}
.rv-thanks i{position:absolute;left:50%;top:30px;width:22px;height:22px;animation:rvfly 1.1s ease-out forwards;animation-delay:calc(var(--i) * .05s)}
.rv-thanks i svg{width:100%;height:100%;fill:#ffc800}
@keyframes rvfly{from{transform:translate(-50%,0) scale(.3);opacity:1}to{transform:translate(calc(-50% + (var(--i) - 3.5) * 34px),-80px) rotate(200deg) scale(1);opacity:0}}
@media (max-width:860px){.rv-top{grid-template-columns:1fr}.rv-side{justify-items:center}.rv-arrow{display:none}}
/* keep the arrows beside the cards, never over them */
.rv-track{padding-left:30px;padding-right:30px;scroll-padding:0 30px}
.rv-arrow.l{left:-6px}.rv-arrow.r{right:-6px}
@media (max-width:860px){.rv-track{padding-left:4px;padding-right:4px}}
