/* ---------- 1. reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:hidden}
img,picture,video,svg{display:block;max-width:100%;height:auto}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}

/* ---------- 2. tokens ---------- */
:root{
  --hue:#6B3F6E;
  --on-hue:#FBF8F3;
  --page:#FBF8F3;
  --page-2:#EFE7DA;
  --ink:#1C1A17;
  --ink-soft:#5E564B;
  --ink-inv:#FBF8F3;
  --rule:rgba(28,26,23,.22);
  --t-max:clamp(2.3rem,5.8vw,4.6rem);
  --t-h2:clamp(1.6rem,3vw,2.4rem);
  --t-h3:clamp(1.15rem,1.7vw,1.42rem);
  --t-lede:clamp(1.06rem,1.35vw,1.24rem);
  --t-body:1.0625rem;
  --t-micro:.7rem;
  --gap:clamp(56px,6.5vw,104px);
  --edge:clamp(18px,4vw,52px);
  --wide:1180px;
  --read:70ch;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- 3. base ---------- */
body{
  background:var(--page);
  color:var(--ink);
  font-family:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:var(--t-body);
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:700;line-height:1.06}
h1{font-size:var(--t-max);letter-spacing:-.015em}
h2{font-size:var(--t-h2);letter-spacing:-.01em}
h3{font-size:var(--t-h3)}
p{max-width:var(--read)}
p + p{margin-top:.85em}

/* ---------- 4. layout ---------- */
.cm-hold{width:100%;max-width:var(--wide);margin:0 auto;padding-left:var(--edge);padding-right:var(--edge)}
.cm-strip{padding-top:var(--gap);padding-bottom:var(--gap)}
.cm-strip-tint{background:var(--page-2)}
.cm-strip-dark{background:var(--ink);color:var(--ink-inv)}
.cm-strip-hue{background:var(--hue);color:var(--on-hue)}

/* ---------- 5. article and fact box ---------- */
.cm-entry{padding-top:clamp(34px,4vw,60px);padding-bottom:clamp(34px,4vw,60px);border-top:1px solid var(--ink)}
.cm-entry::after{content:"";display:block;clear:both}
.cm-entry-no{display:inline-block;background:var(--hue);color:var(--on-hue);font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;font-weight:700;padding:6px 12px}
.cm-entry-title{margin-top:14px}
.cm-entry-place{font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-top:8px}
.cm-lead{font-size:var(--t-lede);margin-top:18px;max-width:62ch}
.cm-lead::first-letter{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:3.1em;line-height:.82;float:left;padding-right:10px;padding-top:4px;color:var(--hue)}
.cm-body{margin-top:14px}
.cm-box{border:1px solid var(--ink);border-top:8px solid var(--hue);background:var(--page);padding:18px 20px;margin:0 0 20px 0}
.cm-box-title{font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ink);margin-bottom:12px}
.cm-box dl{margin:0}
.cm-box dt{font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-top:11px;border-top:1px solid var(--rule);padding-top:9px}
.cm-box dd{margin:2px 0 0 0;font-weight:700}
@media (min-width:900px){
  .cm-box{float:right;width:330px;margin:0 0 18px 28px}
}
.cm-cap{font-size:var(--t-micro);color:var(--ink-soft);margin-top:8px;line-height:1.5}
.cm-see{margin-top:22px;border-top:1px solid var(--rule);padding-top:14px}
.cm-see-title{font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ink-soft);margin-bottom:6px}

