/* Colours, fonts, nav, shared bits */
:root{
  --cream:#F7F1E6;--maroon:#9A3636;--btn:#9A3636;--stone:#77746E;--ink:#3A1E1E;--muted:#6B5A55;--line:#E4D7C3;--band:#8B3333;
  --card:#F8EEDA;--cink:#3A1E1E;--cac:#9A3636;--cmut:#6B5A55;--panel:#EFDFC2;
  --bubble:'Lilita One','Chewy','Arial Rounded MT Bold','Trebuchet MS',sans-serif;
  --script:'Dancing Script','Brush Script MT','Segoe Script',cursive;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Nunito Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --khmer:'Moul','Noto Serif Khmer',serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)
}
@media (prefers-color-scheme:dark){
  :root{--cream:#1E1113;--maroon:#E6A3A0;--btn:#B64A48;--stone:#A9A39B;--ink:#F4E9DA;--muted:#CDBBB0;--line:#3A2427;--band:#4F1E21}
}
html{scroll-padding-top:calc(64px + env(safe-area-inset-top,0px));scroll-behavior:smooth;-webkit-text-size-adjust:100%}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.65 var(--sans);overflow-x:hidden}
a{color:inherit}
img{max-width:100%}
:focus-visible{outline:3px solid var(--maroon);outline-offset:3px}
.wrap{max-width:1040px;margin:0 auto;padding:0 22px}
h1,h2,.sets h3{font-family:var(--bubble);font-weight:400;letter-spacing:.01em;text-shadow:2px 3px 0 color-mix(in srgb,var(--maroon) 22%,transparent)}
h2{font-size:clamp(34px,6vw,56px);line-height:1.05;color:var(--maroon);margin:0 0 12px}
.lead{color:var(--muted);max-width:580px;margin:0 0 28px}
.btn{display:inline-block;background:var(--btn);color:#fff;font-weight:700;padding:13px 26px;border-radius:99px;text-decoration:none;margin:0 10px 10px 0;border:2px solid var(--btn);transition:transform .25s var(--ease),box-shadow .25s}
.btn:hover{transform:translateY(-3px);box-shadow:0 10px 20px rgba(120,30,30,.3)}
.btn.o{background:none;color:var(--maroon);border-color:var(--maroon)}
#prog{position:fixed;top:0;left:0;right:0;height:3px;background:var(--maroon);transform-origin:0 50%;transform:scaleX(0);z-index:9}
nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--cream) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:64px;gap:14px}
.brand{font:700 36px/1.3 var(--script);color:var(--maroon);text-decoration:none;white-space:nowrap;padding:2px 6px 4px 0}
nav ul{display:flex;gap:22px;margin:0;padding:0;list-style:none}
nav li a{text-decoration:none;font-weight:700;font-size:15px;white-space:nowrap;padding:4px 0}
nav li a:hover{color:var(--maroon)}
/* scroll reveal */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease calc(var(--i,0)*80ms),transform .8s var(--ease) calc(var(--i,0)*80ms),box-shadow .3s ease 0s,background .3s ease 0s}
.js .rv.in{opacity:1;transform:none}
#motion{position:fixed;left:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:9;font:700 13px var(--sans);background:var(--btn);color:#fff;border:0;border-radius:99px;padding:10px 16px;box-shadow:0 6px 16px rgba(0,0,0,.3);cursor:pointer}

/* Custom scrollbar (Chrome, Edge, Safari, Firefox). Phones use their own thin overlay bar,
   and the maroon progress line at the top of the page shows how far you have scrolled. */
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--cream)}
::-webkit-scrollbar-thumb{background:var(--btn);border-radius:99px;border:3px solid var(--cream)}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--btn) 78%,#000)}
::-webkit-scrollbar-corner{background:var(--cream)}
@supports (-moz-appearance:none){html{scrollbar-width:thin;scrollbar-color:var(--btn) var(--cream)}}
button{-webkit-tap-highlight-color:transparent}

/* Custom text highlight (red instead of browser blue) */
::selection{background:#C8283C;color:#fff;text-shadow:none}
::-moz-selection{background:#C8283C;color:#fff;text-shadow:none}
