:root {
  --ink: #17110e;
  --ink-soft: #2d231d;
  --night: #110e0c;
  --night-2: #1c1511;
  --paper: #f4efe5;
  --paper-2: #ebe2d2;
  --gold: #c89a48;
  --gold-light: #e4c57d;
  --gold-pale: #f2e4bd;
  --line: rgba(200, 154, 72, .28);
  --serif: "Noto Serif SC", "Songti SC", SimSun, serif;
  --sans: Montserrat, "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--paper); background: var(--night); font-family: var(--serif); }
button, a { font: inherit; }
button { color: inherit; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 4px; }
.noise { position: fixed; inset: 0; z-index: 20; pointer-events: none; opacity: .055; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
.page { min-height: 100vh; overflow: hidden; background: radial-gradient(circle at 78% 26%, rgba(151, 96, 34, .15), transparent 28%), linear-gradient(135deg, #0e0c0a, #19120f 58%, #0c0a09); }
.theme-light { color: var(--ink); background: var(--paper); }

.site-header, .quiz-header, .result-header { height: 92px; padding: 0 clamp(28px, 5vw, 80px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); position: relative; z-index: 5; }
.brand { display: flex; align-items: center; gap: 13px; }
.brand__mark { color: var(--gold-light); font: 600 25px/1 var(--sans); letter-spacing: -.08em; }
.brand__line { width: 1px; height: 32px; background: var(--line); }
.brand__name { font-size: 13px; letter-spacing: .22em; white-space: nowrap; }
.brand__name small { display: block; margin-top: 5px; color: rgba(244,239,229,.43); font: 500 7px/1 var(--sans); letter-spacing: .27em; }
.brand--compact .brand__mark { font-size: 21px; }
.brand--compact .brand__line { height: 27px; }
.brand--compact .brand__name { font-size: 11px; }
.site-header__meta, .quiz-header__count { color: rgba(244,239,229,.44); font: 500 9px/1 var(--sans); letter-spacing: .32em; }

.hero { min-height: calc(100vh - 92px); display: grid; grid-template-columns: minmax(420px, 1fr) minmax(430px, .9fr); align-items: center; max-width: 1500px; margin: 0 auto; padding: 7vh clamp(30px, 6vw, 100px) 8vh; position: relative; }
.hero::before { content: ""; position: absolute; inset: 0 48% 0 auto; width: 1px; background: linear-gradient(transparent, var(--line), transparent); opacity: .45; }
.eyebrow { display: flex; align-items: center; gap: 14px; color: var(--gold-light); font: 500 10px/1 var(--sans); letter-spacing: .34em; }
.eyebrow span { display: block; width: 40px; height: 1px; background: var(--gold); }
.hero h1 { margin: 32px 0 26px; font-size: clamp(48px, 5.15vw, 86px); line-height: 1.2; font-weight: 500; letter-spacing: .02em; }
.hero h1 em { color: var(--gold-light); font-style: normal; position: relative; }
.hero h1 em::after { content: ""; position: absolute; left: 2%; right: -4%; bottom: -9px; height: 7px; border-top: 1px solid var(--gold); border-radius: 50%; transform: rotate(-1deg); opacity: .72; }
.hero__lead { width: min(585px, 94%); color: rgba(244,239,229,.62); font-size: 15px; line-height: 2; letter-spacing: .04em; }
.hero__facts { display: flex; margin: 38px 0; }
.hero__facts div { min-width: 130px; padding-right: 32px; margin-right: 32px; border-right: 1px solid var(--line); }
.hero__facts div:last-child { border: 0; }
.hero__facts strong { color: var(--gold-light); font: 400 27px/1 var(--sans); }
.hero__facts span { display: block; margin-top: 9px; color: rgba(244,239,229,.5); font-size: 11px; letter-spacing: .12em; }
.hero__actions { display: flex; align-items: center; gap: 28px; }
.button { min-height: 61px; padding: 0 30px; border: 0; cursor: pointer; font-size: 15px; letter-spacing: .08em; transition: .28s ease; }
.button--gold { color: #17100a; background: linear-gradient(115deg, #b98534, #e2c173 54%, #b68130); box-shadow: 0 14px 36px rgba(174,120,38,.19); }
.button--gold:hover { transform: translateY(-2px); box-shadow: 0 19px 45px rgba(174,120,38,.28); }
.button span { margin-left: 22px; }
.text-button { color: rgba(244,239,229,.58); background: none; border: 0; border-bottom: 1px solid rgba(244,239,229,.2); padding: 8px 1px; font-size: 12px; text-decoration: none; cursor: pointer; }
.hero__note { margin-top: 24px; color: rgba(244,239,229,.28); font-size: 10px; letter-spacing: .08em; }
.hero__note span { color: var(--gold); margin-right: 8px; }

.hero__sigil { justify-self: center; width: min(38vw, 560px); aspect-ratio: 1; position: relative; display: grid; place-items: center; }
.hero__sigil::before, .hero__sigil::after { content: ""; position: absolute; inset: 17%; border: 1px solid rgba(200,154,72,.17); transform: rotate(45deg); }
.hero__sigil::after { inset: 29%; transform: rotate(45deg); }
.orbit { position: absolute; border: 1px solid rgba(200,154,72,.24); border-radius: 50%; }
.orbit--one { inset: 2%; }
.orbit--two { inset: 11%; border-style: dashed; animation: spin 38s linear infinite; }
.orbit--three { inset: 22%; box-shadow: inset 0 0 60px rgba(182,122,44,.05), 0 0 90px rgba(182,122,44,.06); }
.sigil__star { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(228,197,125,.12); font-size: 315px; line-height: 1; transform: rotate(22deg); }
.sigil__core { width: 140px; height: 140px; display: grid; place-content: center; text-align: center; border: 1px solid var(--gold); border-radius: 50%; background: radial-gradient(circle, #261a11, #100d0b 70%); box-shadow: 0 0 70px rgba(200,154,72,.13); z-index: 2; }
.sigil__core span { color: var(--gold-light); font: 400 45px/.9 var(--sans); }
.sigil__core small { margin-top: 10px; color: rgba(244,239,229,.4); font: 500 7px/1 var(--sans); letter-spacing: .25em; }
.sigil__label { position: absolute; width: 72px; text-align: center; color: rgba(244,239,229,.6); font-size: 13px; letter-spacing: .12em; }
.sigil__label b { display: block; margin-bottom: 6px; color: var(--gold); font: 500 8px/1 var(--sans); letter-spacing: .15em; }
.sigil__label--1 { top: 0; left: calc(50% - 36px); }
.sigil__label--2 { right: -3px; top: calc(50% - 20px); }
.sigil__label--3 { bottom: 0; left: calc(50% - 36px); }
.sigil__label--4 { left: -3px; top: calc(50% - 20px); }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.reveal { animation: rise .8s both; }
.reveal--delay { animation-delay: .15s; }

.map-section { color: var(--ink); background: var(--paper); padding: 110px clamp(28px, 7vw, 110px) 100px; }
.section-title { display: flex; justify-content: space-between; gap: 60px; max-width: 1280px; margin: auto; padding-bottom: 48px; border-bottom: 1px solid rgba(53,37,25,.15); }
.section-title span, .report-kicker { color: #98702e; font: 500 9px/1 var(--sans); letter-spacing: .3em; }
.section-title h2 { margin: 16px 0 0; font-size: clamp(27px, 3vw, 43px); font-weight: 500; }
.section-title p { max-width: 440px; margin: 10px 0 0; color: rgba(23,17,14,.55); font-size: 13px; line-height: 2; }
.archetype-grid { display: grid; grid-template-columns: repeat(4, 1fr); max-width: 1280px; margin: 0 auto; border-left: 1px solid rgba(53,37,25,.13); }
.archetype-card { min-height: 305px; padding: 30px; border-right: 1px solid rgba(53,37,25,.13); position: relative; text-align: center; }
.archetype-card > span { position: absolute; left: 22px; top: 20px; color: #a07836; font: 500 9px/1 var(--sans); }
.card-rune { margin: 32px auto 25px; color: #ae843e; font-size: 57px; font-weight: 400; }
.archetype-card h3 { margin: 0; font-size: 25px; font-weight: 600; }
.archetype-card p { color: #9b7435; font-size: 12px; letter-spacing: .16em; }
.archetype-card small { color: rgba(23,17,14,.44); font-size: 10px; letter-spacing: .12em; }
.temperaments { display: flex; align-items: center; justify-content: center; gap: 48px; max-width: 1280px; margin: 0 auto; padding: 28px; border: 1px solid rgba(53,37,25,.13); }
.temperaments span { color: #a07836; font-size: 10px; letter-spacing: .18em; }
.temperaments b { font-size: 12px; font-weight: 500; }
.site-footer { padding: 34px clamp(28px, 7vw, 110px); display: flex; justify-content: space-between; color: rgba(244,239,229,.35); font: 400 9px/1.6 var(--sans); letter-spacing: .13em; }
.site-footer p { margin: 0; }

/* 新首页：沿用 magic-cover.html 的猫头鹰与古卷轴视觉 */
.magic-cover-home { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: #020713; }
.magic-cover { position: relative; width: min(92vw, 680px); aspect-ratio: 3 / 5; overflow: hidden; isolation: isolate; border: 1px solid rgba(217,174,91,.55); background: #061329; box-shadow: 0 28px 90px rgba(0,0,0,.72), 0 0 0 1px rgba(217,174,91,.14); }
.magic-cover::before { content: ""; position: absolute; inset: 0; z-index: -3; background-image: linear-gradient(180deg,rgba(1,6,18,.88) 0%,rgba(1,7,20,.58) 18%,rgba(1,7,20,.06) 39%,rgba(1,7,20,.3) 100%), url("./assets/owl-magic-cover-reference.jpg"); background-size: cover; background-position: center top; filter: saturate(.9) contrast(1.06); }
.magic-cover::after { content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none; background: radial-gradient(ellipse at 50% 70%, transparent 0 34%, rgba(0,0,0,.4) 82%), linear-gradient(90deg,rgba(2,7,19,.35),transparent 18% 82%,rgba(2,7,19,.35)); }
.magic-cover__frame { position: absolute; inset: 11px; border: 1px solid rgba(217,174,91,.44); pointer-events: none; }
.magic-corner { position: absolute; width: 48px; height: 48px; border-color: rgba(217,174,91,.7); border-style: solid; opacity: .8; }
.magic-corner--tl { left: 10px; top: 10px; border-width: 2px 0 0 2px; border-radius: 16px 0 0; }
.magic-corner--tr { right: 10px; top: 10px; border-width: 2px 2px 0 0; border-radius: 0 16px 0 0; }
.magic-corner--bl { left: 10px; bottom: 10px; border-width: 0 0 2px 2px; border-radius: 0 0 0 16px; }
.magic-corner--br { right: 10px; bottom: 10px; border-width: 0 2px 2px 0; border-radius: 0 0 16px; }
.magic-cover__kicker { position: absolute; left: 0; right: 0; top: 4.5%; color: rgba(239,210,146,.78); text-align: center; text-shadow: 0 2px 10px #000; font: 500 clamp(10px,2.2vw,14px)/1 var(--sans); letter-spacing: .34em; }
.magic-cover__sparkles { position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(circle,rgba(255,218,125,.9) 0 1px,transparent 1.8px), radial-gradient(circle,rgba(134,203,255,.8) 0 1px,transparent 1.6px); background-size: 100px 120px, 137px 151px; background-position: 18% 76%, 80% 59%; opacity: .7; mix-blend-mode: screen; }
.magic-cover__parchment { position: absolute; left: 9%; right: 9%; top: 48%; height: 45%; padding: 10% 9% 9%; color: #173f32; text-align: center; transform: rotate(-1.1deg); background-color: #d9b36d; background-image: radial-gradient(circle at 12% 18%,rgba(91,45,12,.2) 0 2%,transparent 13%), radial-gradient(circle at 90% 78%,rgba(86,39,10,.2) 0 3%,transparent 17%), repeating-linear-gradient(7deg,rgba(82,42,13,.07) 0 1px,transparent 1px 12px), repeating-linear-gradient(105deg,rgba(255,239,174,.16) 0 2px,transparent 2px 18px), linear-gradient(135deg,#f2d78f,#d5a75b 60%,#b87632); box-shadow: 0 16px 30px rgba(29,12,2,.54), inset 0 0 34px rgba(92,44,11,.34), inset 0 0 9px rgba(255,232,160,.6); clip-path: polygon(2% 3%,10% 1%,21% 3%,34% 1%,47% 2.5%,62% 1%,76% 3%,89% 1%,98% 4%,96% 94%,87% 98%,74% 96%,62% 99%,48% 96%,34% 98%,20% 95%,7% 98%,2% 93%,4% 75%,2% 55%,3% 35%); }
.magic-cover__parchment::before, .magic-cover__parchment::after { content: ""; position: absolute; left: -3%; right: -3%; height: 42px; border-radius: 50%; background: linear-gradient(180deg,#6d3512,#e3ad56 20%,#f2cc7c 45%,#9b511b 75%,#4f2209); box-shadow: 0 8px 13px rgba(28,10,1,.45), inset 0 4px 6px rgba(255,233,156,.38), inset 0 -7px 8px rgba(48,18,3,.4); }
.magic-cover__parchment::before { top: -18px; }
.magic-cover__parchment::after { bottom: -18px; transform: rotate(180deg); }
.magic-cover__content { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.magic-cover__content > p:first-child { margin: 0 0 5px; font: 600 clamp(8px,1.5vw,11px)/1 var(--sans); letter-spacing: .38em; }
.magic-cover__content h1 { margin: 0; color: #173f32; text-shadow: 0 1px 0 rgba(255,235,166,.42); font: 600 clamp(28px,6.2vw,49px)/1.03 Georgia,"Times New Roman",serif; letter-spacing: .03em; }
.magic-cover__rule { width: 52%; height: 1px; margin: 13px auto 10px; background: linear-gradient(90deg,transparent,rgba(23,63,50,.58),transparent); }
.magic-cover__subtitle { margin: 0; font-size: clamp(9px,1.7vw,12px); letter-spacing: .13em; }
.magic-cover__button { min-width: 64%; margin-top: 18px; padding: 15px 22px; color: #f4dfac; border: 1px solid rgba(18,54,42,.7); background: linear-gradient(135deg,#183f32,#0e2d25); box-shadow: 0 8px 18px rgba(39,17,3,.28), inset 0 1px rgba(255,255,255,.1); cursor: pointer; font-size: clamp(16.5px,3vw,21px); letter-spacing: .12em; transition: .25s ease; }
.magic-cover__button:hover { transform: translateY(-2px); box-shadow: 0 11px 24px rgba(39,17,3,.4); }
.magic-cover__button span { margin-left: 10px; color: #ddb867; }
.magic-cover__restart { margin-top: 8px; padding: 4px; color: rgba(23,63,50,.7); border: 0; border-bottom: 1px solid rgba(23,63,50,.35); background: none; cursor: pointer; font-size: 9px; letter-spacing: .12em; }
.magic-cover__foot { position: absolute; left: 0; right: 0; bottom: 2.5%; margin: 0; color: rgba(239,210,146,.56); text-align: center; text-shadow: 0 2px 8px #000; font: 500 8px/1 var(--sans); letter-spacing: .25em; }

/* 第二页：用户提供的木桌羊皮纸场景 */
.admission-stage { min-height: calc(100vh - 92px); padding: 20px; display: grid; place-items: center; position: relative; isolation: isolate; overflow: hidden; background: #1a0d06; }
.admission-stage::before { content: ""; position: absolute; z-index: -2; inset: -28px; background: linear-gradient(180deg,rgba(9,6,4,.48),rgba(43,20,8,.18) 25% 76%,rgba(9,5,3,.55)), url("./assets/admission-letter-background.png") center / cover no-repeat; filter: blur(16px) brightness(.68) saturate(.82); transform: scale(1.08); }
.admission-stage::after { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: radial-gradient(ellipse at center,transparent 35%,rgba(20,8,3,.22) 70%,rgba(4,3,2,.62) 100%), linear-gradient(180deg,rgba(3,6,12,.34),transparent 22% 78%,rgba(12,5,2,.38)); }
.admission-letter { position: relative; width: min(790px, 94vw, calc((100vh - 135px) * .7514)); aspect-ratio: 810 / 1078; background: url("./assets/admission-letter-background.png") center/cover no-repeat; filter: drop-shadow(0 28px 45px rgba(0,0,0,.58)); }
.admission-letter::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at center,transparent 42%,rgba(25,10,2,.12) 78%,rgba(0,0,0,.22)); mix-blend-mode: multiply; }
.admission-letter__ink { position: absolute; z-index: 1; left: 16%; right: 15%; top: 22%; bottom: 9%; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #3e2616; text-align: center; transform: rotate(-.25deg); text-shadow: 0 1px rgba(255,236,178,.26); }
.admission-letter__crest { width: clamp(46px,7vw,64px); aspect-ratio: 1; display: grid; place-items: center; margin-bottom: 10px; border: 1px solid rgba(88,50,20,.7); border-radius: 50%; box-shadow: inset 0 0 0 4px rgba(88,50,20,.1); }
.admission-letter__crest span { font: 700 clamp(15px,2.5vw,21px)/1 Georgia,serif; letter-spacing: -.06em; }
.admission-letter__kicker { margin: 0; font: 600 clamp(7px,1.3vw,10px)/1 var(--sans); letter-spacing: .35em; }
.admission-letter h1 { margin: 12px 0 10px; color: #3b2416; font-size: clamp(25px,3vw,44px); line-height: 1.38; font-weight: 700; letter-spacing: .05em; }
.admission-letter__rule { width: 58%; height: 1px; display: grid; place-items: center; margin: 0 auto 20px; background: linear-gradient(90deg,transparent,rgba(76,42,18,.65),transparent); }
.admission-letter__rule span { padding: 0 10px; color: #6e421e; background: #d2a65d; font-size: 10px; }
.admission-letter__body { width: 100%; font-size: clamp(12px,1.3vw,16px); line-height: 1.76; font-weight: 600; }
.admission-letter__body p { margin: 0 0 9px; }
.admission-letter__button { margin-top: 15px; padding: 15px 29px; color: #ead29b; border: 1px solid #50321c; background: linear-gradient(#603a1e,#3d2414); box-shadow: 0 7px 13px rgba(45,19,5,.25), inset 0 1px rgba(255,255,255,.13); cursor: pointer; font-size: clamp(16.5px,2.4vw,21px); letter-spacing: .12em; }
.admission-letter__button span { margin-left: 12px; color: #d5ad5b; }
.admission-letter__tip { margin: 11px 0 0; color: rgba(62,38,22,.62); font-size: clamp(8px,1.2vw,10px); letter-spacing: .08em; }

.quiz-header { position: relative; color: var(--paper); }
.quiz-header .brand { position: absolute; left: 50%; transform: translateX(-50%); }
.back-link { color: rgba(244,239,229,.58); background: none; border: 0; cursor: pointer; font-size: 12px; letter-spacing: .1em; }
.progress { height: 2px; background: rgba(255,255,255,.06); }
.progress i { height: 100%; display: block; background: linear-gradient(90deg, #906628, var(--gold-light)); transition: width .4s ease; }
.letter-wrap { width: min(860px, calc(100% - 40px)); margin: 70px auto 100px; padding: 68px clamp(32px, 7vw, 90px); text-align: center; border: 1px solid var(--line); background: linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.008)); position: relative; box-shadow: 0 35px 90px rgba(0,0,0,.25); }
.letter-wrap::before, .letter-wrap::after { content: ""; position: absolute; width: 45px; height: 45px; border-color: var(--gold); opacity: .55; }
.letter-wrap::before { left: 15px; top: 15px; border-left: 1px solid; border-top: 1px solid; }
.letter-wrap::after { right: 15px; bottom: 15px; border-right: 1px solid; border-bottom: 1px solid; }
.letter-ornament { color: var(--gold); font-size: 25px; }
.letter-seal { display: grid; place-items: center; width: 68px; height: 68px; margin: 20px auto 35px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-light); font: 500 22px/1 var(--sans); box-shadow: 0 0 40px rgba(200,154,72,.11); }
.eyebrow--center { justify-content: center; }
.letter-wrap h1 { margin: 24px 0 36px; color: var(--gold-pale); font-size: clamp(35px, 5vw, 57px); line-height: 1.45; font-weight: 500; }
.letter-body { max-width: 650px; margin: auto; color: rgba(244,239,229,.64); font-size: 14px; line-height: 2.15; text-align: left; }
.letter-body blockquote { margin: 28px 0; padding: 24px 30px; color: rgba(244,239,229,.78); border-left: 1px solid var(--gold); background: rgba(200,154,72,.055); }
.letter-wrap .button { margin-top: 30px; }
.letter-tip { margin: 18px 0 0; color: rgba(244,239,229,.25); font-size: 10px; }

.question-wrap { width: min(900px, calc(100% - 48px)); margin: 0 auto; padding: 58px 0 70px; position: relative; z-index: 1; }
.question-meta { display: flex; align-items: center; gap: 18px; }
.question-meta span { color: var(--gold-light); font: 500 9px/1 var(--sans); letter-spacing: .28em; }
.question-meta b { color: rgba(244,239,229,.35); font-size: 10px; font-weight: 400; letter-spacing: .1em; }
.question-number { margin: 24px 0 -20px -4px; color: rgba(200,154,72,.13); font: 400 clamp(77px, 9vw, 118px)/1 var(--sans); }
.question-wrap h1 { margin: 0; max-width: 880px; font-size: clamp(22.4px, 2.64vw, 36.8px); line-height: 1.45; font-weight: 500; letter-spacing: .025em; }
.question-hint { margin: 14px 0 22px; color: rgba(244,239,229,.34); font-size: 11px; letter-spacing: .09em; }
.answers { display: grid; gap: 9px; }
.answer { width: 100%; min-height: 60px; padding: 7px 20px; display: grid; grid-template-columns: 38px 1fr 26px; align-items: center; color: rgba(244,239,229,.72); text-align: left; border: 1px solid rgba(244,239,229,.1); background: rgba(255,255,255,.025); cursor: pointer; transition: .22s ease; }
.answer > span { color: var(--gold); font: 500 13.6px/1 var(--sans); }
.answer p { margin: 0; font-size: 14.4px; line-height: 1.6; }
.answer i { color: transparent; font-style: normal; text-align: right; }
.answer:hover { border-color: rgba(200,154,72,.46); transform: translateX(3px); background: rgba(200,154,72,.05); }
.answer.is-selected { color: var(--gold-pale); border-color: var(--gold); background: linear-gradient(90deg, rgba(200,154,72,.13), rgba(200,154,72,.035)); }
.answer.is-selected i { color: var(--gold-light); }
.question-nav { display: flex; align-items: center; justify-content: space-between; margin-top: 22px; padding-top: 17px; border-top: 1px solid rgba(244,239,229,.08); }
.question-nav > span { color: rgba(244,239,229,.27); font: 500 8px/1 var(--sans); letter-spacing: .2em; }
.nav-button { min-width: 110px; padding: 11px 0; color: rgba(244,239,229,.55); border: 0; background: none; cursor: pointer; font-size: 14px; }
.nav-button--next { color: var(--gold-light); text-align: right; }
.nav-button:disabled { opacity: .2; cursor: default; }

/* 答题页：让魔法街清楚可见，朦胧感由薄雾而非重度压黑实现 */
.page:has(.question-wrap) { position: relative; isolation: isolate; background: #080d18; }
.page:has(.question-wrap)::before { content: ""; position: fixed; inset: 0; z-index: -3; pointer-events: none; background: linear-gradient(180deg, rgba(4,9,19,.22), rgba(4,10,21,.36)), url("./assets/magic-street-background.png") center / cover no-repeat; filter: brightness(1.15) saturate(.92) contrast(1.08); opacity: .62; }
.page:has(.question-wrap)::after { content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none; background: radial-gradient(ellipse at 50% 37%, rgba(153,198,226,.1), transparent 40%), linear-gradient(90deg, rgba(3,7,15,.35), transparent 23% 77%, rgba(3,7,15,.35)), linear-gradient(180deg, rgba(11,28,45,.08), rgba(183,207,217,.08) 48%, rgba(3,7,15,.32)); }
.quiz-scene::before { animation: scene-reveal .72s ease both; }
.quiz-scene__backdrop { display: none; }
.page.quiz-scene--castle:has(.question-wrap)::before { background-image: linear-gradient(180deg, rgba(4,9,19,.18), rgba(4,10,21,.25)), url("./assets/magic-castle-background-hd.jpg"); background-position: center center; background-size: cover; opacity: .44; filter: brightness(.84) saturate(.9) contrast(1.06) blur(6px); transform: scale(1.03); }
.page.quiz-scene--castle:has(.question-wrap)::after { background: radial-gradient(ellipse at 64% 18%, rgba(181,215,237,.08), transparent 34%), linear-gradient(90deg, rgba(3,7,15,.2), transparent 24% 76%, rgba(3,7,15,.2)), linear-gradient(180deg, rgba(7,20,38,.03), rgba(3,7,15,.18)); }
.quiz-scene--castle .quiz-scene__backdrop { position: fixed; inset: 0; z-index: -2; display: block; pointer-events: none; background: linear-gradient(180deg, rgba(3,8,16,.05), rgba(3,8,16,.1)), url("./assets/magic-castle-background-hd.jpg") center / auto 100% no-repeat; opacity: .84; filter: brightness(1.12) saturate(.95) contrast(1.08); animation: scene-reveal .72s ease both; }
.page.quiz-scene--village:has(.question-wrap)::before { background-image: linear-gradient(180deg, rgba(4,9,19,.08), rgba(4,10,21,.15)), url("./assets/magic-village-background.jpg"); background-position: center center; background-size: cover; opacity: .34; filter: brightness(.94) saturate(.9) contrast(1.06) blur(6px); transform: scale(1.03); }
.page.quiz-scene--village:has(.question-wrap)::after { background: radial-gradient(ellipse at 25% 16%, rgba(181,215,237,.11), transparent 32%), linear-gradient(90deg, rgba(3,7,15,.18), transparent 23% 77%, rgba(3,7,15,.2)), linear-gradient(180deg, rgba(7,20,38,.02), rgba(3,7,15,.11)); }
.quiz-scene--village .quiz-scene__backdrop { position: fixed; inset: 0; z-index: -2; display: block; pointer-events: none; background: linear-gradient(180deg, rgba(3,8,16,.03), rgba(3,8,16,.08)), url("./assets/magic-village-background.jpg") center / auto 100% no-repeat; opacity: .88; filter: brightness(1.14) saturate(.92) contrast(1.09); animation: scene-reveal .72s ease both; }
.quiz-scene--village .question-wrap { background: linear-gradient(145deg, rgba(5,13,25,.62), rgba(7,13,24,.57)); backdrop-filter: none; }
.quiz-scene--village .answer { background: rgba(5,14,27,.74); }
.page.quiz-scene--finale:has(.question-wrap)::before { background-image: linear-gradient(180deg, rgba(4,9,19,.16), rgba(4,10,21,.25)), url("./assets/magic-finale-background.jpg"); background-position: center center; background-size: cover; opacity: .36; filter: brightness(.86) saturate(.88) contrast(1.08) blur(6px); transform: scale(1.03); }
.page.quiz-scene--finale:has(.question-wrap)::after { background: radial-gradient(ellipse at 52% 18%, rgba(252,213,121,.12), transparent 34%), linear-gradient(90deg, rgba(3,7,15,.22), transparent 23% 77%, rgba(3,7,15,.28)), linear-gradient(180deg, rgba(7,20,38,.09), rgba(3,7,15,.2)); }
.quiz-scene--finale .quiz-scene__backdrop { position: fixed; inset: 0; z-index: -2; display: block; pointer-events: none; background: linear-gradient(180deg, rgba(3,8,16,.06), rgba(3,8,16,.12)), url("./assets/magic-finale-background.jpg") center / auto 100% no-repeat; opacity: .82; filter: brightness(1.06) saturate(.92) contrast(1.1); animation: scene-reveal .72s ease both; }
.quiz-scene--finale .question-wrap { background: linear-gradient(145deg, rgba(5,13,25,.65), rgba(7,13,24,.6)); backdrop-filter: none; }
.quiz-scene--finale .answer { background: rgba(5,14,27,.76); }
@keyframes scene-reveal { from { opacity: 0; } }
.page:has(.question-wrap) .quiz-header { background: rgba(5,8,15,.6); backdrop-filter: blur(2px); }
.page:has(.question-wrap) .progress { position: relative; z-index: 2; background: rgba(205,163,88,.16); }
.page:has(.question-wrap) .question-wrap { padding: 34px clamp(22px,4vw,42px) 42px; border: 1px solid rgba(200,154,72,.22); background: linear-gradient(145deg, rgba(5,13,25,.65), rgba(7,13,24,.56)); box-shadow: 0 22px 70px rgba(0,0,0,.19), inset 0 1px rgba(255,255,255,.04); backdrop-filter: blur(2px); }
.page:has(.question-wrap) .question-wrap::before { content: "✦"; position: absolute; top: 18px; right: 25px; color: rgba(228,197,125,.35); font-size: 12px; }
.page:has(.question-wrap) .answer { background: rgba(5,14,27,.72); border-color: rgba(213,178,106,.2); }
.page:has(.question-wrap) .answer:hover { background: rgba(19,43,67,.72); border-color: rgba(200,154,72,.58); }
.page:has(.question-wrap) .answer.is-selected { background: linear-gradient(90deg, rgba(169,116,41,.34), rgba(26,58,82,.7)); border-color: var(--gold-light); box-shadow: 0 0 24px rgba(200,154,72,.11), inset 0 0 18px rgba(200,154,72,.04); }
.quiz-scene--castle .question-wrap { background: linear-gradient(145deg, rgba(5,13,25,.62), rgba(7,13,24,.58)); backdrop-filter: none; }
.quiz-scene--castle .answer { background: rgba(5,14,27,.74); }

.result-header { color: var(--ink); background: var(--paper); border-color: rgba(53,37,25,.12); }
.result-header .brand__name small { color: rgba(23,17,14,.36); }
.result-header button { margin-left: 22px; color: rgba(23,17,14,.58); background: none; border: 0; border-bottom: 1px solid rgba(23,17,14,.2); cursor: pointer; font-size: 10px; letter-spacing: .09em; }
.report { color: var(--ink); background: var(--paper); }
.result-hero { min-height: calc(100vh - 92px); padding: 80px 24px 55px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: radial-gradient(circle at 50% 45%, rgba(200,154,72,.13), transparent 30%), linear-gradient(#f5f0e7, #eee5d5); position: relative; overflow: hidden; }
.result-hero::before { content: ""; position: absolute; width: min(75vw, 850px); aspect-ratio: 1; border: 1px solid rgba(142,101,36,.15); border-radius: 50%; }
.result-hero::after { content: ""; position: absolute; width: min(52vw, 600px); aspect-ratio: 1; border: 1px dashed rgba(142,101,36,.2); border-radius: 50%; animation: spin 60s linear infinite; }
.result-hero__halo { position: absolute; width: min(37vw, 430px); aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(142,101,36,.18); transform: rotate(45deg); }
.result-hero__halo span { color: rgba(142,101,36,.06); font-size: 330px; transform: rotate(-25deg); }
.result-hero > *:not(.result-hero__halo) { position: relative; z-index: 2; }
.result-hero .eyebrow { color: #8f692d; }
.result-index { margin: 28px 0 9px; color: rgba(80,53,29,.38); font: 500 9px/1 var(--sans); letter-spacing: .3em; }
.result-hero h1 { margin: 0; color: #251911; font-size: clamp(46px, 7vw, 88px); font-weight: 600; letter-spacing: .08em; }
.result-hero > p:not(.eyebrow) { max-width: 660px; margin: 22px auto; color: rgba(23,17,14,.58); font-size: 16px; line-height: 2; }
.result-chips { display: flex; align-items: center; gap: 18px; margin-top: 14px; color: #714e22; font-size: 12px; letter-spacing: .15em; }
.result-chips i { color: var(--gold); font-style: normal; }
.result-scroll { margin-top: 65px; color: rgba(23,17,14,.44); font-size: 10px; letter-spacing: .15em; text-decoration: none; }

.report-body { width: min(1120px, calc(100% - 48px)); margin: 0 auto; padding: 100px 0; }
.report-card { margin-bottom: 28px; padding: clamp(35px, 6vw, 72px); border: 1px solid rgba(68,47,30,.14); background: rgba(255,255,255,.28); }
.report-card h2 { margin: 16px 0 35px; font-size: clamp(28px, 3.4vw, 44px); font-weight: 500; }
.prose { color: rgba(23,17,14,.72); font-size: 14px; line-height: 2; }
.prose p { margin: 0 0 18px; }
.prose h3 { margin: 55px 0 22px; padding-bottom: 13px; color: #5e401d; font-size: 22px; font-weight: 600; border-bottom: 1px solid rgba(68,47,30,.14); }
.prose h3:first-child { margin-top: 0; }
.prose ul, .prose ol { margin: 15px 0 25px; padding-left: 1.5em; }
.prose li { margin: 9px 0; padding-left: 5px; }
.prose strong { color: #3b281a; font-weight: 700; }
.prose blockquote { margin: 22px 0; padding: 18px 24px; border-left: 2px solid var(--gold); background: rgba(200,154,72,.06); }
.prose--note { margin-top: 42px; padding: 23px 26px; background: rgba(200,154,72,.065); font-size: 12px; }
.score-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.score-columns h3 { margin: 0 0 27px; color: #8d662d; font-size: 13px; letter-spacing: .16em; font-weight: 500; }
.score-row { margin-bottom: 20px; }
.score-row > div:first-child { display: flex; justify-content: space-between; margin-bottom: 9px; font-size: 12px; }
.score-row b { color: rgba(23,17,14,.43); font: 500 9px/1 var(--sans); }
.score-track { height: 3px; background: rgba(54,37,25,.1); }
.score-track i { height: 100%; display: block; background: linear-gradient(90deg, #9e6f28, #d4ad62); }
.profile-section { padding-top: clamp(45px, 8vw, 90px); padding-bottom: clamp(45px, 8vw, 90px); }
.profile-prose h3 { margin-top: 65px; color: #6e4a1f; font-size: 25px; }
.profile-prose h3:first-child { margin-top: 0; }
.profile-prose ul { display: grid; gap: 7px; }
.profile-prose li { padding: 9px 12px; background: rgba(200,154,72,.045); }
.checklist-card ol { list-style: none; padding: 0; counter-reset: item; }
.checklist-card ol li { counter-increment: item; display: grid; grid-template-columns: 42px 1fr; align-items: center; min-height: 64px; margin: 0; border-bottom: 1px solid rgba(54,37,25,.11); }
.checklist-card ol li::before { content: "0" counter(item); color: #a5762d; font: 500 11px/1 var(--sans); }
.next-card { background: #211711; color: var(--paper); border-color: #211711; }
.next-card h2 { color: var(--gold-pale); }
.next-card .prose { color: rgba(244,239,229,.68); }
.next-card .prose strong { color: var(--gold-pale); }
.closing-card { padding: 90px clamp(30px, 8vw, 100px); text-align: center; border: 1px solid rgba(68,47,30,.14); background: radial-gradient(circle at center, rgba(200,154,72,.13), transparent 45%); }
.closing-card > span { color: var(--gold); font-size: 35px; }
.closing-card h2 { margin: 22px 0 28px; font-size: clamp(30px, 4vw, 48px); line-height: 1.55; font-weight: 500; }
.closing-card .prose { max-width: 670px; margin: auto; }
.closing-card .button { margin-top: 25px; }
.disclaimer { margin-top: 50px; padding: 28px 0; display: flex; gap: 40px; border-top: 1px solid rgba(68,47,30,.13); }
.disclaimer > span { flex: 0 0 170px; color: #96702f; font: 500 8px/1 var(--sans); letter-spacing: .22em; }
.disclaimer .prose { font-size: 11px; color: rgba(23,17,14,.47); }

/* Report storytelling: world panorama → result scroll → parchment dossier */
.report-world-banner {
  position: relative;
  min-height: clamp(330px, 42vw, 600px);
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  color: #f7edda;
  background: #071422 url("./assets/report-world-banner.jpg") center / cover no-repeat;
}
.report-world-banner__veil {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(4,12,23,.78), rgba(5,15,28,.42) 45%, rgba(3,9,18,.2)),
    linear-gradient(180deg, rgba(2,8,17,.18), rgba(2,8,17,.5));
}
.report-world-banner__copy { width: min(1120px, calc(100% - 48px)); margin: 0 auto; padding: 72px 0 84px; }
.report-world-banner__copy > span { color: #e4c783; font: 500 10px/1 var(--sans); letter-spacing: .32em; }
.report-world-banner__copy h2 { margin: 20px 0 18px; color: #fff8eb; font-size: clamp(40px, 6.4vw, 82px); line-height: 1.08; font-weight: 500; letter-spacing: .08em; text-shadow: 0 4px 25px rgba(0,0,0,.42); }
.report-world-banner__copy h2 em { color: #e2bb68; font-style: normal; }
.report-world-banner__copy p { max-width: 480px; margin: 0; color: rgba(250,242,225,.78); font-size: 14px; line-height: 1.9; letter-spacing: .08em; }
.report-world-banner__caption { position: absolute; right: clamp(20px, 5vw, 72px); bottom: 24px; color: rgba(243,220,167,.68); font: 500 8px/1 var(--sans); letter-spacing: .24em; }

.report-body {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(58px, 8vw, 108px) clamp(12px, 3vw, 40px);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(193,128,48,.2), transparent 42%),
    linear-gradient(180deg, #25170d, #160d08 65%, #0e0906);
}
.parchment-report {
  position: relative;
  isolation: isolate;
  width: min(1050px, 100%);
  margin: 0 auto;
  padding: clamp(30px, 5vw, 72px) clamp(22px, 7vw, 92px) clamp(45px, 7vw, 85px);
  overflow: hidden;
  color: #3c2818;
  background:
    radial-gradient(ellipse at 17% 10%, rgba(255,249,218,.74), transparent 34%),
    radial-gradient(ellipse at 86% 92%, rgba(146,78,24,.2), transparent 38%),
    repeating-linear-gradient(0deg, rgba(116,70,30,.045) 0 1px, transparent 1px 5px),
    linear-gradient(90deg, #c99953, #e7ca8f 8% 91%, #bf8642);
  border: 0;
  border-radius: 2px;
  box-shadow: 0 28px 68px rgba(0,0,0,.48), inset 0 0 42px rgba(89,45,13,.22);
  clip-path: polygon(1.6% 0, 5% .7%, 10% 0, 16% .8%, 22% 0, 29% .7%, 37% 0, 44% .6%, 52% 0, 61% .8%, 69% 0, 77% .6%, 85% 0, 92% .8%, 98.4% 0, 99.4% 8%, 98.8% 17%, 99.6% 28%, 98.8% 39%, 99.5% 51%, 98.7% 63%, 99.4% 75%, 98.7% 87%, 99.4% 98.6%, 92% 100%, 84% 99.2%, 76% 100%, 68% 99.3%, 59% 100%, 50% 99.2%, 41% 100%, 32% 99.3%, 23% 100%, 14% 99.2%, 5% 100%, .7% 97%, 1.2% 87%, .5% 76%, 1.2% 64%, .5% 53%, 1.2% 41%, .6% 30%, 1.3% 18%, .6% 8%);
}
.parchment-report::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  top: -2px;
  height: 58px;
  background: linear-gradient(180deg, #714019 0 12%, #d5a45c 25%, #edcf91 53%, #a56228 83%, #6b3816);
  border-radius: 50%;
  box-shadow: 0 10px 14px rgba(66,31,8,.3), inset 0 5px 7px rgba(255,235,165,.38), inset 0 -8px 10px rgba(50,18,4,.28);
  pointer-events: none;
}
.parchment-report::after {
  content: "✦  MIRROR LAKE ACADEMY  ✦";
  position: absolute;
  left: clamp(24px, 5vw, 70px);
  top: 22px;
  color: rgba(107,64,22,.45);
  font: 500 8px/1 var(--sans);
  letter-spacing: .22em;
}
.parchment-report .report-card { margin: 0; padding: clamp(28px, 4vw, 58px) 0; border: 0; border-bottom: 1px solid rgba(91,53,19,.28); background: transparent; }
.parchment-report .report-card:first-child { padding-top: clamp(90px, 10vw, 130px); }
.parchment-report .report-card:last-of-type { border-bottom: 0; }
.parchment-report .report-card h2 { color: #3a2515; }
.parchment-report .report-kicker { color: #865b24; }
.parchment-report .prose { color: rgba(53,34,19,.82); }
.parchment-report .prose h3 { color: #65421c; border-color: rgba(91,53,19,.26); }
.parchment-report .prose strong { color: #35200f; }
.parchment-report .prose blockquote, .parchment-report .prose--note { background: rgba(133,81,22,.1); }
.parchment-report .score-track { background: rgba(69,40,15,.2); }
.parchment-report .profile-prose li { background: rgba(133,81,22,.08); }
.parchment-report .checklist-card ol li { border-color: rgba(69,40,15,.2); }
.parchment-report .next-card { margin: 32px clamp(-30px, -4vw, -20px) 0; padding: clamp(35px, 5vw, 68px) clamp(20px, 4vw, 60px); background: rgba(45,25,12,.88); border: 1px solid rgba(91,53,19,.34); }
.parchment-report .closing-card { margin-top: 28px; border-color: rgba(91,53,19,.3); background: radial-gradient(circle at center, rgba(182,115,34,.24), transparent 58%); }
.parchment-report .disclaimer { border-color: rgba(91,53,19,.28); }
.report-reading-note {
  position: relative;
  margin: 34px clamp(4px, 1.5vw, 18px) 0;
  padding: clamp(42px, 6vw, 78px) clamp(20px, 5vw, 72px) clamp(40px, 6vw, 70px);
  border-top: 1px solid rgba(91,53,19,.28);
  background: rgba(246,218,151,.28);
  box-shadow: inset 0 18px 28px rgba(112,58,15,.06), inset 0 -18px 30px rgba(112,58,15,.08);
}
.report-reading-note::before, .report-reading-note::after {
  content: "";
  position: absolute;
  left: 2%;
  right: 2%;
  height: 14px;
  border-radius: 50%;
  background: linear-gradient(180deg, #9d5d24, #e2b46d 40%, #a25e25 75%, #6f3815);
  box-shadow: 0 5px 8px rgba(66,31,8,.25), inset 0 2px 4px rgba(255,235,165,.35);
}
.report-reading-note::before { top: -8px; }
.report-reading-note::after { bottom: -8px; transform: rotate(180deg); }
.report-reading-note__seal { color: #8a5a24; font-size: 28px; margin-bottom: 18px; }
.report-reading-note h2 { margin: 15px 0 30px; color: #3a2515; font-size: clamp(29px, 4vw, 50px); line-height: 1.35; font-weight: 500; }
.report-reading-note .prose { font-size: clamp(14px, 1.6vw, 18px); line-height: 2.25; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; padding-top: 80px; }
  .hero::before { display: none; }
  .hero__sigil { width: min(78vw, 520px); margin: 90px auto 30px; }
  .section-title { display: block; }
  .section-title p { margin-top: 25px; }
  .archetype-grid { grid-template-columns: 1fr 1fr; }
  .temperaments { flex-wrap: wrap; gap: 22px 35px; }
  .score-columns { gap: 35px; }
}

@media (max-width: 680px) {
  .site-header, .quiz-header, .result-header { height: 70px; padding: 0 18px; }
  .site-header__meta { display: none; }
  .brand__name { font-size: 10px; }
  .brand__name small { font-size: 6px; }
  .hero { display: block; min-height: auto; padding: 70px 24px 80px; }
  .hero h1 { margin-top: 25px; font-size: 43px; line-height: 1.32; }
  .hero__lead { width: 100%; font-size: 13px; }
  .hero__facts { margin: 32px 0; justify-content: space-between; }
  .hero__facts div { min-width: 0; flex: 1; margin: 0 14px 0 0; padding: 0 14px 0 0; }
  .hero__facts strong { font-size: 22px; }
  .hero__facts span { font-size: 9px; }
  .hero__actions { align-items: flex-start; flex-direction: column; gap: 14px; }
  .hero__actions .button { width: 100%; }
  .hero__sigil { width: 82vw; margin: 85px auto 0; }
  .sigil__star { font-size: 220px; }
  .sigil__core { width: 105px; height: 105px; }
  .sigil__core span { font-size: 34px; }
  .map-section { padding: 75px 20px; }
  .archetype-grid { grid-template-columns: 1fr 1fr; }
  .archetype-card { min-height: 240px; padding: 20px 10px; }
  .card-rune { margin-top: 30px; font-size: 42px; }
  .archetype-card h3 { font-size: 20px; }
  .temperaments b { width: 40%; text-align: center; }
  .site-footer { display: block; padding: 28px 22px; }
  .site-footer p { margin-top: 12px; line-height: 1.8; }
  .magic-cover-home { padding: 0; }
  .magic-cover { width: 100vw; min-height: 100vh; aspect-ratio: auto; }
  .magic-cover__parchment { top: 48%; height: 43%; left: 7%; right: 7%; padding-left: 8%; padding-right: 8%; }
  .magic-cover__content h1 { font-size: clamp(28px,11vw,45px); }
  .magic-cover__button { width: 77%; }
  .quiz-header .brand__name, .quiz-header .brand__line { display: none; }
  .quiz-header__count { font-size: 7px; }
  .admission-stage { min-height: calc(100vh - 70px); padding: 4px 4px 22px; align-content: start; }
  .admission-stage::before { inset: -18px; background-position: center center; filter: blur(14px) brightness(.72) saturate(.84); }
  .admission-stage::after { background: radial-gradient(ellipse at center, transparent 37%, rgba(20,8,3,.18) 72%, rgba(4,3,2,.52)), linear-gradient(180deg,rgba(3,6,12,.2),transparent 18% 82%,rgba(12,5,2,.32)); }
  .admission-letter { width: min(100vw, 590px); margin-top: 8px; }
  .admission-letter__ink { left: 15%; right: 14%; top: 25%; bottom: 12%; }
  .admission-letter h1 { margin-top: 8px; font-size: clamp(24px,7vw,35px); }
  .admission-letter__rule { margin-bottom: 12px; }
  .admission-letter__body { font-size: clamp(11px,3.25vw,14px); line-height: 1.72; }
  .admission-letter__body p { margin-bottom: 6px; }
  .admission-letter__button { margin-top: 8px; padding: 10px 18px; }
  .letter-wrap { width: calc(100% - 28px); margin: 35px auto 60px; padding: 48px 24px; }
  .letter-wrap h1 { font-size: 34px; }
  .letter-body { font-size: 13px; }
  .letter-body blockquote { padding: 18px; }
  .question-wrap { width: calc(100% - 34px); padding-top: 38px; }
  .page:has(.question-wrap)::before { background-position: 50% center; opacity: .72; filter: brightness(1.2) saturate(.94) contrast(1.08); }
  .page:has(.question-wrap)::after { background: radial-gradient(ellipse at 50% 24%, rgba(166,207,231,.12), transparent 38%), linear-gradient(90deg, rgba(2,7,14,.18), transparent 18% 82%, rgba(2,7,14,.18)), linear-gradient(180deg, rgba(8,22,38,.04), rgba(175,202,214,.08) 42%, rgba(3,7,15,.22)); }
  .page.quiz-scene--castle:has(.question-wrap)::before { background-position: 50% center; opacity: .22; filter: brightness(.82) saturate(.9) contrast(1.03) blur(5px); transform: scale(1.025); }
  .page.quiz-scene--castle:has(.question-wrap)::after { background: radial-gradient(ellipse at 68% 14%, rgba(184,216,237,.08), transparent 34%), linear-gradient(90deg, rgba(2,7,14,.08), transparent 15% 85%, rgba(2,7,14,.08)), linear-gradient(180deg, rgba(8,22,38,.02), rgba(3,7,15,.14)); }
  .quiz-scene--castle .quiz-scene__backdrop { background-position: 50% center; background-size: cover; opacity: .88; filter: brightness(1.12) saturate(.95) contrast(1.08); }
  .quiz-scene--castle .question-wrap { background: linear-gradient(145deg, rgba(5,13,25,.61), rgba(7,13,24,.57)); backdrop-filter: none; }
  .page.quiz-scene--village:has(.question-wrap)::before { background-position: 50% center; opacity: .18; filter: brightness(.96) saturate(.92) contrast(1.05) blur(5px); transform: scale(1.025); }
  .page.quiz-scene--village:has(.question-wrap)::after { background: radial-gradient(ellipse at 24% 13%, rgba(184,216,237,.12), transparent 30%), linear-gradient(90deg, rgba(2,7,14,.08), transparent 15% 85%, rgba(2,7,14,.12)), linear-gradient(180deg, rgba(8,22,38,.02), rgba(3,7,15,.16)); }
  .quiz-scene--village .quiz-scene__backdrop { background-position: 50% center; background-size: cover; opacity: .92; filter: brightness(1.14) saturate(.93) contrast(1.09); }
  .page.quiz-scene--finale:has(.question-wrap)::before { background-position: 50% center; opacity: .18; filter: brightness(.88) saturate(.9) contrast(1.06) blur(5px); transform: scale(1.025); }
  .page.quiz-scene--finale:has(.question-wrap)::after { background: radial-gradient(ellipse at 52% 14%, rgba(252,213,121,.13), transparent 31%), linear-gradient(90deg, rgba(2,7,14,.1), transparent 15% 85%, rgba(2,7,14,.14)), linear-gradient(180deg, rgba(8,22,38,.06), rgba(3,7,15,.2)); }
  .quiz-scene--finale .quiz-scene__backdrop { background-position: 50% center; background-size: cover; opacity: .86; filter: brightness(1.07) saturate(.93) contrast(1.1); }
  .page:has(.question-wrap) .question-wrap { background: linear-gradient(145deg, rgba(5,13,25,.6), rgba(7,13,24,.52)); backdrop-filter: blur(1.5px); }
  .question-meta { display: block; }
  .question-meta b { display: block; margin-top: 10px; line-height: 1.5; }
  .question-number { margin-top: 12px; font-size: 66px; }
  .question-wrap h1 { font-size: 20px; line-height: 1.48; }
  .answer { min-height: 62px; padding: 7px 12px; grid-template-columns: 30px 1fr 18px; }
  .answer > span { font-size: 13.6px; }
  .answer p { font-size: 13.6px; line-height: 1.58; }
  .nav-button { font-size: 14px; }
  .question-nav > span { display: none; }
  .result-header .brand__name, .result-header .brand__line { display: none; }
  .result-header button { margin-left: 10px; font-size: 8px; }
  .result-hero { min-height: calc(100vh - 70px); padding-left: 20px; padding-right: 20px; }
  .result-hero::before { width: 130vw; }
  .result-hero::after { width: 92vw; }
  .result-hero__halo { width: 70vw; }
  .result-hero h1 { font-size: 49px; line-height: 1.3; }
  .result-chips { gap: 10px; font-size: 10px; }
  .report-body { width: calc(100% - 24px); padding: 50px 0; }
  .report-card { padding: 32px 23px; }
  .score-columns { grid-template-columns: 1fr; }
  .prose { font-size: 13px; }
  .prose h3, .profile-prose h3 { margin-top: 45px; font-size: 20px; }
  .profile-prose ul { display: block; }
  .closing-card { padding: 65px 24px; }
  .closing-card h2 { font-size: 28px; }
  .disclaimer { display: block; }
  .disclaimer > span { display: block; margin-bottom: 18px; }
  .report-world-banner { min-height: 350px; background-position: 58% center; }
  .report-world-banner__copy { width: calc(100% - 40px); padding: 58px 0 70px; }
  .report-world-banner__copy h2 { margin-top: 16px; font-size: clamp(34px, 10vw, 52px); }
  .report-world-banner__copy p { max-width: 290px; font-size: 12px; }
  .report-world-banner__caption { right: 20px; bottom: 18px; font-size: 7px; }
  .report-body { width: 100%; padding: 38px 8px 58px; }
  .parchment-report { padding-left: 22px; padding-right: 22px; }
  .parchment-report .report-card { padding-top: 30px; padding-bottom: 30px; }
  .parchment-report .report-card:first-child { padding-top: 105px; }
  .parchment-report .next-card { margin-left: -10px; margin-right: -10px; }
  .report-reading-note { margin-left: 0; margin-right: 0; padding-left: 18px; padding-right: 18px; }
  .report-reading-note .prose { font-size: 14px; line-height: 2.05; }
}

@media print {
  .noise, .result-header, .result-scroll, .closing-card .button { display: none !important; }
  .page, .report, .result-hero, .report-body, .parchment-report { background: white !important; color: #111 !important; }
  .report-world-banner { min-height: 240px; color: #111; background: #eee !important; }
  .report-world-banner__veil { display: none; }
  .report-world-banner__copy h2, .report-world-banner__copy p, .report-world-banner__copy > span, .report-world-banner__caption { color: #111 !important; text-shadow: none; }
  .result-hero { min-height: 70vh; break-after: page; }
  .report-body { width: 100%; padding: 0; }
  .report-card, .closing-card { break-inside: avoid; border-color: #ddd; }
  .next-card { color: var(--ink); background: #f4efe5; }
  .next-card h2, .next-card .prose { color: var(--ink); }
}

/* Mobile report readability: a restrained type scale for long-form reading */
@media (max-width: 680px) {
  .report-body .parchment-report .report-card h2 {
    font-size: 30px;
    line-height: 1.45;
    letter-spacing: .02em;
  }
  .report-body .parchment-report .prose {
    font-size: 14px;
    line-height: 2.08;
  }
  .report-body .parchment-report .prose p {
    margin-bottom: 20px;
  }
  .report-body .parchment-report .prose h3,
  .report-body .parchment-report .profile-prose h3 {
    margin-top: 48px;
    margin-bottom: 22px;
    font-size: 21px;
    line-height: 1.5;
  }
  .report-body .parchment-report .report-kicker {
    font-size: 10px;
    letter-spacing: .24em;
  }
  .report-body .parchment-report .score-columns h3 {
    font-size: 21px;
    line-height: 1.5;
  }
  .report-body .parchment-report .score-row > div:first-child {
    font-size: 13px;
  }
  .report-body .parchment-report .score-row b {
    font-size: 10px;
  }
  .report-body .parchment-report .prose--note {
    font-size: 13px;
    line-height: 1.95;
  }
  .archive-actions { grid-template-columns: 1fr; gap: 10px; }
  .archive-action, .archive-action--link, .archive-restart { grid-column: 1; width: 100%; min-height: 50px; }
  .archive-action--primary, .archive-restart { font-size: 18px; }
  .report-collapse-toggle { grid-template-columns: 1fr auto; gap: 10px; }
  .report-collapse-toggle .report-kicker { grid-column: 1 / -1; }
  .report-collapse-toggle strong { font-size: 24px; line-height: 1.45; }
  .archive-action--link { min-height: 44px; }
  .report-body .parchment-report .checklist-card ol li {
    min-height: 70px;
  }
  .profile-prose .rated-item { margin-bottom: 12px; padding: 14px 15px 13px; }
  .profile-prose .rated-item__head { display: block; }
  .profile-prose .rated-item__head strong { display: inline; font-size: 17px; }
  .profile-prose .rated-item__stars { display: inline-block; margin-left: 8px; font-size: 17px; }
  .profile-prose .rated-item__desc { margin-top: 6px; font-size: 14px; line-height: 1.9; }
  .profile-prose ul:has(.rated-item) { margin-top: 20px; }
}

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

/* Night archive report theme: one continuous blue-gold world */
.report {
  position: relative;
  isolation: isolate;
  color: #edf2f7;
  background: #061326 url("./assets/report-night-archive.png") center / cover fixed no-repeat;
}
.result-header {
  color: #edf2f7;
  background: rgba(3,13,30,.92);
  border-color: rgba(214,173,92,.24);
}
.result-header .brand__name small { color: rgba(221,232,243,.52); }
.result-header button { color: rgba(221,232,243,.72); border-bottom-color: rgba(214,173,92,.32); }
.report::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 8%, rgba(31,92,143,.16), transparent 42%),
    linear-gradient(180deg, rgba(2,10,25,.38), rgba(2,12,28,.76) 42%, rgba(2,8,20,.88));
}
.report-world-banner {
  background-image: linear-gradient(90deg, rgba(2,10,25,.78), rgba(4,17,37,.38) 55%, rgba(2,8,20,.25)), url("./assets/report-night-archive.png");
  background-position: center center;
  border-bottom: 1px solid rgba(214,173,92,.28);
}
.report-world-banner__veil { background: linear-gradient(180deg, rgba(2,8,20,.08), rgba(2,8,20,.56)); }
.result-hero {
  min-height: calc(100vh - 92px);
  color: #edf2f7;
  background: linear-gradient(180deg, rgba(4,17,38,.82), rgba(4,15,34,.9));
  border-bottom: 1px solid rgba(214,173,92,.32);
}
.result-hero::before { border-color: rgba(214,173,92,.25); }
.result-hero::after { border-color: rgba(214,173,92,.3); }
.result-hero__halo { border-color: rgba(214,173,92,.3); }
.result-hero__halo span { color: rgba(214,173,92,.1); }
.result-hero .eyebrow, .result-index { color: #d6ad5c; }
.result-hero h1 { color: #f7e8bf; text-shadow: 0 3px 22px rgba(0,0,0,.4); }
.result-hero > p:not(.eyebrow) { color: rgba(221,232,243,.78); }
.result-chips { color: #e2c47e; }
.result-scroll { color: rgba(222,231,239,.65); }
.report-body {
  width: 100%;
  max-width: none;
  padding: clamp(58px, 8vw, 108px) clamp(12px, 3vw, 40px);
  color: #edf2f7;
  background: linear-gradient(180deg, rgba(3,15,34,.74), rgba(2,10,25,.86));
}
.parchment-report {
  width: min(1050px, 100%);
  padding: clamp(34px, 5vw, 72px) clamp(22px, 7vw, 92px) clamp(46px, 7vw, 85px);
  color: #edf2f7;
  background: linear-gradient(145deg, rgba(5,22,47,.82), rgba(3,15,34,.72));
  border: 1px solid rgba(214,173,92,.3);
  border-radius: 0;
  box-shadow: 0 28px 80px rgba(0,0,0,.42), inset 0 0 80px rgba(12,55,91,.18);
  clip-path: none;
  backdrop-filter: blur(5px);
}
.parchment-report::before {
  left: 0; right: 0; top: 0; height: 2px;
  border-radius: 0;
  background: linear-gradient(90deg, transparent, rgba(214,173,92,.9) 18% 82%, transparent);
  box-shadow: 0 0 18px rgba(214,173,92,.28);
}
.parchment-report::after {
  left: auto; right: clamp(24px, 5vw, 70px); top: 24px;
  color: rgba(214,173,92,.62);
}
.parchment-report .report-card {
  border-bottom-color: rgba(214,173,92,.25);
  background: transparent;
}
.parchment-report .report-card:first-child { padding-top: clamp(58px, 8vw, 100px); }
.parchment-report .report-card h2, .report-reading-note h2 { color: #f7e8bf; }
.parchment-report .report-kicker { color: #d6ad5c; }
.parchment-report .prose { color: rgba(231,239,247,.82); }
.parchment-report .prose h3 { color: #e2c47e; border-color: rgba(214,173,92,.25); }
.parchment-report .prose strong { color: #f7e8bf; }
.parchment-report .prose blockquote, .parchment-report .prose--note { background: rgba(38,89,126,.28); border-left-color: #d6ad5c; }
.parchment-report .score-columns h3 { color: #d6ad5c; }
.parchment-report .score-columns h3 {
  color: #e2c47e;
  font-size: 22px;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: .02em;
}
.parchment-report .prose--note {
  font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
  font-weight: 500;
  letter-spacing: .015em;
}
.parchment-report .score-row b { color: rgba(221,232,243,.56); }
.parchment-report .score-track { background: rgba(191,207,224,.18); }
.parchment-report .profile-prose li { background: rgba(38,89,126,.22); }
.parchment-report .checklist-card ol li { border-color: rgba(214,173,92,.22); }
.parchment-report .next-card {
  background: rgba(2,10,25,.72);
  border: 1px solid rgba(214,173,92,.28);
}
.parchment-report .next-card h2 { color: #f7e8bf; }
.parchment-report .next-card .prose { color: rgba(231,239,247,.78); }
.parchment-report .closing-card {
  border-color: rgba(214,173,92,.3);
  background: radial-gradient(circle at center, rgba(214,173,92,.15), transparent 58%);
}
.closing-card h2 br { display: none; }
.archive-actions { width: 100%; max-width: 520px; min-width: 0; margin: 32px auto 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; justify-items: stretch; }
.archive-action { position: relative; width: 100%; max-width: 100%; min-width: 0; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: 0 68px 0 24px; border: 1px solid rgba(214,173,92,.45); color: #f7e8bf; background: rgba(5,22,47,.68); cursor: pointer; text-decoration: none; font-size: 13px; letter-spacing: .08em; transition: .25s ease; }
.archive-action > span:first-child { display: none; }
.archive-action::after { content: "↗"; position: absolute; top: 0; right: 0; width: 52px; height: 100%; display: grid; place-items: center; color: #e2c47e; font-size: 20px; border-left: 1px solid rgba(214,173,92,.28); }
.archive-action:hover { transform: translateY(-2px); border-color: rgba(214,173,92,.9); background: rgba(23,63,91,.82); box-shadow: 0 10px 26px rgba(0,0,0,.2), 0 0 18px rgba(214,173,92,.12); }
.archive-action--primary { color: #16100a; background: linear-gradient(115deg, #b98534, #e2c173 54%, #b68130); border-color: #e2c173; }
.archive-action--primary::after { color: #2b1c0b; background: rgba(110,68,19,.18); border-left-color: rgba(78,43,8,.18); }
.archive-action--primary { grid-column: 1 / -1; width: 100%; white-space: nowrap; }
.archive-action--primary { font-size: 19px; }
.archive-action--secondary { display: none; }
.archive-restart { grid-column: 1; justify-self: stretch; width: 100%; max-width: 100%; min-width: 0; min-height: 52px; margin-top: 0; padding: 0 68px 0 24px; position: relative; color: rgba(221,232,243,.78); border: 1px solid rgba(214,173,92,.28); background: rgba(5,22,47,.5); cursor: pointer; font-size: 13px; letter-spacing: .08em; transition: .25s ease; }
.archive-restart { font-size: 19px; }
.archive-restart::after { content: "↗"; position: absolute; top: 0; right: 0; width: 42px; height: 100%; display: grid; place-items: center; color: rgba(214,173,92,.78); border-left: 1px solid rgba(214,173,92,.2); }
.archive-restart:hover { color: #f7e8bf; border-color: rgba(214,173,92,.7); background: rgba(23,63,91,.62); }
.archive-restart:hover { color: #f7e8bf; }
.closing-card > .button.button--gold { display: none; }
.archive-action--secondary { grid-column: 1; }
.archive-author-link { grid-column: 1; justify-self: center; margin-top: 1px; padding: 3px 2px 6px; color: rgba(221,232,243,.68); border-bottom: 1px solid rgba(214,173,92,.38); text-decoration: none; font-size: 11px; letter-spacing: .16em; transition: .25s ease; }
.archive-author-link span { margin-left: 5px; color: #d6ad5c; font-size: 12px; }
.archive-author-link:hover { color: #f7e8bf; border-bottom-color: rgba(214,173,92,.9); }
.report-collapse-toggle { width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; padding: 0; color: inherit; text-align: left; border: 0; background: none; cursor: pointer; }
.report-collapse-toggle .report-kicker { margin: 0; }
.report-collapse-toggle strong { color: #f7e8bf; font-size: clamp(24px, 3.1vw, 38px); font-weight: 500; }
.report-collapse-toggle i { color: #d6ad5c; font: 400 24px/1 var(--sans); font-style: normal; }
.report-collapse-content { display: none; padding-top: 30px; }
.report-collapsible.is-open .report-collapse-content { display: block; }
.report-collapsible.is-open .report-collapse-toggle i { color: #f7e8bf; }
.parchment-report .disclaimer { border-color: rgba(214,173,92,.24); }
.parchment-report .disclaimer > span { color: #d6ad5c; }
.parchment-report .disclaimer .prose { color: rgba(191,207,224,.64); }
.profile-prose .rated-item {
  margin: 0 0 14px;
  padding: 16px 18px 15px;
  list-style: none;
  background: rgba(38,89,126,.22);
  border-left: 2px solid rgba(214,173,92,.62);
  box-shadow: inset 0 0 22px rgba(18,62,96,.15);
}
.profile-prose .rated-item__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; }
.profile-prose .rated-item__head strong { color: #f3dfae; font-size: 16px; line-height: 1.6; }
.profile-prose .rated-item__stars { color: #e2bc68; font-family: Georgia, serif; font-size: 17px; letter-spacing: .08em; white-space: nowrap; }
.profile-prose .rated-item__desc { margin-top: 5px; color: rgba(220,231,241,.77); font-size: 14px; line-height: 1.85; }
.profile-prose .rated-item::marker { color: #d6ad5c; }
.profile-prose ul:has(.rated-item) { margin: 22px 0 30px; padding-left: 0; }
.profile-prose ul:has(.rated-item) .rated-item::before { content: "✦"; float: left; margin: 3px 12px 0 0; color: #d6ad5c; font-size: 11px; }
.profile-prose .profile-plain-list { display: block; margin: 18px 0 30px; padding-left: 1.35em; }
.profile-prose .profile-plain-list li {
  margin: 0;
  padding: 8px 0 8px 5px;
  color: rgba(220,231,241,.82);
  background: transparent;
  border: 0;
  box-shadow: none;
}
.profile-prose ol.profile-plain-list { padding-left: 1.6em; }
.profile-prose .profile-plain-list li::marker { color: #d6ad5c; font-weight: 600; }
.report-reading-note {
  background: rgba(5,22,47,.62);
  border-top-color: rgba(214,173,92,.28);
}
.report-reading-note::before, .report-reading-note::after { background: linear-gradient(90deg, transparent, #d6ad5c 18% 82%, transparent); box-shadow: 0 0 14px rgba(214,173,92,.25); }
.report-reading-note__seal { color: #d6ad5c; }
.report-reading-note .prose { color: rgba(231,239,247,.82); }

@media (max-width: 680px) {
  .report { background-attachment: scroll; background-position: 66% center; }
  .report::before { position: absolute; }
  .report-world-banner { background-position: 66% center; }
  .parchment-report { padding-left: 22px; padding-right: 22px; }
  .closing-card { padding-left: 16px; padding-right: 16px; }
  .archive-action, .archive-restart { padding-left: 14px; padding-right: 48px; font-size: clamp(15px, 4.5vw, 18px); }
  .archive-action::after, .archive-restart::after { width: 42px; }
}

@media print {
  .report, .report-body, .parchment-report, .result-hero { background: #fff !important; color: #111 !important; }
  .report::before { display: none; }
  .parchment-report { border-color: #bbb; box-shadow: none; backdrop-filter: none; }
  .parchment-report .report-card h2, .report-reading-note h2, .parchment-report .prose h3 { color: #222 !important; }
  .parchment-report .prose, .parchment-report .next-card .prose, .report-reading-note .prose { color: #333 !important; }
}
