:root{
  --ink:#16110F;
  --deep:#0B0807;
  --orange:#FF642D;
  --rice:#F7F2E7;
  --rice-dim:#E4DCCB;
  --ash:#8A8078;
  --line:rgba(247,242,231,.16);
  --line-dark:rgba(22,17,15,.16);
  --gut:clamp(20px,5vw,72px);
  --max:1280px;
  --disp:"Fira Sans Condensed",Impact,sans-serif;
  --body:"Literata",Georgia,serif;
  --mono:"Fira Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
section,header{scroll-margin-top:70px}
body{
  margin:0;background:var(--ink);color:var(--rice);
  font-family:var(--body);font-size:clamp(15.5px,1.05vw,17px);line-height:1.72;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--disp);font-weight:800;line-height:.95;margin:0;letter-spacing:-.005em;text-transform:uppercase}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.mono{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}

/* ---------- nav ---------- */
nav{position:fixed;inset:0 0 auto;z-index:60;display:flex;align-items:center;gap:14px;
  padding:12px var(--gut);background:linear-gradient(180deg,rgba(11,8,7,.94),rgba(11,8,7,0));transition:background .35s}
nav.stuck{background:rgba(11,8,7,.97);border-bottom:1px solid var(--line)}
nav .brand img{height:clamp(28px,3.4vw,38px);width:auto}
.navlinks{display:flex;gap:clamp(12px,2vw,26px);margin-left:auto;align-items:center}
.navlinks a{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;opacity:.8;transition:color .25s,opacity .25s;padding:6px 0}
.navlinks a:hover,.navlinks a[aria-current]{opacity:1;color:var(--orange)}
.book{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  background:var(--orange);color:#140D0A;font-weight:500;padding:11px 16px;text-decoration:none;white-space:nowrap;
  transition:transform .25s,box-shadow .25s}
.book:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,100,45,.32)}
.burger{display:none;background:transparent;border:1px solid var(--line);width:44px;height:44px;position:relative;cursor:pointer}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--rice);transition:.3s}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:27px}
body.open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.open .burger span:nth-child(2){opacity:0}
body.open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.sheet{position:fixed;inset:0;z-index:55;background:var(--deep);padding:84px var(--gut) 30px;
  display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transition:.3s}
body.open .sheet{opacity:1;visibility:visible}
.sheet a{font-family:var(--disp);font-weight:800;font-size:clamp(1.6rem,8vw,2.4rem);text-transform:uppercase;
  text-decoration:none;padding:15px 0;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:12px}
.sheet a span{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;color:var(--ash);margin-left:auto;text-transform:none}
.sheet a[aria-current]{color:var(--orange)}
@media(max-width:860px){.navlinks{display:none}.burger{display:block;margin-left:auto}}
@media(min-width:861px){.sheet{display:none}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:92svh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.92) contrast(1.06)}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,8,7,.82),rgba(11,8,7,.28) 42%,rgba(11,8,7,.93) 92%,var(--ink))}
.hero-in{position:relative;z-index:2;width:100%;padding-bottom:clamp(26px,5vh,54px)}
.hero-logo{width:clamp(250px,42vw,560px);margin-bottom:clamp(20px,3vh,34px)}
.claim{font-family:var(--disp);font-weight:800;text-transform:uppercase;line-height:.92;
  font-size:clamp(2.1rem,6.4vw,5rem);max-width:16ch;margin:0 0 18px}
.claim em{font-style:normal;color:var(--orange)}
.sub{max-width:44ch;color:var(--rice-dim);font-size:clamp(1rem,1.4vw,1.18rem)}

/* ---------- the rule strip: the signature ---------- */
.rules{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--deep)}
.rules-in{display:flex;flex-wrap:wrap;gap:0;max-width:var(--max);margin:0 auto}
.rule{flex:1 1 190px;padding:22px clamp(14px,2vw,26px);border-right:1px solid var(--line)}
.rule:last-child{border-right:0}
.rule b{display:block;font-family:var(--disp);font-weight:800;font-size:clamp(1.5rem,2.6vw,2.2rem);
  text-transform:uppercase;line-height:1;color:var(--orange)}
