  @font-face{font-family:"Cinzel Decorative";font-weight:700;font-display:swap;src:url(/fonts/cinzel-decorative-latin-700-normal.woff2) format("woff2")}
  @font-face{font-family:"Cinzel Decorative";font-weight:900;font-display:swap;src:url(/fonts/cinzel-decorative-latin-900-normal.woff2) format("woff2")}
  @font-face{font-family:"IM Fell English SC";font-display:swap;src:url(/fonts/im-fell-english-sc-latin-400-normal.woff2) format("woff2")}
  @font-face{font-family:"IM Fell English";font-style:italic;font-display:swap;src:url(/fonts/im-fell-english-latin-400-italic.woff2) format("woff2")}
  @font-face{font-family:"EB Garamond";font-weight:400;font-display:swap;src:url(/fonts/eb-garamond-latin-400-normal.woff2) format("woff2")}
  @font-face{font-family:"EB Garamond";font-weight:600;font-display:swap;src:url(/fonts/eb-garamond-latin-600-normal.woff2) format("woff2")}
  @font-face{font-family:"EB Garamond";font-style:italic;font-display:swap;src:url(/fonts/eb-garamond-latin-400-italic.woff2) format("woff2")}
  :root{
    --night:#0e0a07; --night-2:#1a120c; --ink:#2b1a0d; --ink-soft:#5a4127;
    --parch:#efe0b8; --parch-2:#dcc490; --edge:#8a6a3a;
    --gold:#c9a24a; --gold-2:#efd690; --gold-3:#7a561c;
    --blood:#7a1414; --blood-2:#a51f1f;
    --max:1080px;
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .25 0 0 0 0 .16 0 0 0 0 .08 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;color:var(--parch);font:18px/1.6 "EB Garamond",Georgia,serif;-webkit-font-smoothing:antialiased;
    background:var(--noise),radial-gradient(120% 80% at 50% 0%,#2a1a10 0%,var(--night) 1400px),var(--night)}
  a{color:var(--blood-2)}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 16px}
  .sc{font-family:"IM Fell English SC",Georgia,serif;letter-spacing:.06em}

  /* nav */
  header.nav{position:sticky;top:0;z-index:30;background:linear-gradient(#1b120b,#120c08);border-bottom:2px solid var(--gold-3);box-shadow:0 2px 0 #000,0 8px 24px rgba(0,0,0,.6)}
  .nav .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
  .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--gold-2);font:900 21px/1 "Cinzel Decorative",Georgia,serif;letter-spacing:.06em;text-shadow:0 2px 0 #000}
  .brand svg{width:34px;height:43px}
  .nav nav{display:flex;gap:26px}
  .nav nav a{color:var(--parch-2);text-decoration:none;font:19px "IM Fell English SC",serif;letter-spacing:.08em}
  .nav nav a:hover{color:var(--gold-2)}
  .menu-btn{display:none;background:none;border:1px solid var(--gold-3);color:var(--gold-2);border-radius:4px;padding:6px 11px;font-size:1rem;cursor:pointer}

  /* hero */
  .hero{position:relative;text-align:center;padding:48px 0 96px;overflow:hidden;isolation:isolate}
  .hero .scene{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
  .hero .wrap{position:relative}
  .hero::before{content:"";position:absolute;left:50%;top:40px;width:640px;height:640px;transform:translateX(-50%);
    background:radial-gradient(circle,rgba(201,162,74,.22),rgba(165,31,31,.12) 40%,transparent 68%);pointer-events:none}
  .crest{position:relative;width:min(330px,78vw);height:auto;filter:drop-shadow(0 14px 22px rgba(0,0,0,.8)) drop-shadow(0 0 30px rgba(201,162,74,.25))}
  .hero h1{position:relative;margin:6px 0 0;font:900 clamp(2.9rem,10.5vw,6rem)/1.05 "Cinzel Decorative",Georgia,serif;letter-spacing:.04em;color:var(--gold-2);
    background:linear-gradient(180deg,#fbeab0 10%,#d7ae52 55%,#8a6322 90%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    filter:drop-shadow(0 4px 0 #000) drop-shadow(0 0 18px rgba(0,0,0,.6))}
  .hero .sub{position:relative;font:clamp(1.05rem,2.6vw,1.35rem) "IM Fell English SC",serif;letter-spacing:.32em;color:var(--parch-2);margin:6px 0 14px}
  .hero .tagline{position:relative;max-width:580px;margin:0 auto;font:italic 1.25rem/1.55 "IM Fell English",serif;color:#e4d3ad;text-shadow:0 2px 6px #000}
  .btns{position:relative;display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:30px}
  .btn{display:inline-block;padding:12px 26px;font:20px/1 "IM Fell English SC",serif;letter-spacing:.08em;text-decoration:none;border-radius:3px;transition:transform .15s,filter .15s}
  .btn:hover{transform:translateY(-1px);filter:brightness(1.12)}
  .btn-primary{color:#fbeab0;background:linear-gradient(#a51f1f,#6e1010);border:2px solid var(--gold);box-shadow:inset 0 0 0 2px #3e0707,0 4px 0 #000,0 8px 18px rgba(0,0,0,.5)}
  .btn-ghost{color:var(--gold-2);background:rgba(0,0,0,.35);border:2px solid var(--gold-3);box-shadow:0 4px 0 #000}

  /* parchment panels */
  section.page{padding:28px 0 36px}
  .parch{position:relative;color:var(--ink);padding:60px 56px 56px;border-radius:4px;
    background:var(--noise),radial-gradient(ellipse at 50% 40%,#f6ead0 0%,var(--parch) 45%,var(--parch-2) 85%,#bf9f62 100%);
    box-shadow:inset 0 0 70px rgba(110,70,25,.55),inset 0 0 10px rgba(70,40,10,.7),0 3px 0 #000,0 20px 50px rgba(0,0,0,.7)}
  .parch::before,.parch::after{content:"";position:absolute;pointer-events:none;border:1px solid rgba(90,55,20,.55)}
  .parch::before{inset:12px}
  .parch::after{inset:17px;border-width:3px;border-color:rgba(122,20,20,.35)}
  .corner{position:absolute;width:38px;height:38px;color:var(--blood)}
  .corner.tl{top:8px;left:8px}.corner.tr{top:8px;right:8px;transform:scaleX(-1)}
  .corner.bl{bottom:8px;left:8px;transform:scaleY(-1)}.corner.br{bottom:8px;right:8px;transform:scale(-1,-1)}
  .head{text-align:center;margin-bottom:28px}
  .eyebrow{font:italic 1.05rem "IM Fell English",serif;color:var(--ink-soft)}
  h2{margin:2px 0 6px;font:700 clamp(1.75rem,4.6vw,2.7rem)/1.15 "Cinzel Decorative",Georgia,serif;letter-spacing:.03em;color:var(--blood);text-shadow:0 1px 0 rgba(255,255,255,.4)}
  h3{font-family:"IM Fell English SC",serif;letter-spacing:.04em;font-weight:400}
  .flourish{display:block;width:260px;max-width:70%;height:22px;margin:8px auto 0;color:var(--gold-3)}
  .lede{max-width:700px;margin:0 auto;text-align:center;font-size:1.2rem;line-height:1.65;color:var(--ink)}
  .dropcap::first-letter{float:left;font:900 4.4rem/.85 "Cinzel Decorative",Georgia,serif;color:var(--blood);padding:6px 10px 0 0;text-shadow:2px 2px 0 rgba(201,162,74,.6)}
  .dropcap{text-align:left}

  /* about */
  .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px}
  .pillar{text-align:center;padding:10px 8px}
  .medal{width:100px;height:100px;margin:0 auto 6px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 40% 35%,#b52a2a,#6e1010 60%,#3e0707);border:4px solid #c9a24a;box-shadow:0 0 0 2px #2a1806,0 0 0 7px rgba(201,162,74,.35),0 8px 16px rgba(0,0,0,.45)}
  .medal svg{width:54px;height:54px;color:#f3dc94;filter:drop-shadow(0 2px 0 #2a0505)}
  .pillar h3{font-size:1.45rem;margin:8px 0 4px;color:var(--ink)}
  .pillar p{margin:0;color:#4a331c;font-size:1.05rem}

  /* roster */
  .roster{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:10px}
  .member{text-align:center;padding:26px 18px 22px;background:rgba(255,248,225,.35);border:1px solid rgba(90,55,20,.45);box-shadow:inset 0 0 22px rgba(120,80,30,.25);border-radius:3px}
  .member .shield{width:74px;height:86px;margin:0 auto 10px;filter:drop-shadow(0 3px 2px rgba(0,0,0,.35))}
  .member .rank{font:italic 1rem "IM Fell English",serif;color:var(--blood)}
  .member h3{font-size:1.65rem;margin:2px 0 4px;color:var(--ink)}
  .member .role{color:var(--ink-soft);font-style:italic;margin-bottom:10px}
  .tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
  .tag{font:15px "IM Fell English SC",serif;letter-spacing:.04em;padding:2px 10px;border:1px solid rgba(122,20,20,.45);color:var(--blood);background:rgba(255,255,255,.25);border-radius:2px}

  /* events */
  .events{display:grid;gap:4px;max-width:760px;margin:0 auto}
  .event{display:grid;grid-template-columns:86px 1fr auto;gap:22px;align-items:center;padding:18px 6px;border-bottom:1px dashed rgba(90,55,20,.5)}
  .event:last-child{border-bottom:0}
  .seal{width:76px;height:76px;display:grid;place-items:center;text-align:center;color:#f6dfa4;font:13px/1.05 "IM Fell English SC",serif;letter-spacing:0}
  .seal svg{grid-area:1/1;width:100%;height:100%}
  .seal span{grid-area:1/1;position:relative;text-shadow:0 1px 0 #3e0707}
  .event h3{margin:0 0 2px;font-size:1.4rem;color:var(--ink)}
  .event p{margin:0;color:var(--ink-soft)}
  .when{font:italic 1.05rem "IM Fell English",serif;color:var(--blood);white-space:nowrap}

  /* join */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:10px 0 30px}
  .step{text-align:center}
  .step .num{font:900 2.4rem/1 "Cinzel Decorative",Georgia,serif;color:var(--blood)}
  .step h3{margin:4px 0;font-size:1.35rem;color:var(--ink)}
  .step p{margin:0;color:var(--ink-soft)}
  .join .btns{margin-top:0}

  .divider{text-align:center;margin:-6px 0}
  .divider svg{width:min(420px,90vw);height:auto}
  footer{padding:34px 0 46px;text-align:center;color:#a8946e;font-size:.95rem}
  footer .flourish{color:var(--gold-3);margin-bottom:12px}
  footer p{margin:4px 0}

  @media (max-width:840px){
    .pillars,.roster,.steps{grid-template-columns:1fr}
    .parch{padding:48px 26px 40px}
    .event{grid-template-columns:70px 1fr;gap:16px}
    .seal{width:66px;height:66px;font-size:13px}
    .when{grid-column:2}
    .menu-btn{display:block}
    .nav nav{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;gap:0;background:#140d08;border-bottom:2px solid var(--gold-3)}
    .nav nav.open{display:flex}
    .nav nav a{padding:14px 20px;border-top:1px solid #2e2116}
  }

/* ===== multi-page additions ===== */
.nav nav{gap:20px;align-items:center}
.nav nav a{font-size:17px}
.nav nav a.active{color:var(--gold-2);text-shadow:0 0 12px rgba(239,214,144,.45)}
.nav nav a.nav-join{padding:7px 14px;border:1px solid var(--gold);border-radius:3px;color:#fbeab0;background:linear-gradient(#a51f1f,#6e1010)}
.nav nav a.nav-hall{opacity:.85}
.nav-tools{display:flex;align-items:center;gap:10px}
.sound-btn{background:rgba(0,0,0,.3);border:1px solid var(--gold-3);color:var(--gold-2);border-radius:999px;width:34px;height:34px;cursor:pointer;display:grid;place-items:center;font-size:15px}
.sound-btn[aria-pressed="true"]{background:var(--blood);border-color:var(--gold)}
@media (max-width:1060px){
  .menu-btn{display:block}
  .nav nav{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#140d08;border-bottom:2px solid var(--gold-3)}
  .nav nav.open{display:flex}
  .nav nav a{padding:14px 20px;border-top:1px solid #2e2116}
  .nav nav a.nav-join{margin:10px 20px 14px;text-align:center}
}

/* page banner for inner pages */
.banner{position:relative;text-align:center;padding:54px 16px 40px;overflow:hidden;isolation:isolate;
  background:radial-gradient(70% 120% at 50% 0%,rgba(165,31,31,.35),transparent 70%),linear-gradient(#1a110b,var(--night))}
.banner::after{content:"";position:absolute;inset:auto 0 0 0;height:2px;background:linear-gradient(90deg,transparent,var(--gold-3),transparent)}
.banner .mini-crest{width:70px;height:89px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.7))}
.banner h1{margin:8px 0 4px;font:900 clamp(2rem,6vw,3.4rem)/1.1 "Cinzel Decorative",Georgia,serif;letter-spacing:.04em;
  background:linear-gradient(180deg,#fbeab0 10%,#d7ae52 60%,#8a6322);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 0 #000)}
.banner p{margin:0 auto;max-width:620px;font:italic 1.15rem "IM Fell English",serif;color:#d9c79f}

/* generic content on parchment */
.prose{max-width:760px;margin:0 auto;font-size:1.15rem;line-height:1.7}
.prose h3{font-size:1.5rem;color:var(--blood);margin:1.6em 0 .3em}
.prose ol,.prose ul{padding-left:1.3em}
.prose li{margin:.35em 0}
.muted{color:var(--ink-soft);font-style:italic}
.center{text-align:center}
.notice{max-width:700px;margin:0 auto 22px;padding:12px 16px;border:1px dashed rgba(122,20,20,.5);background:rgba(255,255,255,.28);color:var(--ink);border-radius:3px;font-size:1rem;text-align:center}
.notice.ok{border-color:rgba(40,90,30,.55)}
.hidden{display:none!important}

/* forms */
.form{max-width:680px;margin:0 auto;display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:grid;gap:5px;font:17px "IM Fell English SC",serif;letter-spacing:.04em;color:var(--ink)}
.form input,.form select,.form textarea{font:17px "EB Garamond",Georgia,serif;color:var(--ink);padding:10px 12px;border:1px solid rgba(90,55,20,.55);border-radius:3px;
  background:rgba(255,250,235,.7);box-shadow:inset 0 1px 3px rgba(80,50,20,.25)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;background:#fffaf0}
.form textarea{min-height:110px;resize:vertical}
.form .hp{position:absolute;left:-9999px}
.form button{justify-self:center;cursor:pointer;border:2px solid var(--gold)}
.form button[disabled]{opacity:.6;cursor:wait}
.check{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;font-family:"EB Garamond",serif!important;letter-spacing:0!important}
@media (max-width:640px){.form .row{grid-template-columns:1fr}}

/* tavern board (status) */
.board{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.board .card,.card{background:rgba(255,248,225,.38);border:1px solid rgba(90,55,20,.45);box-shadow:inset 0 0 22px rgba(120,80,30,.22);border-radius:3px;padding:20px 22px}
.card h3{margin:0 0 10px;font-size:1.35rem;color:var(--blood)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:1px;background:#8a7a64}
.dot.on{background:#3f9a3a;box-shadow:0 0 8px #3f9a3a}
.dot.off{background:#a51f1f}
.srv{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed rgba(90,55,20,.4)}
.srv:last-child{border-bottom:0}
.srv b{font-weight:600}
.avatars{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}
.avatars img{width:30px;height:30px;border-radius:50%;border:2px solid var(--gold-3)}
.big-num{font:900 2.3rem/1 "Cinzel Decorative",Georgia,serif;color:var(--blood)}
@media (max-width:840px){.board{grid-template-columns:1fr}}

/* countdown */
.next-up{text-align:center}
.countdown{display:flex;justify-content:center;gap:14px;margin:14px 0 8px}
.countdown div{min-width:74px;padding:10px 6px;background:linear-gradient(#2a1a10,#140d08);border:2px solid var(--gold-3);border-radius:4px;color:var(--gold-2);box-shadow:0 4px 0 #000}
.countdown b{display:block;font:900 1.9rem/1 "Cinzel Decorative",Georgia,serif}
.countdown span{font:13px "IM Fell English SC",serif;letter-spacing:.08em;color:var(--parch-2)}
.ics{font:16px "IM Fell English SC",serif;letter-spacing:.05em;color:var(--blood);background:none;border:1px solid rgba(122,20,20,.5);border-radius:3px;padding:4px 10px;cursor:pointer;margin-top:6px}
.ics:hover{background:rgba(165,31,31,.08)}
.event .when small{display:block;font-size:.85rem;color:var(--ink-soft)}

/* character pages */
.char{display:grid;grid-template-columns:220px 1fr;gap:34px;align-items:start}
.char .shield.big{width:180px;height:210px;display:block;margin:0 auto}
.char dl{display:grid;grid-template-columns:140px 1fr;gap:6px 14px;margin:14px 0}
.char dt{font:17px "IM Fell English SC",serif;color:var(--blood)}
.char dd{margin:0}
.skillbar{height:12px;border:1px solid rgba(90,55,20,.5);background:rgba(255,255,255,.35);border-radius:2px;overflow:hidden;margin:4px 0 10px}
.skillbar i{display:block;height:100%;background:linear-gradient(90deg,#6e1010,#c9a24a)}
.member a.more{display:inline-block;margin-top:12px;font:16px "IM Fell English SC",serif;letter-spacing:.05em;color:var(--blood)}
@media (max-width:760px){.char{grid-template-columns:1fr}.char dl{grid-template-columns:110px 1fr}}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}
.frame{position:relative;padding:10px;background:linear-gradient(135deg,#d4ab4f,#7a561c 45%,#e6c877 55%,#7a561c);border-radius:3px;box-shadow:0 6px 16px rgba(0,0,0,.4);cursor:zoom-in;border:0}
.frame img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:2px solid #2a1806;background:#1a120c}
.frame figcaption{margin-top:8px;font:italic 1rem "IM Fell English",serif;color:#2a1806;text-align:center}
.frame.empty{cursor:default;display:grid;place-items:center;aspect-ratio:4/3}
.frame.empty span{font:italic 1.05rem "IM Fell English",serif;color:#2a1806;text-align:center;padding:10px}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(8,5,3,.92);display:grid;place-items:center;padding:20px}
.lightbox img{max-width:min(1200px,94vw);max-height:80vh;border:6px solid var(--gold-3);box-shadow:0 0 0 2px #000,0 20px 60px #000}
.lightbox p{color:var(--parch);font:italic 1.15rem "IM Fell English",serif;text-align:center;margin:12px 0 0}
.lightbox button{position:absolute;background:rgba(0,0,0,.5);border:1px solid var(--gold-3);color:var(--gold-2);font-size:28px;width:52px;height:52px;border-radius:50%;cursor:pointer}
.lightbox .lb-close{top:18px;right:18px}.lightbox .lb-prev{left:18px;top:50%}.lightbox .lb-next{right:18px;top:50%}

/* hall of fame */
.deeds{display:grid;gap:14px;max-width:780px;margin:0 auto}
.deed{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center;padding:14px 0;border-bottom:1px dashed rgba(90,55,20,.45)}
.deed:last-child{border-bottom:0}
.deed .trophy{width:58px;height:58px;color:var(--gold-3)}
.deed h3{margin:0;font-size:1.3rem;color:var(--ink)}
.deed p{margin:2px 0 0;color:var(--ink-soft)}
.deed .date{font:italic .95rem "IM Fell English",serif;color:var(--blood)}

/* orders board */
.orders{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-top:22px}
.order{position:relative;padding:20px 18px 16px;background:#f3e4bd;border:1px solid rgba(90,55,20,.5);box-shadow:0 5px 12px rgba(0,0,0,.25);transform:rotate(-.6deg)}
.order:nth-child(2n){transform:rotate(.8deg)}
.order::before{content:"";position:absolute;top:-8px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#e04a3a,#7a1414);box-shadow:0 2px 2px rgba(0,0,0,.4)}
.order h3{margin:0 0 4px;font-size:1.3rem;color:var(--ink)}
.order .meta{font-size:.95rem;color:var(--ink-soft)}
.order .status{font:15px "IM Fell English SC",serif;letter-spacing:.05em;color:var(--blood)}
.order .acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.order .acts button,.mini-btn{font:15px "IM Fell English SC",serif;letter-spacing:.04em;padding:4px 10px;border:1px solid rgba(122,20,20,.55);background:rgba(255,255,255,.4);color:var(--blood);border-radius:3px;cursor:pointer}
.order.done{opacity:.6}
.order.done h3{text-decoration:line-through}
.tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}
.tabs button{font:16px "IM Fell English SC",serif;padding:6px 14px;border:1px solid rgba(90,55,20,.5);background:rgba(255,255,255,.3);border-radius:3px;cursor:pointer;color:var(--ink)}
.tabs button.on{background:var(--blood);color:#fbeab0;border-color:var(--gold)}
table.list{width:100%;border-collapse:collapse;font-size:1rem}
table.list th{font:16px "IM Fell English SC",serif;text-align:left;color:var(--blood);border-bottom:2px solid rgba(90,55,20,.5);padding:6px}
table.list td{padding:8px 6px;border-bottom:1px dashed rgba(90,55,20,.4);vertical-align:top}
.scroll-x{overflow-x:auto}

/* embers + motion */
.embers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.torch{position:absolute;bottom:120px;width:46px;height:150px;z-index:0;pointer-events:none}
.torch.l{left:max(4vw,16px)}.torch.r{right:max(4vw,16px)}
.flame{transform-origin:23px 58px;animation:flick 0.9s ease-in-out infinite alternate}
.flame.b{animation-duration:.6s;animation-delay:-.3s}
.torch-glow{position:absolute;bottom:170px;width:260px;height:260px;margin-left:-107px;border-radius:50%;background:radial-gradient(circle,rgba(255,170,60,.28),transparent 65%);pointer-events:none;z-index:0;animation:glow 2.2s ease-in-out infinite alternate}
.torch-glow.l{left:max(4vw,16px)}.torch-glow.r{right:max(4vw,16px);margin-left:0;margin-right:-107px}
@keyframes flick{0%{transform:scale(1,1) skewX(0)}50%{transform:scale(.92,1.08) skewX(3deg)}100%{transform:scale(1.05,.94) skewX(-3deg)}}
@keyframes glow{from{opacity:.75;transform:scale(1)}to{opacity:1;transform:scale(1.08)}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (max-width:840px){.torch,.torch-glow{display:none}}
@media (prefers-reduced-motion:reduce){
  .flame,.torch-glow{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* town crier news */
.news{display:grid;gap:0;max-width:820px;margin:0 auto}
.news-item{display:grid;grid-template-columns:70px 1fr;gap:18px;align-items:start;padding:16px 4px;border-bottom:1px dashed rgba(90,55,20,.45);text-decoration:none;color:inherit}
.news-item:last-child{border-bottom:0}
.news-item:hover h3{color:var(--blood-2);text-decoration:underline}
.news-date{text-align:center;padding:6px 0;border:1px solid rgba(122,20,20,.45);background:rgba(255,255,255,.3);border-radius:2px;line-height:1.05}
.news-date b{display:block;font:900 1.6rem/1 "Cinzel Decorative",Georgia,serif;color:var(--blood)}
.news-date span{font:13px "IM Fell English SC",serif;letter-spacing:.06em;color:var(--ink-soft)}
.news-item h3{margin:2px 0 4px;font-size:1.3rem;color:var(--ink);transition:color .15s}
.news-src{font:italic .95rem "IM Fell English",serif;color:var(--ink-soft)}
.nav .wrap>nav{order:2;margin-left:auto}
.nav-tools{order:3;margin-left:16px}
.brand{order:1}
.nav nav a{white-space:nowrap;font-size:16px}
.nav nav{gap:16px}
.nav-hall svg{color:currentColor}
@media (max-width:1240px){
  .menu-btn{display:block}
  .nav .wrap>nav{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#140d08;border-bottom:2px solid var(--gold-3);margin:0}
  .nav .wrap>nav.open{display:flex}
  .nav nav a{padding:14px 20px;border-top:1px solid #2e2116;font-size:18px}
  .nav nav a.nav-join{margin:10px 20px 14px;text-align:center}
  .nav-tools{margin-left:auto}
}
@media (max-width:640px){
  .countdown{gap:6px}
  .countdown div{min-width:0;flex:1;padding:8px 2px}
  .countdown b{font-size:1.4rem}
  .when{white-space:normal}
  .board .card,.card{padding:16px 14px}
}
.sound-btn.waiting{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(201,162,74,.25)}}

/* cms content */
.dropcap p:first-child{margin-top:0}
.lede p{margin:0 0 .8em}
.portrait{display:block;width:84px;height:84px;margin:0 auto 10px;border-radius:50%;object-fit:cover;border:3px solid var(--gold);box-shadow:0 0 0 2px #2a1806,0 4px 10px rgba(0,0,0,.35)}
.portrait.big{width:190px;height:190px}
.auth-chip{display:flex;align-items:center;gap:8px;color:var(--parch-2);font:15px "IM Fell English SC",serif;text-decoration:none}
.auth-chip img{width:28px;height:28px;border-radius:50%;border:1px solid var(--gold-3)}

/* ===== back end ===== */
.admin{padding:34px 34px 40px}
.admin-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.admin-top .who{display:flex;align-items:center;gap:10px;font-size:1.05rem}
.admin-top .who img{width:38px;height:38px;border-radius:50%;border:2px solid var(--gold-3)}
.role-badge{font:14px "IM Fell English SC",serif;letter-spacing:.05em;padding:2px 9px;border-radius:2px;background:var(--blood);color:#fbeab0}
.admin-tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:2px solid rgba(90,55,20,.4);padding-bottom:10px;margin-bottom:22px;position:sticky;top:66px;background:linear-gradient(#e9d7a8,#e3cf9d);z-index:5;padding-top:10px}
.admin-tabs a{font:16px "IM Fell English SC",serif;letter-spacing:.03em;padding:6px 12px;border:1px solid rgba(90,55,20,.45);border-radius:3px;color:var(--ink);text-decoration:none;background:rgba(255,255,255,.3)}
.admin-tabs a.on{background:var(--blood);color:#fbeab0;border-color:var(--gold)}
.admin-tabs .count{display:inline-block;min-width:18px;padding:0 5px;margin-left:5px;border-radius:9px;background:#c9a24a;color:#2a1806;font:12px/18px "EB Garamond",serif;text-align:center}
.admin h3.sec{font-size:1.5rem;color:var(--blood);margin:0 0 6px}
.admin .help{color:var(--ink-soft);font-style:italic;margin:0 0 16px;font-size:1rem}
.edit-card{background:rgba(255,250,235,.5);border:1px solid rgba(90,55,20,.45);border-radius:4px;padding:16px 18px;margin-bottom:14px}
.edit-card summary{cursor:pointer;font:1.2rem "IM Fell English SC",serif;color:var(--ink);list-style:none;display:flex;align-items:center;gap:12px}
.edit-card summary::-webkit-details-marker{display:none}
.edit-card summary .ava{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--gold-3);background:#6e1010;color:#efd690;display:grid;place-items:center;font:900 16px "Cinzel Decorative",serif;flex:none}
.edit-card summary .grow{flex:1}
.edit-card[open] summary{margin-bottom:14px}
.card-acts{display:flex;gap:6px;flex-wrap:wrap}
.skills-edit{display:grid;gap:6px}
.skills-edit .sk{display:grid;grid-template-columns:1fr 90px 34px;gap:6px}
.skills-edit input{padding:7px 9px!important}
.x-btn{border:1px solid rgba(122,20,20,.5);background:rgba(255,255,255,.4);color:var(--blood);border-radius:3px;cursor:pointer;font-size:18px;line-height:1}
.save-bar{position:sticky;bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding:12px 16px;background:#2a1a10;color:var(--parch);border:2px solid var(--gold-3);border-radius:4px;box-shadow:0 8px 20px rgba(0,0,0,.4);z-index:6}
.save-bar.clean{opacity:.75}
.save-bar .state{font-style:italic}
.save-bar button{cursor:pointer}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.thumb{background:rgba(255,250,235,.55);border:1px solid rgba(90,55,20,.45);border-radius:4px;padding:8px}
.thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;border:2px solid #2a1806;display:block}
.thumb input{width:100%;margin:8px 0 6px;font:15px "EB Garamond",serif;padding:6px 8px;border:1px solid rgba(90,55,20,.5);border-radius:3px;background:#fffaf0}
.dropzone{border:2px dashed rgba(122,20,20,.5);border-radius:4px;padding:22px;text-align:center;margin-bottom:16px;background:rgba(255,255,255,.25);cursor:pointer}
.dropzone.over{background:rgba(201,162,74,.25)}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:22px}
.stat{background:rgba(255,250,235,.5);border:1px solid rgba(90,55,20,.45);border-radius:4px;padding:14px;text-align:center}
.stat b{display:block;font:900 2rem/1.1 "Cinzel Decorative",serif;color:var(--blood)}
.check-list{list-style:none;padding:0;margin:0}
.check-list li{padding:8px 0;border-bottom:1px dashed rgba(90,55,20,.4)}
.check-list li::before{content:"○ ";color:var(--blood)}
.check-list li.ok::before{content:"✓ ";color:#2f7a2a;font-weight:700}
.app-card{border-left:4px solid var(--gold)}
.app-card.accepted{border-left-color:#2f7a2a}.app-card.declined{border-left-color:#888;opacity:.75}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#2a1a10;color:#fbeab0;border:2px solid var(--gold);padding:10px 18px;border-radius:4px;z-index:200;box-shadow:0 8px 20px rgba(0,0,0,.5);font-size:1.05rem}
.toast.err{background:#6e1010}
.md-hint{font-size:.9rem;color:var(--ink-soft);font-style:italic}
@media (max-width:640px){.admin{padding:26px 14px}.admin-tabs{top:66px}.skills-edit .sk{grid-template-columns:1fr 70px 34px}}
.save-bar.clean{position:static;opacity:1;background:rgba(42,26,16,.85)}
