
/* Layout: one continuous night-blue hall; gold leaves fall through every dark room; a single ivory band (the schools) breaks it once. */
:root{
  color-scheme:dark;
  --ink:#070E1F;        /* deepest ground */
  --navy:#0E1B3A;       /* main ground */
  --navy-2:#152650;     /* raised ground */
  --ivory:#F3ECDD;      /* text on dark, ground of the one light band */
  --mute:#B7B0A0;       /* secondary text on dark */
  --gold:#C9A961;       /* accent */
  --gold-hi:#F1DFA9;    /* foil highlight */
  --gold-lo:#8E6F2E;    /* foil shadow, text accent on ivory */
  --slate:#39425A;      /* body text on ivory */
  --line:rgba(201,169,97,.28);
  --display:'Cormorant Garamond','Iowan Old Style',Georgia,serif;
  --caps:'Cinzel','Trajan Pro',Georgia,serif;
  --body:'Jost','Avenir Next','Segoe UI',sans-serif;
}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--ivory);font-family:var(--body);font-weight:300;font-size:17px;line-height:1.7;overflow-x:hidden;font-variant-numeric:lining-nums}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--ink)}
a{color:var(--gold)}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold-hi);outline-offset:4px}
#leaves{position:fixed;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}
#progress{position:fixed;left:0;top:env(safe-area-inset-top,0px);height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--gold-lo),var(--gold-hi),var(--gold));z-index:30}
.w{max-width:1180px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));position:relative;z-index:1}
.band{position:relative}
.eyebrow{font-family:var(--caps);font-size:12.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold)}
.foil{background:linear-gradient(100deg,var(--gold-lo) 0%,var(--gold) 22%,var(--gold-hi) 45%,var(--gold) 60%,var(--gold-lo) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 7s ease-in-out infinite}
@keyframes sheen{0%,100%{background-position:100% 0}50%{background-position:0 0}}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;text-wrap:balance}
h2{font-size:clamp(36px,4.6vw,62px);line-height:1.08}
.btn{display:inline-block;font-family:var(--caps);font-size:13px;letter-spacing:.3em;text-transform:uppercase;text-decoration:none;padding:18px 42px;position:relative;overflow:hidden;transition:color .4s,border-color .4s}
.btn.gold{background:linear-gradient(100deg,var(--gold-lo),var(--gold) 35%,var(--gold-hi) 55%,var(--gold) 75%,var(--gold-lo));background-size:200% 100%;color:var(--ink);font-weight:600;transition:background-position .8s}
.btn.gold:hover{background-position:100% 0}
.btn.line{border:1px solid var(--gold);color:var(--ivory)}
.btn.line:hover{color:var(--ink)}
.btn.line::before{content:"";position:absolute;inset:0;background:var(--gold);transform:translateY(101%);transition:transform .45s cubic-bezier(.2,.7,.2,1);z-index:-1}
.btn.line:hover::before{transform:none}
.rule{display:flex;align-items:center;justify-content:center;gap:18px;color:var(--gold)}
.rule::before,.rule::after{content:"";height:1px;width:min(120px,18vw);background:linear-gradient(90deg,transparent,var(--gold))}
.rule::after{transform:scaleX(-1)}
.miniseal{animation:turn 60s linear infinite}
.rise.in{animation:rise 1.1s cubic-bezier(.2,.7,.2,1) backwards}
@keyframes rise{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(7,14,31,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
header.top .w{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:14px}
.mark{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ivory)}
.mark b{font-family:var(--caps);font-weight:500;font-size:clamp(17px,2.2vw,23px);letter-spacing:.3em;display:block;line-height:1}
.mark i{font-family:var(--caps);font-style:normal;font-size:9.5px;letter-spacing:.42em;color:var(--gold);display:block;margin-top:7px}
nav.main{display:flex;align-items:center;gap:30px;font-family:var(--caps);font-size:12px;letter-spacing:.22em;text-transform:uppercase}
nav.main a{color:var(--ivory);text-decoration:none;padding:12px 0;background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .4s}
nav.main a:hover{background-size:100% 1px}
nav.main a.cta{background:none;border:1px solid var(--gold);padding:12px 22px;color:var(--gold)}
nav.main a.cta:hover{background:var(--gold);color:var(--ink)}


/* hero */
.hero{background:radial-gradient(120% 90% at 50% 0%,var(--navy-2) 0%,var(--navy) 45%,var(--ink) 100%);overflow:hidden;min-height:min(104vw,1020px);display:grid;align-items:center;--mx:50%;--my:30%}
.hero .hall{background-image:url('hall.jpg');position:absolute;inset:-6% 0 -6% 0;background-size:cover;background-position:50% 40%;opacity:.95;will-change:transform}
.hero .veil{position:absolute;inset:0;background:radial-gradient(75% 70% at 50% 48%,rgba(7,14,31,.3) 0%,rgba(7,14,31,.62) 55%,rgba(7,14,31,.9) 100%),linear-gradient(180deg,rgba(7,14,31,.2) 0%,rgba(7,14,31,0) 30%,var(--ink) 100%)}
.hero .place{position:absolute;right:max(16px,env(safe-area-inset-right,0px));bottom:18px;z-index:2;font-family:var(--caps);font-size:10.5px;letter-spacing:.3em;color:var(--mute)}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(220px circle at var(--mx) var(--my),rgba(241,223,169,.13),transparent 70%);pointer-events:none}
.hero .w{padding-block:clamp(70px,9vw,110px);text-align:center;width:100%;box-sizing:border-box}
.seal{position:absolute;left:50%;top:50%;width:min(92vw,960px);aspect-ratio:1;transform:translate(-50%,-50%);opacity:.5;pointer-events:none}
.seal svg{width:100%;height:100%;animation:turn 140s linear infinite}
@keyframes turn{to{transform:rotate(360deg)}}
@media (max-width:700px){.seal{opacity:.2}}
.hero h1{font-size:clamp(38px,7.2vw,100px);text-shadow:0 2px 34px rgba(7,14,31,.9);line-height:.98;font-weight:300;margin-top:34px;letter-spacing:-.01em}
.hero h1 span{display:block}
.hero h1 em{font-style:italic;font-weight:400}
.hero h1 .l1{animation:rise 1.2s .15s cubic-bezier(.2,.7,.2,1) both}
.hero blockquote{margin:38px auto 0;max-width:600px;font-family:var(--display);font-style:italic;font-size:clamp(20px,2.3vw,29px);line-height:1.42;text-shadow:0 2px 24px rgba(7,14,31,.95)}
.hero h1 .foil{text-shadow:none}
.hero cite{display:block;margin-top:18px;font-family:var(--caps);font-style:normal;font-size:12px;letter-spacing:.34em;color:var(--gold)}
.hero .cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:44px}

