/* ===================== iLearn — cinematic standalone ===================== */
:root{
  --paper:#f5f0e3; --paper2:#fffdf8; --stage:#bcb5a1;
  --ink:#2d3e28; --ink2:#243329; --gold:#c0913f; --rose:#8B3A3A;
  --muted:#57534b; --muted2:#857f6e; --line:#2d3e28;
  --rule:rgba(45,62,40,.14);
  --serif:'Libre Caslon Display',serif;
  --serif-t:'Libre Caslon Text',serif;
  --sans:'Libre Franklin',sans-serif;
  --hand:'Caveat',cursive;
  --gut:clamp(22px,6vw,140px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); overflow-x:hidden;
  background-image:radial-gradient(circle at 1px 1px, rgba(45,62,40,.04) 1px, transparent 0);
  background-size:22px 22px;
}
img{display:block;max-width:100%;}
a{color:inherit;}
em{font-style:italic;}
.serif-lg{font-family:var(--serif);font-size:clamp(20px,2.4vw,25px);letter-spacing:-.01em;}

/* ---- shared bits ---- */
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0;}
.eyebrow--rose{color:var(--rose);}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(30px,5vw,48px);line-height:1.04;letter-spacing:-.01em;margin:12px 0 0;}
.h2--light{color:var(--paper);}
.h2 em{color:var(--rose);}
.h2--light em{color:#f2bfb2;}
.sub{font-size:14px;line-height:1.6;color:var(--muted);margin:12px 0 0;}
.ink{text-decoration:underline;text-decoration-style:wavy;text-decoration-color:var(--gold);text-underline-offset:3px;}
.tag{font-size:10px;letter-spacing:.14em;font-weight:700;color:var(--rose);}
.muted-center{font-size:12.5px;color:var(--muted2);text-align:center;margin:9px 0 0;}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;
  font-weight:700;font-size:13px;letter-spacing:.01em;padding:11px 22px;border-radius:100px;
  cursor:pointer;border:none;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .3s,background .3s;will-change:transform;}
.btn--wa{background:#27AE60;color:#fff;box-shadow:0 8px 22px rgba(39,174,96,.28);}
.btn--wa:hover{background:#219d55;box-shadow:0 12px 30px rgba(39,174,96,.4);}
.btn--gold{background:var(--gold);color:var(--paper);box-shadow:0 8px 22px rgba(192,145,63,.3);}
.btn--gold:hover{background:#a87a2f;}
.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--rule);font-weight:600;}
.btn--ghost:hover{background:rgba(45,62,40,.05);}
.btn--lg{padding:15px 28px;font-size:15px;border-radius:14px;}
.btn--block{display:flex;width:100%;padding:16px;border-radius:14px;font-size:15px;}

/* ===================== cursor / progress / rails ===================== */
.cursor-ring,.cursor-dot{position:fixed;top:0;left:0;border-radius:50%;transform:translate(-50%,-50%);
  pointer-events:none;z-index:9999;will-change:transform;display:none;}
.cursor-ring{width:38px;height:38px;border:1.5px solid var(--gold);transition:width .25s,height .25s,background-color .25s;}
.cursor-dot{width:7px;height:7px;background:var(--rose);z-index:10000;transition:opacity .2s;}
body.has-cursor .cursor-ring,body.has-cursor .cursor-dot{display:block;}
body.has-cursor,body.has-cursor a,body.has-cursor button{cursor:none;}

.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--gold),var(--rose));box-shadow:0 0 12px rgba(192,145,63,.6);}

.rail{position:fixed;top:50%;writing-mode:vertical-rl;font-size:10.5px;letter-spacing:.34em;
  text-transform:uppercase;color:rgba(45,62,40,.4);font-weight:600;z-index:5;pointer-events:none;display:none;}
.rail--l{left:18px;transform:translateY(-50%) rotate(180deg);}
.rail--r{right:18px;transform:translateY(-50%);}

/* vocabulary in empty spaces (collision-aware, JS-placed) */
.vocab-w{position:absolute;z-index:5;font-family:var(--serif-t);font-style:italic;
  white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(10px) scale(.96);
  transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1);}
.vocab-w.show{opacity:1;transform:none;}

.ghost-num{position:fixed;font-family:var(--serif);font-size:210px;line-height:.8;
  color:rgba(45,62,40,.05);z-index:0;pointer-events:none;user-select:none;display:none;}
