@font-face{font-family:'IM Fell English SC';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/im-fell-english-sc-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IM Fell English';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/im-fell-english-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IM Fell English';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/im-fell-english-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Alegreya';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/alegreya-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Alegreya';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/alegreya-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Alegreya';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/alegreya-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Alegreya';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/alegreya-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Alegreya';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/alegreya-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Alegreya';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/alegreya-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Alegreya';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/alegreya-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Alegreya';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/alegreya-latin-ext-400-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Alegreya Sans SC';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/alegreya-sans-sc-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Alegreya Sans SC';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/alegreya-sans-sc-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Alegreya Sans SC';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/alegreya-sans-sc-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Alegreya Sans SC';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/alegreya-sans-sc-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Uncial Antiqua';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/uncial-antiqua-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Uncial Antiqua';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/uncial-antiqua-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Varnur: um mundo só, assumido escuro, com uma faixa de pergaminho na magia.
   Tokens derivados dos mockups aprovados (15/09). */
:root{
  --ink:#0c0a08; --leather:#17130f; --leather-2:#1d1813;
  --parch:#e8dcc2; --parch-2:#f3ead6; --parch-ink:#2a2118;
  --sepia:#a3927a; --muted:#8f806a; --ember:#d8a24a; --ember-hi:#f0c472; --ember-dk:#8a5a17;
  --hair:#3a3128; --hair-2:#2a231c; --red:#8c3a2b;
  --display:"IM Fell English SC", "IM Fell English", Georgia, "Times New Roman", serif;
  --italic:"IM Fell English", Georgia, "Times New Roman", serif;
  --body:"Alegreya", Georgia, "Times New Roman", serif;
  --label:"Alegreya Sans SC", "Gill Sans", "Trebuchet MS", sans-serif;
  --map:"Uncial Antiqua", "IM Fell English", Georgia, serif;
  --gutter:clamp(16px, 5vw, 96px);
  --maxw:1200px;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--ink);color:var(--parch);font-family:var(--body);font-size:1.125rem;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--ember);text-decoration:none}
a:hover{color:var(--ember-hi)}
:focus-visible{outline:2px solid var(--ember-hi);outline-offset:3px;border-radius:3px}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
.skip{position:absolute;left:-999px;top:0;background:var(--ember);color:var(--ink);padding:8px 14px;z-index:99}
.skip:focus{left:12px}
.wrap{max-width:calc(var(--maxw) + 2*var(--gutter));margin:0 auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--label);font-weight:700;font-size:.8rem;letter-spacing:.16em;color:var(--ember);text-transform:lowercase}
.lede{color:var(--sepia)}
.badge{display:inline-block;padding:2px 10px;border:1px solid #5a4a36;border-radius:999px;font-family:var(--label);font-weight:700;font-size:.74rem;letter-spacing:.1em;color:var(--ember);text-transform:lowercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:3px;background:var(--ember);color:var(--ink);font-family:var(--label);font-weight:700;font-size:1rem;letter-spacing:.08em;text-transform:lowercase}
.btn:hover{background:var(--ember-hi);color:var(--ink)}
.btn.ghost{background:none;border:1px solid var(--ember);color:var(--ember)}
.btn.ghost:hover{background:rgba(216,162,74,.1)}
.link-arrow{font-family:var(--label);font-weight:700;letter-spacing:.1em;text-transform:lowercase}
.link-arrow::after{content:" →"}

/* ---------- cabeçalho ---------- */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:rgba(12,10,8,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--hair-2)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px}
.brand{display:flex;align-items:center;gap:12px;color:var(--parch)}
.brand img{width:38px;height:38px;border-radius:5px}
.brand span{font-family:var(--display);font-size:1.4rem;letter-spacing:.08em}
.nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,32px);font-family:var(--label);font-weight:500;font-size:1rem;letter-spacing:.07em;text-transform:lowercase}
.nav a{color:var(--sepia);padding-block:4px;border-bottom:1px solid transparent}
.nav a:hover{color:var(--parch)}
.nav a[aria-current="page"]{color:var(--parch);border-bottom-color:var(--ember)}
.lang{display:flex;border:1px solid var(--hair);border-radius:999px;overflow:hidden;font-size:.8rem;text-transform:uppercase}
.lang a,.lang span{padding:4px 11px;color:var(--sepia);border:0!important}
.lang span{background:var(--ember);color:var(--ink)}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--hair);border-radius:4px;align-items:center;justify-content:center}
.menu-btn svg{width:22px;height:22px;stroke:var(--parch)}
@media (max-width:900px){
  .menu-btn{display:inline-flex}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--ink);border-bottom:1px solid var(--hair);padding:8px var(--gutter) 18px}
  .nav.open{display:flex}
  .nav a{padding:12px 0;border-bottom:1px solid var(--hair-2);font-size:1.1rem}
  .nav a[aria-current="page"]{border-bottom-color:var(--hair-2);color:var(--ember)}
  .nav .lang{align-self:flex-start;margin-top:14px}
  .nav .lang a,.nav .lang span{padding:6px 16px;border:0;font-size:.9rem}
}

