:root{
  --navy:#14213A; --navy-2:#1C2C4C; --navy-3:#0E1626;
  --parchment:#F4F1EA; --parchment-2:#ECE6D8;
  --brass:#B08D4C; --brass-2:#C7A768; --brass-lo:#8C6E37;
  --slate:#3A3F4B; --ink:#111827;
  --line:rgba(20,33,58,.14); --line-navy:rgba(244,241,234,.18);
  --display:"Playfair Display",Georgia,serif; --sans:"Inter",system-ui,-apple-system,sans-serif;
  --wrap:1200px; --gutter:clamp(1.25rem,4vw,3.5rem);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-family:var(--sans);background:var(--parchment);color:var(--slate);line-height:1.6;font-size:clamp(1rem,.96rem + .2vw,1.075rem)}
h1,h2,h3{font-family:var(--display);font-weight:400;color:var(--ink);line-height:1.05;letter-spacing:-.012em;font-optical-sizing:auto}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-lo)}
.eyebrow--onnavy{color:var(--brass-2)}
.serif-i{font-family:var(--display);font-style:italic}

/* buttons */
.btn{--pad:1rem 1.6rem;display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:.01em;padding:var(--pad);border-radius:2px;border:1.5px solid transparent;text-decoration:none;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease;cursor:pointer}
.btn:focus-visible{outline:2px solid var(--brass-2);outline-offset:3px}
.btn--brass{background:var(--brass);color:#fff;border-color:var(--brass)}
.btn--brass:hover{background:var(--brass-lo);border-color:var(--brass-lo);transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--parchment);border-color:var(--line-navy)}
.btn--ghost:hover{border-color:var(--brass-2);color:#fff}
.btn--ink{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ink:hover{border-color:var(--brass);color:var(--brass-lo)}

/* ---------- masthead ---------- */
.masthead{position:sticky;top:0;z-index:20;background:rgba(20,33,58,.92);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line-navy)}
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;min-height:74px;gap:1.5rem}
.brandmark{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--parchment)}
.brandmark .seal{width:34px;height:34px;flex:none}
.brandmark .wm{font-family:var(--display);font-weight:500;font-size:1.06rem;letter-spacing:.02em;line-height:1;color:var(--parchment)}
.brandmark .wm small{display:block;font-family:var(--sans);font-weight:600;font-size:.58rem;letter-spacing:.34em;text-transform:uppercase;color:var(--brass-2);margin-top:.28rem}
.mainnav{display:flex;align-items:center;gap:1.9rem}
.mainnav a{font-family:var(--sans);font-weight:500;font-size:.86rem;letter-spacing:.02em;color:rgba(244,241,234,.82);text-decoration:none;padding:.4rem 0;position:relative}
.mainnav a:hover{color:#fff}
.mainnav a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--brass-2);transition:right .22s ease}
.mainnav a:hover::after{right:0}
.nav-cta{display:flex;align-items:center;gap:.9rem}
.nav-cta .assess{font-family:var(--sans);font-weight:500;font-size:.86rem;color:rgba(244,241,234,.82);text-decoration:none}
.nav-cta .assess:hover{color:#fff}
.mnav-links{display:flex;align-items:center;gap:1.9rem}

/* ---------- hero ---------- */
.hero{background:
    linear-gradient(90deg,var(--navy) 0%,rgba(20,33,58,.94) 34%,rgba(20,33,58,.62) 100%),
    radial-gradient(120% 90% at 88% -10%,rgba(176,141,76,.20),transparent 55%),
    var(--navy-3) url("../img/hero-law-library.webp") center right/cover no-repeat;
  color:var(--parchment);position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(2rem,5vw,5rem);padding-block:clamp(4.5rem,9vw,8rem)}
.hero-eyebrow{margin-bottom:1.6rem}
.hero h1{color:var(--parchment);font-weight:400;font-size:clamp(2.3rem,2rem + 3vw,4rem);line-height:1.05;letter-spacing:-.015em}
.hero h1 .em{font-style:italic;font-weight:400;color:var(--brass-2)}
.hero .lede{margin-top:1.9rem;max-width:38ch;font-size:clamp(1.08rem,1.02rem + .4vw,1.28rem);line-height:1.55;color:rgba(244,241,234,.86)}
.hero .actions{margin-top:2.6rem;display:flex;flex-wrap:wrap;gap:1rem}
.hero .microline{margin-top:1.9rem;font-size:.82rem;letter-spacing:.04em;color:rgba(244,241,234,.6)}
.hero .microline b{color:var(--brass-2);font-weight:600}

/* spine rail (signature) */
.rail{border-left:1px solid var(--line-navy);padding-left:1.5rem;align-self:center}
.rail-label{font-family:var(--sans);font-weight:600;font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--brass-2);margin-bottom:1.4rem}
.vert{list-style:none;display:flex;flex-direction:column;gap:0}
.vert li{position:relative;display:grid;grid-template-columns:2.6rem 1fr;align-items:center;gap:.6rem;padding:.62rem 0;border-top:1px solid rgba(244,241,234,.08)}
.vert li:first-child{border-top:0}
.vert .n{font-family:var(--display);font-size:.9rem;color:var(--brass-2);font-variant-numeric:tabular-nums}
.vert .s{font-size:.82rem;letter-spacing:.01em;color:rgba(244,241,234,.78)}
.vert li::before{content:"";position:absolute;left:-1.5rem;top:50%;width:7px;height:7px;border-radius:50%;background:var(--navy);border:1.5px solid var(--brass-2);transform:translate(-50%,-50%)}