.ghost-num span{font-size:.5em;color:rgba(139,58,58,.1);}
.ghost-num--l{left:4%;top:22%;}
.ghost-num--r{right:4%;bottom:12%;}

/* ===================== top nav ===================== */
.topnav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;
  justify-content:space-between;padding:16px var(--gut);background:transparent;
  transition:background-color .4s,box-shadow .4s,padding .4s,backdrop-filter .4s;}
.topnav.is-stuck{background:rgba(245,240,227,.86);backdrop-filter:blur(12px) saturate(1.4);
  -webkit-backdrop-filter:blur(12px) saturate(1.4);box-shadow:0 1px 0 var(--rule),0 12px 30px rgba(45,62,40,.1);padding:10px var(--gut);}
.topnav__brand{font-family:var(--serif);font-size:25px;color:var(--ink);text-decoration:none;letter-spacing:-.01em;}
.topnav__links{display:flex;align-items:center;gap:28px;}
.topnav__links a{text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink);position:relative;}
.topnav__links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:2px;background:var(--gold);transition:width .3s;}
.topnav__links a:not(.btn):hover::after,.topnav__links a.is-active::after{width:100%;}
.topnav__burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.topnav__burger span{width:24px;height:2px;background:var(--ink);border-radius:2px;transition:.3s;}

/* ===================== HERO ===================== */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;
  padding:120px var(--gut) 70px;overflow:hidden;border-bottom:1px solid var(--line);}