/* ---------- aviso de idioma ---------- */
.langbar{background:var(--leather);border-bottom:1px solid var(--hair);font-family:var(--label);font-size:.95rem;letter-spacing:.04em}
.langbar .wrap{display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap;padding-block:10px}
.langbar button{color:var(--sepia);text-decoration:underline}

/* ---------- seções ---------- */
.section{padding-block:clamp(56px,8vw,104px);border-bottom:1px solid var(--hair-2)}
.section-head{display:grid;gap:18px 48px;grid-template-columns:1fr;align-items:end;margin-bottom:clamp(28px,4vw,44px)}
@media (min-width:900px){.section-head{grid-template-columns:1.1fr .9fr}}
.section-head h2{font-size:clamp(2.2rem,4.6vw,3.4rem)}
.section-head .eyebrow{display:block;margin-bottom:10px}
.section-head p{color:var(--sepia);max-width:48ch}

/* ---------- abertura ---------- */
.hero{padding-block:clamp(36px,6vw,72px) clamp(56px,8vw,96px);background:radial-gradient(ellipse 900px 520px at 50% 200px,rgba(216,162,74,.10),rgba(12,10,8,0) 70%);border-bottom:1px solid var(--hair-2)}
.hero .logo{width:min(900px,100%);height:auto;margin:0 auto}
.hero h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hero .intro{max-width:720px;margin:clamp(16px,3vw,28px) auto 0;text-align:center;display:grid;gap:18px}
.hero .intro p:first-child{font-size:clamp(1.15rem,2.2vw,1.42rem);line-height:1.55}
.motto{font-family:var(--italic);font-style:italic;font-size:clamp(1.4rem,3vw,1.9rem);color:var(--ember);line-height:1.25}
.doors{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));margin-top:clamp(36px,5vw,56px)}
.door{display:flex;flex-direction:column;background:var(--leather);border:1px solid var(--hair);border-radius:4px;overflow:hidden;color:var(--parch);transition:transform .25s,border-color .25s}
.door:hover{transform:translateY(-4px);border-color:var(--ember);color:var(--parch)}
.door img{width:100%;height:auto;flex:none;aspect-ratio:3/2;object-fit:cover}
.door div{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;flex:1}
.door b{font-family:var(--display);font-weight:400;font-size:1.75rem;line-height:1.1}
.door span.txt{color:var(--sepia);font-size:1.02rem;line-height:1.5}
.door .badge{margin-top:auto}

