
:root{
  --bg:#05070D;--panel:#0D1320;--panel2:#141C29;--text:#F6F8FC;--muted:#A3ADBC;
  --line:rgba(255,255,255,.12);--line2:rgba(255,255,255,.23);--accent:#7B9CFF;--ice:#9BD8FF;
  --gold:#F2C86A
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  min-height:100vh;color:var(--text);font-family:"DM Sans",sans-serif;line-height:1.6;
  background:
    radial-gradient(circle at 8% 5%,rgba(123,156,255,.09),transparent 28rem),
    radial-gradient(circle at 92% 25%,rgba(155,216,255,.055),transparent 30rem),
    var(--bg);
  overflow-x:hidden
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.shell{width:min(1180px,calc(100% - 36px));margin-inline:auto}

.review-progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:100;background:rgba(255,255,255,.02)}
.review-progress i{height:100%;width:0;display:block;background:linear-gradient(90deg,#657BFF,#9BD8FF,#fff);box-shadow:0 0 15px rgba(123,156,255,.4)}
.review-ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.review-ambient i,.review-ambient b{position:absolute;width:34rem;height:34rem;border-radius:50%;filter:blur(100px);opacity:.08}
.review-ambient i{background:#5A73FF;left:-12rem;top:8vh;animation:floatA 18s ease-in-out infinite alternate}
.review-ambient b{background:#8FD9FF;right:-15rem;top:48vh;animation:floatB 22s ease-in-out infinite alternate}
@keyframes floatA{to{transform:translate(14vw,9vh) scale(1.1)}}@keyframes floatB{to{transform:translate(-10vw,-7vh) scale(.9)}}

.logo{
  font-family:"Manrope",sans-serif;font-size:28px;font-weight:800;letter-spacing:-.07em;
  background:linear-gradient(110deg,#74777e,#fff 24%,#a7abb3 45%,#f7f7f7 65%,#737780);
  color:transparent;-webkit-background-clip:text;background-clip:text
}
.review-nav{
  width:min(1180px,calc(100% - 36px));min-height:69px;margin:18px auto 0;padding:12px 17px;
  position:sticky;top:18px;z-index:40;display:flex;justify-content:space-between;align-items:center;
  border:1px solid var(--line);border-radius:999px;background:rgba(7,10,17,.82);backdrop-filter:blur(20px)
}
.review-nav nav{display:flex;align-items:center;gap:24px;color:var(--muted);font-size:13px;font-weight:700}
.review-nav nav a:hover,.review-nav nav a.active{color:#fff}
.nav-cta{padding:10px 15px;border-radius:999px;background:linear-gradient(135deg,#F8FAFF,#A9B1C0);color:#070A12!important}
.eyebrow{color:#C8D0DC;font-size:10px;font-weight:900;letter-spacing:.17em;text-transform:uppercase}
.btn{
  min-height:49px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;font-weight:800;transition:.18s ease
}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:linear-gradient(135deg,#F9FAFF,#AAB5C9);color:#060914}
.btn.secondary{border:1px solid var(--line);background:rgba(255,255,255,.025)}

.reviews-hero{padding:92px 0 70px;display:grid;grid-template-columns:1.12fr .68fr;gap:55px;align-items:center}
.reviews-hero h1{
  max-width:760px;margin-top:11px;font-family:"Manrope";font-size:clamp(56px,7.5vw,98px);
  line-height:.94;letter-spacing:-.07em
}
.reviews-hero-copy>p:not(.eyebrow){max-width:690px;margin-top:24px;color:var(--muted);font-size:17px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}

.rating-console{
  padding:28px;border:1px solid rgba(123,156,255,.22);border-radius:28px;
  background:radial-gradient(circle at 80% 15%,rgba(123,156,255,.12),transparent 15rem),rgba(13,19,32,.88);
  box-shadow:0 30px 100px rgba(0,0,0,.28)
}
.rating-console-top{display:flex;justify-content:space-between;gap:15px;color:#77849A;font-size:8px;font-weight:900;letter-spacing:.13em}
.average-line{margin-top:19px;display:flex;align-items:flex-end;gap:8px}
.average-line strong{font-family:"Manrope";font-size:74px;line-height:.85;letter-spacing:-.07em}
.average-line span{padding-bottom:8px;color:#8995A7;font-weight:800}
.average-stars{margin-top:15px;display:flex;gap:3px;font-size:19px;color:var(--gold)}
.average-stars .empty{color:#364050}
.average-stars .half{
  background:linear-gradient(90deg,var(--gold) 50%,#364050 50%);
  color:transparent;-webkit-background-clip:text;background-clip:text
}
.rating-bars{margin-top:25px;display:grid;gap:8px}
.rating-bars>div{display:grid;grid-template-columns:24px 1fr 18px;gap:9px;align-items:center;color:#7F8B9C;font-size:8px;font-weight:800}
.rating-bars i{height:5px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
.rating-bars b{height:100%;width:0;display:block;border-radius:inherit;background:linear-gradient(90deg,#6F88FF,#9BD8FF);transition:width .6s ease}
.rating-console>small{display:block;margin-top:18px;color:#626F83;font-size:8px}

.review-controls{padding:36px 0 26px;display:flex;justify-content:space-between;gap:30px;align-items:end;border-top:1px solid var(--line)}
.review-controls h2{margin-top:6px;font-family:"Manrope";font-size:40px;letter-spacing:-.05em}
.control-row{display:flex;gap:9px}
.control-row label{color:#788497;font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.control-row select{
  min-width:150px;margin-top:6px;padding:10px 35px 10px 12px;border:1px solid var(--line);border-radius:12px;
  background:#0D1320;color:#DFE5F0;outline:none
}

.reviews-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-bottom:90px}
.review-card{
  min-height:330px;padding:25px;display:flex;flex-direction:column;position:relative;overflow:hidden;
  border:1px solid var(--line);border-radius:24px;background:linear-gradient(150deg,rgba(255,255,255,.035),rgba(255,255,255,.014)),#0A101B;
  transition:transform .28s cubic-bezier(.2,.8,.2,1),border-color .25s ease,opacity .3s ease;
  transform:translateY(16px);opacity:0
}
.review-card.is-visible{transform:translateY(0);opacity:1}
.review-card:hover{transform:translateY(-4px);border-color:rgba(123,156,255,.25)}
.review-card:before{
  content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-110px;top:-120px;
  background:radial-gradient(circle,rgba(123,156,255,.08),transparent 65%);pointer-events:none
}
.review-top{display:flex;justify-content:space-between;gap:15px;align-items:start}
.reviewer{display:flex;align-items:center;gap:12px}
.reviewer img{width:54px;height:54px;border:1px solid rgba(255,255,255,.10);border-radius:17px;box-shadow:0 10px 25px rgba(0,0,0,.20)}
.reviewer strong,.reviewer span{display:block}
.reviewer strong{font-family:"Manrope";font-size:14px}
.reviewer span{margin-top:2px;color:#79869A;font-size:9px}
.review-top time{color:#69768A;font-size:9px;font-weight:700}
.review-rating{margin-top:20px;display:flex;align-items:center;gap:2px}
.review-rating .star{color:#384250;font-size:14px}.review-rating .star.filled{color:var(--gold)}
.review-rating>strong{margin-left:7px;color:#9EA9B9;font-size:9px}
.review-copy{margin-top:15px;color:#D5DCE7;font-size:13px;line-height:1.72}
.review-meta{margin-top:auto;padding-top:22px;display:flex;gap:6px;flex-wrap:wrap}
.review-meta span{
  padding:6px 8px;border:1px solid rgba(123,156,255,.14);border-radius:999px;
  background:rgba(123,156,255,.035);color:#8094D9;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.08em
}
.team-response{
  margin-top:16px;padding:15px;border:1px solid rgba(123,156,255,.18);border-radius:16px;
  background:rgba(123,156,255,.045)
}
.response-head{display:flex;gap:9px;align-items:center}
.satplus-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(135deg,#DAE4FF,#7B9CFF);color:#08101B;font-size:9px;font-weight:900}
.response-head strong,.response-head small{display:block}
.response-head strong{font-size:10px}.response-head small{margin-top:1px;color:#71809A;font-size:7px}
.team-response p{margin-top:10px;color:#AEB9CA;font-size:10px;line-height:1.55}

.review-disclaimer{
  margin-bottom:90px;padding:30px;display:grid;grid-template-columns:.7fr 1.3fr;gap:35px;align-items:center;
  border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.018)
}
.review-disclaimer h2{margin-top:5px;font-family:"Manrope";font-size:33px;letter-spacing:-.045em}
.review-disclaimer>p{color:#8996A9;font-size:12px;line-height:1.7}

.submit-section{
  padding:70px 0 90px;display:grid;grid-template-columns:.75fr 1.25fr;gap:45px;align-items:start;
  border-top:1px solid var(--line)
}
.submit-copy h2{margin-top:8px;font-family:"Manrope";font-size:clamp(44px,5vw,67px);line-height:.98;letter-spacing:-.06em}
.submit-copy>p:not(.eyebrow){margin-top:18px;color:var(--muted);font-size:13px;line-height:1.7}
.submission-notes{margin-top:25px;display:grid;gap:8px}
.submission-notes>div{padding:11px;display:grid;grid-template-columns:30px 1fr;gap:9px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.018)}
.submission-notes span{color:#7185C8;font-size:8px;font-weight:900}.submission-notes p{color:#9AA6B6;font-size:10px}

.review-form{
  padding:25px;display:grid;gap:18px;border:1px solid rgba(123,156,255,.18);border-radius:27px;
  background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012)),#0B111C
}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.review-form label>span,.star-field legend{display:block;margin-bottom:7px;color:#8895A8;font-size:9px;font-weight:800}
.review-form label small{color:#657287;font-weight:600}
.review-form input[type=text],.review-form input[type=email],.review-form textarea,.review-form select{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#080D16;color:#F4F7FC;outline:none;
  transition:border-color .18s ease,box-shadow .18s ease
}
.review-form textarea{resize:vertical;min-height:150px}
.review-form input:focus,.review-form textarea:focus,.review-form select:focus{border-color:rgba(123,156,255,.42);box-shadow:0 0 0 3px rgba(123,156,255,.06)}
.star-field{border:0}
.star-input{width:max-content;display:flex;flex-direction:row-reverse;gap:2px}
.star-input input{position:absolute;opacity:0;pointer-events:none}
.star-input label{color:#3A4452;font-size:30px;cursor:pointer;transition:color .15s ease,transform .15s ease}
.star-input label:hover,.star-input label:hover~label,.star-input input:checked~label{color:var(--gold)}
.star-input label:hover{transform:scale(1.08)}
.consent{display:grid!important;grid-template-columns:18px 1fr;gap:10px;align-items:start}
.consent input{margin-top:4px}.consent span{margin:0!important;color:#8D9AAB!important;font-size:9px!important;line-height:1.55}
.submit-review-btn{
  min-height:52px;padding:0 17px;display:flex;justify-content:space-between;align-items:center;border:0;border-radius:15px;
  background:linear-gradient(135deg,#F6F8FC,#AAB7CE);color:#060914;font-weight:900;cursor:pointer;transition:.18s ease
}
.submit-review-btn:hover{transform:translateY(-2px)}
.form-note{color:#667386;font-size:8px;line-height:1.55}
.hidden-field{position:absolute!important;left:-9999px!important}

.review-footer{
  padding:33px 0 48px;display:grid;grid-template-columns:auto 1fr;gap:8px 24px;border-top:1px solid var(--line);color:var(--muted)
}
.review-footer small{grid-column:2;color:#626E80;font-size:9px}

.reveal{opacity:0;transform:translateY(24px);transition:.68s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:none}

/* Thank you page */
.thanks-body{display:grid;place-items:center;padding:25px}
.thanks-card{
  width:min(650px,100%);padding:45px;border:1px solid var(--line2);border-radius:30px;background:#0D1320;
  box-shadow:0 30px 100px rgba(0,0,0,.3)
}
.thanks-mark{width:52px;height:52px;display:grid;place-items:center;margin-bottom:24px;border-radius:16px;background:linear-gradient(135deg,#D9E4FF,#7B9CFF);color:#07101B;font-size:22px;font-weight:900}
.thanks-card h1{margin-top:7px;font-family:"Manrope";font-size:52px;line-height:1;letter-spacing:-.06em}
.thanks-card>p:not(.eyebrow){margin-top:18px;color:var(--muted)}

@media(max-width:900px){
  .reviews-hero,.submit-section{grid-template-columns:1fr}
  .reviews-grid{grid-template-columns:1fr}
  .review-disclaimer{grid-template-columns:1fr}
  .review-nav nav a:nth-child(2),.review-nav nav a:nth-child(4){display:none}
}
@media(max-width:650px){
  .shell,.review-nav{width:calc(100% - 22px)}
  .review-nav{border-radius:20px}
  .review-nav nav{gap:12px}.review-nav nav a.active{display:none}
  .reviews-hero{padding-top:62px}
  .review-controls{align-items:stretch;flex-direction:column}
  .control-row{display:grid;grid-template-columns:1fr 1fr}.control-row select{min-width:0;width:100%}
  .field-row{grid-template-columns:1fr}
  .review-card{padding:20px}
  .reviews-hero h1{font-size:58px}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .reveal,.review-card{opacity:1!important;transform:none!important}
}


/* ===== LIVE SUPABASE REVIEW SYSTEM ===== */
.review-avatar{
  --avatar-angle:135deg;
  --avatar-x:30%;
  --avatar-y:30%;
  width:54px;
  height:54px;
  flex:0 0 auto;
  position:relative;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:17px;
  background:
    radial-gradient(circle at var(--avatar-x) var(--avatar-y),rgba(255,255,255,.15),transparent 25%),
    linear-gradient(var(--avatar-angle),rgba(123,156,255,.30),rgba(155,216,255,.08)),
    #111A2A;
  box-shadow:0 10px 25px rgba(0,0,0,.20);
}
.review-avatar:after{
  content:"";
  position:absolute;
  width:70px;height:28px;
  transform:rotate(calc(var(--avatar-angle) / 2));
  background:rgba(255,255,255,.035);
}
.review-avatar span{
  position:relative;
  z-index:2;
  font-family:"Manrope";
  font-size:16px;
  font-weight:800;
  letter-spacing:-.03em;
  color:#E8EEFA;
}
.score-context{
  width:max-content;
  max-width:100%;
  margin-top:12px;
  padding:7px 9px;
  border:1px solid rgba(242,200,106,.15);
  border-radius:9px;
  color:#D9C794;
  background:rgba(242,200,106,.035);
  font-size:8px;
  font-weight:800;
}
.reviews-loading-card,.reviews-empty{
  grid-column:1/-1;
  min-height:260px;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:24px;
  background:#0A101B;
  color:#7D899B;
}
.reviews-loading-card p,.reviews-empty p{margin-top:8px;font-size:11px}
.reviews-empty strong{color:#DDE4EF;font-family:"Manrope";font-size:22px}
.loading-line{
  width:38%;
  height:10px;
  margin-bottom:10px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(123,156,255,.15),rgba(255,255,255,.04));
  background-size:220% 100%;
  animation:reviewShimmer 1.5s linear infinite;
}
.loading-line.wide{width:58%}.loading-line.medium{width:45%}
@keyframes reviewShimmer{to{background-position:-220% 0}}
.review-submit-status{
  min-height:20px;
  font-size:10px;
  font-weight:700;
}
.review-submit-status.success{color:#9DDCB7}
.review-submit-status.error{color:#FFAAAA}
.submit-review-btn:disabled{cursor:wait;opacity:.68;transform:none}

.average-stars .fractional-star{
  --star-fill:100%;
  color:transparent;
  background:linear-gradient(90deg,var(--gold) 0 var(--star-fill),#364050 var(--star-fill) 100%);
  -webkit-background-clip:text;
  background-clip:text;
}


/* ===== SAT+ SIMPLE / ALIVE REVIEWS ===== */
body{
  background:
    radial-gradient(circle at 75% 10%,rgba(123,156,255,.05),transparent 27rem),
    #060914;
}
.review-ambient i{opacity:.045}
.review-ambient b{opacity:.025}
.review-nav{
  width:min(1080px,calc(100% - 40px));
  margin-top:15px;
  padding:10px 13px;
  border-color:rgba(255,255,255,.085);
  background:rgba(7,10,17,.68);
  box-shadow:0 10px 40px rgba(0,0,0,.16);
}
.shell{width:min(1080px,calc(100% - 40px))}
.reviews-hero{
  padding:78px 0 64px;
  grid-template-columns:1.1fr .62fr;
  gap:70px;
}
.reviews-hero h1{font-size:clamp(54px,7vw,86px)}
.rating-console{
  padding:23px;
  border-color:rgba(123,156,255,.13);
  border-radius:21px;
  background:rgba(12,18,30,.58);
  box-shadow:none;
}
.average-line strong{font-size:64px}
.review-controls{
  padding-top:28px;
  border-color:rgba(255,255,255,.075);
}
.review-controls h2{font-size:36px}
.control-row select{
  border-color:rgba(255,255,255,.08);
  background:#0A101B;
}
.reviews-grid{gap:10px;padding-bottom:78px}
.review-card{
  min-height:300px;
  padding:22px;
  border-radius:19px;
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.012);
}
.review-card:before{opacity:.45}
.review-card:hover{
  transform:translateY(-3px);
  border-color:rgba(123,156,255,.16);
}
.team-response{
  border-color:rgba(123,156,255,.12);
  background:rgba(123,156,255,.025);
}
.review-disclaimer{
  margin-bottom:78px;
  padding:26px 0;
  border-left:0;
  border-right:0;
  border-radius:0;
  border-color:rgba(255,255,255,.075);
  background:transparent;
}
.submit-section{
  padding-top:70px;
  border-color:rgba(255,255,255,.075);
}
.submission-notes>div{
  border-color:rgba(255,255,255,.07);
  background:transparent;
}
.review-form{
  padding:23px;
  border-radius:20px;
  border-color:rgba(123,156,255,.12);
  background:rgba(255,255,255,.012);
}
.review-form input[type=text],
.review-form input[type=email],
.review-form textarea,
.review-form select{
  border-color:rgba(255,255,255,.08);
  background:#080D16;
}
.review-footer{border-color:rgba(255,255,255,.075)}
@media(max-width:900px){
  .reviews-hero{grid-template-columns:1fr;gap:36px}
}
@media(max-width:650px){
  .shell,.review-nav{width:calc(100% - 24px)}
}

/* ===== SAT+ readability baseline ===== */
:root{--muted:#AEB9C8}
body{font-size:16px;line-height:1.68;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
p{line-height:1.68}.eyebrow{font-size:11px!important}
button,a,input,select,textarea{line-height:1.45}

.review-nav nav{font-size:14px!important}.reviews-hero>div>p:not(.eyebrow){font-size:16px!important;line-height:1.72}
.rating-console span,.rating-console small{font-size:11px!important}.review-card p{font-size:15px!important;line-height:1.72}
.review-card span,.review-card small{font-size:11px!important}.team-response p{font-size:14px!important}
.control-row select{font-size:13px!important}.review-disclaimer p,.submission-notes p{font-size:14px!important;line-height:1.68}
.review-form label{font-size:12px!important}.review-form input,.review-form textarea,.review-form select{font-size:15px!important}