/* ---------- 6. other components ---------- */
.cm-skip{position:absolute;left:-9999px}
.cm-skip:focus{left:var(--edge);top:12px;z-index:60;background:var(--page);padding:10px 14px;border:2px solid var(--ink)}
.cm-nav{background:var(--page);border-bottom:2px solid var(--ink)}
.cm-nav-in{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;padding-top:17px;padding-bottom:17px}
.cm-mark{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:1.35rem;letter-spacing:-.01em;text-decoration:none;margin-right:auto}
.cm-nav a{text-decoration:none;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.cm-nav a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.cm-micro{font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.cm-lede{font-size:var(--t-lede);color:var(--ink-soft);max-width:54ch}
.cm-link{display:inline-block;text-decoration:none;font-weight:700;border-bottom:2px solid var(--hue);padding-bottom:2px}
.cm-link:hover{border-bottom-width:4px}
.cm-rule{height:1px;background:var(--rule);border:0;margin:0}
.cm-letters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.cm-letter{background:var(--page);border:1px solid var(--ink);min-width:38px;padding:7px 9px;cursor:pointer;font-weight:700;text-align:center;transition:background .15s var(--ease)}
.cm-letter:hover{background:var(--page-2)}
.cm-letter[aria-pressed="true"]{background:var(--ink);color:var(--ink-inv);border-color:var(--ink)}
.cm-index{border-top:2px solid var(--ink)}
.cm-index li{display:flex;flex-wrap:wrap;gap:6px 14px;padding:13px 0;border-bottom:1px solid var(--rule)}
.cm-index a{text-decoration:none;font-weight:700;font-family:"Fraunces",Georgia,serif;font-size:1.12rem}
.cm-index a:hover{text-decoration:underline;text-underline-offset:4px}
.cm-index span{color:var(--ink-soft);font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;align-self:center}
.cm-log{border-left:2px solid var(--ink);padding-left:20px}
.cm-log li{padding:12px 0;border-bottom:1px solid var(--rule);max-width:var(--read)}
.cm-log time{font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:3px}
.cm-foot{background:var(--ink);color:var(--ink-inv)}
.cm-foot a{text-decoration:none}
.cm-foot a:hover{text-decoration:underline;text-underline-offset:4px}
.is-out{display:none}
:focus-visible{outline:3px solid var(--hue);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- 7. additions ---------- */
.cm-fill{background:var(--hue);color:var(--on-hue);aspect-ratio:4/3;display:flex;align-items:flex-end;padding:16px 18px}
.cm-fill-wide{aspect-ratio:21/9}
.cm-fill-name{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:1.45rem;line-height:1.08;max-width:22ch}
.cm-fill-wide .cm-fill-name{font-size:clamp(1.5rem,3.4vw,2.6rem)}
.cm-note{margin-top:18px;background:var(--page-2);padding:14px 16px;color:var(--ink-soft);max-width:62ch}
.cm-note b{color:var(--ink);font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;display:block;margin-bottom:2px}
.cm-checked{margin-top:18px;font-size:.86rem;color:var(--ink-soft);max-width:74ch}
.cm-ask{margin-top:12px}
.cm-see ul{margin-top:4px}
.cm-see li{padding:5px 0}
.cm-see a{font-weight:700;text-decoration:none;border-bottom:2px solid var(--hue)}
.cm-see em{font-style:normal;color:var(--ink-soft)}
.cm-head{padding-top:clamp(36px,5vw,72px);padding-bottom:clamp(36px,5vw,72px)}
.cm-head h1{max-width:20ch}
.cm-crit{font-size:1.3rem;font-weight:700;max-width:56ch;margin-top:14px}
.cm-strip-hue p{max-width:56ch}
.cm-strip-hue .cm-micro{font-size:.82rem;letter-spacing:.2em;margin-bottom:14px}
.cm-intro{max-width:var(--read)}
.cm-adult{margin-top:22px;font-weight:700;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:14px 0;max-width:62ch}
.cm-stack{margin-top:22px}
.cm-stack li{padding:11px 0;border-bottom:1px solid var(--rule);max-width:var(--read)}
.cm-stack h3{margin-bottom:2px}
.cm-menu-btn{display:block;background:var(--page);border:2px solid var(--ink);padding:6px 12px;font-weight:700;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.cm-menu{display:none;width:100%;flex-wrap:wrap;gap:10px 22px;padding-bottom:6px}
.cm-menu[data-open="true"]{display:flex}
@media (min-width:900px){
  .cm-menu-btn{display:none}
  .cm-menu{display:flex;width:auto;padding-bottom:0}
}
.cm-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}
@media (min-width:900px){
  .cm-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:52px;align-items:end}
}
.cm-hero h1{max-width:14ch;margin-top:18px}
.cm-hero-lede{margin-top:20px}
.cm-meta{margin-top:30px;padding-top:14px;border-top:2px solid var(--ink);font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.cm-band{display:block;text-decoration:none;background:var(--page);border:1px solid var(--ink);border-left:16px solid var(--hue);padding:clamp(20px,2.6vw,30px);margin-bottom:14px;transition:background .15s var(--ease)}
.cm-band:hover{background:var(--page-2)}
.cm-band-art{border-left-color:#6B3F6E}
.cm-band-capsule{border-left-color:#1D6A5A}
.cm-band-casino{border-left-color:#9C2B22}
.cm-band-ice{border-left-color:#2B4E78}
.cm-band-in{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
@media (min-width:900px){
  .cm-band-in{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:32px;align-items:baseline}
}
.cm-band-name{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.05}
.cm-band-art .cm-band-name{color:#6B3F6E}
.cm-band-capsule .cm-band-name{color:#1D6A5A}
.cm-band-casino .cm-band-name{color:#9C2B22}
.cm-band-ice .cm-band-name{color:#2B4E78}
.cm-band-crit{color:var(--ink-soft)}
.cm-two{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
@media (min-width:900px){
  .cm-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}
}
.cm-big{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:clamp(1.7rem,4vw,3rem);line-height:1.12;max-width:22ch}
.cm-foot-top{padding-top:var(--gap);padding-bottom:38px}
.cm-foot-line{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.1;max-width:18ch}
.cm-foot-cta{display:inline-block;margin-top:16px;font-weight:700;border-bottom:2px solid var(--page-2);padding-bottom:2px}
.cm-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;padding-bottom:38px}
@media (min-width:640px){
  .cm-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (min-width:900px){
  .cm-cols{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.cm-cols h2{font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;font-family:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#A79E90;margin-bottom:10px}
.cm-cols li{padding:4px 0}
.cm-foot-end{border-top:1px solid rgba(251,248,243,.24);padding-top:24px;padding-bottom:var(--gap);font-size:.86rem;color:#C6BEB2}
.cm-foot-end p{max-width:70ch}
.cm-ack{margin-top:10px}
.cm-q{border-top:1px solid var(--rule);padding:16px 0;max-width:var(--read)}
.cm-q summary{font-weight:700;cursor:pointer;font-size:1.06rem}
.cm-q p{margin-top:10px}
.cm-form{max-width:640px;margin-top:26px}
.cm-field{margin-bottom:18px}
.cm-field label{display:block;font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:6px}
.cm-field input,.cm-field select,.cm-field textarea{width:100%;background:var(--page);border:1px solid var(--ink);padding:12px}
.cm-field textarea{min-height:150px}
.cm-check{display:flex;gap:10px;align-items:flex-start;margin-bottom:20px;max-width:62ch}
.cm-check input{width:18px;height:18px;margin-top:5px}
.cm-check label{font-size:.92rem}
.cm-send{background:var(--ink);color:var(--ink-inv);border:0;padding:14px 28px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;cursor:pointer;transition:opacity .2s var(--ease)}
.cm-send:hover{opacity:.82}
.cm-status{font-weight:700;margin-bottom:16px;font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase}
.cm-crumbs{font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);padding-top:18px}
.cm-crumbs a{text-decoration:none}
.cm-panel{background:var(--page-2);border-left:8px solid var(--hue);padding:22px 24px;margin-top:28px}
.cm-panel h2{font-size:var(--t-h3)}
.cm-panel p{margin-top:10px}
.cm-next{margin-top:38px;padding-top:22px;border-top:2px solid var(--ink);display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:640px){
  .cm-next{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
.cm-h2-gap{margin-bottom:20px}
.cm-p-gap{margin-top:18px}
.cm-legal h2{font-size:var(--t-h3);margin-top:34px;margin-bottom:8px}
.cm-legal li{padding:5px 0 5px 18px;border-left:2px solid var(--hue);margin-top:8px;max-width:var(--read)}

/* ---------- 8. photo frames (see /PHOTOS.md) ---------- */
.cm-media{overflow:hidden;background:var(--page-2);aspect-ratio:4/3}
.cm-media img{width:100%;height:100%;object-fit:cover}
.cm-media-wide{aspect-ratio:21/9}
.cm-media-mark{aspect-ratio:1;background:#0B1A2E;padding:0}
.cm-media-mark img{object-fit:cover}
.cm-box .cm-media{margin-bottom:12px}
