:root {
  --paper: #e8dfc9;
  --paper-light: #f8f0da;
  --ink: #213d3c;
  --muted: #706854;
  --line: rgba(55, 66, 54, .24);
  --teal: #286d70;
  --teal-dark: #174e52;
  --vermilion: #b95435;
  --mustard: #c3943e;
  --shadow: rgba(55, 46, 30, .18);
  --font-display: "MiSans", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei UI", "Noto Sans SC", sans-serif;
  --font-body: "MiSans", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei UI", "Noto Sans SC", sans-serif;
  --font-mono: Consolas, "SFMono-Regular", monospace;
}

* { box-sizing: border-box; }
html { background: #cfc6af; }
body { margin: 0; min-width: 320px; color: var(--ink); background: #cfc6af; font-family: var(--font-body); font-weight: 400; font-synthesis: none; text-rendering: optimizeLegibility; }
h1, h2, h3, .brand { font-family: var(--font-display); font-weight: 650; letter-spacing: .01em; }
h4, strong, button { font-family: var(--font-body); }
button { font: inherit; }
button:focus-visible, a:focus-visible { outline: 3px solid rgba(40, 109, 112, .45); outline-offset: 2px; }
.skip-link { position: fixed; left: 8px; top: -60px; z-index: 50; padding: 9px 13px; color: white; background: var(--teal-dark); }
.skip-link:focus { top: 8px; }

.page-shell { width: min(100%, 430px); margin: 0 auto; min-height: 100svh; background: var(--paper); box-shadow: 0 0 38px var(--shadow); }
.topbar { height: 54px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); background: rgba(248, 240, 218, .96); }
.brand { font-size: 15px; font-weight: 600; letter-spacing: .045em; }
.brand small { display: block; margin-top: 2px; color: var(--muted); font: 9px/1 "DM Mono", monospace; letter-spacing: .1em; }
.day-counter { color: var(--muted); font: 10px/1.2 "DM Mono", monospace; text-align: right; }
.mobile-prototype { position: relative; min-height: calc(100svh - 54px); overflow: hidden; }

.screen { min-height: calc(100svh - 54px); position: relative; }
.map { position: absolute; inset: 0; background: url("./assets/previews/city-map-seven-zones.webp") center/cover no-repeat; }
.map::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(232,223,201,.02) 48%, rgba(232,223,201,.92) 80%, var(--paper) 100%); }
.map-soft { filter: saturate(.84) sepia(.08); }
.paper-panel { position: relative; background: rgba(248, 240, 218, .96); border: 1px solid rgba(44, 77, 72, .25); box-shadow: 5px 7px 0 rgba(53, 70, 61, .13); }
.eyebrow { margin: 0; color: var(--vermilion); font: 10px/1.35 "DM Mono", monospace; letter-spacing: .13em; text-transform: uppercase; }
.muted { color: var(--muted); }