/* credentials */
.creds{border-block:1px solid var(--line);background:rgba(7,14,31,.55)}
.creds .w{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.cred{padding:46px 20px;text-align:center;border-left:1px solid var(--line)}
.cred:first-child{border-left:0}
.cred .n{font-family:var(--display);font-size:clamp(46px,5vw,68px);line-height:1;font-variant-numeric:lining-nums tabular-nums}
.wreath{display:flex;align-items:center;justify-content:center;gap:6px}
.wreath svg{height:clamp(56px,5.6vw,84px);width:auto;flex:none;color:var(--gold);margin-block:-10px}
.wreath svg.r{transform:scaleX(-1)}
.cred .t{font-family:var(--caps);font-size:12px;letter-spacing:.24em;text-transform:uppercase;margin-top:16px}
.cred .s{font-size:14px;color:var(--mute);margin-top:6px}
@media (max-width:520px){.cred{border-left:0;border-top:1px solid var(--line)}.cred:first-child{border-top:0}}

/* press */
.press{background:var(--ink);border-bottom:1px solid var(--line)}
.press .w{padding-block:40px;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:14px clamp(24px,4vw,56px);text-align:center}
.press .eyebrow{flex:1 0 100%;margin-bottom:6px}
.press a{font-family:var(--display);font-size:clamp(22px,2.4vw,30px);color:var(--ivory);text-decoration:none;padding:8px 0;background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .4s,color .4s}
.press a:hover{background-size:100% 1px;color:var(--gold-hi)}

/* schools: the one ivory band */
.schools{background:var(--ivory);color:var(--ink);padding-block:clamp(70px,9vw,120px);overflow:hidden;z-index:1}
.schools .eyebrow{color:var(--gold-lo)}
.schools .head{text-align:center}
.schools p.note{max-width:620px;margin:26px auto 0;text-align:center;color:var(--slate)}
.marq{display:flex;width:max-content;margin-top:46px;font-family:var(--display);font-size:clamp(30px,4.2vw,58px);line-height:1.2;white-space:nowrap}
.marq>div{display:flex;animation:slide 46s linear infinite}
.marq.rev>div{animation-direction:reverse;animation-duration:58s}
.marq.rev{margin-top:10px;font-style:italic;color:var(--gold-lo)}
.marq span{padding-inline:.55em}
.marq span::after{content:"\2766";font-style:normal;font-size:.5em;color:var(--gold-lo);margin-left:1.1em;vertical-align:middle}
.schools:hover .marq>div{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-100%)}}