.hero__bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform;}
.blob--gold{width:46vw;height:46vw;background:radial-gradient(circle,rgba(192,145,63,.55),transparent 65%);top:-8%;left:-6%;animation:drift1 18s ease-in-out infinite;}
.blob--green{width:42vw;height:42vw;background:radial-gradient(circle,rgba(45,62,40,.4),transparent 65%);bottom:-12%;right:-4%;animation:drift2 22s ease-in-out infinite;}
.blob--rose{width:30vw;height:30vw;background:radial-gradient(circle,rgba(139,58,58,.32),transparent 65%);top:40%;left:45%;animation:drift3 26s ease-in-out infinite;}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6vw,4vw) scale(1.12)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-5vw,-3vw) scale(1.15)}}
@keyframes drift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-4vw,5vw) scale(.9)}}
.hero__rules{position:absolute;inset:0;
  background-image:repeating-linear-gradient(to bottom, transparent 0 43px, rgba(45,62,40,.05) 43px 44px);
  -webkit-mask-image:linear-gradient(to bottom, transparent, #000 16%, #000 84%, transparent);
          mask-image:linear-gradient(to bottom, transparent, #000 16%, #000 84%, transparent);}
.hero__particles{position:absolute;inset:0;width:100%;height:100%;}

/* photo frame + decorations */
.hero__frame{position:relative;}
.hero__frame::before{content:"";position:absolute;inset:0;transform:translate(14px,14px);
  border:1.5px solid rgba(192,145,63,.8);border-radius:4px;z-index:0;pointer-events:none;}
.hero__frame .carousel{position:relative;z-index:1;}
.photo-tick{position:absolute;width:22px;height:22px;z-index:2;pointer-events:none;display:none;}
.photo-tick--tr{top:-8px;right:-8px;border-top:2px solid var(--gold);border-right:2px solid var(--gold);}
.photo-tick--bl{bottom:-8px;left:-8px;border-bottom:2px solid var(--gold);border-left:2px solid var(--gold);}
.photo-badge{position:absolute;top:-14px;left:-14px;z-index:3;display:none;align-items:center;gap:6px;
  background:var(--ink2);color:#e7c98a;font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.14em;padding:8px 15px;border-radius:100px;box-shadow:0 8px 20px rgba(36,51,41,.3);}
.photo-badge__star{color:var(--gold);}

/* solid 95+ wax stamp */
.hero-seal{position:absolute;z-index:3;width:120px;height:120px;right:-26px;bottom:-26px;
  transform:rotate(-12deg);pointer-events:none;display:none;
  filter:drop-shadow(0 10px 22px rgba(36,51,41,.32));animation:sealStamp .6s cubic-bezier(.2,.7,.2,1) both;}
.hero-seal__ring{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:2.2px;fill:#f1e2c2;}
.hero-seal__big{font-family:var(--serif);font-size:34px;fill:#f7f1e2;text-anchor:middle;}
.hero-seal__sub{font-family:var(--sans);font-size:8px;font-weight:700;letter-spacing:3px;fill:#e7c98a;text-anchor:middle;}
@keyframes sealStamp{0%{opacity:0;transform:rotate(-12deg) scale(1.9)}60%{opacity:1;transform:rotate(-9deg) scale(.95)}100%{opacity:1;transform:rotate(-12deg) scale(1)}}

.hero-note{position:absolute;z-index:1;left:50%;bottom:16%;pointer-events:none;display:none;
  transform:rotate(-4deg);}
.hero-note__text{font-family:var(--hand);font-weight:700;font-size:25px;line-height:1.05;color:var(--rose);}
.hero-note__arrow{position:absolute;right:-58px;bottom:-30px;width:74px;height:56px;overflow:visible;}
.hero-note__arrow path:first-child{stroke-dashoffset:120;animation:draw 1.2s ease 1.6s forwards;}
.hero__grain{position:absolute;inset:0;opacity:.5;mix-blend-mode:multiply;
  background-image:radial-gradient(circle at 1px 1px, rgba(45,62,40,.05) 1px, transparent 0);background-size:18px 18px;}

.hero__inner{position:relative;z-index:2;width:100%;max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:36px;align-items:center;}
.hero__copy{max-width:600px;}
.hero__rating{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;}
.stars{color:var(--gold);letter-spacing:2px;font-size:15px;}
.rating-text{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.hero__emblem{margin-bottom:10px;}
.hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(40px,7vw,76px);line-height:1.0;
  letter-spacing:-.01em;margin:14px 0 0;}
.hero__title .line{display:block;}
.hero__title .word{display:inline-block;opacity:0;transform:translateY(28px) rotate(2deg);
  animation:wordIn .8s cubic-bezier(.2,.8,.2,1) forwards;}
@keyframes wordIn{to{opacity:1;transform:none;}}
.accent-rose{color:var(--rose);font-style:italic;}
.hero__title .line:nth-child(1) .word:nth-child(1){animation-delay:.05s}
.hero__title .line:nth-child(1) .word:nth-child(2){animation-delay:.15s}
.hero__title .line:nth-child(2) .word:nth-child(1){animation-delay:.25s}
.hero__title .line:nth-child(2) .word:nth-child(2){animation-delay:.35s}
.hero__title .line:nth-child(3){position:relative;}
.hero__title .line:nth-child(3) .word{animation-delay:.45s}

.hero__tagline{font-family:var(--serif-t);font-style:italic;font-size:clamp(17px,1.9vw,21px);
  color:var(--rose);margin:18px 0 0;letter-spacing:.01em;}

/* rotating quotes */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.hero__quotes{position:relative;margin:16px 0 0;min-height:clamp(220px,25vh,260px);}
.hero__quote{position:absolute;left:0;right:0;top:0;margin:0;opacity:0;transform:translateY(16px);
  transition:opacity .9s ease,transform .9s ease;}
.hero__quote.is-active{opacity:1;transform:none;}
.hero__quote-text{display:block;font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,4.4vw,54px);line-height:1.14;letter-spacing:-.01em;color:var(--ink);}
.hero__quote-text em{font-style:italic;color:var(--rose);}
.hero__quote-mark{color:var(--gold);font-family:var(--serif);margin-right:.04em;}
.hero__quote-by{display:block;font-style:normal;font-size:12px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--rose);margin-top:20px;}
.hero__quote-by::before{content:"— ";}

.rotator{display:inline-grid;vertical-align:bottom;font-style:italic;color:var(--ink);}
.rotator__word{grid-area:1/1;opacity:0;transform:translateY(14px);transition:opacity .5s,transform .5s;white-space:nowrap;}
.rotator__word.is-active{opacity:1;transform:none;}
.hero__underline{position:absolute;left:0;bottom:-6px;width:62%;max-width:340px;height:14px;overflow:visible;}
.hero__underline path{stroke-dasharray:100;stroke-dashoffset:100;animation:draw 1.1s cubic-bezier(.4,.1,.3,1) 1s forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}

.hero__lede{font-size:clamp(15px,1.7vw,18px);line-height:1.62;color:var(--muted);margin:22px 0 0;max-width:460px;}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;}
.hero__stats{display:flex;align-items:flex-start;gap:22px;margin-top:34px;}
.stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,38px);color:var(--ink);line-height:1;}
.stat span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose);margin-top:7px;display:block;}
.stat__sep{width:1px;height:36px;background:var(--rule);margin-top:4px;}

/* ---- hero carousel ---- */
.hero__media{width:100%;}
.carousel{position:relative;overflow:hidden;border:1px solid var(--line);background:#e8e2d2;
  border-radius:4px;transform-style:preserve-3d;transition:transform .3s ease;}
