/* Home only: a brighter entrance within the site's violet and gold palette. */
body[data-theme="normal"] .home-hero {
  isolation:isolate;
  min-height:650px;
  margin:18px 18px 0;
  padding:clamp(42px,5vw,70px) clamp(28px,6vw,98px);
  border:1px solid #eadff3;
  border-radius:28px;
  color:#342449;
  background:linear-gradient(115deg,#fff 0%,#fcf9ff 48%,#f3e9fa 100%);
  box-shadow:0 18px 48px rgba(67,27,101,.1);
}
body[data-theme="normal"] .home-hero::before {
  z-index:-1;
  top:-170px;
  right:-140px;
  bottom:auto;
  left:auto;
  width:650px;
  height:650px;
  border:0;
  border-radius:50%;
  background:radial-gradient(circle,rgba(217,179,245,.36),rgba(217,179,245,0) 67%);
  box-shadow:none;
}
body[data-theme="normal"] .home-hero::after {
  display:none;
}
body[data-theme="normal"] .hero-atmosphere {
  position:absolute;
  z-index:-1;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(circle at 2% 100%,rgba(241,225,251,.55),transparent 42%);
  pointer-events:none;
}
body[data-theme="normal"] .hero-inner {
  grid-template-columns:minmax(0,1.02fr) minmax(340px,.98fr);
  align-items:center;
  gap:clamp(30px,5vw,75px);
  max-width:1480px;
  min-height:520px;
}
body[data-theme="normal"] .hero-copy { align-self:center; max-width:720px; padding-bottom:12px; }
body[data-theme="normal"] .hero-kicker {
  gap:11px;
  padding:9px 14px;
  border:1px solid #e9d8f5;
  border-radius:99px;
  background:#fff;
  box-shadow:0 5px 15px rgba(72,24,111,.06);
  color:#6a0dad;
  font-size:.75rem;
  letter-spacing:.13em;
}
body[data-theme="normal"] .hero-kicker-star { color:#c68d00; font-size:1.1rem; line-height:1; }
body[data-theme="normal"] .home-hero h1 {
  margin:29px 0 25px;
  color:#2f1d42;
  font-size:clamp(3.3rem,5.7vw,6rem);
  font-weight:800;
  line-height:1.01;
  letter-spacing:-.06em;
  text-shadow:none;
}
body[data-theme="normal"] .home-hero h1 em {
  color:#7315ad;
  font-style:normal;
}
body[data-theme="normal"] .home-hero p {
  max-width:570px;
  color:#6e6477;
  font-size:clamp(1.02rem,1.4vw,1.18rem);
  line-height:1.75;
}
body[data-theme="normal"] .hero-actions { gap:26px; margin-top:34px; }
body[data-theme="normal"] .home-hero .cta-btn {
  min-height:58px;
  padding:0 25px;
  border-radius:14px;
  background:#ffd400;
  box-shadow:0 11px 26px rgba(225,174,0,.2);
  color:#421078;
  font-size:.91rem;
  font-weight:800;
  text-transform:none;
}
body[data-theme="normal"] .home-hero .cta-btn:hover,
body[data-theme="normal"] .home-hero .cta-btn:focus-visible { background:#ffe255; box-shadow:0 16px 30px rgba(225,174,0,.28); }
body[data-theme="normal"] .hero-secondary {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#6812a8;
  font-size:.88rem;
  text-decoration:underline;
  text-decoration-color:rgba(104,18,168,.38);
  text-underline-offset:6px;
}
body[data-theme="normal"] .hero-secondary i { margin:0; color:#8b39bb; }
body[data-theme="normal"] .hero-secondary:hover { text-decoration-color:#6812a8; }
body[data-theme="normal"] .hero-proof { gap:14px; margin-top:44px; color:#8a7d91; font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
body[data-theme="normal"] .proof-line { width:38px; height:1px; background:#c89213; }
body[data-theme="normal"] .hero-art { position:relative; display:flex; align-items:end; width:100%; min-height:520px; align-self:center; justify-self:end; isolation:isolate; }
body[data-theme="normal"] .hero-knight-glow { position:absolute; z-index:-1; top:4%; right:1%; width:83%; height:84%; border-radius:50%; background:radial-gradient(ellipse,rgba(187,119,233,.25) 0%,rgba(187,119,233,.09) 42%,transparent 72%); filter:blur(17px); pointer-events:none; }
body[data-theme="normal"] .hero-knight { position:absolute; z-index:1; top:-42px; right:8%; display:block; width:auto; max-width:none; height:calc(100% + 70px); object-fit:contain; filter:drop-shadow(0 26px 25px rgba(43,17,72,.27)) drop-shadow(0 7px 8px rgba(67,24,84,.16)); animation:home-knight-float 5.8s ease-in-out infinite; pointer-events:none; user-select:none; }
@keyframes home-knight-float { 0%,100% { transform:translate3d(0,0,0) rotate(-1deg); } 50% { transform:translate3d(-5px,-13px,0) rotate(.5deg); } }
body[data-theme="normal"] .destiny-card {
  position:absolute;
  z-index:2;
  bottom:2%;
  left:0;
  width:min(44%,255px);
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  text-align:left;
}
body[data-theme="normal"] .destiny-card-main { display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-height:0; padding:0; }
body[data-theme="normal"] .destiny-die { position:relative; width:145px; height:145px; margin:0 0 4px 2px; perspective:500px; isolation:isolate; }
body[data-theme="normal"] .destiny-die::after { content:""; position:absolute; z-index:-1; right:15px; bottom:0; left:15px; height:18px; border-radius:50%; background:rgba(82,26,130,.23); filter:blur(10px); }
body[data-theme="normal"] .d20-model { position:absolute; inset:0; transform-style:preserve-3d; scale:1.16; transition:transform 1.25s cubic-bezier(.18,.68,.13,1); will-change:transform; }
body[data-theme="normal"] .d20-face { position:absolute; top:50%; left:50%; width:var(--d20-side); height:var(--d20-height); margin-top:calc(var(--d20-height) * -.666667); margin-left:calc(var(--d20-side) * -.5); transform-origin:50% 66.666667%; backface-visibility:hidden; clip-path:polygon(50% 0,0 100%,100% 100%); background:linear-gradient(125deg,#ffe598,#d99b1e 74%,#f8d669); }
body[data-theme="normal"] .d20-face::before { content:""; position:absolute; inset:2.5px; clip-path:polygon(50% 0,0 100%,100% 100%); background:linear-gradient(145deg,var(--facet-light),var(--facet-dark)); }
body[data-theme="normal"] .d20-face::after { content:""; position:absolute; top:10%; left:26%; width:26%; height:52%; clip-path:polygon(100% 0,0 100%,100% 100%); background:rgba(255,255,255,.1); }
body[data-theme="normal"] .d20-face span { position:absolute; z-index:1; top:55%; left:50%; transform:translate(-50%,-50%); color:#fff9e6; font-size:1rem; font-weight:800; line-height:1; text-shadow:0 1px 2px #421069,0 2px 7px rgba(24,4,45,.7); font-variant-numeric:tabular-nums; }
body[data-theme="normal"] .d20-fallback { position:absolute; top:50%; left:50%; display:grid; width:88px; height:88px; place-items:center; clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%); background:linear-gradient(145deg,#be63e9,#5f139d); color:#fff8dc; font-size:2rem; font-weight:800; transform:translate(-50%,-50%); }
body[data-theme="normal"] .d20-model.is-ready .d20-fallback { display:none; }
body[data-theme="normal"] .destiny-card h2 { margin:0 0 7px; color:#38234b; font-size:1.12rem; letter-spacing:-.025em; }
body[data-theme="normal"] .destiny-card p { min-height:3.4em; margin:0; color:#6e607b; font-size:.8rem; line-height:1.58; }
body[data-theme="normal"] .destiny-roll { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:45px; margin-top:15px; padding:0 16px; border:1px solid #ceb3e4; border-radius:12px; background:rgba(255,255,255,.82); box-shadow:0 10px 22px rgba(69,27,104,.11); color:#6812a8; font:inherit; font-size:.78rem; font-weight:800; cursor:pointer; transition:background .2s ease,transform .2s ease,box-shadow .2s ease; }
body[data-theme="normal"] .destiny-roll:hover { background:#fff; transform:translateY(-2px); box-shadow:0 14px 26px rgba(69,27,104,.16); }
body[data-theme="normal"] .destiny-roll:disabled { opacity:.7; cursor:wait; }
body[data-theme="normal"] .hero-corner-label { position:absolute; right:30px; top:30px; color:#987eaa; font-size:.62rem; font-weight:800; letter-spacing:.18em; }
body[data-theme="normal"] .hero-corner-label span { margin:0 8px; color:#c89213; }

body[data-theme="normal"] .home-paths { max-width:1480px; margin:0 auto; padding:100px clamp(20px,4vw,54px) 98px; scroll-margin-top:30px; }
body[data-theme="normal"] .paths-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:29px; }
body[data-theme="normal"] .paths-heading h2 { margin:12px 0 0; color:#2e1b3e; font-size:clamp(2.1rem,4vw,3.6rem); line-height:1.08; letter-spacing:-.055em; }
body[data-theme="normal"] .paths-heading h2 em { color:#751aae; font-style:normal; }
body[data-theme="normal"] .paths-heading p { max-width:390px; margin:0 0 3px; color:#786b82; font-size:.96rem; line-height:1.7; }
body[data-theme="normal"] .paths-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
body[data-theme="normal"] .path-card { position:relative; display:flex; flex-direction:column; min-height:428px; overflow:hidden; padding:25px; border:1px solid #e9dff0; border-radius:20px; background:#faf5ff; color:#321e42; box-shadow:0 12px 27px rgba(48,18,76,.055); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
body[data-theme="normal"] .path-card:hover { transform:translateY(-7px); border-color:#d4b9e8; box-shadow:0 21px 38px rgba(48,18,76,.12); }
body[data-theme="normal"] .path-card:focus-visible,
body[data-theme="normal"] .destiny-roll:focus-visible,
body[data-theme="normal"] .home-hero a:focus-visible { outline:3px solid #ffcf3f; outline-offset:4px; }
body[data-theme="normal"] .path-number { position:relative; z-index:1; color:#784795; font-size:.69rem; font-weight:800; letter-spacing:.16em; }
body[data-theme="normal"] .path-image { position:relative; display:grid; height:210px; place-items:center; margin:-1px -25px 8px; overflow:hidden; }
body[data-theme="normal"] .path-image::before { content:""; position:absolute; width:225px; height:225px; border-radius:50%; background:#e9d9f5; }
body[data-theme="normal"] .path-image img { position:relative; z-index:1; display:block; width:85%; max-width:310px; height:200px; object-fit:contain; transition:transform .4s ease; }
body[data-theme="normal"] .path-card:hover .path-image img { transform:scale(1.065) translateY(-3px); }
body[data-theme="normal"] .path-discover .path-image img { width:100%; max-width:340px; }
body[data-theme="normal"] .path-events { background:#f7f1fc; }
body[data-theme="normal"] .path-events .path-image::before { background:#e8d9f2; }
body[data-theme="normal"] .path-events .path-image img { max-width:168px; height:168px; filter:drop-shadow(0 15px 12px rgba(61,23,91,.18)); }
body[data-theme="normal"] .path-create { background:#fbf6ed; border-color:#f0e5d4; }
body[data-theme="normal"] .path-create .path-image::before { background:#f6e9ca; }
body[data-theme="normal"] .path-create .path-image img { max-width:185px; height:185px; filter:drop-shadow(0 14px 11px rgba(86,57,20,.13)); }
body[data-theme="normal"] .path-copy { display:flex; flex:1; flex-direction:column; align-items:start; }
body[data-theme="normal"] .path-copy strong { color:#321e42; font-size:1.31rem; line-height:1.2; letter-spacing:-.035em; }
body[data-theme="normal"] .path-copy small { max-width:310px; margin-top:9px; color:#716579; font-size:.85rem; line-height:1.55; }
body[data-theme="normal"] .path-link { display:inline-flex; align-items:center; gap:10px; margin-top:auto; padding-top:24px; color:#661592; font-size:.81rem; font-weight:800; }
body[data-theme="normal"] .path-link i { transform:rotate(45deg); transition:transform .2s ease; }
body[data-theme="normal"] .path-card:hover .path-link i { transform:rotate(45deg) translateY(-3px); }

@media (max-width:1000px) {
  body[data-theme="normal"] .home-hero { min-height:620px; padding:48px 38px; }
  body[data-theme="normal"] .hero-inner { grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr); min-height:520px; gap:25px; }
  body[data-theme="normal"] .home-hero h1 { font-size:clamp(3.2rem,6.5vw,5.2rem); }
  body[data-theme="normal"] .hero-art { min-height:460px; }
  body[data-theme="normal"] .hero-knight { top:-15px; right:-7%; height:calc(100% + 30px); }
  body[data-theme="normal"] .destiny-card { width:min(49%,230px); }
  body[data-theme="normal"] .paths-grid { gap:12px; }
  body[data-theme="normal"] .path-card { min-height:420px; padding:21px; }
}
@media (max-width:760px) {
  body[data-theme="normal"] .home-hero { min-height:0; margin:10px 10px 0; padding:52px 25px 28px; border-radius:22px; }
  body[data-theme="normal"] .hero-inner { grid-template-columns:1fr; min-height:0; gap:37px; }
  body[data-theme="normal"] .hero-copy { padding:0; }
  body[data-theme="normal"] .home-hero h1 { font-size:clamp(3.15rem,10vw,5rem); }
  body[data-theme="normal"] .hero-art { width:100%; max-width:550px; min-height:490px; margin:0 auto; }
  body[data-theme="normal"] .hero-knight { top:-10px; right:0; height:calc(100% + 10px); }
  body[data-theme="normal"] .destiny-card { width:min(45%,245px); margin:0; }
  body[data-theme="normal"] .hero-proof { margin-top:35px; }
  body[data-theme="normal"] .hero-corner-label { display:none; }
  body[data-theme="normal"] .home-paths { padding:72px 20px; }
  body[data-theme="normal"] .paths-heading { align-items:start; flex-direction:column; gap:13px; }
  body[data-theme="normal"] .paths-grid { grid-template-columns:1fr; gap:14px; }
  body[data-theme="normal"] .path-card { min-height:0; display:grid; grid-template-columns:125px 1fr; grid-template-rows:auto 1fr; column-gap:16px; padding:20px; }
  body[data-theme="normal"] .path-number { grid-column:1/-1; }
  body[data-theme="normal"] .path-image { grid-column:1; grid-row:2; height:142px; margin:0; }
  body[data-theme="normal"] .path-image::before { width:135px; height:135px; }
  body[data-theme="normal"] .path-image img,
  body[data-theme="normal"] .path-discover .path-image img { width:100%; height:132px; }
  body[data-theme="normal"] .path-events .path-image img,
  body[data-theme="normal"] .path-create .path-image img { width:110px; height:110px; }
  body[data-theme="normal"] .path-copy { grid-column:2; grid-row:2; justify-content:center; padding:8px 0 2px; }
  body[data-theme="normal"] .path-copy strong { font-size:1.16rem; }
  body[data-theme="normal"] .path-link { padding-top:15px; }
}
@media (max-width:500px) {
  body[data-theme="normal"] .home-hero { padding:44px 21px 25px; }
  body[data-theme="normal"] .hero-kicker { font-size:.63rem; letter-spacing:.13em; }
  body[data-theme="normal"] .home-hero h1 { margin:24px 0 19px; font-size:clamp(2.85rem,12.5vw,4rem); }
  body[data-theme="normal"] .home-hero p { font-size:.91rem; line-height:1.7; }
  body[data-theme="normal"] .hero-actions { flex-direction:column; align-items:stretch; gap:17px; margin-top:26px; }
  body[data-theme="normal"] .home-hero .cta-btn { justify-content:center; width:100%; }
  body[data-theme="normal"] .hero-secondary { justify-content:center; }
  body[data-theme="normal"] .hero-art { min-height:555px; }
  body[data-theme="normal"] .hero-knight { top:-8px; right:-4%; height:390px; }
  body[data-theme="normal"] .hero-knight-glow { top:3%; right:0; height:66%; }
  body[data-theme="normal"] .destiny-card { bottom:0; width:100%; }
  body[data-theme="normal"] .destiny-card-main { display:grid; grid-template-columns:100px minmax(0,1fr); align-items:center; gap:12px; }
  body[data-theme="normal"] .destiny-die { width:100px; height:100px; margin:0; }
  body[data-theme="normal"] .d20-model { scale:.81; transform-origin:50% 50%; }
  body[data-theme="normal"] .destiny-card h2 { font-size:.96rem; }
  body[data-theme="normal"] .destiny-card p { font-size:.72rem; }
  body[data-theme="normal"] .destiny-roll { margin-top:11px; }
  body[data-theme="normal"] .home-paths { padding:61px 15px; }
  body[data-theme="normal"] .path-card { grid-template-columns:90px 1fr; column-gap:12px; padding:17px; }
  body[data-theme="normal"] .path-image { height:124px; }
  body[data-theme="normal"] .path-image::before { width:106px; height:106px; }
  body[data-theme="normal"] .path-image img,
  body[data-theme="normal"] .path-discover .path-image img { height:110px; }
  body[data-theme="normal"] .path-events .path-image img,
  body[data-theme="normal"] .path-create .path-image img { width:88px; height:88px; }
  body[data-theme="normal"] .path-copy small { font-size:.75rem; }
}
@media (prefers-reduced-motion:reduce) {
  body[data-theme="normal"] .hero-knight { animation:none; }
  body[data-theme="normal"] .d20-model { transition:none; }
  body[data-theme="normal"] .path-card,
  body[data-theme="normal"] .path-image img,
  body[data-theme="normal"] .destiny-roll { transition:none; }
}