/* founder */
.founder{background:linear-gradient(180deg,var(--ink),var(--navy) 60%,var(--ink))}
.founder .w{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(40px,7vw,100px);padding-block:clamp(90px,11vw,150px)}
.frame{flex:1 1 320px;max-width:440px;aspect-ratio:4/5;perspective:900px}
.frame .card{width:100%;height:100%;border:1px solid var(--gold);padding:14px;box-sizing:border-box;transition:transform .25s ease-out;transform-style:preserve-3d;background:linear-gradient(135deg,rgba(241,223,169,.1),transparent 40%)}
.frame .inner{width:100%;height:100%;border:1px solid var(--line);background:radial-gradient(circle at 50% 35%,var(--navy-2),var(--ink));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:24px;box-sizing:border-box}
.frame .inner small{font-family:var(--caps);font-size:11px;letter-spacing:.3em;color:var(--mute);text-transform:uppercase;max-width:220px}
.frame .inner.portrait{padding:0;overflow:hidden}
.frame .inner.portrait img{width:100%;height:100%;object-fit:cover;display:block}
.founder .txt{flex:999 1 420px;min-width:0}
.founder h2{margin-top:20px}
.creds-line{font-family:var(--caps);font-size:12px;letter-spacing:.24em;color:var(--mute);margin-top:16px}
.badge{display:inline-flex;align-items:center;gap:16px;margin-top:32px;border:1px solid var(--gold);padding:14px 24px;background:rgba(201,169,97,.07)}
.badge .n{font-family:var(--display);font-size:38px;line-height:1}
.badge .t{font-family:var(--caps);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;line-height:1.6}
.founder p{max-width:600px;margin:26px 0 0}
.founder p.motto{font-family:var(--display);font-style:italic;font-size:28px;margin-top:34px}

/* services */
.services .w{padding-block:clamp(80px,10vw,130px)}
.services .head{text-align:center}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:60px}
.svc{background:var(--navy);padding:44px 32px 40px;position:relative;overflow:hidden;transition:background .5s}
.svc::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--gold-lo),var(--gold-hi),var(--gold-lo));transform:scaleX(0);transform-origin:0 50%;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.svc:hover{background:var(--navy-2)}
.svc:hover::before{transform:none}
.svc h3{font-size:31px;line-height:1.15}
.svc p{margin:16px 0 0;color:var(--mute);font-size:16px}
.svc a{display:inline-block;margin-top:24px;padding:12px 0;font-family:var(--caps);font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--gold)}

/* standard */
.standard{background:var(--ink)}
.standard .w{display:flex;flex-wrap:wrap;gap:clamp(40px,6vw,90px);padding-block:clamp(80px,10vw,130px)}
.standard .l{flex:1 1 300px}
.standard .l p{color:var(--mute);max-width:400px;margin:24px 0 0}
.standard ul{flex:999 1 440px;min-width:0;list-style:none;margin:0;padding:0;font-family:var(--display);font-size:clamp(21px,2.2vw,27px)}
.standard li{display:flex;gap:18px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line)}
.standard li:last-child{border-bottom:0}
.standard li::before{content:"\2766";color:var(--gold);font-size:.7em}