.rule span{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ash);margin-top:9px}
.nos{display:flex;flex-wrap:wrap;gap:10px 26px;padding:20px 0}
.nos i{font-style:normal;font-family:var(--mono);font-size:.76rem;letter-spacing:.1em;color:var(--ash)}
.nos i.yes{color:var(--rice)}
.nos i b{color:var(--orange);font-weight:400;margin-right:7px}
.nos i.no b{color:#8A8078}

/* ---------- sections ---------- */
section{padding:clamp(58px,9vh,120px) 0}
.eyebrow{font-family:var(--mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
h2{font-size:clamp(1.9rem,4.6vw,3.6rem)}
.lede{max-width:58ch;color:var(--rice-dim);font-size:clamp(1.02rem,1.3vw,1.2rem)}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(24px,4vw,64px);align-items:start}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.pale{background:var(--rice);color:var(--ink)}
.pale .eyebrow{color:#C1420F}
.pale .lede{color:#3A322C}
.pale a{color:#B23C0C}

/* ---------- course list ---------- */
.courses{border-top:1px solid var(--line-dark);margin-top:30px}
.course{display:grid;grid-template-columns:minmax(58px,72px) 1fr;gap:clamp(14px,3vw,34px);
  padding:18px 0;border-bottom:1px solid var(--line-dark);align-items:baseline}
.course .n{font-family:var(--mono);font-size:.72rem;color:#B23C0C;letter-spacing:.1em}
.course h3{font-size:clamp(1.1rem,1.9vw,1.5rem);margin-bottom:6px}
.course p{margin:0;color:#4A403A;font-size:.96rem}

/* ---------- archive ---------- */
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:clamp(18px,2.6vw,34px);margin-top:36px}
.post{display:block;text-decoration:none;border:1px solid var(--line);background:var(--deep);transition:border-color .3s,transform .3s}
.post:hover{border-color:var(--orange);transform:translateY(-3px)}
.post img{aspect-ratio:5/3;object-fit:cover;width:100%}
.post .pt{padding:16px 18px 20px}
.post time{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;color:var(--ash)}
.post h3{font-size:1.22rem;margin:8px 0 8px;text-transform:none;font-family:var(--disp);letter-spacing:0}
.post p{margin:0;color:var(--rice-dim);font-size:.9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.year{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;color:var(--orange);
  border-bottom:1px solid var(--line);padding-bottom:10px;margin:44px 0 0}

/* ---------- article ---------- */
.article{max-width:44rem;margin:0 auto;padding:0 var(--gut)}
.article time{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;color:var(--orange)}
.article h1{font-size:clamp(1.9rem,5vw,3.4rem);margin:14px 0 26px;text-transform:none;letter-spacing:-.01em}
.article p{margin:0 0 1.35em}
.article p:first-of-type{font-size:1.14em;color:var(--rice)}
.article img{margin:30px 0;border:1px solid var(--line)}
.article a{color:var(--orange)}
.figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px;margin:30px 0}
.prevnext{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:56px;padding-top:22px;flex-wrap:wrap}
.prevnext a{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ash)}
.prevnext a:hover{color:var(--orange)}

/* ---------- booking ---------- */
.call{display:inline-flex;align-items:center;gap:12px;background:var(--orange);color:#140D0A;text-decoration:none;
  font-family:var(--mono);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;padding:19px 28px;margin-top:24px;
  transition:transform .25s,box-shadow .25s}
.call:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(255,100,45,.34)}
.facts{border-top:1px solid var(--line);margin-top:26px}
.facts div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:.76rem;letter-spacing:.06em}
.facts div b{color:var(--orange);font-weight:400}
.facts div.closed{color:var(--ash)}

/* ---------- seats ---------- */
.seats{display:flex;gap:7px;flex-wrap:wrap;margin:22px 0 6px}
.seats i{width:22px;height:22px;border:1.5px solid var(--orange);border-radius:50%;display:block}
.seats i.off{border-color:var(--ash);opacity:.4}

footer{background:var(--deep);border-top:1px solid var(--line);padding:44px 0 34px}
.f-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:26px}
.f-grid a{text-decoration:none}
.f-grid a:hover{color:var(--orange)}
.f-note{margin-top:30px;color:var(--ash);font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;line-height:1.9}

.sheet .book{white-space:normal;font-size:.68rem;letter-spacing:.08em;padding:17px 12px}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
@media(max-width:700px){
  section{padding:52px 0}
  .rules-in{padding:14px var(--gut);display:grid;grid-template-columns:1fr 1fr;gap:0}
  .rule{flex:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 12px}
  .rule:nth-child(2n){border-right:0}
  .rule:nth-last-child(-n+1){border-bottom:0;grid-column:1/-1}
  .rule b{font-size:1.45rem}
  .rule span{margin-top:5px;font-size:11px;letter-spacing:.08em}
  .hero{min-height:86svh}
  .claim{font-size:clamp(2rem,8.4vw,3rem)}
  .nos{gap:8px 16px;padding:14px 0}
  .mono,.eyebrow,.post time,.facts div,.nos i{font-size:12px;letter-spacing:.1em}
  .navlinks a,.book{min-height:44px;display:inline-flex;align-items:center}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