/* ---------- systems ---------- */
.systems{background:var(--parchment);padding-block:clamp(4rem,7vw,7rem)}
.sec-head{max-width:62ch}
.sec-head .eyebrow{margin-bottom:1rem}
.sec-head h2{font-size:clamp(2rem,1.6rem + 2.2vw,3.2rem);letter-spacing:-.02em}
.sec-head h2 em{font-family:var(--display);font-style:italic;color:var(--brass-lo)}
.sec-head p{margin-top:1.3rem;max-width:52ch;font-size:1.08rem}
.spine{margin-top:3.2rem;border-top:1px solid var(--line)}
.vertebra{display:grid;grid-template-columns:5.5rem 1fr auto;gap:clamp(1rem,3vw,2.5rem);align-items:baseline;padding:1.5rem 0 1.5rem;border-bottom:1px solid var(--line);position:relative;transition:background .2s ease}
.vertebra:hover{background:linear-gradient(90deg,rgba(176,141,76,.06),transparent 70%)}
.vertebra .num{font-family:var(--display);font-size:1.5rem;color:var(--brass-lo);font-variant-numeric:tabular-nums;letter-spacing:0}
.vertebra .body h3{font-size:1.42rem;letter-spacing:-.01em}
.vertebra .body p{margin-top:.45rem;max-width:56ch;font-size:1rem;color:var(--slate)}
.vertebra .go{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-lo);text-decoration:none;white-space:nowrap;opacity:.0;transform:translateX(-6px);transition:opacity .2s,transform .2s}
.vertebra:hover .go{opacity:1;transform:translateX(0)}

/* ---------- faculty ---------- */
.faculty{background:var(--navy);color:var(--parchment);padding-block:clamp(4rem,7vw,7rem)}
.faculty .sec-head h2{color:var(--parchment)}
.faculty .sec-head h2 em{color:var(--brass-2)}
.faculty .sec-head p{color:rgba(244,241,234,.82)}
.fac-grid{margin-top:2.8rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.fac-card{border:1px solid var(--line-navy);border-radius:3px;padding:1.6rem;background:linear-gradient(180deg,rgba(244,241,234,.03),transparent)}
.fac-card .badge{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--brass-2);display:flex;align-items:center;justify-content:center;font-family:var(--display);color:var(--brass-2);font-size:1.05rem;margin-bottom:1.1rem}
.fac-card .role{font-family:var(--display);font-size:1.2rem;color:var(--parchment);line-height:1.15}
.fac-card p{margin-top:.6rem;font-size:.92rem;color:rgba(244,241,234,.72)}
.fac-note{margin-top:1.6rem;font-size:.82rem;letter-spacing:.02em;color:rgba(244,241,234,.55);display:flex;align-items:center;gap:.6rem}
.fac-note::before{content:"";width:26px;height:1px;background:var(--brass-2);flex:none}