/* testimonials */
.voices{background:radial-gradient(90% 120% at 50% 100%,var(--navy-2),var(--navy) 55%,var(--ink))}
.voices .w{padding-block:clamp(90px,11vw,150px);text-align:center}
.quotes{display:grid;margin-top:46px}
.q{grid-area:1/1;margin:0;opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity .9s,transform .9s,visibility .9s}
.q.on{opacity:1;visibility:visible;transform:none}
.q blockquote{margin:0 auto;max-width:900px;font-family:var(--display);font-style:italic;font-size:clamp(30px,4.6vw,64px);line-height:1.18;text-wrap:balance}
.q figcaption{margin-top:28px;font-family:var(--caps);font-size:12.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.dots{display:flex;justify-content:center;gap:6px;margin-top:40px}
.dots button{width:44px;height:44px;background:none;border:0;padding:0;cursor:pointer;display:grid;place-items:center}
.dots button::after{content:"";width:9px;height:9px;transform:rotate(45deg);border:1px solid var(--gold);transition:background .3s}
.dots button[aria-current="true"]::after{background:var(--gold)}

/* guarantee */
.pledge{background:var(--ink)}
.pledge .w{padding-block:clamp(90px,12vw,160px);text-align:center}
.pledge .box{border:1px solid var(--gold);padding:8px;max-width:860px;margin-inline:auto}
.pledge .box>div{border:1px solid var(--line);padding:clamp(40px,7vw,84px) clamp(20px,5vw,70px)}
.pledge p{max-width:560px;margin:24px auto 0}
.pledge .small{font-size:14px;color:var(--mute);margin-top:22px}
.pledge .btn{margin-top:40px}

footer{border-top:1px solid var(--line);background:var(--ink)}
footer .w{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding-block:44px;font-size:15px}
footer .wm{font-family:var(--caps);letter-spacing:.26em;font-size:17px}
footer .c{display:flex;flex-wrap:wrap;gap:8px 30px;color:var(--mute)}
footer .c span{user-select:all}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .foil,.seal svg,.miniseal,.marq>div,.hero h1 .l1,.rise.in{animation:none}
  .marq{width:auto;flex-wrap:wrap;white-space:normal;justify-content:center}
  .marq>div{flex-wrap:wrap;justify-content:center}
  .marq>div[aria-hidden="true"]{display:none}
}