/* ---------- mapa ---------- */
.map-layout{display:grid;gap:24px;grid-template-columns:1fr}
@media (min-width:1000px){.map-layout>:first-child{position:sticky;top:84px}}
@media (min-width:1000px){.map-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}
.map-frame{position:relative;border:1px solid var(--hair);border-radius:3px;background:#324650;overflow:hidden}
.map-scroll{overflow:auto;max-height:min(78vh,760px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.map-canvas{position:relative;width:100%;aspect-ratio:2048/1536}
.map-canvas[data-zoom="2"]{width:200%}
.map-canvas[data-zoom="3"]{width:300%}
.map-canvas[data-zoom="4"]{width:400%}
.map-canvas img,.map-canvas svg{position:absolute;inset:0;width:100%;height:100%}
.map-tools{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px;z-index:2}
.map-tools button{width:40px;height:40px;border-radius:4px;background:rgba(12,10,8,.82);border:1px solid var(--hair);color:var(--parch);font-size:1.3rem;line-height:1}
.map-tools button:disabled{opacity:.4;cursor:default}
svg.labels text{font-family:var(--map);paint-order:stroke fill;stroke-linejoin:round;text-anchor:middle;dominant-baseline:middle}
svg.labels .land text{fill:#fbf3e3;stroke:rgba(24,17,11,.82);stroke-width:4.5px}
svg.labels .sea text{fill:#f1ece2;stroke:rgba(24,38,46,.75);stroke-width:3.5px}
svg.labels .snow text{fill:#1d1a17;stroke:rgba(255,255,255,.6);stroke-width:3.5px}
svg.labels .school text{font-family:var(--body);font-size:10px;stroke-width:2.5px}
svg.labels .scale text{font-family:var(--map);font-size:19px}
svg.labels [data-t]{cursor:pointer}
svg.labels [data-t]:hover text,svg.labels [data-t]:focus text,svg.labels [data-t].on text{fill:var(--ember-hi);stroke:rgba(12,10,8,.95)}
svg.labels [data-t]:focus{outline:none}
svg.labels .hit{fill:transparent}
svg.labels .pin path{fill:var(--ember);stroke:#1a120a;stroke-width:3px}
svg.labels .pin circle{fill:rgba(216,162,74,.22)}
svg.labels .pin:hover path,svg.labels .pin.on path,svg.labels .pin:focus path{fill:var(--ember-hi)}
.map-caption{font-family:var(--label);font-size:.85rem;letter-spacing:.06em;color:var(--muted);margin-top:10px}
.map-under{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;justify-content:space-between;margin-top:10px}
.panel{background:var(--leather);border:1px solid var(--hair);border-radius:3px;padding:22px 22px 24px}
.tcard .cls{font-family:var(--label);font-weight:700;font-size:.78rem;letter-spacing:.12em;color:var(--ember);text-transform:lowercase}
.tcard h3{font-size:1.9rem;margin:6px 0 12px}
.tcard p{color:var(--parch);line-height:1.55}
.tcard .fam{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px;border-top:1px solid var(--hair);padding-top:12px}
.tcard .fam b{font-family:var(--display);font-weight:400;color:var(--ember)}
.tcard .hint{color:var(--muted);font-size:.95rem}
.tlist{margin-top:18px}
.tlist details{border-top:1px solid var(--hair)}
.tlist summary{list-style:none;display:flex;justify-content:space-between;gap:10px;padding:12px 2px;cursor:pointer;font-family:var(--display);font-size:1.2rem}
.tlist summary::-webkit-details-marker{display:none}
.tlist summary small{font-family:var(--body);font-size:.85rem;color:var(--muted);text-align:right}
.tlist summary::after{content:"+";color:var(--ember);margin-left:6px}
.tlist details[open] summary::after{content:"−"}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 14px}
.chips button{border:1px solid var(--hair);border-radius:999px;padding:5px 11px;font-size:.88rem;line-height:1.2;color:var(--parch);background:var(--ink)}
.chips button:hover,.chips button.on{border-color:var(--ember);color:var(--ember-hi)}
.chips button.under{border-style:dashed}

/* ---------- cartaz ---------- */
.poster{border:1px solid var(--hair);border-radius:3px;background:#e9e4da;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.poster-inner{position:relative;min-width:1100px;padding:18px 12px 12px 56px;color:#2d241b}
.poster-img{position:relative}
.poster-img img{width:100%;aspect-ratio:3790/1012}
.axis{position:absolute;left:-50px;top:0;bottom:0;width:44px;font-family:var(--body);font-size:.78rem;color:#6d5f4e}
.axis span{position:absolute;right:4px;transform:translateY(-50%);white-space:nowrap}
.poster-names{position:relative;height:74px}
.poster-names button{position:absolute;top:6px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;padding:4px 6px;border-radius:3px;min-width:70px}
.poster-names b{font-family:var(--body);font-weight:700;font-size:1rem;color:#2d241b}
.poster-names small{font-size:.76rem;color:#6d5f4e;white-space:nowrap}
.poster-names button:hover,.poster-names button.on{background:rgba(138,90,23,.12)}
.poster-names button:hover b,.poster-names button.on b{color:var(--ember-dk)}
.poster-hit{position:absolute;top:0;bottom:0;transform:translateX(-50%);width:5.5%;border-radius:3px}
.poster-hit:hover{background:rgba(138,90,23,.08)}
.poster-note{font-size:.8rem;color:#6d5f4e;text-align:center;padding:4px 8px 2px}
.race-layout{display:grid;gap:20px;grid-template-columns:1fr;margin-top:20px}
@media (min-width:900px){.race-layout{grid-template-columns:1fr 1fr}}
.race-card h3{font-size:1.8rem;margin:4px 0 10px}
.demons{display:grid;gap:16px;align-content:start;background:#070605;border:1px solid var(--hair);border-radius:3px;padding:22px}
.demons .eyes{display:flex;gap:26px;justify-content:center;padding:10px 0 4px}
.demons .eyes i{width:34px;height:14px;border-radius:50%;background:#000;box-shadow:0 0 0 1px #2c241c,0 0 14px rgba(0,0,0,.9)}
.demons h3{font-size:1.8rem;text-align:center}
.demons p:last-child{font-family:var(--italic);font-style:italic;color:var(--sepia)}
.poster-hintrow{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.95rem;margin-top:10px}

/* ---------- dragões ---------- */
.dragons{display:grid;gap:14px;grid-template-columns:repeat(7,minmax(150px,1fr));overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}
@media (max-width:1000px){.dragons{grid-template-columns:repeat(7,62vw)}}
@media (min-width:600px) and (max-width:1000px){.dragons{grid-template-columns:repeat(7,34vw)}}
.dragon{scroll-snap-align:start}
.dragon img{width:100%;aspect-ratio:1/2;object-fit:cover;border-radius:2px;filter:saturate(.9) brightness(.92);transition:filter .3s}
.dragon:hover img{filter:none}
.dragon h3{font-size:1.35rem;margin:10px 0 4px}
.dragon p{font-size:.95rem;color:var(--sepia);line-height:1.45}

/* ---------- magia (pergaminho) ---------- */
.magic{background:var(--parch-2);color:var(--parch-ink);border-bottom:0}
.magic .eyebrow{color:var(--ember-dk)}
.magic-grid{display:grid;gap:clamp(28px,5vw,64px);grid-template-columns:1fr}
@media (min-width:900px){.magic-grid{grid-template-columns:1fr 1fr}}
.magic h2{font-size:clamp(2.4rem,5vw,3.6rem);margin:10px 0 22px}
.magic p{line-height:1.62;margin-bottom:1em;max-width:62ch}
.magic p.rare{font-family:var(--italic);font-style:italic;font-size:1.45rem;color:var(--ember-dk)}
.magic strong{font-weight:700}
.schools{display:grid;gap:14px;align-content:start;border-top:1px solid #cbb994;padding-top:18px}
.schools h3{font-family:var(--label);font-weight:700;font-size:.8rem;letter-spacing:.16em;color:var(--ember-dk);text-transform:lowercase}
.schools ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--display);font-size:1.45rem}
.schools ul.sub{font-size:1.15rem}
.schools .note{font-size:.98rem;color:#6d5a41}
.stages{display:grid;gap:18px;grid-template-columns:1fr 1fr}
@media (max-width:520px){.stages{grid-template-columns:1fr}}
.stages div{border-top:2px solid var(--parch-ink);padding-top:10px}
.stages h3{font-size:1.7rem}
.stages p{font-size:1rem;margin:4px 0 0}

/* ---------- portas ---------- */
.entry-grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.entry{border-top:1px solid var(--ember);padding-top:16px;display:grid;gap:10px;align-content:start}
.entry h3{font-size:1.7rem}
.entry p{color:var(--sepia)}

/* ---------- cadastro ---------- */
.signup{display:grid;gap:24px;grid-template-columns:1fr;align-items:end}
@media (min-width:900px){.signup{grid-template-columns:1fr 1fr}}
.signup h2{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:12px}
.form{display:grid;gap:14px}
.form fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.form legend{font-family:var(--label);font-weight:700;font-size:.8rem;letter-spacing:.14em;color:var(--sepia);text-transform:lowercase;margin-bottom:8px;float:left;width:100%}
.check{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--hair);border-radius:999px;padding:6px 14px;cursor:pointer;font-size:.98rem}
.check input{accent-color:var(--ember);width:16px;height:16px}
.check:has(input:checked){border-color:var(--ember)}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row input[type=email]{flex:1 1 220px;min-height:48px;padding:0 14px;border-radius:3px;border:1px solid var(--hair);background:var(--leather);color:var(--parch);font:inherit}
.row input[type=email]::placeholder{color:var(--muted)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;color:var(--sepia);line-height:1.45}
.consent input{margin-top:4px;accent-color:var(--ember);width:16px;height:16px;flex:none}
.form-status{border-radius:3px;padding:12px 14px;font-size:1rem}
.form-status.ok{background:rgba(92,130,72,.16);border:1px solid #5c8248;color:#cfe3bd}
.form-status.err{background:rgba(140,58,43,.18);border:1px solid var(--red);color:#f0c9bf}

/* ---------- páginas internas ---------- */
.page-intro{padding-block:clamp(44px,7vw,88px) clamp(28px,4vw,44px)}
.page-intro h1{font-size:clamp(2.6rem,6vw,4.4rem);margin:10px 0 18px}
.page-intro p{max-width:62ch;color:var(--sepia);font-size:1.15rem}
.shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.shortcuts a{border:1px solid var(--hair);border-radius:999px;padding:7px 16px;font-family:var(--label);font-weight:700;letter-spacing:.08em;text-transform:lowercase;color:var(--parch)}
.shortcuts a:hover{border-color:var(--ember);color:var(--ember-hi)}
.entries{display:grid;gap:0 48px;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.entry-row{border-top:1px solid var(--hair);padding-block:18px 20px;display:grid;gap:6px;scroll-margin-top:90px}
.entry-row h3{font-size:1.55rem}
.entry-row h3 small{font-family:var(--italic);font-style:italic;font-size:1rem;color:var(--muted);margin-left:8px}
.entry-row p{color:var(--sepia)}
.feared .entry-row h3{color:#e7cfc4}
.feared .entry-row{border-top-color:#4a2a22}
.feature{display:grid;gap:clamp(24px,4vw,48px);grid-template-columns:1fr;align-items:center}
@media (min-width:900px){.feature{grid-template-columns:1fr 1fr}.feature.rev>:first-child{order:2}}
.feature figure{margin:0}
.feature figure img{border-radius:3px;border:1px solid var(--hair);width:100%}
.feature h2{font-size:clamp(2rem,4vw,2.8rem);margin:8px 0 16px}
.feature .meta{font-family:var(--label);font-weight:700;letter-spacing:.1em;color:var(--ember);text-transform:lowercase;margin-bottom:6px}
.feature p{margin-bottom:.9em}
.shelf{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-end;margin-top:22px}
.ghost-cover{width:150px;aspect-ratio:2/3;border:1px dashed var(--hair);border-radius:3px;background:repeating-linear-gradient(135deg,#15110d 0 8px,#120f0b 8px 16px);display:flex;align-items:flex-end;padding:10px;font-family:var(--display);color:var(--muted);font-size:1.05rem;line-height:1.1}
.warn{display:inline-flex;gap:10px;align-items:center;border:1px solid var(--red);border-radius:3px;padding:8px 14px;color:#efc9bd;font-family:var(--label);font-weight:700;letter-spacing:.06em}
.series{display:flex;gap:12px;align-items:flex-end;margin-top:20px;flex-wrap:wrap}
.series .book{width:110px;aspect-ratio:2/3;border:1px solid var(--ember);border-radius:2px;display:flex;align-items:flex-end;padding:8px;font-family:var(--display);font-size:.95rem;line-height:1.1;background:linear-gradient(180deg,#2a2016,#120e0a);color:var(--parch)}
.series .ghost{width:110px;aspect-ratio:2/3;border:1px solid var(--hair);border-radius:2px;background:#110e0b}
.series .ghost:nth-child(3){opacity:.75}.series .ghost:nth-child(4){opacity:.5}.series .ghost:nth-child(5){opacity:.3}.series .ghost:nth-child(6){opacity:.15}
.series-caption{font-family:var(--italic);font-style:italic;color:var(--sepia);margin-top:10px}
.statements{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));margin-top:10px}
.prose{max-width:66ch}
.prose p{margin-bottom:1em}
.prose h2{font-size:1.9rem;margin:1.6em 0 .5em}
.prose h3{font-size:1.35rem;margin:1.3em 0 .4em}
.prose ul{padding-left:1.1em}
.prose li{margin-bottom:.4em}

/* ---------- diálogo ---------- */
dialog.card{border:1px solid var(--hair);border-radius:4px;background:var(--leather);color:var(--parch);padding:0;width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 48px)}
dialog.card::backdrop{background:rgba(0,0,0,.66)}
dialog.card .inner{padding:24px 22px 22px;overflow:auto}
dialog.card .close{position:sticky;top:0;float:right;width:40px;height:40px;margin:-10px -8px 0 8px;border:1px solid var(--hair);border-radius:4px;font-size:1.4rem;line-height:1;background:var(--ink)}

/* ---------- rodapé ---------- */
.site-foot{padding-block:28px 34px;color:var(--muted);font-size:.95rem}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between}
.site-foot .by{display:flex;align-items:center;gap:10px}
.site-foot .by img{width:28px;height:28px;border-radius:4px}
.site-foot nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--label);font-weight:500;letter-spacing:.06em;text-transform:lowercase}
.site-foot nav a{color:var(--sepia)}
.license{border-top:1px solid var(--hair-2);padding-block:18px;font-size:.88rem;color:var(--muted);font-style:italic}

.only-touch{display:none}
@media (hover:none){.only-hover{display:none}.only-touch{display:block}}