/* ---------- library + community band ---------- */
.two{background:var(--parchment-2);padding-block:clamp(4rem,7vw,7rem)}
.two-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.shelf{display:flex;gap:6px;margin-bottom:1.8rem}
.shelf span{flex:1;height:120px;border-radius:2px 2px 0 0;background:linear-gradient(180deg,var(--navy-2),var(--navy));position:relative;box-shadow:inset 0 0 0 1px rgba(244,241,234,.06)}
.shelf span::after{content:"";position:absolute;top:14px;left:6px;right:6px;height:2px;background:var(--brass);opacity:.7}
.shelf span:nth-child(odd){background:linear-gradient(180deg,#233A63,var(--navy))}
.lib-photo{margin:1.6rem 0 0;border-radius:3px;overflow:hidden;box-shadow:0 24px 50px -28px rgba(14,22,38,.55);border:1px solid var(--line)}
.lib-photo img{width:100%;height:clamp(200px,26vw,300px);object-fit:cover;display:block}
.two h2{font-size:clamp(1.8rem,1.5rem + 1.8vw,2.7rem)}
.two h2 em{font-style:italic;color:var(--brass-lo)}
.two p{margin-top:1.1rem;max-width:46ch;font-size:1.05rem}
.pill-list{margin-top:1.6rem;display:flex;flex-direction:column;gap:.85rem}
.pill{display:flex;gap:.85rem;align-items:flex-start;font-size:1rem}
.pill .k{font-family:var(--display);color:var(--brass-lo);font-size:1.05rem;line-height:1.3;flex:none;width:165px}

/* ---------- selectivity / apply ---------- */
.apply{background:
   linear-gradient(rgba(14,22,38,.90),rgba(14,22,38,.94)),
   radial-gradient(90% 120% at 12% 0%,rgba(176,141,76,.22),transparent 50%),
   var(--navy-3) url("../img/institute-facade.webp") center/cover no-repeat;
   color:var(--parchment);padding-block:clamp(4.5rem,8vw,8rem);text-align:center}
.apply .eyebrow{color:var(--brass-2)}
.apply h2{color:var(--parchment);font-size:clamp(2.1rem,1.7rem + 2.4vw,3.4rem);margin-top:1rem;max-width:20ch;margin-inline:auto}
.apply h2 em{font-style:italic;color:var(--brass-2)}
.apply p{margin:1.4rem auto 0;max-width:52ch;color:rgba(244,241,234,.82);font-size:1.08rem}
.apply .actions{margin-top:2.4rem;display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.foot{background:var(--navy);color:rgba(244,241,234,.72);padding-block:3.5rem 2.5rem;border-top:1px solid var(--line-navy)}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.foot h4{font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-2);margin-bottom:1rem}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.foot a{color:rgba(244,241,234,.72);text-decoration:none;font-size:.92rem}
.foot a:hover{color:#fff}
.foot .brandmark{margin-bottom:1rem}
.foot .about{font-size:.9rem;max-width:34ch;color:rgba(244,241,234,.6)}
.legal{margin-top:2.5rem;padding-top:1.6rem;border-top:1px solid var(--line-navy);font-size:.78rem;color:rgba(244,241,234,.5);display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.legal p{max-width:70ch}

/* reveal */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(14px);animation:rise .7s ease forwards}
  .vert li{opacity:0;transform:translateX(8px);animation:slidein .5s ease forwards}
  .vert li:nth-child(1){animation-delay:.15s}.vert li:nth-child(2){animation-delay:.22s}.vert li:nth-child(3){animation-delay:.29s}.vert li:nth-child(4){animation-delay:.36s}.vert li:nth-child(5){animation-delay:.43s}.vert li:nth-child(6){animation-delay:.5s}.vert li:nth-child(7){animation-delay:.57s}
}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes slidein{to{opacity:1;transform:none}}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .mainnav,.nav-cta{display:none}
  .hero{background:
    linear-gradient(180deg,rgba(20,33,58,.90) 0%,rgba(14,22,38,.96) 70%),
    var(--navy-3) url("../img/hero-law-library.webp") center/cover no-repeat}
  .hero .wrap{grid-template-columns:1fr}
  .rail{border-left:0;border-top:1px solid var(--line-navy);padding-left:0;padding-top:1.8rem;margin-top:.5rem}
  .rail .vert{display:grid;grid-template-columns:1fr 1fr}
  .vert li::before{display:none}
  .fac-grid{grid-template-columns:1fr}
  .two-grid{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr 1fr}
  .vertebra{grid-template-columns:3.2rem 1fr}
  .vertebra .go{display:none}
}
@media(max-width:560px){
  .rail .vert{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr}
  .hero .actions .btn{flex:1 1 auto;justify-content:center}
}

/* ---- mobile navigation ---- */
.nav-toggle{display:none;background:none;border:0;padding:.55rem .4rem;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--parchment);margin:5px 0;border-radius:1px;transition:transform .2s ease,opacity .2s ease}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobilenav{display:none}
@media(max-width:900px){
  .nav-toggle{display:block}
  .masthead .wrap{min-height:90px}
  .brandmark .wm{white-space:nowrap;font-size:1rem}
  .brandmark .wm small{letter-spacing:.26em}
  .mobilenav{display:block;background:var(--navy);border-top:1px solid rgba(199,167,104,.25);padding:.4rem 1.4rem 1.4rem}
  .mobilenav[hidden]{display:none}
  .mobilenav a{display:block;padding:.85rem 0;font-family:var(--sans);font-weight:500;font-size:1rem;color:rgba(244,241,234,.9);text-decoration:none;border-bottom:1px solid rgba(244,241,234,.08)}
  .mobilenav a:hover{color:#fff}
  .mobilenav a[aria-current]{color:var(--brass-2)}
  .mobilenav .btn{margin-top:1.1rem;text-align:center;border-bottom:0}
}