/* ---------- shared site additions ---------- */
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
nav.main a[aria-current="page"]{color:var(--gold);background-size:100% 1px}
nav.main{gap:26px}
.menu-btn{display:none;font-family:var(--caps);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ivory);background:none;border:1px solid var(--line);padding:13px 18px;min-height:44px;cursor:pointer}
@media (max-width:1040px){
  .menu-btn{display:inline-block}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--ink);border-bottom:1px solid var(--line);padding:6px max(16px,env(safe-area-inset-right,0px)) 18px max(16px,env(safe-area-inset-left,0px))}
  nav.main.open{display:flex}
  nav.main a{padding:15px 0;border-bottom:1px solid var(--line);background:none}
  nav.main a.cta{margin-top:16px;text-align:center;border:1px solid var(--gold);padding:15px 22px}
}
.phero{position:relative;overflow:hidden;background:var(--navy)}
.phero .hall{position:absolute;inset:0;background:url('hall.jpg') 50% 36%/cover;opacity:.55}
.phero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,14,31,.6) 0%,rgba(7,14,31,.78) 55%,var(--ink) 100%)}
.phero .w{padding-block:clamp(70px,9vw,120px) clamp(50px,6vw,84px);text-align:center}
.phero h1{font-size:clamp(40px,6.2vw,84px);font-weight:300;line-height:1.03;margin-top:22px;text-shadow:0 2px 30px rgba(7,14,31,.9)}
.phero .lede{max-width:660px;margin:24px auto 0;font-family:var(--display);font-style:italic;font-size:clamp(20px,2.2vw,27px);line-height:1.45}
.phero cite{display:block;margin-top:14px;font-family:var(--caps);font-style:normal;font-size:12px;letter-spacing:.3em;color:var(--gold)}
.sec{background:var(--ink)}
.sec.mid{background:linear-gradient(180deg,var(--ink),var(--navy) 55%,var(--ink))}
.sec>.w{padding-block:clamp(60px,8vw,104px)}
.sec h2{margin-top:18px}
.prose{max-width:690px}
.prose.c{margin-inline:auto;text-align:center}
.prose p{margin:20px 0 0}
.prose p.mute,.mute{color:var(--mute)}
.two{display:flex;flex-wrap:wrap;gap:clamp(36px,6vw,90px)}
.two>.l{flex:1 1 300px}
.two>.r{flex:999 1 440px;min-width:0}
.ticks{list-style:none;margin:0;padding:0;font-family:var(--display);font-size:clamp(20px,2.1vw,25px);line-height:1.4}
.ticks li{display:flex;gap:18px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line)}
.ticks li:last-child{border-bottom:0}
.ticks li::before{content:"\2766";color:var(--gold);font-size:.7em}
.tags{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:18px}
.tags.c{justify-content:center}
.tags span{font-size:14px;border:1px solid var(--line);padding:4px 12px;color:var(--mute)}
.tags.big span{font-family:var(--display);font-size:clamp(20px,2.2vw,26px);color:var(--ivory);padding:8px 18px}
.tutors{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px;margin-top:54px}
.tutor{border:1px solid var(--line);background:var(--navy);padding:34px 28px;display:flex;flex-direction:column}
.tutor .mono{width:66px;height:66px;border:1px solid var(--gold);display:grid;place-items:center;font-family:var(--caps);font-size:20px;letter-spacing:.06em;color:var(--gold)}
.tutor img.mono{object-fit:cover;padding:0}
.tutor h3{font-size:30px;line-height:1.1;margin-top:22px}
.tutor .role{font-family:var(--caps);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-top:10px}
.tutor .quals{font-size:14px;color:var(--mute);margin-top:8px}
.tutor p{margin:16px 0 0;font-size:16px}
.tutor .tags{margin-top:auto;padding-top:20px}
.tutor .tags span{font-size:13px;padding:3px 10px}
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:22px;margin-top:54px}
.cards3 .svc{border:1px solid var(--line)}
.prices{max-width:860px;margin:44px auto 0}
.prow{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 30px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line)}
.prow>div{flex:1 1 320px;min-width:0}
.prow h3{font-size:29px;line-height:1.15}
.prow p{margin:8px 0 0;color:var(--mute);font-size:16px}
.prow .amt{flex:0 0 auto;font-family:var(--display);font-size:clamp(30px,3.4vw,40px);white-space:nowrap;color:var(--gold-hi);font-variant-numeric:lining-nums}
.prow .amt small{font-family:var(--body);font-size:14px;color:var(--mute);margin-left:6px}
.bigq{margin:0 auto;max-width:860px;text-align:center;font-family:var(--display);font-style:italic;font-size:clamp(28px,4vw,50px);line-height:1.2;text-wrap:balance}
.bigq+.by{text-align:center;margin-top:22px;font-family:var(--caps);font-size:12.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
.form{max-width:700px;margin:44px auto 0;display:grid;gap:22px}
.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.form label{display:block;font-family:var(--caps);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:9px}
.form input,.form select,.form textarea{width:100%;box-sizing:border-box;background:rgba(243,236,221,.05);border:1px solid var(--line);color:var(--ivory);font:inherit;font-size:16px;padding:14px 16px;border-radius:0;min-height:50px}
.form select option{background:var(--ink);color:var(--ivory)}
.form textarea{min-height:150px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.form button{border:0;cursor:pointer;justify-self:start}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-msg{border:1px solid var(--gold);padding:18px 22px;background:rgba(201,169,97,.08)}
.form-msg.err{border-color:#D98A7A;background:rgba(217,138,122,.1)}
.contact-lines{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 40px;margin-top:26px;font-family:var(--display);font-size:24px}
.contact-lines span{user-select:all}
.endcta .w{padding-block:clamp(70px,9vw,120px);text-align:center}
.endcta p{max-width:560px;margin:20px auto 0}
.endcta .btn{margin-top:34px}
footer .w{align-items:flex-start}
footer nav{display:flex;flex-wrap:wrap;gap:6px 24px;font-family:var(--caps);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase}
footer nav a{color:var(--ivory);text-decoration:none;padding:10px 0}
footer nav a:hover{color:var(--gold)}
footer .col{display:flex;flex-direction:column;gap:14px}
