@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+HK:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');

:root { --ink:#3d2d28; --muted:#896e5d; --paper:#fff9ef; --cream:#f7e9d0; --gold:#d49a36; --purple:#754d78; --teal:#3f8b89; --line:#e5cba6; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#efe0c5; font-family:'Noto Sans HK',system-ui,sans-serif; }
button { font:inherit; color:inherit; cursor:pointer; }
.app-shell { width:min(100%, 560px); min-height:100vh; margin:auto; background:linear-gradient(145deg,#fff9ec 0%,#f8e5c8 100%); box-shadow:0 0 45px #8e6e4b33; position:relative; padding-bottom:84px; overflow:hidden; }
.topbar { height:82px; padding:19px 22px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #edd5b3; background:#fff8ebaa; }
.icon-button { width:43px; height:43px; border:1px solid #d5b78b; border-radius:50%; background:#f5e5c6; box-shadow:0 3px 0 #d7b984; font-size:22px; }
.brand-mark { text-align:center; line-height:1; display:grid; gap:4px; color:#5c3a2c; }
.brand-mark span { color:var(--gold); font-size:15px; }
.brand-mark strong { font-family:'Playfair Display',serif; font-size:25px; letter-spacing:2px; }
.brand-mark small { font-size:9px; letter-spacing:3px; color:#a37a56; }
.page { padding:25px 22px 18px; }
.welcome { text-align:center; padding:8px 0 24px; }
.eyebrow { margin:0 0 2px; color:#9b7755; font-size:15px; letter-spacing:2px; }
h1 { margin:0; font-family:'Playfair Display','Noto Sans HK',serif; font-size:46px; letter-spacing:4px; color:#5a3527; text-shadow:1px 2px 0 #fff; }
.welcome-copy { margin:2px 0 0; font-size:15px; color:#9b7755; }
.entry-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.entry-card { border:1px solid var(--line); border-radius:18px; min-height:156px; padding:15px 10px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; background:#fffaf0; box-shadow:0 5px 0 #e8cc9f,0 10px 18px #b7905c1a; transition:.18s transform,.18s box-shadow; }
.entry-card:hover,.entry-card:focus-visible { transform:translateY(-3px); box-shadow:0 8px 0 #e2c18f,0 14px 20px #b7905c2b; outline:none; }
.entry-icon { width:80px; height:66px; display:grid; place-items:center; font-size:50px; filter:drop-shadow(0 3px 2px #8c633444); }
.entry-card strong { font-size:18px; font-weight:800; }
.entry-card small { color:var(--muted); font-size:13px; }
.map-entry { background:linear-gradient(#fffaf0,#f8ead0); }.people-entry { background:linear-gradient(#fffaf0,#f4e6d3); }.time-entry { background:linear-gradient(#fffaf0,#f7e9ce); }.story-entry { background:linear-gradient(#fffaf0,#f4e5c9); }
.memory-search { width:100%; margin:18px 0 15px; border:0; border-radius:16px; padding:13px 17px; display:flex; align-items:center; gap:12px; text-align:left; color:#fff; background:linear-gradient(105deg,#765079,#9b658e); box-shadow:0 5px 0 #5b3b60; }
.memory-search .mic { width:36px; height:36px; display:grid; place-items:center; border:2px solid #fff8; border-radius:50%; font-size:22px; }.memory-search strong,.memory-search small { display:block; }.memory-search small { margin-top:2px; color:#f1dceb; font-size:12px; }.chevron { margin-left:auto; font-size:30px; }
.today-card { display:flex; align-items:center; gap:12px; padding:13px 16px; border:1px solid #e3c897; border-radius:16px; background:#fff7e6; }.sunflower { font-size:29px; color:#e0a02b; }.today-card strong { font-size:15px; }.today-card p { margin:2px 0 0; color:var(--muted); font-size:12px; }.progress-ring { margin-left:auto; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; border:4px solid #e7b04d; color:#97651f; font-weight:800; font-size:14px; }
.bottom-nav { position:absolute; bottom:0; left:0; right:0; height:76px; display:grid; grid-template-columns:repeat(4,1fr); background:#fffaf1f2; border-top:1px solid #e3cba6; backdrop-filter:blur(10px); }.bottom-nav button { border:0; background:transparent; color:#a68b70; font-size:12px; display:grid; place-content:center; gap:2px; }.bottom-nav span { font-size:25px; line-height:1; }.bottom-nav .active { color:#6b4169; font-weight:800; }
.sub-page { min-height:calc(100vh - 158px); }.sub-header { display:flex; align-items:center; gap:14px; margin-bottom:18px; }.back-button { border:1px solid #d7b98b; background:#fff7e8; width:43px; height:43px; border-radius:50%; font-size:24px; }.sub-header h2 { margin:0; font-family:'Playfair Display','Noto Sans HK',serif; font-size:29px; }.sub-header p { margin:2px 0 0; color:var(--muted); font-size:12px; }
.world-scene { min-height:520px; position:relative; border:5px solid #b98553; border-radius:20px; overflow:hidden; background:linear-gradient(166deg,#9cc9c5 0%,#cfe7c4 45%,#e6c58f 46%,#8fb48b 100%); box-shadow:inset 0 0 40px #526d4933,0 6px 0 #92643c; }.world-scene:before { content:'☁️     🌈'; position:absolute; top:22px; right:18px; font-size:26px; letter-spacing:10px; }.world-scene:after { content:'🌳              ⛰️     🌳'; position:absolute; bottom:70px; left:18px; right:18px; font-size:43px; letter-spacing:5px; opacity:.8; }
.river { position:absolute; width:160%; height:120px; background:#76b8bf; border:10px solid #d2e2c4; transform:rotate(-18deg); left:-28%; top:205px; border-radius:50%; box-shadow:inset 0 0 20px #4b919b; }.scene-label { position:absolute; z-index:2; border:2px solid #81582e; background:#fff4d9; padding:7px 13px; border-radius:20px; box-shadow:0 3px 0 #9a713e; font-weight:800; font-size:13px; }.scene-label:hover { background:#ffe5a7; }.l-creation{top:45px;left:28px}.l-eden{top:130px;left:35px}.l-flood{top:180px;right:28px}.l-babel{top:288px;left:80px}.l-abraham{top:350px;right:25px}.l-joseph{bottom:26px;left:34px}.l-moses{bottom:25px;right:30px}
.timeline-card { border:1px solid var(--line); border-radius:16px; background:#fffaf0; padding:17px 15px; }.era-tabs { display:flex; gap:8px; margin-bottom:16px; }.era-tabs button { flex:1; border:1px solid #dac095; border-radius:20px; padding:8px; background:#fff; }.era-tabs .selected { background:var(--purple); color:white; border-color:var(--purple); }.timeline-list { position:relative; margin-left:14px; border-left:3px solid #d9b273; }.timeline-item { position:relative; display:grid; grid-template-columns:20px 1fr; gap:10px; padding:0 0 16px 0; }.timeline-dot { width:15px; height:15px; border-radius:50%; background:#d68e32; border:3px solid #fff; outline:2px solid #d68e32; margin-left:-10px; }.timeline-item strong { display:block; font-size:15px; }.timeline-item small { color:var(--muted); font-size:11px; }.timeline-item.current .timeline-dot { background:#754d78; outline-color:#754d78; }.timeline-item.current strong { color:#754d78; }
.detail-card { background:#fffaf0; border:1px solid var(--line); border-radius:20px; overflow:hidden; }.detail-hero { min-height:185px; display:grid; place-items:center; background:linear-gradient(160deg,#8ec7c2,#d8e8ba 55%,#a1bd86); font-size:110px; position:relative; }.detail-hero span { filter:drop-shadow(0 8px 3px #335e4933); }.detail-body { padding:19px; }.detail-body h3 { font-family:'Playfair Display','Noto Sans HK',serif; font-size:30px; margin:0; }.detail-body .tag { color:#fff; background:var(--purple); border-radius:13px; padding:3px 10px; font-size:11px; }.fact-box { margin-top:16px; padding:14px; background:#f9edd7; border-radius:13px; line-height:1.7; font-size:14px; }.action-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:15px; }.action-row button { border:1px solid #dfc494; border-radius:12px; background:#fff8e9; padding:10px 5px; font-size:12px; }.story-list { display:grid; gap:10px; }.story-item { display:flex; align-items:center; gap:13px; padding:13px; background:#fffaf0; border:1px solid var(--line); border-radius:15px; }.story-item span { font-size:31px; }.story-item strong,.story-item small { display:block; }.story-item small { color:var(--muted); font-size:12px; margin-top:2px; }
.toast { position:fixed; left:50%; bottom:94px; transform:translate(-50%,12px); opacity:0; pointer-events:none; background:#4c3430; color:#fff; padding:12px 20px; border-radius:22px; transition:.2s; font-size:13px; }.toast.show { opacity:1; transform:translate(-50%,0); }
@media (min-width:700px) { .app-shell { margin:30px auto; min-height:calc(100vh - 60px); border-radius:28px; } .bottom-nav { border-radius:0 0 28px 28px; } }

/* Milestone 1 interaction surfaces */
body[data-font="large"] { font-size:18px; } body[data-font="xlarge"] { font-size:20px; } body[data-font="xlarge"] .entry-card strong {font-size:22px;} body[data-font="xlarge"] .entry-card small {font-size:16px;}
body[data-font="xlarge"] .page {padding-left:28px;padding-right:28px;}
.page-shell { min-height:calc(100vh - 158px); }.home-float { margin-left:auto; border:1px solid #d7b98b; background:#fff7e8; width:43px; height:43px; border-radius:50%; font-size:24px; }
.senior-button { min-height:56px; border:1px solid #d8bc8e; border-radius:13px; background:#fff7e8; padding:10px 13px; font-weight:700; font-size:15px; }.senior-button:hover,.senior-button:focus-visible,.back-button:focus-visible,.home-float:focus-visible,.entry-card:focus-visible { outline:4px solid #e3a43e; outline-offset:2px; }.senior-button.primary { background:#765079; color:#fff; border-color:#5c3a60; min-height:64px; width:100%; font-size:19px; }
.map-controls { display:flex; align-items:center; gap:8px; margin-top:14px; }.map-controls button { min-width:50px; height:50px; border:1px solid #d2b486; border-radius:12px; background:#fff7e8; font-size:25px; }.map-controls span { flex:1; text-align:center; color:var(--muted); }.map-tip { text-align:center; color:var(--muted); font-size:14px; }.world-scene { transition:transform .4s ease; }.world-scene.zoomed { transform:scale(1.04); }.scene-clouds { position:absolute; top:22px; right:18px; z-index:2; font-size:26px; }.scene-landscape { position:absolute; bottom:68px; left:20px; right:20px; z-index:2; font-size:43px; opacity:.85; }.map-node { transition:transform .2s, box-shadow .2s; }.map-node:hover,.map-node:focus-visible { transform:scale(1.08); box-shadow:0 0 0 5px #fff8,0 3px 0 #9a713e; outline:none; }.node-0{top:39px;left:24px}.node-1{top:113px;left:35px}.node-2{top:182px;right:24px}.node-3{top:275px;left:68px}.node-4{top:345px;right:22px}.node-5{bottom:126px;left:24px}.node-6{bottom:72px;right:23px}.node-7{bottom:28px;left:120px}.node-8{top:340px;left:170px}.node-9{top:240px;right:20px}.node-10{top:92px;right:100px}
.zoom-strip { display:flex; gap:6px; padding:7px 0 15px; overflow:auto; }.zoom-strip span { white-space:nowrap; padding:6px 12px; border-radius:16px; background:#f7ead0; color:#735244; font-size:12px; }.timeline-item { width:100%; text-align:left; border:0; background:transparent; cursor:pointer; }.timeline-item em { display:block; color:#916f53; font-style:normal; font-size:11px; margin-top:3px; }.timeline-item:focus-visible { outline:3px solid #e3a43e; border-radius:8px; }.timeline-card .timeline-item { grid-template-columns:20px 1fr; }
.filter-row { display:flex; gap:8px; margin-bottom:14px; }.filter,.search-small,.relation-tabs button { min-height:48px; padding:7px 14px; border:1px solid #dbc096; border-radius:22px; background:#fff8ea; }.filter.active,.relation-tabs .selected { background:var(--purple); color:#fff; border-color:var(--purple); }.search-small { margin-left:auto; }.people-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.person-chip { min-height:72px; display:flex; align-items:center; gap:9px; text-align:left; padding:8px; border:1px solid #e0c69c; border-radius:14px; background:#fffaf0; }.person-chip:hover,.person-chip:focus-visible,.story-item:focus-visible,.event-card:focus-visible,.search-result:focus-visible { outline:3px solid #e3a43e; outline-offset:2px; }.portrait { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:#ead3b0; font-size:28px; flex:none; }.person-chip strong,.person-chip small {display:block}.person-chip strong{font-size:15px}.person-chip small{font-size:11px;color:var(--muted)}
.profile-card,.event-profile,.place-card,.journey-card,.settings-card { border:1px solid var(--line); border-radius:20px; background:#fffaf0; overflow:hidden; }.profile-hero { display:flex; align-items:center; gap:18px; padding:22px; background:linear-gradient(140deg,#c7ddd0,#f5ddae); }.profile-hero>span { font-size:92px; filter:drop-shadow(0 7px 2px #76533c33); }.profile-hero h3 { margin:0; font-size:32px; }.profile-hero small { display:block; color:var(--muted); font-size:16px; }.profile-hero b { display:inline-block; margin-top:8px; padding:4px 10px; border-radius:13px; color:#fff; background:var(--purple); font-size:12px; }.profile-body,.event-profile-body,.place-body { padding:20px; }.fact-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.fact-grid div { padding:11px; border-radius:12px; background:#f9edd7; }.fact-grid small,.fact-grid strong{display:block}.fact-grid small{color:var(--muted);font-size:12px}.fact-grid strong{margin-top:4px;font-size:14px}.profile-summary,.event-profile-body>p,.place-body>p { font-size:18px; line-height:1.8; }.important-box { padding:15px; border-left:5px solid #db9d3b; border-radius:12px; background:#f9edd7; line-height:1.7; }.important-box p{margin:6px 0 0}.action-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:16px; }.section-title { font-size:22px; margin:22px 0 10px; }.people-strip { display:flex; gap:8px; overflow:auto; padding:3px; }.people-strip .person-chip { min-width:145px; }.relation-tabs { display:flex; gap:8px; margin-bottom:14px; }.family-tree { padding:22px 10px; border:1px solid #dfc69d; border-radius:18px; background:#fff7e7; text-align:center; }.tree-card { min-width:116px; display:inline-grid; place-items:center; gap:3px; padding:10px 8px; border:1px solid #dfc69d; border-radius:14px; background:#fffaf0; }.tree-card.main { border:3px solid #b78136; }.tree-card .portrait { width:58px;height:58px; }.tree-card strong{font-size:15px}.tree-card small{font-size:12px;color:var(--muted)}.tree-line { height:28px; width:2px; background:#bd8f50; margin:auto; }.branch-lines { width:68%; height:25px; border-top:2px solid #bd8f50; margin:0 auto; }.children-row { display:flex; justify-content:center; gap:10px; }.relation-note { margin-top:14px; padding:14px; border-radius:13px; background:#f9edd7; text-align:center; color:#735244; }
.story-list { display:grid; gap:10px; }.story-item { min-height:77px; display:flex; align-items:center; gap:13px; padding:13px; background:#fffaf0; border:1px solid var(--line); border-radius:15px; text-align:left; }.story-item span:nth-child(1){font-size:34px}.story-item span:nth-child(2){flex:1}.story-item strong,.story-item small{display:block}.story-item small{color:var(--muted);font-size:12px;margin-top:2px}.story-item b{font-size:22px;color:#9a704e}.story-scene { min-height:330px; position:relative; overflow:hidden; border:5px solid #9d7548; border-radius:20px; background:linear-gradient(#91c7c5 0%,#d6e6bc 55%,#97b17c 56%,#748f64 100%); }.scene-sky { position:absolute; top:20px; left:20px; right:20px; font-size:26px; text-align:right; }.scene-art { position:absolute; inset:60px 0 62px; display:grid; place-items:center; font-size:140px; filter:drop-shadow(0 10px 5px #304c4433); }.scene-characters { position:absolute; bottom:7px; left:10px; right:10px; display:flex; justify-content:center; gap:8px; }.scene-characters button { border:2px solid #fff; border-radius:50%; background:#fff4de; width:60px; height:60px; display:grid; place-items:center; }.scene-characters span{font-size:30px}.scene-characters small{display:none}.story-copy { padding:15px 3px; }.story-copy h3,.event-profile-body h3,.place-body h3,.journey-card h3 { margin:0 0 7px; font-size:28px; }.story-copy p { font-size:18px; line-height:1.75; }.scripture-button { min-height:54px; border:1px solid #d5b987; border-radius:13px; background:#fff7e7; padding:10px 15px; font-weight:700; }.story-nav,.event-links { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.story-bottom-nav { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:15px; }.story-bottom-nav .senior-button { min-height:64px; padding:6px; font-size:12px; }.event-profile-hero,.place-hero { min-height:180px; display:grid; place-items:center; font-size:110px; background:linear-gradient(150deg,#93c8c4,#e7c894); }.tag { display:inline-block; border-radius:13px; padding:4px 10px; background:var(--purple); color:#fff; font-size:12px; }.event-profile-body h4,.place-body h4 { margin:18px 0 8px; font-size:18px; }.event-profile-body>p,.place-body>p { margin:8px 0; }.related-block { margin-top:18px; }.related-block h4{margin-bottom:8px}.event-links{margin-top:18px}.challenge-card { padding:24px 17px; border:1px solid #b88844; border-radius:20px; background:linear-gradient(#274452,#173441); color:#fff; text-align:center; }.challenge-icon{font-size:62px}.challenge-card h3{font-size:23px;line-height:1.55}.answers{display:grid;gap:10px;margin-top:20px}.answers button{min-height:60px;border:1px solid #d39c44;border-radius:12px;background:#1e3f4b;color:#fff;text-align:left;padding:12px 17px;font-size:18px}.answers button:hover,.answers button:focus-visible{background:#3b6570;outline:3px solid #f2c46e}.feedback{margin-top:16px;font-size:17px;line-height:1.6}.feedback button{min-height:52px;border:0;border-radius:12px;background:#e9b34b;padding:10px 14px;font-weight:800}.good{color:#f6cf67}.try{color:#ffd18a}.journey-card{padding:22px}.journey-head{display:flex;gap:15px;align-items:center;padding-bottom:15px;border-bottom:1px solid #ead4ad}.journey-head>span{font-size:48px}.journey-card h4{font-size:20px;margin:22px 0 10px}.journey-path{border-left:4px solid #e2b25b;margin-left:12px;padding-left:20px;display:grid;gap:15px}.journey-step{font-size:18px}.journey-step span{color:#c99a42;margin-right:10px}.journey-step.done{color:#6e4e41;font-weight:700}.settings-card{padding:20px;display:grid;gap:23px}.settings-card label{font-size:19px;font-weight:700}.setting-options{display:flex;gap:8px;margin-top:9px}.setting-options button{min-height:52px;min-width:74px;border:1px solid #d7b888;border-radius:12px;background:#fff7e7;font-weight:700}.setting-options button.selected{background:var(--purple);color:#fff}.search-panel{display:flex;gap:8px;margin-bottom:15px}.search-panel input{min-height:60px;flex:1;border:2px solid #d4b687;border-radius:13px;padding:12px 15px;font-size:17px;background:#fffdf6}.search-panel button{min-width:88px;border:0;border-radius:13px;background:var(--purple);color:#fff;font-weight:800}.search-results{display:grid;gap:9px}.search-result{min-height:72px;display:flex;align-items:center;gap:12px;border:1px solid #dfc49a;border-radius:14px;padding:10px;background:#fffaf0;text-align:left}.search-result>span:first-child{font-size:27px}.search-result>span:nth-child(2){flex:1}.search-result strong,.search-result small{display:block}.search-result small{color:var(--muted);margin-top:3px;font-size:12px}.search-empty,.empty-state{text-align:center;color:var(--muted);padding:30px 10px;font-size:16px}.empty-state{font-size:50px}.empty-state h3{font-size:22px}.onboarding{position:fixed;inset:0;background:#4b372c88;z-index:10;display:grid;place-items:center;padding:20px}.onboarding-card{width:min(100%,470px);border:2px solid #d6aa68;border-radius:22px;padding:24px;background:#fff7e8;box-shadow:0 20px 50px #3a241c55;text-align:center}.onboarding-card h2{font-size:27px;margin:6px 0}.onboarding-card p{font-size:17px;line-height:1.6}.onboarding-spark{color:#d79932;font-size:30px}.onboard-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.onboard-steps div{display:grid;gap:3px;padding:10px 4px;background:#f9ead0;border-radius:12px;font-size:27px}.onboard-steps strong{font-size:13px}.onboard-steps small{font-size:11px;color:var(--muted)}.text-button{border:0;background:none;margin-top:11px;color:#765079;text-decoration:underline;font-size:14px}
@media (max-width:560px){.people-grid{grid-template-columns:1fr}.story-bottom-nav{grid-template-columns:1fr 1fr}.children-row{gap:3px}.tree-card{min-width:95px}.tree-card .portrait{width:48px;height:48px}.profile-hero>span{font-size:70px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* The first-run guide is helpful, but must never block the four main entry points. */
.onboarding { inset:auto 0 82px; padding:12px; background:transparent; place-items:end center; pointer-events:none; }
.onboarding-card { padding:20px; pointer-events:auto; }
.search-filter { display:flex; align-items:center; gap:10px; margin:12px 0; font-size:17px; font-weight:700; }.search-filter select { min-height:52px; flex:1; border:1px solid #d4b687; border-radius:12px; background:#fff7e7; padding:8px 12px; font-size:17px; }.quick-searches { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 18px; }.quick-searches button { min-height:48px; padding:8px 14px; border:1px solid #d8bb88; border-radius:22px; background:#f9ead0; font-size:16px; }.quick-searches button:hover,.quick-searches button:focus-visible { background:#765079; color:#fff; outline:3px solid #e3a43e; }
.map-toolbar{display:flex;align-items:center;gap:10px;margin:10px 0 12px;color:var(--muted);font-size:14px}.map-toolbar strong{flex:1;text-align:center;font-size:15px;color:#68452f}.map-toolbar button{min-height:44px;border:1px solid #c89a62;border-radius:999px;background:#fff7e8;color:#68452f;padding:8px 15px;font-weight:700}.map-scale{border-radius:999px;background:#f0d49d;padding:8px 11px;font-weight:800;color:#68452f}.world-map-viewport{position:relative;min-height:620px;overflow:hidden;border:5px solid #a9784b;border-radius:24px;background:#b8d4c0;box-shadow:inset 0 0 35px #493c2b55,0 6px 0 #92643c;touch-action:none}.map-world-content{position:absolute;inset:0;transform-origin:50% 50%;transition:transform .3s ease}.map-artwork{position:absolute;inset:0;background-image:linear-gradient(#ffffff08,#553b1a22),url('/assets/world-map/bible-world-base.png');background-size:cover;background-position:center;background-repeat:no-repeat}.map-story-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-story-route path{fill:none;stroke:#f2c36e;stroke-width:1.25;stroke-linecap:round;stroke-dasharray:2 1.5;filter:drop-shadow(0 1px 1px #563b28aa)}.map-hotspot-layer{position:absolute;inset:0}.map-hotspot{position:absolute;z-index:3;display:flex;align-items:center;gap:7px;min-width:122px;min-height:56px;max-width:190px;transform:translate(-50%,-50%);border:2px solid #7d5436;border-radius:18px;background:#fff7e8ed;color:#3f2a20;padding:8px 12px;box-shadow:0 4px 0 #755034,0 4px 15px #3a291b66;cursor:pointer;text-align:left}.map-hotspot:hover,.map-hotspot:focus-visible,.map-hotspot.selected{outline:4px solid #ffe29a;box-shadow:0 0 0 6px #fff8,0 5px 0 #755034,0 5px 18px #3a291b77;z-index:8}.map-hotspot:focus-visible{outline-offset:3px}.hotspot-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#f1cd83;color:#71482c;font-size:25px;font-weight:800;flex:0 0 32px}.hotspot-label{font-size:17px;font-weight:800;line-height:1.15}.map-hotspot.visited{border-color:#be8a24;background:#fff8db}.visited-mark{margin-left:auto;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#e2aa2e;color:#fff;font-weight:900}.map-hotspot.detail-2{opacity:.94;transform:translate(-50%,-50%) scale(.88)}.map-hotspot.detail-2 .hotspot-label{font-size:14px}.map-preview{position:absolute;z-index:10;left:16px;right:16px;bottom:16px;display:flex;gap:18px;align-items:center;justify-content:space-between;max-width:680px;padding:16px 18px;border:3px solid #b27c43;border-radius:20px;background:#fff8eefa;box-shadow:0 5px 0 #815633}.map-preview h3{margin:3px 0;font-size:24px;color:#533626}.map-preview p{margin:4px 0 0;max-width:460px;color:#684c39}.preview-kicker{font-size:13px;color:#956e4e}.preview-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.map-controls{position:relative;z-index:12}.map-controls button{font-weight:800;cursor:pointer}.map-tip{font-size:14px}.map-hotspot:nth-child(3n){background:#fff4d8ee}.map-hotspot:nth-child(4n){background:#f4f0dfed}
@media (max-width:700px){.world-map-viewport{min-height:560px}.map-toolbar strong{font-size:12px}.map-hotspot{min-width:96px;min-height:48px;padding:6px 8px;border-radius:14px}.hotspot-icon{width:27px;height:27px;flex-basis:27px;font-size:20px}.hotspot-label{font-size:14px}.map-hotspot.detail-2 .hotspot-label{font-size:12px}.map-preview{display:block;padding:12px}.map-preview h3{font-size:20px}.preview-actions{justify-content:flex-start;margin-top:8px}.preview-actions .senior-button{min-height:44px}}
@media (prefers-reduced-motion:reduce){.map-world-content{transition:none}}
.map-artwork{background-image:linear-gradient(#ffffff08,#553b1a22),url('assets/world-map/bible-world-base.svg')}
.map-hotspot.selected{transform:translate(-50%,-50%) scale(1.1)}.map-preview .preview-people{margin:7px 0 0;font-size:14px;color:#815d42}.map-next-suggestion{display:block;margin:12px auto 0;min-height:52px;border:2px solid #c18a3c;border-radius:14px;background:#fff4d3;color:#68452f;padding:10px 18px;font-size:17px;font-weight:800;cursor:pointer}.map-next-suggestion:hover,.map-next-suggestion:focus-visible{outline:3px solid #e3a43e;outline-offset:2px}
.hotspot-icon svg,.map-preview h3 svg,.map-story-landmark svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.map-preview h3 svg{vertical-align:-5px;width:30px;height:30px}.map-story-landmark svg{width:100px;height:100px;stroke-width:1.4}.map-hotspot[title]{position:absolute}.map-world-content[data-zoom="1.0"] .detail-2,.map-world-content[data-zoom="1.2"] .detail-2{display:none}.map-hotspot.search-focused{animation:map-pulse 1.2s ease-in-out 2}@keyframes map-pulse{50%{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 0 10px #f7ca6577,0 5px 0 #755034}}
.map-story-page{border:1px solid var(--line);border-radius:20px;background:#fffaf0;overflow:hidden}.map-story-landmark{min-height:260px;display:grid;place-items:center;gap:8px;background:linear-gradient(145deg,#9fcbbf,#efcc8b);color:#593b2b}.map-story-landmark span{display:grid;place-items:center;width:132px;height:132px;border-radius:50%;background:#fff8e8bb;color:#754b2d}.map-story-landmark strong{font-size:28px}.map-story-note{padding:14px;border-radius:12px;background:#f9edd7;color:var(--muted)}

/* Noah Gold Master: progressive disclosure and large, calm touch targets. */
.gold-section{margin-top:22px}.gold-section>h3{font-size:22px;margin:0 0 10px}.rich-link-list,.chapter-list{display:grid;gap:9px}.rich-link-card,.chapter-row{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #ddc294;border-radius:14px;background:#fff8ea;padding:12px;min-height:70px}.rich-link-card:hover,.rich-link-card:focus-visible,.chapter-row:hover,.chapter-row:focus-visible{outline:3px solid #e3a43e;outline-offset:2px}.rich-link-card>span:nth-child(2),.chapter-row>span:nth-child(2){flex:1}.rich-card-icon{font-size:30px}.rich-link-card strong,.rich-link-card small,.chapter-row strong,.chapter-row small{display:block}.rich-link-card small,.chapter-row small{color:var(--muted);line-height:1.45;margin-top:3px}.rich-link-card>b,.chapter-row>b{font-size:22px;color:#8a6143}.mini-family{text-align:center;padding:14px;border:1px solid #e2c79b;border-radius:16px;background:#fff8e9}.family-node{min-width:110px;min-height:58px;border:1px solid #d5ae76;border-radius:13px;background:#fffdf5;padding:8px;font-weight:800}.family-node small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.family-node.current{border:3px solid #b47a35}.mini-family>span{display:block;color:#b17a3d;padding:5px}.family-children{display:flex;justify-content:center;gap:7px}.family-children .family-node{min-width:82px}.text-link-button,.reference-link{border:0;background:transparent;color:#765079;text-decoration:underline;font-weight:800;padding:8px 0;font-size:15px}.related-pills{display:flex;gap:8px;flex-wrap:wrap}.related-pills .senior-button{min-height:48px}.timeline-ladder{display:grid;gap:5px;border-left:4px solid #dfac50;padding-left:14px}.timeline-ladder button{min-height:50px;border:1px solid #dec092;border-radius:12px;background:#fff8e9;text-align:left;padding:8px 12px;font-weight:700}.timeline-ladder span{text-align:left;color:#b37b3c}.timeline-ladder .current{background:#765079;color:#fff;border-color:#765079}.reference-list{padding:12px 15px;border-radius:14px;background:#f9edd7}.reference-list p{margin:7px 0;line-height:1.5}.reference-list small{display:block;color:var(--muted);padding-left:26px}.remember-card{margin-top:20px;border:2px solid #d6a64e;border-radius:16px;padding:15px;background:#fff5d9}.remember-card h3{margin:0 0 9px}.remember-card p{display:flex;gap:9px;line-height:1.55}.remember-card p b{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:#dba847;color:#fff}.question-chips{display:flex;flex-wrap:wrap;gap:8px}.question-chips button{border:1px solid #d7b581;border-radius:22px;background:#fff8e9;padding:10px 13px;font-size:15px}.research-entry{margin-top:22px;padding:16px;border-radius:16px;background:linear-gradient(140deg,#f1e3ca,#e5d4e7);border:1px solid #d1b6a1}.research-entry h3{margin:0 0 6px}.research-entry p{line-height:1.55}.event-gold-summary{padding:14px;border-left:5px solid #d89d3c;border-radius:12px;background:#f9edd7;line-height:1.65}.event-gold-summary p{margin:4px 0}.event-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.event-facts div{padding:11px;border-radius:12px;background:#f7ead3}.event-facts small,.event-facts strong{display:block}.event-facts small{color:var(--muted)}.event-facts strong{margin-top:3px}.reference-line{padding:12px;border-radius:12px;background:#f9edd7;font-weight:700}.research-backdrop{position:fixed;inset:0;background:#2e211b66;z-index:30}.research-drawer{position:fixed;z-index:31;right:0;top:0;bottom:0;width:min(480px,100%);overflow:auto;background:#fff8ea;padding:24px;box-shadow:-8px 0 30px #32201844}.drawer-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.drawer-head h2{font-size:29px;margin:7px 0}.drawer-close{width:48px;height:48px;border:1px solid #d3b27b;border-radius:50%;background:#fffdf5;font-size:30px;line-height:1}.source-note{font-size:14px;color:#765079;font-weight:700}.research-grid{display:grid;gap:10px;margin-top:16px}.research-card{display:grid;grid-template-columns:40px 1fr;column-gap:10px;align-items:center;border:1px solid #ddc294;border-radius:14px;background:#fffdf5;padding:12px;text-decoration:none;color:inherit}.research-card>span{grid-row:1 / span 3;font-size:27px}.research-card strong{font-size:17px}.research-card small{color:var(--muted);line-height:1.45;margin:2px 0}.research-card b{font-size:13px;color:#765079}.drawer-fallback{margin-top:18px;padding:12px;border-radius:12px;background:#f4eadb;color:var(--muted);font-size:14px;line-height:1.5}
@media (max-width:700px){.research-drawer{top:auto;max-height:88vh;border-radius:24px 24px 0 0;padding:20px}.family-children .family-node{min-width:72px;padding-left:4px;padding-right:4px}.family-children{gap:4px}}