.carousel__track{display:flex;transition:transform .75s cubic-bezier(.2,.75,.2,1);}
.slide{flex:0 0 100%;margin:0;height:clamp(300px,42vh,560px);overflow:hidden;}
.slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 6s ease;}
.carousel__track .slide.is-active img{transform:scale(1);}
.carousel__shade{position:absolute;left:0;right:0;bottom:0;height:90px;
  background:linear-gradient(to top,rgba(36,51,41,.55),transparent);pointer-events:none;}
.carousel__btn{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border:none;
  background:rgba(245,240,227,.9);color:var(--ink);font-size:18px;cursor:pointer;display:flex;
  align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.15);border-radius:50%;transition:background .2s,transform .2s;}
.carousel__btn:hover{background:#fff;}
.carousel__btn--prev{left:10px;}
.carousel__btn--next{right:10px;}
.carousel__meta{display:flex;align-items:flex-end;justify-content:space-between;margin-top:14px;min-height:50px;}
.carousel__score{font-family:var(--serif);font-size:32px;line-height:.95;color:var(--ink);}
.carousel__name{font-family:var(--hand);font-weight:700;font-size:23px;color:var(--rose);margin-top:3px;line-height:1.05;}
.carousel__label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);margin-top:4px;}
.carousel__dots{display:flex;gap:7px;align-items:center;padding-bottom:4px;}
.carousel__dots button{height:6px;border:none;cursor:pointer;padding:0;background:#d8cba8;width:6px;border-radius:3px;transition:width .3s,background .3s;}
.carousel__dots button.is-active{width:22px;background:var(--gold);}

/* scroll cue */
.scroll-cue{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);width:24px;height:38px;
  border:2px solid var(--rule);border-radius:14px;z-index:3;display:flex;justify-content:center;padding-top:7px;}
.scroll-cue span{width:4px;height:8px;background:var(--gold);border-radius:2px;animation:cue 1.5s infinite;}
@keyframes cue{0%{opacity:0;transform:translateY(-4px)}40%{opacity:1}100%{opacity:0;transform:translateY(10px)}}

/* ===================== marquee ===================== */
.marquee{overflow:hidden;background:var(--ink2);padding:16px 0;white-space:nowrap;}
.marquee__track{display:inline-block;animation:marq 30s linear infinite;font-family:var(--serif);
  font-size:22px;color:var(--gold);letter-spacing:.05em;}
.marquee__track span{padding:0 26px;}
@keyframes marq{to{transform:translateX(-50%);}}

/* ===================== sections ===================== */
.sec{padding:clamp(56px,8vw,104px) var(--gut);position:relative;}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}

/* beyond */
.bigquote{font-family:var(--serif);font-weight:400;font-size:clamp(24px,3.4vw,40px);line-height:1.4;
  margin:20px 0 0;max-width:980px;border:none;padding:0;}
.bigquote em{font-style:italic;}
.bigquote__by{font-family:var(--hand);font-weight:700;font-size:22px;color:var(--rose);margin:20px 0 0;}
.pillars{margin-top:56px;display:grid;grid-template-columns:1fr;gap:0;}
.pillar{padding:26px 0;border-top:1px solid var(--rule);}
.pillar h3{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:13px 0 0;}
.pillar p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:8px 0 0;max-width:420px;}

