/* Lore & More — The Descent base styles — fonts are self-hosted, OFL licenses in /fonts */
@font-face{font-family:"EB Garamond";src:url("fonts/EBGaramond.ttf") format("truetype");font-weight:400 800;font-display:swap}
@font-face{font-family:"Cinzel";src:url("fonts/Cinzel[wght].ttf") format("truetype");font-weight:400 900;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("fonts/CormorantGaramond[wght].ttf") format("truetype");font-weight:300 700;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("fonts/CormorantGaramond-Italic[wght].ttf") format("truetype");font-weight:300 700;font-style:italic;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"EB Garamond",Georgia,serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid #e9c27a;outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
::selection{background:rgba(233,194,122,.35);color:#fff8e6}

/* ambience toggle */
.lm-sound{position:fixed;right:16px;bottom:16px;z-index:9999;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 16px 0 12px;border-radius:999px;border:1px solid rgba(233,194,122,.25);background:rgba(12,9,6,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#e8d9b8;font:600 11px/1 system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.lm-sound .bars{display:flex;align-items:flex-end;gap:2px;height:14px}
.lm-sound .bars i{width:2px;height:30%;background:currentColor;border-radius:2px;transition:height .3s}
.lm-sound[aria-pressed="true"] .bars i{animation:lmbar 1s ease-in-out infinite alternate}
.lm-sound[aria-pressed="true"] .bars i:nth-child(2){animation-delay:-.4s}.lm-sound[aria-pressed="true"] .bars i:nth-child(3){animation-delay:-.7s}.lm-sound[aria-pressed="true"] .bars i:nth-child(4){animation-delay:-.2s}
@keyframes lmbar{from{height:20%}to{height:100%}}

/* custom cursor (fine pointers only) */
.lm-cur,.lm-ring{position:fixed;left:0;top:0;z-index:10000;pointer-events:none;border-radius:50%;transform:translate3d(-100px,-100px,0)}
.lm-cur{width:6px;height:6px;margin:-3px 0 0 -3px;background:#f3d08c;box-shadow:0 0 12px 2px rgba(243,208,140,.6)}
.lm-ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(243,208,140,.45);transition:width .35s,height .35s,margin .35s,background .35s,border-color .35s}
.lm-ring.hot{width:70px;height:70px;margin:-35px 0 0 -35px;background:rgba(243,208,140,.08);border-color:rgba(243,208,140,.8)}
@media (hover:hover) and (pointer:fine){html.lm-has-cursor,html.lm-has-cursor a,html.lm-has-cursor button,html.lm-has-cursor label{cursor:none}}

/* split text */
.lm-split .w{display:inline-block;white-space:nowrap}
.lm-split .c{display:inline-block;opacity:0;transform:translateY(.45em) rotate(4deg);filter:blur(8px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform 1.1s cubic-bezier(.2,.8,.2,1),filter .9s;transition-delay:calc(var(--i)*28ms + var(--d,0ms))}
.lm-split.in .c{opacity:1;transform:none;filter:none}

.reveal{opacity:0;transform:translateY(36px);transition:opacity 1.1s cubic-bezier(.2,.8,.2,1),transform 1.1s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0ms)}
.reveal.in{opacity:1;transform:none}
.draft{font:13px/1.4 system-ui,sans-serif;letter-spacing:.02em;opacity:.55}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}}