.intro { display: flex; align-items: end; padding: 0 16px 18px; }
.intro .map { bottom: 32%; background-position: 51% 50%; }
.intro-card { width: 100%; padding: 22px 20px 20px; }
.intro-card h1 { margin: 7px 0 8px; font-size: 34px; line-height: 1.18; letter-spacing: .025em; }
.intro-card > p:not(.eyebrow) { margin: 0; color: #4f554b; font-size: 14px; line-height: 1.78; }
.facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 16px 0; }
.fact { padding: 10px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fact span { display: block; color: var(--muted); font-size: 10px; }
.fact strong { display: block; margin-top: 3px; font-size: 13px; }

.primary, .secondary { width: 100%; min-height: 48px; padding: 11px 14px; cursor: pointer; }
.primary { border: 0; color: #fffaf0; background: var(--vermilion); box-shadow: 3px 3px 0 #8f3f2a; font-weight: 700; letter-spacing: .05em; }
.primary:hover { background: #9f452e; }
.secondary { border: 1px solid var(--teal); color: var(--teal-dark); background: rgba(248,240,218,.75); font-weight: 600; }
.text-button { border: 0; padding: 6px 0; color: var(--teal-dark); background: transparent; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font-size: 12px; }

.planning { display: flex; flex-direction: column; padding: 16px; }
.planning .map { height: 44%; inset: 0 0 auto; background-position: 51% 46%; }
.planning-header { position: relative; display: flex; justify-content: space-between; align-items: start; gap: 12px; color: var(--ink); text-shadow: 0 1px rgba(248,240,218,.9); }
.planning-header h1 { margin: 4px 0 0; font-size: 23px; }
.rank-panel { margin-top: auto; padding: 17px 15px 15px; }
.rank-panel h2 { margin: 0 0 5px; font-size: 19px; }
.rank-help { margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.incident-list { display: grid; gap: 8px; }
.incident { width: 100%; min-height: 56px; padding: 9px 10px; display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 9px; text-align: left; border: 1px solid #b7aa88; background: rgba(255,250,236,.8); color: var(--ink); cursor: pointer; }
.incident:hover { border-color: var(--teal); }
.incident.is-ranked { background: #e5ead8; border-color: var(--teal); }
.rank-number { width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--vermilion); font: 11px/1 "DM Mono", monospace; }
.incident strong { display: block; font-size: 13px; }
.incident small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.district-dot { color: var(--teal); font-size: 11px; }
.rank-actions { margin-top: 12px; display: grid; grid-template-columns: 1fr 2fr; gap: 8px; }

.event-screen { padding: 14px 14px 18px; display: flex; flex-direction: column; }
.event-screen .map { opacity: .48; background-position: var(--map-x, 50%) var(--map-y, 50%); }
.event-head { position: relative; display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.event-head strong { display: block; font-size: 14px; }
.event-head span { display: block; margin-top: 3px; color: var(--muted); font: 10px/1.3 "DM Mono", monospace; }
.event-card { margin-top: auto; padding: 18px 15px 15px; }
.district-label { margin: 0; color: var(--teal); font: 10px/1.3 "DM Mono", monospace; letter-spacing: .1em; }
.event-card h1 { margin: 7px 0 8px; font-size: 24px; line-height: 1.32; }
.stage-label { display: inline-block; margin-bottom: 8px; padding: 4px 7px; color: #694823; background: rgba(195,148,62,.2); font-size: 10px; }
.prompt { margin: 0 0 13px; color: #3f4943; font-size: 14px; line-height: 1.7; }
.choices { display: grid; gap: 7px; }
.choice { width: 100%; min-height: 50px; padding: 10px; display: grid; grid-template-columns: 27px 1fr; align-items: center; gap: 8px; text-align: left; border: 1px solid #b7aa88; color: var(--ink); background: rgba(255,250,236,.88); cursor: pointer; }
.choice:hover { border-color: var(--teal); background: #edf0df; }
.choice-key { color: var(--vermilion); font: 10px/1 "DM Mono", monospace; }
.choice-text { font-size: 13px; line-height: 1.45; font-weight: 600; }
.event-progress { position: relative; margin-bottom: 10px; display: flex; gap: 5px; }
.event-progress span { width: 7px; height: 7px; border-radius: 50%; background: rgba(33,61,60,.2); }
.event-progress span.done { background: var(--teal); }
.event-progress span.current { background: var(--vermilion); }

.reveal { display: flex; align-items: end; padding: 0 15px 18px; }
.reveal .map { bottom: 38%; background-position: var(--map-x, 50%) var(--map-y, 50%); }
.reveal-card { width: 100%; padding: 20px 17px 17px; }
.reveal-card h1 { margin: 6px 0 8px; font-size: 23px; }
.reveal-card p { margin: 0 0 14px; color: #4d554a; font-size: 14px; line-height: 1.75; }
.new-info { margin: 12px 0 15px; padding: 11px; border-left: 3px solid var(--mustard); background: rgba(195,148,62,.12); color: #54472f; font-size: 13px; line-height: 1.65; }

.day-end, .final { padding: 15px; display: flex; align-items: end; }
.day-end .map, .final .map { bottom: 43%; }
.summary-card { width: 100%; padding: 20px 17px 17px; }
.summary-card h1 { margin: 6px 0 8px; font-size: 25px; }
.summary-card > p { margin: 0; color: #4d554a; font-size: 14px; line-height: 1.72; }
.town-notes { margin: 14px 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.town-notes li { padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 12px; line-height: 1.5; }
.day-seal-award { display: grid; grid-template-columns: 92px 1fr; gap: 13px; align-items: center; margin: 0 0 15px; padding: 11px; border: 1px solid rgba(185,84,53,.28); background: rgba(255,250,236,.72); }
.day-seal-art { width: 88px; height: 88px; display: block; background: url("./assets/seals/seal-atlas-v1.webp") var(--seal-x) var(--seal-y) / 700% 400% no-repeat; }
.day-seal-award small { display: block; color: var(--vermilion); font: 8px/1.2 var(--font-mono); letter-spacing: .08em; }
.day-seal-award strong { display: block; margin-top: 4px; color: var(--ink); font-family: var(--font-display); font-size: 19px; }
.day-seal-award p { margin: 5px 0 0; color: #5b5b50; font-size: 9px; line-height: 1.55; }
.final-note { margin: 13px 0 !important; padding: 11px; border-left: 3px solid var(--teal); background: rgba(40,109,112,.09); font-size: 12px !important; }

.screen-enter { animation: screen-in .28s ease-out; }
@keyframes screen-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .screen-enter { animation: none; } }
@media (min-width: 431px) { .page-shell { min-height: 844px; margin-top: 14px; margin-bottom: 14px; } .mobile-prototype, .screen { min-height: 790px; } }
@media (max-height: 720px) { .intro-card h1 { font-size: 27px; } .event-card { padding-top: 14px; } .event-card h1 { font-size: 21px; } .choice { min-height: 45px; } }

/* V4: 七个独立场景，完成前隐藏总图 */
.scene-art { position: absolute; inset: 0; background: var(--scene-image) center 28% / cover no-repeat, linear-gradient(145deg, #557a72, #d5c8a8); filter: saturate(.9) sepia(.04); }
.scene-art-readable { background-position: center 18%; }
.scene-vignette { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(232,223,201,.02) 38%, rgba(232,223,201,.34) 57%, rgba(232,223,201,.94) 80%, var(--paper) 100%); }

.intro-hidden-map { overflow: hidden; }
.intro-backdrop { position: absolute; inset: 0; background: radial-gradient(circle at 25% 18%, rgba(195,148,62,.24), transparent 28%), linear-gradient(145deg, #f3ead2, #d9ceb2); }
.intro-backdrop::before { content: ""; position: absolute; inset: 8% 9% 28%; border: 1px solid rgba(40,109,112,.2); background: repeating-linear-gradient(0deg, transparent 0 29px, rgba(50,75,65,.08) 30px 31px), repeating-linear-gradient(90deg, transparent 0 42px, rgba(50,75,65,.05) 43px 44px); transform: rotate(-2deg); box-shadow: 8px 10px 0 rgba(66,58,38,.08); }
.river-thread { position: absolute; width: 130%; height: 28px; left: -15%; top: 30%; border-top: 3px solid rgba(40,109,112,.42); border-bottom: 1px solid rgba(40,109,112,.22); transform: rotate(-12deg); filter: blur(.2px); }
.intro-hidden-map .intro-card { margin-top: auto; }
.intro-combined { display: block; overflow-y: auto; padding: 148px 15px 22px; scrollbar-width: thin; }
.intro-combined .intro-backdrop { position: absolute; height: 300px; }
.intro-combined .intro-backdrop::before { inset: 9% 9% 12%; }
.intro-combined .river-thread { top: 39%; }
.intro-combined .intro-card { margin: 0; padding: 20px 18px 18px; border-radius: 18px; box-shadow: 5px 7px 0 rgba(53,70,61,.12); }
.intro-combined .assessment-badge { border-radius: 999px; }
.intro-combined .intro-card h1 { margin-top: 8px; font-size: 31px; }
.intro-combined .intro-lead { color: #4f554b; font-size: 13px; line-height: 1.72; }
.intro-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 15px 0 12px; }
.intro-stat-grid span { padding: 9px 5px 8px; border: 1px solid rgba(40,109,112,.18); border-radius: 12px; background: rgba(255,250,236,.68); text-align: center; }
.intro-stat-grid b { display: block; color: var(--vermilion); font-size: 20px; line-height: 1; }
.intro-stat-grid small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; }
.briefing-domains.intro-domains { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.briefing-domains.intro-domains span, .briefing-domains.intro-domains span:last-child { min-height: 0; padding: 6px 8px; border-radius: 999px; background: rgba(40,109,112,.08); font-size: 9px; font-weight: 650; }
.briefing-domains.intro-domains b { width: 18px; height: 18px; margin-right: 4px; background: var(--teal); font-size: 8px; }
.intro-map-note { padding: 10px 11px; border-left: 3px solid var(--mustard); background: rgba(195,148,62,.09); }
.intro-map-note strong { color: #694823; font-size: 10px; }
.intro-map-note p { margin: 4px 0 0; color: #5b5b50; font-size: 10px; line-height: 1.58; }
.intro-combined .privacy-details { margin-top: 9px; }
.intro-combined .reference-consent, .intro-combined .replay-notice { margin: 9px 0; border-radius: 12px; }
.intro-combined .intro-seals { margin: 12px 0 10px; }
.intro-combined .text-button { width: 100%; margin-top: 7px; }

.seal-row { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 13px 0; }
.seal { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(33,61,60,.25); border-radius: 50%; color: rgba(33,61,60,.42); background: rgba(248,240,218,.5); font: 11px/1 "DM Mono", monospace; }
.seal.active { color: var(--vermilion); border-color: var(--vermilion); box-shadow: 0 0 0 3px rgba(185,84,53,.1); }
.seal.sealed { color: #fff5dc; border-color: #873e2c; background: var(--vermilion); transform: rotate(-5deg); box-shadow: 1px 2px 0 rgba(80,45,32,.18); }
.seal-mini-art { width: 27px; height: 27px; display: block; border-radius: 5px; background: url("./assets/seals/seal-atlas-v1.webp") var(--seal-x) var(--seal-y) / 700% 400% no-repeat; }
.seal.sealed.illustrated { border: 0; border-radius: 5px; background: transparent; transform: rotate(-3deg); box-shadow: 0 1px 3px rgba(90,45,28,.18); }
.intro-seals { margin: 16px 0 4px; }

.arrival { display: flex; align-items: end; padding: 15px; }
.arrival-card { width: 100%; padding: 18px 16px 16px; }
.arrival-card h1 { margin: 5px 0 5px; font-size: 27px; }
.arrival-card > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.scene-agenda { margin: 13px 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.scene-agenda li { display: grid; grid-template-columns: 34px 1fr; column-gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.scene-agenda li > span { grid-row: 1 / span 2; align-self: center; color: var(--vermilion); font: 10px/1 "DM Mono", monospace; }
.scene-agenda strong { font-size: 12px; }
.scene-agenda small { margin-top: 2px; color: var(--muted); font-size: 10px; }

.event-screen .scene-art { opacity: .72; }
.event-screen .scene-vignette { background: linear-gradient(to bottom, rgba(232,223,201,.04) 25%, rgba(232,223,201,.6) 53%, var(--paper) 73%); }
.event-head, .event-progress, .event-card { position: relative; }
.event-head { padding: 8px 10px; background: rgba(248,240,218,.82); border: 1px solid rgba(44,77,72,.16); backdrop-filter: blur(5px); }
.event-card { max-height: 69svh; overflow-y: auto; scrollbar-width: thin; }

.reveal .scene-art { bottom: 34%; }
.reveal .scene-vignette { bottom: 29%; }
.reveal-card { position: relative; }

.day-end .scene-art { bottom: 39%; }
.day-end .scene-vignette { bottom: 34%; }
.day-end .summary-card { max-height: 63svh; overflow-y: auto; }
.seal-stamp { float: right; width: 50px; height: 50px; display: grid; place-items: center; margin: -3px 0 5px 12px; border: 3px double var(--vermilion); border-radius: 50%; color: var(--vermilion); font-size: 22px; font-weight: 700; transform: rotate(8deg); }

.final-reveal .final-map { animation: map-reveal 1.7s ease-out both; }
.personalized-city-map { position: absolute; inset: 0; overflow: hidden; background: #173f3d; isolation: isolate; }
.city-map-base { position: absolute; inset: 0; background: url("./assets/previews/city-map-seven-zones.webp") center / cover no-repeat; filter: saturate(.72) brightness(.68); opacity: .45; transform: scale(1.03); }
.city-river-thread { position: absolute; z-index: 3; left: -8%; right: -9%; top: 44%; height: 18%; border-top: 9px solid rgba(98,168,166,.78); border-bottom: 4px solid rgba(226,239,218,.36); border-radius: 48% 52% 45% 55%; transform: rotate(-6deg); filter: drop-shadow(0 2px 2px rgba(13,49,48,.45)); pointer-events: none; }
.city-zone { position: absolute; z-index: 2; background: var(--scene-image) center / cover no-repeat, linear-gradient(145deg, #557a72, #c8b889); filter: saturate(.9) contrast(.98); transition: filter .25s ease, transform .25s ease; }
.city-zone::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(249,240,218,.62); background: linear-gradient(180deg, transparent 60%, rgba(17,49,47,.54)); }
.city-zone span { position: absolute; z-index: 2; left: 10px; bottom: 9px; display: flex; gap: 5px; align-items: center; color: #fff8e7; text-shadow: 0 1px 5px rgba(10,31,30,.9); font-size: 9px; font-weight: 700; }
.city-zone span b { color: #f1c46f; font: 8px/1 var(--font-mono); }
.city-zone-1 { inset: 8% 54% 56% 2%; clip-path: polygon(0 8%, 88% 0, 100% 78%, 68% 100%, 4% 83%); }
.city-zone-2 { inset: 4% 26% 57% 31%; clip-path: polygon(12% 9%, 96% 0, 100% 78%, 55% 100%, 0 77%); }
.city-zone-3 { inset: 9% 1% 55% 66%; clip-path: polygon(0 0, 100% 13%, 96% 100%, 5% 78%); }
.city-zone-4 { inset: 36% 55% 26% 1%; clip-path: polygon(5% 0, 65% 10%, 100% 82%, 8% 100%, 0 47%); }
.city-zone-5 { inset: 36% 26% 21% 30%; clip-path: polygon(0 6%, 55% 0, 100% 39%, 62% 100%, 15% 82%); }
.city-zone-6 { inset: 34% 0 25% 66%; clip-path: polygon(3% 0, 96% 18%, 100% 100%, 0 61%); }
.city-zone-7 { inset: 66% 3% 2% 6%; clip-path: polygon(0 16%, 35% 0, 58% 12%, 100% 0, 94% 94%, 8% 100%); }
.city-map-signature { position: absolute; z-index: 5; left: 18px; bottom: 17px; padding: 9px 12px; color: #fff8e7; background: rgba(18,59,57,.78); border-left: 3px solid #d87956; backdrop-filter: blur(4px); }
.city-map-signature small, .city-map-signature strong { display: block; }
.city-map-signature small { color: #f1c46f; font: 7px/1.2 var(--font-mono); letter-spacing: .1em; }
.city-map-signature strong { margin-top: 3px; font-family: var(--font-display); font-size: 14px; }
.map-veil { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, transparent 35%, rgba(232,223,201,.8) 63%, var(--paper) 82%); }
.final-reveal .summary-card { position: relative; max-height: 61svh; overflow-y: auto; animation: panel-rise .6s .9s ease-out both; }
.final-seals { justify-content: flex-start; }
.reveal-summary { position: relative; width: 100%; padding: 22px 18px 18px; animation: panel-rise .6s .9s ease-out both; }
.reveal-summary h1 { margin: 6px 0 7px; font-size: 28px; }
.reveal-summary > p:not(.eyebrow) { margin: 0; color: #4d554a; font-size: 13px; line-height: 1.72; }
.reveal-count { display: grid; grid-template-columns: auto 1fr auto 1fr; align-items: baseline; gap: 5px; margin: 11px 0 15px; padding: 9px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.reveal-count strong { color: var(--vermilion); font: 21px/1 "DM Mono", monospace; }
.reveal-count span { color: var(--muted); font-size: 11px; }
.final-actions { display: grid; grid-template-columns: .9fr 1.25fr; gap: 8px; }

.report-screen { overflow-y: auto; background: #d8ceb5; }
.city-poster { position: relative; height: 690px; margin: 0; overflow: hidden; color: #fff8e7; background: #183e3d; box-shadow: inset 0 -18px 42px rgba(20,37,34,.28); }
.poster-map { position: absolute; inset: 0; }
.poster-map .city-map-signature { display: none; }
.poster-map .city-zone span { bottom: 7px; font-size: 8px; }
.poster-wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19,57,56,.58) 0%, rgba(19,57,56,.16) 26%, rgba(22,48,44,.22) 70%, rgba(18,44,42,.78) 100%), radial-gradient(circle at 78% 14%, rgba(202,151,63,.34), transparent 32%); }
.poster-title { position: relative; z-index: 2; padding: 25px 23px 0; text-shadow: 0 2px 12px rgba(15,35,33,.62); }
.poster-title p { margin: 0; color: #f1c46f; font: 9px/1.3 "DM Mono", monospace; letter-spacing: .18em; }
.poster-title h1 { margin: 7px 0 5px; font-size: 32px; line-height: 1.2; letter-spacing: .03em; }
.poster-title span { display: block; max-width: 330px; color: rgba(255,248,231,.86); font-size: 12px; line-height: 1.65; }
.poster-profile-code { position: absolute; z-index: 3; left: 23px; bottom: 24px; color: rgba(255,248,231,.82); font: 9px/1.3 var(--font-mono); letter-spacing: .08em; }
.memory-ribbon { position: absolute; z-index: 2; left: 19px; right: 19px; top: 164px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.scene-memory-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.scene-memory-grid .memory-tile { width: 100%; height: 112px; }
.scene-memory-grid .memory-tile:last-child { grid-column: 1 / -1; height: 150px; }
.memory-tile { position: relative; height: 112px; margin: 0; padding: 0; overflow: hidden; border: 4px solid rgba(249,239,211,.95); color: inherit; background: #efe4c8; box-shadow: 4px 7px 14px rgba(10,29,28,.3); cursor: zoom-in; }
.memory-tile:nth-child(odd) { transform: rotate(-1.2deg); }
.memory-tile:nth-child(even) { transform: rotate(1.1deg); }
.memory-tile:last-child { grid-column: 1 / -1; height: 126px; transform: rotate(-.3deg); }
.memory-image { position: absolute; inset: 0; background: var(--scene-image) center / cover no-repeat, linear-gradient(145deg, #557a72, #c8b889); filter: saturate(.9) contrast(.97); transition: transform .35s ease; }
.memory-tile:hover .memory-image { transform: scale(1.035); }
.memory-caption { position: absolute; inset: auto 0 0; display: flex; align-items: center; gap: 7px; padding: 14px 8px 6px; color: #fff8e7; background: linear-gradient(transparent, rgba(20,46,43,.84)); font-size: 11px; font-weight: 700; }
.memory-caption b { color: #f1c46f; font: 9px/1 "DM Mono", monospace; }
.memory-caption em { margin-left: auto; color: #f1c46f; font-style: normal; }
.poster-seal { position: absolute; z-index: 3; right: 23px; bottom: 19px; width: 55px; height: 55px; display: grid; place-items: center; border: 3px double #e68768; border-radius: 50%; color: #ffd9c5; background: rgba(126,45,31,.55); font-size: 12px; line-height: 1.25; font-weight: 700; text-align: center; transform: rotate(-9deg); }

.report-paper { position: relative; margin: -1px 0 0; padding: 27px 17px 30px; background: var(--paper-light); box-shadow: 0 -12px 30px rgba(19,44,42,.18); }
.profile-hero { margin: -8px 0 26px; padding: 19px 16px 16px; border: 1px solid rgba(40,109,112,.25); color: #f8f0da; background: linear-gradient(145deg, #174e52, #236465); box-shadow: 4px 5px 0 rgba(53,70,61,.12); }
.profile-hero .eyebrow { color: #f1c46f; }
.profile-hero h2 { margin: 7px 0 6px; color: #fff8e7; font-size: 24px; line-height: 1.3; }
.profile-hero > p:not(.eyebrow) { margin: 0; color: rgba(255,248,231,.78); font-size: 11px; line-height: 1.72; }
.profile-columns { height: 124px; margin: 16px 0 10px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; align-items: end; }
.profile-columns > div { height: 100%; display: grid; grid-template-rows: 14px 1fr 15px 13px; gap: 3px; justify-items: center; }
.profile-columns b { color: #f1c46f; font: 10px/1 var(--font-mono); }
.profile-columns i { width: 18px; height: 100%; display: flex; align-items: end; overflow: hidden; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.07); }
.profile-columns i em { width: 100%; min-height: 3px; display: block; background: linear-gradient(#f1c46f, #d87956); }
.profile-columns strong { color: #fff8e7; font: 10px/1 var(--font-mono); }
.profile-columns span { color: rgba(255,248,231,.65); font-size: 8px; }
.profile-hero > small { display: block; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,248,231,.52); font-size: 8px; line-height: 1.5; }
.profile-normal-grid { display: grid; gap: 8px; margin: 16px 0 11px; }
.profile-normal-grid > article { padding: 9px 10px 7px; border: 1px solid rgba(255,255,255,.13); background: rgba(5,38,38,.22); }
.profile-normal-grid header, .professional-normal-overview header { display: flex; align-items: center; gap: 7px; }
.profile-normal-grid header b, .professional-normal-overview header b { color: var(--mustard); font: 10px/1 var(--font-mono); }
.profile-normal-grid header span, .professional-normal-overview header span { font-size: 10px; font-weight: 700; }
.normal-distribution { position: relative; margin: 9px 0 5px; }
.normal-curve { position: relative; height: 72px; border-bottom: 1px solid rgba(40,109,112,.3); }
.normal-bars { position: absolute; inset: 0 2px 0; display: grid; grid-template-columns: repeat(41, 1fr); align-items: end; gap: 1px; }
.normal-bars i { min-height: 2px; display: block; background: linear-gradient(rgba(40,109,112,.52), rgba(195,148,62,.2)); }
.normal-marker { position: absolute; z-index: 2; left: var(--normal-marker); top: 0; bottom: -5px; width: 2px; transform: translateX(-1px); background: var(--vermilion); box-shadow: 0 0 0 2px rgba(255,250,236,.7); }
.normal-marker::after { content: ""; position: absolute; left: 50%; bottom: -4px; width: 8px; height: 8px; border-radius: 50%; transform: translateX(-50%); background: var(--vermilion); }
.normal-axis { display: flex; justify-content: space-between; margin-top: 7px; color: var(--muted); font-size: 7px; }
.normal-distribution p { display: flex; align-items: baseline; gap: 8px; margin: 7px 0 0; }
.normal-distribution p strong { color: var(--vermilion); font: 17px/1 var(--font-mono); }
.normal-distribution p span { color: var(--teal-dark); font: 10px/1 var(--font-mono); }
.normal-distribution p small { margin-left: auto; color: var(--muted); font-size: 8px; }
.normal-distribution.compact { margin: 6px 0 1px; }
.normal-distribution.compact .normal-curve { height: 40px; }
.normal-distribution.compact .normal-axis { display: none; }
.normal-distribution.compact p { margin-top: 5px; }
.normal-distribution.compact p strong { font-size: 13px; }
.profile-hero .normal-curve { border-color: rgba(255,255,255,.18); }
.profile-hero .normal-bars i { background: linear-gradient(rgba(241,196,111,.8), rgba(255,255,255,.12)); }
.profile-hero .normal-marker { box-shadow: 0 0 0 2px rgba(23,78,82,.8); }
.profile-hero .normal-distribution p span { color: #fff8e7; }
.profile-hero .normal-distribution p small { color: rgba(255,248,231,.52); }
.synthesis-grid { display: grid; gap: 8px; }
.synthesis-card { padding: 13px 13px 11px; border: 1px solid rgba(44,77,72,.18); background: #fff9e9; }
.synthesis-card small { display: block; margin-bottom: 7px; color: var(--teal); font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.synthesis-card p { position: relative; margin: 6px 0; padding-left: 15px; color: #525c55; font-size: 11px; line-height: 1.65; }
.synthesis-card p::before { content: ""; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: var(--teal); }
.synthesis-card.tension { border-left: 3px solid var(--vermilion); }
.synthesis-card.tension small { color: var(--vermilion); }
.synthesis-card.tension p::before { background: var(--vermilion); }
.synthesis-card.practice { border-left: 3px solid var(--mustard); }
.synthesis-card.practice small { color: #75551c; }
.synthesis-card.practice p::before { background: var(--mustard); }
.balanced-reading { margin: 10px 0 0; padding: 11px; color: #4e5b56; background: rgba(40,109,112,.07); font-size: 11px; line-height: 1.65; }
.report-header { padding: 0 3px 21px; border-bottom: 1px solid var(--line); }
.report-header h2 { margin: 7px 0 8px; font-size: 26px; line-height: 1.38; }
.report-header > p:not(.eyebrow) { margin: 0; color: #566057; font-size: 13px; line-height: 1.72; }
.report-section { padding: 24px 0 0; }
.section-heading { display: grid; grid-template-columns: 34px 1fr; gap: 8px; align-items: start; margin-bottom: 13px; }
.section-heading > span { color: var(--vermilion); font: 11px/1.3 "DM Mono", monospace; }
.section-heading h3 { margin: 0; font-size: 18px; }
.section-heading p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.domain-list { display: grid; gap: 8px; }
.domain-card { display: grid; grid-template-columns: 38px 1fr; gap: 10px; padding: 13px 12px 12px; border: 1px solid rgba(44,77,72,.18); background: rgba(255,250,236,.75); box-shadow: 2px 3px 0 rgba(53,70,61,.07); }
.domain-monogram { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; color: #fff9e9; background: var(--teal); font: 16px/1 "DM Mono", monospace; }
.domain-C .domain-monogram, .domain-N .domain-monogram { background: var(--vermilion); }
.domain-E .domain-monogram { color: #4c3615; background: var(--mustard); }
.domain-copy h4 { display: inline; margin: 0 7px 0 0; font-size: 15px; }
.domain-copy strong { color: var(--muted); font-size: 10px; font-weight: 500; }
.domain-copy p { margin: 5px 0 0; color: #596058; font-size: 11px; line-height: 1.55; }
.evidence-meter { grid-column: 2; display: grid; grid-template-columns: repeat(8, 1fr); gap: 3px; align-items: center; }
.evidence-meter i { height: 4px; background: var(--teal); opacity: .68; }
.evidence-meter small { grid-column: 1 / -1; margin-top: 2px; color: var(--muted); font: 9px/1.3 "DM Mono", monospace; }
.provisional-score { grid-column: 2; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 3px 8px; }
.provisional-score > b { color: var(--vermilion); font: 22px/1 "DM Mono", monospace; }
.provisional-score > span { color: #4d5b55; font-size: 10px; font-weight: 700; }
.provisional-score > i { grid-column: 1 / -1; height: 6px; overflow: hidden; border-radius: 5px; background: rgba(40,109,112,.12); }
.provisional-score > i em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--mustard), var(--teal)); }
.provisional-score > small { grid-column: 1 / -1; color: var(--muted); font: 9px/1.35 "DM Mono", monospace; }
.domain-card > .normal-distribution, .domain-card > .normal-evidence { grid-column: 2; }
.normal-evidence { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 9px; }
.normal-evidence strong { color: var(--teal-dark); }
.behavior-links { display: grid; gap: 9px; }
.behavior-link { padding: 14px; border: 1px solid rgba(44,77,72,.2); background: rgba(255,250,236,.76); box-shadow: 2px 3px 0 rgba(53,70,61,.06); }
.behavior-domain { display: flex; align-items: center; gap: 8px; }
.behavior-domain > b { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff9eb; background: var(--teal); font: 12px/1 "DM Mono", monospace; }
.behavior-domain span { color: var(--vermilion); font-size: 11px; font-weight: 700; }
.behavior-context { margin: 10px 0 4px; color: var(--muted); font-size: 10px; }
.behavior-link blockquote { margin: 0; padding: 0; color: var(--ink); font-size: 13px; line-height: 1.55; font-weight: 700; }
.behavior-meaning { margin: 9px 0 0; padding-top: 9px; border-top: 1px solid var(--line); color: #586057; font-size: 11px; line-height: 1.65; }
.behavior-meaning strong { display: block; margin-bottom: 2px; color: var(--teal-dark); font-size: 10px; }
.behavior-link.compact .behavior-meaning { display: block; }
.method-note > p { margin: 0; padding: 13px; border-left: 3px solid var(--teal); color: #4d554a; background: rgba(40,109,112,.08); font-size: 12px; line-height: 1.7; }
.report-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 25px; }
.report-actions #openProfessional { grid-column: 1 / -1; }
.report-actions .withdraw-button { grid-column: 1 / -1; min-height: 34px; color: var(--vermilion); }
.report-action-status { min-height: 16px; margin: 8px 0 0; color: var(--vermilion); font-size: 9px; text-align: center; }
.reference-consent { display: flex; align-items: flex-start; gap: 9px; margin: 12px 0 0; padding: 10px; border: 1px solid rgba(40,109,112,.2); background: rgba(255,250,236,.58); color: #44544f; cursor: pointer; text-align: left; }
.reference-consent input { flex: 0 0 auto; width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--teal); }
.reference-consent span, .reference-consent strong, .reference-consent small { display: block; }
.reference-consent strong { font-size: 11px; }
.reference-consent small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.provisional-score .simulated-rank { color: var(--vermilion); font-weight: 700; }
.assessment-briefing { min-height: calc(100svh - 54px); padding: 18px 15px 24px; display: grid; align-items: center; background: radial-gradient(circle at 82% 5%, rgba(195,148,62,.2), transparent 30%), linear-gradient(155deg, #d9cfb8, #e8dfc9); }
.briefing-card { padding: 22px 18px 18px; }
.assessment-badge { display: inline-block; margin-top: 10px; padding: 5px 8px; color: #fff8e7; background: var(--teal); font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.briefing-card h1 { margin: 9px 0 8px; font-size: 29px; line-height: 1.25; }
.briefing-lead { margin: 0; color: #4d574f; font-size: 12px; line-height: 1.75; }
.briefing-domains { margin: 16px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.briefing-domains span { min-height: 54px; padding: 8px; border: 1px solid rgba(40,109,112,.18); background: rgba(255,250,236,.7); font-size: 11px; font-weight: 700; }
.briefing-domains span:last-child { grid-column: 1 / -1; }
.briefing-domains b { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 6px; border-radius: 50%; color: #fff8e7; background: var(--vermilion); font: 9px/1 var(--font-mono); }
.briefing-domains small { display: block; margin: 4px 0 0 28px; color: var(--muted); font-size: 8px; font-weight: 400; }
.briefing-truth { padding: 11px; border-left: 3px solid var(--mustard); background: rgba(195,148,62,.09); }
.briefing-truth strong { color: #694823; font-size: 10px; }
.briefing-truth p { margin: 4px 0 0; color: #5b5b50; font-size: 10px; line-height: 1.65; }
.privacy-details { margin: 11px 0 0; padding: 10px 11px; border: 1px solid rgba(40,109,112,.18); background: rgba(255,250,236,.58); }
.privacy-details summary { color: var(--teal-dark); cursor: pointer; font-size: 10px; font-weight: 700; }
.privacy-details p { margin: 8px 0 0; color: #5b5b50; font-size: 9px; line-height: 1.65; }
.briefing-card .reference-consent { margin: 13px 0; }
.briefing-card .text-button { width: 100%; margin-top: 7px; }
.replay-notice { margin: 13px 0; padding: 11px; border-left: 3px solid var(--vermilion); background: rgba(185,84,53,.08); }
.replay-notice strong { color: var(--vermilion); font-size: 10px; }
.replay-notice p { margin: 4px 0 0; color: #5b5b50; font-size: 10px; line-height: 1.6; }

.scene-view-button { position: absolute; z-index: 4; top: 12px; right: 13px; min-height: 34px; padding: 7px 10px; border: 1px solid rgba(255,249,232,.72); border-radius: 18px; color: #fff9e9; background: rgba(24,68,66,.76); box-shadow: 0 3px 12px rgba(12,33,32,.18); backdrop-filter: blur(6px); cursor: pointer; font-size: 10px; font-weight: 700; }
.event-screen .scene-view-button { top: 66px; }
.final-view-button { top: 12px; }

.image-viewer { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; color: #fff8e8; background: #102d2c; }
.image-viewer::backdrop { background: rgba(9,24,23,.94); }
.viewer-bar { height: 74px; padding: 12px 15px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #173e3d; border-bottom: 1px solid rgba(255,255,255,.12); }
.viewer-bar h2 { margin: 3px 0 0; font-size: 16px; }
.viewer-achievement { color: #f1c46f; font: 9px/1 "DM Mono", monospace; letter-spacing: .1em; }
.viewer-close { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; color: #fff8e8; background: transparent; cursor: pointer; font-size: 25px; }
.viewer-stage { height: calc(100dvh - 154px); display: grid; place-items: center; overflow: hidden; background: #0b2322; }
.viewer-stage:fullscreen { height: 100dvh; background: #071b1a; }
.viewer-stage img { width: 100%; height: 100%; object-fit: contain; }
.viewer-actions { height: 80px; padding: 10px 12px; display: grid; grid-template-columns: .85fr 1fr 1fr; gap: 7px; background: #173e3d; }
.viewer-actions .primary, .viewer-actions .secondary { min-height: 44px; display: grid; place-items: center; text-decoration: none; font-size: 11px; }
.viewer-actions .secondary { color: #fff8e8; border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.06); }
.viewer-status { position: fixed; left: 0; right: 0; bottom: 82px; margin: 0; text-align: center; color: #f1c46f; font-size: 10px; }

.professional-report { overflow-y: auto; background: #e9dfc8; }
.professional-cover { position: relative; padding: 31px 20px 24px; color: #fff8e7; background: linear-gradient(145deg, rgba(21,73,71,.96), rgba(21,56,55,.98)), url("./assets/previews/city-map-seven-zones.webp") center / cover; overflow: hidden; }
.professional-cover::after { content: ""; position: absolute; width: 210px; height: 210px; right: -75px; top: -80px; border: 1px solid rgba(241,196,111,.32); border-radius: 50%; box-shadow: 0 0 0 24px rgba(241,196,111,.04), 0 0 0 50px rgba(241,196,111,.03); }
.professional-cover .eyebrow { color: #f1c46f; }
.report-version { position: absolute; right: 17px; top: 29px; color: rgba(255,248,231,.65); font: 8px/1 "DM Mono", monospace; }
.professional-cover h1 { position: relative; margin: 26px 0 10px; font-size: 32px; line-height: 1.26; letter-spacing: .025em; }
.professional-cover h1 small { display: block; margin-top: 7px; color: #f1c46f; font-size: 13px; font-weight: 500; }
.professional-cover > p:not(.eyebrow) { position: relative; max-width: 355px; margin: 0; color: rgba(255,248,231,.82); font-size: 12px; line-height: 1.75; }
.quality-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 21px; border: 1px solid rgba(255,255,255,.17); background: rgba(255,255,255,.17); }
.quality-grid div { padding: 11px; background: rgba(13,47,46,.78); }
.quality-grid strong { display: block; color: #fff5da; font: 15px/1.2 "DM Mono", monospace; }
.quality-grid span { display: block; margin-top: 4px; color: rgba(255,248,231,.6); font-size: 9px; }
.score-explainer { padding: 24px 17px; background: #f7efd9; border-bottom: 1px solid var(--line); }
.score-explainer h2 { margin: 0 0 6px; font-size: 20px; }
.score-explainer > p { margin: 0; color: #586057; font-size: 12px; line-height: 1.7; }
.professional-synthesis { display: grid; gap: 8px; margin-top: 17px; }
.professional-synthesis article { padding: 12px; border: 1px solid rgba(44,77,72,.18); background: rgba(255,250,236,.78); }
.professional-synthesis small { color: var(--vermilion); font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.professional-synthesis h3 { margin: 5px 0 7px; font-size: 18px; }
.professional-synthesis p { margin: 5px 0 0; color: #586057; font-size: 10px; line-height: 1.65; }
.locked-profile { margin-top: 16px; display: grid; gap: 8px; }
.locked-profile > div { display: grid; grid-template-columns: 22px 78px 1fr 70px; align-items: center; gap: 6px; }
.locked-profile b { color: var(--vermilion); font: 11px/1 "DM Mono", monospace; }
.locked-profile span { font-size: 11px; }
.locked-profile i { height: 7px; border: 1px solid rgba(40,109,112,.25); background: repeating-linear-gradient(135deg, rgba(40,109,112,.12) 0 4px, transparent 4px 8px); }
.locked-profile em { color: var(--muted); font-size: 9px; font-style: normal; }
.provisional-profile i { overflow: hidden; background: rgba(40,109,112,.1); }
.provisional-profile i u { display: block; height: 100%; background: linear-gradient(90deg, var(--mustard), var(--teal)); text-decoration: none; }
.provisional-profile em { color: var(--vermilion); font: 10px/1 "DM Mono", monospace; }
.professional-normal-overview { display: grid; gap: 9px; margin-top: 16px; }
.professional-normal-overview > article { padding: 10px 11px 8px; border: 1px solid rgba(40,109,112,.18); background: rgba(255,250,236,.76); }
.professional-domain > .normal-distribution { margin: 13px 0 14px; padding: 10px 11px 8px; border: 1px solid rgba(40,109,112,.16); background: rgba(40,109,112,.045); }
.domain-report-list { display: grid; gap: 14px; padding: 15px 12px; }
.professional-domain { padding: 17px 14px 15px; border: 1px solid rgba(44,77,72,.2); background: #fbf4e1; box-shadow: 3px 4px 0 rgba(53,70,61,.08); }
.professional-domain > header { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 9px; padding-bottom: 11px; border-bottom: 1px solid var(--line); }
.professional-domain > header > span { color: var(--vermilion); font: 10px/1 "DM Mono", monospace; }
.professional-domain > header p { margin: 0; color: var(--muted); font: 8px/1.2 "DM Mono", monospace; text-transform: uppercase; }
.professional-domain > header h2 { margin: 3px 0 0; font-size: 21px; }
.professional-domain > header > b { padding: 6px 8px; border-radius: 15px; color: #fff8e7; background: var(--teal); font: 10px/1 "DM Mono", monospace; }
.domain-question { margin: 12px 0; color: #354b47; font-size: 13px; line-height: 1.6; font-weight: 700; }
.domain-score-reading { margin: -4px 0 12px; color: var(--vermilion); font-size: 10px; line-height: 1.55; }
.facet-coverage { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.facet-coverage span { padding: 6px 8px; border: 1px solid rgba(40,109,112,.18); background: rgba(40,109,112,.07); }
.facet-coverage b, .facet-coverage i, .facet-coverage u { display: block; }
.facet-coverage b { font-size: 10px; }
.facet-coverage i { margin-top: 2px; color: var(--muted); font-size: 8px; font-style: normal; }
.facet-coverage u { max-width: 190px; margin-top: 4px; color: #56625d; font-size: 8px; line-height: 1.45; text-decoration: none; }
.domain-interpretation { display: grid; gap: 6px; margin: 0 0 12px; }
.domain-interpretation p { margin: 0; padding: 8px 9px; color: #56605a; background: rgba(195,148,62,.08); font-size: 9px; line-height: 1.55; }
.domain-interpretation b { display: block; color: var(--teal-dark); font-size: 9px; }
.domain-evidence-samples { display: grid; gap: 7px; }
.professional-domain aside { margin-top: 11px; padding: 10px; border-left: 3px solid var(--mustard); color: #5d584d; background: rgba(195,148,62,.09); font-size: 10px; line-height: 1.6; }
.professional-domain aside strong { display: block; color: #694823; }
.research-footer { margin: 0 12px; padding: 18px 15px; color: #eff5e9; background: var(--teal-dark); }
.research-footer h2 { margin: 0 0 8px; font-size: 18px; }
.research-footer ul { margin: 0; padding-left: 18px; }
.research-footer li { margin: 6px 0; color: rgba(239,245,233,.8); font-size: 10px; line-height: 1.55; }
.professional-actions { position: sticky; bottom: 0; z-index: 4; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 12px; background: rgba(232,223,201,.94); backdrop-filter: blur(8px); border-top: 1px solid var(--line); }
.professional-actions #restartFinal { grid-column: 1 / -1; }
.professional-export-status { margin: 0; padding: 6px 12px 12px; color: var(--vermilion); background: var(--paper); font-size: 9px; text-align: center; }
.seal-album-screen { overflow-y: auto; padding-bottom: 76px; background: #e9dfc8; }
.seal-album-cover { padding: 28px 19px 21px; color: #fff8e7; background: linear-gradient(145deg, rgba(23,78,82,.96), rgba(21,56,55,.98)), url("./assets/previews/city-map-seven-zones.webp") center / cover; }
.seal-album-cover .eyebrow { color: #f1c46f; }
.seal-album-cover h1 { margin: 8px 0 7px; font-size: 31px; }
.seal-album-cover > p:not(.eyebrow) { margin: 0; color: rgba(255,248,231,.78); font-size: 11px; line-height: 1.7; }
.album-count { display: flex; align-items: baseline; gap: 6px; margin-top: 16px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.17); }
.album-count strong { color: #f1c46f; font: 26px/1 var(--font-mono); }
.album-count span { color: rgba(255,248,231,.68); font-size: 10px; }
.seal-catalog { display: grid; gap: 11px; padding: 13px 11px; }
.seal-day-page { padding: 13px 11px; border: 1px solid rgba(44,77,72,.18); background: #fbf4e1; box-shadow: 3px 4px 0 rgba(53,70,61,.07); }
.seal-day-page > header { display: flex; align-items: baseline; gap: 8px; margin-bottom: 9px; }
.seal-day-page > header b { color: var(--vermilion); font: 8px/1 var(--font-mono); }
.seal-day-page > header h2 { margin: 0; font-size: 18px; }
.seal-day-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.seal-catalog-item { min-height: 91px; display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 7px; padding: 7px; border: 1px solid rgba(185,84,53,.16); background: rgba(255,250,236,.72); }
.seal-catalog-item > i { width: 56px; height: 56px; display: block; background: url("./assets/seals/seal-atlas-v1.webp") var(--seal-x) var(--seal-y) / 700% 400% no-repeat; }
.seal-catalog-item small, .seal-catalog-item strong, .seal-catalog-item span { display: block; }
.seal-catalog-item small { color: var(--vermilion); font-size: 8px; }
.seal-catalog-item strong { margin-top: 2px; font-family: var(--font-display); font-size: 13px; line-height: 1.3; }
.seal-catalog-item span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.seal-catalog-item p { grid-column: 1 / -1; margin: 0; padding-top: 6px; border-top: 1px solid var(--line); color: #5b5b50; font-size: 8px; line-height: 1.5; }
.seal-catalog-item.locked > i { filter: grayscale(1); opacity: .17; }
.seal-catalog-item.locked strong { color: #7e7768; }
.seal-catalog-item.acquired { border-color: rgba(185,84,53,.45); box-shadow: inset 0 0 0 1px rgba(185,84,53,.08); }
.album-actions { position: sticky; bottom: 0; z-index: 4; display: grid; grid-template-columns: .85fr 1.3fr; gap: 7px; padding: 11px; background: rgba(232,223,201,.95); border-top: 1px solid var(--line); backdrop-filter: blur(8px); }

/* Bright spectrum report theme */
.normal-O, .domain-O, .professional-O, .spectrum-O { --domain-color: #315b9b; --domain-deep: #23477d; --domain-soft: #dfe9f8; }
.normal-C, .domain-C, .professional-C, .spectrum-C { --domain-color: #ef7757; --domain-deep: #c95336; --domain-soft: #fde4dc; }
.normal-E, .domain-E, .professional-E, .spectrum-E { --domain-color: #e7ae3d; --domain-deep: #a76e08; --domain-soft: #fff0c8; }
.normal-A, .domain-A, .professional-A, .spectrum-A { --domain-color: #58a884; --domain-deep: #32795b; --domain-soft: #dcefe5; }
.normal-N, .domain-N, .professional-N, .spectrum-N { --domain-color: #7963a9; --domain-deep: #584287; --domain-soft: #e9e2f7; }

.report-screen, .professional-report { color: #17233f; background: #f7f1e8; }
.report-paper { padding: 31px 17px 34px; border-radius: 30px 30px 0 0; background: #fffaf1; box-shadow: 0 -14px 36px rgba(49,91,155,.14); }
.report-paper::before { content: ""; position: absolute; left: 50%; top: 11px; width: 42px; height: 4px; border-radius: 99px; transform: translateX(-50%); background: rgba(23,35,63,.14); }
.profile-hero { margin-top: 0; padding: 22px 17px 18px; border: 0; border-radius: 25px; background: linear-gradient(145deg, #315b9b 0%, #4f66aa 48%, #7963a9 100%); box-shadow: 0 15px 30px rgba(49,91,155,.22); }
.profile-hero::after { content: ""; position: absolute; width: 130px; height: 130px; right: -38px; top: -45px; border-radius: 50%; border: 24px solid rgba(255,255,255,.06); pointer-events: none; }
.profile-normal-grid > article { border: 0; border-radius: 15px; background: rgba(255,255,255,.94); box-shadow: 0 5px 13px rgba(22,31,64,.15); }
.profile-normal-grid header span { color: #17233f; }
.profile-normal-grid header b { color: var(--domain-color); }
.profile-hero .normal-bars i { background: linear-gradient(var(--domain-color), var(--domain-soft)); opacity: .92; }
.profile-hero .normal-marker { background: var(--domain-deep); box-shadow: 0 0 0 3px rgba(255,255,255,.88); }
.profile-hero .normal-marker::after { background: var(--domain-deep); }
.profile-hero .normal-distribution p strong, .profile-hero .normal-distribution p span { color: var(--domain-deep); }
.profile-hero .normal-distribution p small { color: #686b72; }

.section-heading > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: white; background: #315b9b; font-weight: 800; }
.synthesis-grid { gap: 10px; }
.synthesis-card { border: 0; border-radius: 17px; box-shadow: 0 7px 18px rgba(23,35,63,.08); }
.synthesis-card.strength { background: #e5f2ec; }
.synthesis-card.tension { background: #fde6de; }
.synthesis-card.practice { background: #fff0c8; }
.balanced-reading { border-radius: 15px; background: #e7edf8; }

.domain-card { position: relative; overflow: hidden; padding: 16px 14px 15px; border: 0; border-radius: 21px; background: #fff; box-shadow: 0 9px 24px rgba(23,35,63,.09); }
.domain-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 6px; background: var(--domain-color); }
.domain-monogram { color: white; background: var(--domain-color); box-shadow: 0 5px 12px color-mix(in srgb, var(--domain-color) 36%, transparent); }
.domain-E .domain-monogram { color: #5c3b00; background: var(--domain-color); }
.normal-curve { border-color: color-mix(in srgb, var(--domain-color) 38%, transparent); }
.normal-bars i { background: linear-gradient(var(--domain-color), var(--domain-soft)); opacity: .82; }
.normal-marker { background: var(--domain-deep); box-shadow: 0 0 0 3px white; }
.normal-marker::after { background: var(--domain-deep); }
.normal-distribution p strong, .normal-distribution p span, .normal-evidence strong { color: var(--domain-deep); }
.normal-axis { color: #777783; }
.normal-evidence { padding-top: 7px; border-top: 1px solid color-mix(in srgb, var(--domain-color) 18%, transparent); }
.behavior-link { border: 0; border-radius: 17px; background: white; box-shadow: 0 7px 18px rgba(23,35,63,.08); }
.method-note { margin-top: 22px; padding: 17px; border-radius: 18px; background: #eef2fa; }
.report-actions .primary, .report-actions .secondary, .professional-actions .primary, .professional-actions .secondary { border-radius: 14px; }

.professional-cover { padding: 34px 20px 27px; background: linear-gradient(145deg, #17233f 0%, #315b9b 58%, #7963a9 100%); }
.professional-cover::before { content: ""; position: absolute; width: 105px; height: 105px; left: -38px; bottom: -44px; border-radius: 50%; background: #ef7757; opacity: .86; }
.professional-cover::after { border-color: rgba(231,174,61,.66); box-shadow: 0 0 0 24px rgba(231,174,61,.08), 0 0 0 50px rgba(255,255,255,.03); }
.quality-grid { gap: 7px; border: 0; background: transparent; }
.quality-grid div { border-radius: 13px; background: rgba(255,255,255,.13); }
.score-explainer { padding: 27px 17px; background: #fffaf1; }
.professional-normal-overview > article { border: 0; border-left: 6px solid var(--domain-color); border-radius: 17px; background: white; box-shadow: 0 8px 20px rgba(23,35,63,.08); }
.professional-normal-overview header b { color: var(--domain-color); }
.domain-report-list { gap: 16px; padding: 17px 12px; background: #f7f1e8; }
.professional-domain { position: relative; overflow: hidden; padding: 18px 15px 16px; border: 0; border-top: 7px solid var(--domain-color); border-radius: 22px; background: white; box-shadow: 0 10px 25px rgba(23,35,63,.1); }
.professional-domain > header { border-bottom-color: color-mix(in srgb, var(--domain-color) 20%, transparent); }
.professional-domain > header > b { color: white; background: var(--domain-color); }
.professional-domain > .normal-distribution { border: 0; border-radius: 16px; background: var(--domain-soft); }
.domain-interpretation { grid-template-columns: 1fr; }
.domain-interpretation p { border-radius: 12px; background: #f7f5f1; }
.domain-interpretation b { color: var(--domain-deep); }
.facet-coverage span { border: 0; border-radius: 11px; background: var(--domain-soft); }
.professional-domain aside { border-left-color: var(--domain-color); border-radius: 0 12px 12px 0; background: color-mix(in srgb, var(--domain-soft) 66%, white); }
.research-footer { border-radius: 22px; background: linear-gradient(145deg, #17233f, #315b9b); }
.professional-actions { background: rgba(247,241,232,.94); }

/* City editorial report palette: one visual language shared with the game */
.normal-O, .domain-O, .professional-O, .spectrum-O,
.normal-C, .domain-C, .professional-C, .spectrum-C,
.normal-E, .domain-E, .professional-E, .spectrum-E,
.normal-A, .domain-A, .professional-A, .spectrum-A,
.normal-N, .domain-N, .professional-N, .spectrum-N {
  --domain-color: var(--teal);
  --domain-deep: var(--teal-dark);
  --domain-soft: #e7eadb;
}
.report-screen, .professional-report { color: var(--ink); background: #d8ceb5; }
.report-paper { padding: 29px 17px 34px; border-radius: 18px 18px 0 0; color: var(--ink); background: var(--paper-light); box-shadow: 0 -12px 30px rgba(19,44,42,.18); }
.report-paper::before { background: rgba(33,61,60,.18); }
.profile-hero { padding: 21px 17px 18px; border: 1px solid rgba(241,196,111,.24); border-radius: 16px; color: #fff8e7; background: linear-gradient(145deg, var(--teal-dark), #236465); box-shadow: 4px 6px 0 rgba(53,70,61,.13); }
.profile-hero::after { border-color: rgba(241,196,111,.07); }
.profile-hero .eyebrow { color: #f1c46f; }
.profile-hero h2 { color: #fff8e7; }
.profile-hero > p:not(.eyebrow) { color: rgba(255,248,231,.8); }
.profile-summary-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; margin: 16px 0 12px; }
.profile-summary-row span { min-width: 0; padding: 8px 2px 7px; border: 1px solid rgba(255,255,255,.14); border-radius: 10px; background: rgba(255,255,255,.07); text-align: center; }
.profile-summary-row b, .profile-summary-row strong, .profile-summary-row small { display: block; }
.profile-summary-row b { color: #f1c46f; font: 9px/1 var(--font-mono); }
.profile-summary-row strong { margin-top: 5px; color: #fff8e7; font: 12px/1 var(--font-mono); }
.profile-summary-row small { margin-top: 5px; overflow: hidden; color: rgba(255,248,231,.68); font-size: 7px; white-space: nowrap; text-overflow: ellipsis; }
.section-heading > span { border-radius: 50%; color: #fff8e7; background: var(--vermilion); }
.synthesis-grid { gap: 8px; }
.synthesis-card, .synthesis-card.strength, .synthesis-card.tension, .synthesis-card.practice { border: 1px solid rgba(44,77,72,.18); border-left-width: 3px; border-radius: 12px; background: rgba(255,250,236,.82); box-shadow: 2px 3px 0 rgba(53,70,61,.06); }
.synthesis-card.strength { border-left-color: var(--teal); }
.synthesis-card.tension { border-left-color: var(--vermilion); }
.synthesis-card.practice { border-left-color: var(--mustard); }
.balanced-reading { border-radius: 10px; color: #4e5b56; background: rgba(40,109,112,.07); }
.domain-card { border: 1px solid rgba(44,77,72,.2); border-radius: 14px; color: var(--ink); background: rgba(255,250,236,.84); box-shadow: 3px 4px 0 rgba(53,70,61,.07); }
.domain-card::before { width: 4px; background: var(--teal); }
.domain-monogram, .domain-C .domain-monogram, .domain-E .domain-monogram, .domain-N .domain-monogram { color: #fff9e9; background: var(--teal); box-shadow: none; }
.normal-curve { border-color: rgba(40,109,112,.28); }
.normal-bars i, .profile-hero .normal-bars i { background: linear-gradient(rgba(40,109,112,.68), rgba(195,148,62,.2)); opacity: 1; }
.normal-marker, .profile-hero .normal-marker { background: var(--vermilion); box-shadow: 0 0 0 3px rgba(255,250,236,.82); }
.normal-marker::after, .profile-hero .normal-marker::after { background: var(--vermilion); }
.normal-distribution p strong, .normal-distribution p span, .normal-evidence strong,
.profile-hero .normal-distribution p strong, .profile-hero .normal-distribution p span { color: var(--teal-dark); }
.normal-axis { color: var(--muted); }
.normal-evidence { border-top-color: rgba(40,109,112,.16); }
.behavior-link { border: 1px solid rgba(44,77,72,.2); border-radius: 12px; background: rgba(255,250,236,.82); box-shadow: 2px 3px 0 rgba(53,70,61,.06); }
.method-note { border-radius: 12px; background: rgba(195,148,62,.08); }
.professional-cover { background: linear-gradient(145deg, rgba(21,73,71,.96), rgba(21,56,55,.98)), url("./assets/previews/city-map-seven-zones.webp") center / cover; }
.professional-cover::before { background: var(--vermilion); }
.professional-cover::after { border-color: rgba(241,196,111,.34); box-shadow: 0 0 0 24px rgba(241,196,111,.04), 0 0 0 50px rgba(255,255,255,.03); }
.score-explainer { background: var(--paper-light); }
.professional-normal-overview > article { border: 1px solid rgba(44,77,72,.18); border-left: 4px solid var(--teal); border-radius: 12px; background: rgba(255,250,236,.86); box-shadow: 2px 3px 0 rgba(53,70,61,.06); }
.domain-report-list { gap: 13px; background: var(--paper); }
.professional-domain { border: 1px solid rgba(44,77,72,.2); border-top: 5px solid var(--teal); border-radius: 15px; background: var(--paper-light); box-shadow: 3px 5px 0 rgba(53,70,61,.08); }
.professional-domain > header > b { background: var(--teal); }
.professional-domain > .normal-distribution { border: 1px solid rgba(40,109,112,.12); border-radius: 10px; background: rgba(40,109,112,.055); }
.domain-interpretation p { border-radius: 9px; background: rgba(255,250,236,.72); }
.facet-coverage span { border: 1px solid rgba(40,109,112,.12); border-radius: 8px; background: #e7eadb; }
.professional-domain aside { border-left-color: var(--mustard); border-radius: 0 9px 9px 0; background: rgba(195,148,62,.09); }
.research-footer { border-radius: 15px; background: linear-gradient(145deg, var(--teal-dark), #236465); }
.professional-actions { background: rgba(232,223,201,.95); }

@keyframes map-reveal { from { opacity: .12; filter: blur(14px) sepia(.35); transform: scale(1.06); } to { opacity: 1; filter: none; transform: none; } }
@keyframes panel-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .final-reveal .final-map, .final-reveal .summary-card { animation: none; }
  .memory-image { transition: none; }
}

@media (max-height: 720px) {
  .arrival-card { padding-top: 14px; }
  .scene-agenda { margin: 9px 0; }
  .scene-agenda li { padding: 6px 0; }
  .event-card { max-height: 72svh; }
}

@media print {
  @page { size: A4; margin: 10mm; }
  html, body { background: white; }
  .page-shell { width: 100%; max-width: none; box-shadow: none; }
  .topbar, .report-actions, .report-action-status, .scene-view-button, .professional-actions { display: none !important; }
  .mobile-prototype, .screen, .report-screen, .professional-report { min-height: 0; overflow: visible; }
  .city-poster { height: 690px; break-after: page; }
  .report-paper, .professional-domain, .profile-hero { box-shadow: none; }
  .domain-card, .behavior-link, .professional-domain { break-inside: avoid; }
}