/* teacher */
.teacher__grid{display:grid;grid-template-columns:1fr;gap:28px;margin-top:18px;align-items:start;}
.teacher__card{border:1px solid var(--line);background:var(--paper2);border-radius:4px;overflow:hidden;}
.portrait{position:relative;width:100%;height:clamp(300px,40vw,540px);
  background:linear-gradient(135deg,#e7e0cf,#d8cba8 60%,#cdb98a);display:flex;align-items:flex-end;justify-content:center;}
.portrait::before{content:attr(data-monogram);position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;font-family:var(--serif);font-size:160px;color:rgba(45,62,40,.12);}
.portrait__hint{font-family:var(--hand);font-weight:700;font-size:20px;color:var(--ink);padding-bottom:18px;position:relative;}
.teacher__cardfoot{display:flex;align-items:baseline;justify-content:space-between;padding:13px 16px;border-top:1px solid var(--line);}
.teacher__text .lead{font-family:var(--serif-t);font-style:italic;font-size:clamp(20px,2.4vw,30px);line-height:1.38;color:var(--ink);margin:0;}
.teacher__text p{font-size:15px;line-height:1.65;color:var(--muted);margin:16px 0 0;}
.teacher__claim{font-family:var(--serif);font-size:15px;line-height:1.65;
  color:var(--ink);margin-top:20px !important;}
.teacher__claim em{font-style:italic;color:var(--rose);}
.chips{margin-top:18px;padding-top:16px;border-top:1px solid #e9e0cd;font-size:11px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--rose);display:flex;gap:14px;flex-wrap:wrap;}
.chips span{position:relative;}
.chips span:not(:last-child)::after{content:"·";color:#d8cba8;margin-left:14px;}
.teacher__text .btn--block{margin-top:24px;}

/* results cards */
.cards{margin-top:32px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.rcard{border:1px solid var(--line);background:var(--paper2);border-radius:4px;overflow:hidden;
  opacity:0;transform:translateY(22px);transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .5s,box-shadow .3s;}
.rcard.in{opacity:1;transform:none;}
.rcard:hover{transform:translateY(-6px) rotate(-1.2deg) scale(1.02);box-shadow:0 18px 36px rgba(45,62,40,.18);}
.rcard__img{position:relative;width:100%;aspect-ratio:4/5;
  background:linear-gradient(135deg,#e7e0cf,#d2c39a);display:flex;align-items:center;justify-content:center;}
.rcard__img::before{content:attr(data-mono);font-family:var(--serif);font-size:64px;color:rgba(45,62,40,.16);}
.rcard__seal{position:absolute;top:6px;right:6px;width:50px;height:50px;display:flex;align-items:center;
  justify-content:center;font-family:var(--serif);font-size:21px;color:var(--gold);}
.rcard__seal svg{position:absolute;inset:0;}
.rcard__body{padding:9px 11px 12px;border-top:1px solid var(--line);}
.rcard__name{font-family:var(--serif);font-size:18px;}
.rcard__meta{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);margin-top:3px;}
.rcard__note{font-family:var(--hand);font-weight:700;font-size:18px;color:var(--gold);margin-top:5px;}
.and-more{text-align:center;padding:24px 0 0;font-family:var(--hand);font-weight:700;font-size:22px;color:var(--rose);}

/* courses */
.courses{margin-top:24px;}
.course{border-top:1px solid var(--line);padding:20px 0;display:grid;grid-template-columns:auto auto 1fr auto;
  align-items:baseline;gap:10px;}
.course:last-child{border-bottom:1px solid var(--line);}
.course__num{font-family:var(--serif);font-size:15px;color:var(--gold);font-style:italic;}
.course__name{font-family:var(--serif);font-size:clamp(20px,2.4vw,26px);}
.course__dots{border-bottom:1px dotted var(--gold);height:.7em;}
.course__meta{font-size:11px;letter-spacing:.08em;color:var(--muted2);}
.course p{grid-column:1/-1;font-size:14px;line-height:1.6;color:var(--muted);margin:9px 0 0 25px;}

/* method (dark) */
.sec--method{background:var(--ink2);color:#faf6ec;margin-top:0;}
.sec--method .eyebrow--rose{color:#f2bfb2;}
.method{margin-top:34px;display:grid;grid-template-columns:1fr;gap:24px;}
.step{display:flex;gap:16px;}
.step__n{font-family:var(--serif);font-size:22px;color:#f2bfb2;flex:none;width:30px;}
.step h4{font-size:16px;font-weight:600;margin:0;}
.step p{font-size:13.5px;line-height:1.55;color:#9aab99;margin:3px 0 0;}

/* voices */
.voices{margin-top:8px;display:grid;grid-template-columns:1fr;}
.voice{display:flex;gap:16px;padding:24px 0;border-top:1px solid var(--line);}
.voice:last-child{border-bottom:1px solid var(--line);}
.voice__score{flex:none;width:50px;text-align:center;padding-top:4px;}
.voice__score b{font-family:var(--hand);font-weight:700;font-size:30px;color:var(--gold);line-height:.9;display:block;}
.voice__score span{font-size:9px;letter-spacing:.06em;color:var(--muted2);margin-top:2px;display:block;}
.voice__q{font-family:var(--serif-t);font-style:italic;font-size:18px;line-height:1.45;margin:0;}
.voice__q .ink,.hero .ink,.bigquote .ink{text-decoration:none;}
.voice__by{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);margin-top:11px;}

/* gallery */
.carousel--wide .slide{height:clamp(300px,46vw,560px);}
.gallery__meta{display:flex;align-items:center;justify-content:space-between;margin-top:14px;min-height:38px;}
.gallery__caption{font-family:var(--hand);font-weight:700;font-size:22px;color:var(--muted);}

/* contact (dark) */
.sec--contact{background:var(--ink2);color:#faf6ec;display:grid;grid-template-columns:1fr;gap:28px;align-items:center;}
.sec--contact .eyebrow--rose{color:#f2bfb2;}
.contact__lede{font-size:14.5px;line-height:1.6;color:#9aab99;margin:15px 0 0;max-width:340px;}
.contact__r .btn--block{margin-top:6px;}
.contact__row{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:#faf6ec;
  margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18);}
.contact__row span{font-size:11px;letter-spacing:.1em;color:#9aab99;}
.contact__row b{font-family:var(--serif);font-size:21px;font-weight:400;}
.contact__where{font-family:var(--sans);font-size:13.5px;color:#c4cebc;font-weight:400;}

/* footer */
.footer{padding:40px var(--gut) 80px;border-top:1px solid var(--line);}
.footer__brand{display:flex;align-items:baseline;gap:9px;}
.footer p{font-size:12.5px;color:var(--muted2);margin:7px 0 0;}
.footer__copy{font-size:11px;color:#a59c86;margin-top:16px;}

/* ===================== pill nav (mobile) ===================== */
.pillnav{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);width:calc(100% - 36px);max-width:440px;
  z-index:100;display:flex;align-items:center;justify-content:space-around;gap:4px;
  background:rgba(45,62,40,.6);border-radius:100px;padding:8px;backdrop-filter:blur(24px) saturate(1.8);
  -webkit-backdrop-filter:blur(24px) saturate(1.8);border:1px solid rgba(245,240,227,.18);
  box-shadow:0 10px 40px rgba(36,51,41,.28),inset 0 1px 0 rgba(245,240,227,.2);}
.pillnav a{flex:1;text-align:center;padding:9px 6px;border-radius:100px;text-decoration:none;
  font-size:12px;font-weight:600;color:#dfe4d4;letter-spacing:.02em;transition:background .3s,color .3s;}
.pillnav a.is-active{background:var(--gold);color:var(--ink2);font-weight:700;box-shadow:0 2px 10px rgba(192,145,63,.4);}
.pillnav__cta{flex:none !important;background:#27AE60;color:#fff !important;padding:10px 16px !important;font-weight:700 !important;}

/* ===================== responsive: desktop ===================== */
@media (min-width:880px){
  .topnav__links{display:flex;}
  .pillnav{display:none;}
  .teacher__grid{grid-template-columns:1fr 1fr;column-gap:60px;}
  .teacher__card{position:sticky;top:96px;}
  .cards{grid-template-columns:repeat(4,1fr);gap:22px;}
  .voices{grid-template-columns:1fr 1fr;column-gap:56px;}
  .pillars{grid-template-columns:repeat(3,1fr);gap:48px;}
  .pillar{border-top:1px solid var(--rule);}
  .method{grid-template-columns:repeat(2,1fr);gap:38px 50px;}
  .sec--contact{grid-template-columns:1.1fr .9fr;column-gap:72px;}
}
@media (min-width:1024px){
  .hero__inner{grid-template-columns:1fr 440px;column-gap:72px;}
  .rail,.ghost-num{display:block;}
}
@media (min-width:768px){
  .hero-seal,.photo-tick{display:block;}
  .photo-badge{display:flex;}
}
@media (min-width:1200px){
  .hero-note{display:block;left:52%;bottom:19%;}
}
@media (max-width:879px){
  .topnav__links{position:fixed;inset:0;background:rgba(245,240,227,.97);flex-direction:column;
    justify-content:center;gap:28px;transform:translateX(100%);transition:transform .4s;z-index:59;}
  .topnav__links a{font-size:22px;}
  body.menu-open .topnav__links{transform:none;}
  .topnav__burger{display:flex;z-index:61;}
  body.menu-open .topnav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  body.menu-open .topnav__burger span:nth-child(2){opacity:0;}
  body.menu-open .topnav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ===================== phones: keep original clean layout ===================== */
@media (max-width:700px){
  .hero__rules{display:none !important;}
}

/* ===================== reduced motion ===================== */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;scroll-behavior:auto !important;}
  .reveal,.rcard{opacity:1 !important;transform:none !important;}
  .hero__title .word{opacity:1 !important;transform:none !important;}
}
