:root{--bg:#f3efe4;--surface:#fbf8f0;--text:#1b2620;--muted:#5b665f;--accent:#94301f;--band:#10201b;--gold:#c9a85a;--display:Palatino, "Palatino Linotype", "Book Antiqua", "URW Palladio L", Georgia, serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:18px/1.65 Georgia, "Iowan Old Style", "Times New Roman", serif}
a{color:var(--accent)}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
h1,h2,h3,.name,.kicker,.no,.series,.menu,.button,.ghost,button{font-family:var(--display)}
h1{font-size:2.6rem;line-height:1.1;margin:0 0 10px;font-weight:400;letter-spacing:.01em}
h2{font-size:1.6rem;font-weight:400;margin:48px 0 18px}
h3{font-weight:400}
.band{background:var(--band);color:var(--bg)}
.band a{color:var(--gold)}
.top .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;padding-top:16px;padding-bottom:16px;border-bottom:1px solid color-mix(in srgb,var(--gold) 45%,transparent)}
.top .name{font-size:1.15rem;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;color:var(--gold);margin-right:auto}
.menu{display:flex;flex-wrap:wrap;gap:4px 22px;font-variant:small-caps;letter-spacing:.08em;font-size:1.05rem}
.menu a{text-decoration:none;color:var(--bg)}
.menu a:hover{color:var(--gold)}
.langs{display:flex;gap:2px;font-size:.8rem;letter-spacing:.08em}
.langs a,.langs span{padding:2px 6px;text-decoration:none;color:var(--bg);opacity:.75}
.langs span{opacity:1;border:1px solid var(--gold);color:var(--gold)}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:36px;align-items:center;padding-top:56px;padding-bottom:72px}
.kicker{font-variant:small-caps;letter-spacing:.2em;color:var(--gold);margin:0 0 8px;font-size:1rem}
.page-head .kicker{color:var(--accent)}
.hero h1{font-size:3.2rem}
.tagline{font-size:1.3rem;font-style:italic;opacity:.9;margin:0 0 26px}
.fan{position:relative;height:440px}
.fan a{position:absolute;top:0;width:250px;left:50%;transition:transform .2s}
.fan img{border-radius:4px;box-shadow:0 14px 40px rgba(0,0,0,.55);outline:1px solid color-mix(in srgb,var(--gold) 60%,transparent);outline-offset:-1px}
.fan-1 a{transform:translateX(-50%)}
.fan-2 a:nth-child(1){transform:translateX(-80%) rotate(-6deg);z-index:2}
.fan-2 a:nth-child(2){transform:translateX(-20%) rotate(5deg) translateY(18px)}
.fan-3 a:nth-child(1){transform:translateX(-50%);z-index:3}
.fan-3 a:nth-child(2){transform:translateX(-95%) rotate(-8deg) translateY(26px)}
.fan-3 a:nth-child(3){transform:translateX(-5%) rotate(8deg) translateY(26px)}
.button,button{display:inline-block;font-size:1rem;letter-spacing:.06em;background:var(--accent);color:var(--surface);padding:11px 22px;border:0;border-radius:2px;text-decoration:none;margin:4px 10px 4px 0;cursor:pointer}
.band .button{color:var(--surface)}
.ghost{display:inline-block;padding:10px 4px;letter-spacing:.04em;font-size:1rem}
.rule-heading{display:flex;align-items:center;gap:18px;text-align:center;font-variant:small-caps;letter-spacing:.14em;color:var(--accent);font-size:1.5rem}
.rule-heading::before,.rule-heading::after{content:"";flex:1;border-top:3px double color-mix(in srgb,var(--accent) 55%,transparent)}
.rule-heading.left::before{display:none}
.fare{max-width:900px;margin:0 auto}
.menu-title{text-align:center;font-size:2rem;margin:8px 0 6px;font-style:italic}
.menu-title a{color:var(--text);text-decoration:none}
.menu-intro{text-align:center;max-width:680px;margin:0 auto 6px;color:var(--muted)}
.menu-intro.small{font-size:.95rem;font-style:italic;margin-bottom:22px}
.courses{list-style:none;margin:0;padding:0}
.course{display:grid;grid-template-columns:72px 120px 1fr;gap:22px;align-items:start;padding:26px 0;border-top:1px dotted var(--muted)}
.course:last-child{border-bottom:1px dotted var(--muted)}
.no{margin:6px 0 0;font-size:1rem;font-variant:small-caps;letter-spacing:.1em;color:var(--accent);text-align:right}
.course h3{font-size:1.55rem;margin:0 0 8px;line-height:1.2}
.course h3 a{color:var(--text);text-decoration:none}
.course p{margin:0 0 10px}
.thumb img{border-radius:2px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.more a{font-style:italic}
.series{margin:0 0 6px;font-variant:small-caps;letter-spacing:.12em}
.series a{text-decoration:none}
.note,.ku,.soon{color:var(--muted);font-size:.95rem;font-style:italic}
.band .note,.band .ku,.band .soon{color:var(--bg);opacity:.8}
.invite{max-width:640px;margin:64px auto;background:var(--surface);padding:30px 34px;text-align:center;border:3px double color-mix(in srgb,var(--accent) 65%,transparent);outline:1px solid color-mix(in srgb,var(--accent) 25%,transparent);outline-offset:6px}
.invite h2{margin:0 0 8px;font-variant:small-caps;letter-spacing:.12em;color:var(--accent)}
.invite form{display:grid;gap:12px;text-align:left;margin-top:18px}
.fleuron{font-size:1.6rem;margin:0;color:var(--accent);line-height:1}
.band .fleuron{color:var(--gold)}
input[type=email]{font:inherit;padding:10px 12px;border-radius:2px;border:1px solid var(--muted);background:var(--bg);color:var(--text)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.92rem}
.consent input{margin-top:6px}
.hp{position:absolute;left:-9999px}
.about-block{display:grid;grid-template-columns:1fr 280px;gap:40px;align-items:center;max-width:900px;margin:0 auto 40px}
.framed{border:12px solid var(--band);outline:2px solid var(--gold);outline-offset:-7px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.book-top .wrap{display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:center;padding-top:48px;padding-bottom:48px}
.book-top .cover{border-radius:4px;box-shadow:0 14px 40px rgba(0,0,0,.55)}
.book-top h1{font-size:2.8rem}
.subtitle{font-size:1.2rem;font-style:italic;margin:0 0 12px}
.blurb{max-width:700px;margin:44px auto 0;font-size:1.08rem}
.blurb p:first-child::first-letter{float:left;font-family:var(--display);font-size:3.6rem;line-height:.9;padding:6px 10px 0 0;color:var(--accent)}
.card-row{display:flex;flex-wrap:wrap;justify-content:center;gap:28px}
.cards figure{margin:0;width:260px;text-align:center}
.cards img{border:6px solid var(--band);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.cards figcaption{padding:12px 6px;font-size:.95rem;color:var(--muted)}
.cards figcaption strong{display:block;font-family:var(--display);font-variant:small-caps;letter-spacing:.1em;font-size:1.15rem;color:var(--text);font-weight:400}
.shelf ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:28px}
.shelf a{display:block;width:160px;text-decoration:none;color:var(--text);text-align:center}
.shelf img{margin-bottom:8px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.shelf span{display:block;font-variant:small-caps;letter-spacing:.1em;color:var(--accent);font-size:.9rem}
.page-head{text-align:center;padding:44px 0 0}
.about-page{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:start;padding-top:48px;padding-bottom:20px;max-width:960px}
.legal{max-width:760px;padding-bottom:40px;padding-top:20px}
.message{padding:60px 20px;text-align:center}
.bottom{margin-top:56px;padding:36px 0 18px;text-align:center}
.bottom .name{font-size:1.4rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin:8px 0 4px}
.bottom .line{font-style:italic;opacity:.85;margin:0 0 22px}
.bottom .links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 64px;text-align:left;border-top:1px solid color-mix(in srgb,var(--gold) 40%,transparent);padding-top:22px}
.bottom h2{font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}
.bottom p{margin:0 0 8px;font-size:.95rem}
.bottom .links a{color:var(--bg);text-decoration:none;opacity:.85}
.bottom .links a:hover{color:var(--gold);opacity:1}
.bottom .statement{font-size:.85rem;opacity:.8;max-width:320px}
.bottom .copy{font-size:.8rem;opacity:.7;margin-top:20px}
@media (max-width:760px){
h1,.hero h1,.book-top h1{font-size:2.1rem}
.hero .wrap,.book-top .wrap,.about-block,.about-page{grid-template-columns:1fr}
.hero .wrap{padding-top:36px;padding-bottom:40px}
.fan{height:330px}
.fan a{width:180px}
.book-top .cover{max-width:220px}
.about-block .framed,.about-page .framed{max-width:260px}
.course{grid-template-columns:84px 1fr;gap:14px}
.course .no{grid-column:1/-1;text-align:left;margin:0}
.invite{padding:24px 18px}
.top .name{letter-spacing:.18em}
}
