:root{--sand: #d9c49a;--night: #1b2a4a;--gold: #e8b84b;--night-deep: #101a30;--ink: #f2ead8}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--night-deep);color:var(--ink);font-family:Georgia,Times New Roman,serif;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#game-root{position:fixed;inset:0}#game-root canvas,.game3d-canvas{display:block;width:100%!important;height:100%!important;touch-action:none}.select-box{position:fixed;border:1px solid var(--selection, #9fd8ff);background:#9fd8ff1f;pointer-events:none;z-index:30}.hidden{display:none!important}#hud{position:fixed;inset:0;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#faith-wrap{position:absolute;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(320px,44vw);text-align:center}#faith-label{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);text-shadow:0 1px 3px #000}#faith-bar,#loyalty-bar{height:12px;margin-top:3px;border:1px solid var(--gold);border-radius:6px;background:#0000008c;overflow:hidden}#faith-fill{height:100%;width:50%;background:linear-gradient(180deg,#f5d98a,var(--gold));transition:width .6s ease}#loyalty-wrap{position:absolute;top:calc(58px + env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(260px,40vw);text-align:center}#loyalty-label{font-size:11px;letter-spacing:1px;color:#d98e66;text-shadow:0 1px 3px #000}#loyalty-bar{border-color:#d98e66}#loyalty-fill{height:100%;width:70%;background:linear-gradient(180deg,#e8a98a,#c96a5b);transition:width .6s ease}#objectives{position:absolute;top:calc(10px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));max-width:min(340px,42vw);background:#101a30d1;border:1px solid rgba(232,184,75,.5);border-radius:8px;padding:10px 14px}#objective-title{font-size:15px;color:var(--gold)}#objective-desc{margin-top:4px;font-size:12px;line-height:1.45;color:var(--ink);opacity:.85}#portraits{position:absolute;bottom:calc(10px + env(safe-area-inset-bottom));left:calc(10px + env(safe-area-inset-left));display:flex;gap:6px;pointer-events:auto}.portrait{width:52px;height:60px;border:2px solid rgba(217,196,154,.55);border-radius:6px;background:#101a30d9;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;gap:4px}.portrait.selected{border-color:var(--gold);box-shadow:0 0 8px #e8b84b99}.portrait .swatch{width:22px;height:22px;transform:rotate(45deg);border-radius:3px}.portrait .pname{font-size:9.5px;letter-spacing:.5px;color:var(--ink)}@media(orientation:portrait)and (max-width:640px){#faith-wrap{width:60vw}#loyalty-wrap{width:52vw}#objectives{top:calc(96px + env(safe-area-inset-top));right:8px;left:8px;max-width:none;padding:8px 10px}#objective-title{font-size:13px}#objective-desc{font-size:11px}.portrait{width:44px;height:52px}.portrait .swatch{width:18px;height:18px}.portrait .pname{font-size:8.5px}}#narration{position:fixed;inset:0;background:radial-gradient(ellipse at center,#14213c,#0a1020 75%);display:flex;align-items:center;justify-content:center;z-index:40}#narration-inner{max-width:680px;width:92%;max-height:86vh;overflow-y:auto;text-align:center;padding:24px}#narration-title{font-size:22px;font-weight:400;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin:0 0 26px}.nline{margin:0 0 22px}.nline .ntext{font-size:17px;line-height:1.75;color:var(--ink)}.nline.quote .ntext{font-style:italic}.nline.paraphrase .ntext{font-style:normal}.nline .nref{display:block;margin-top:7px;font-size:13px;font-style:normal;letter-spacing:1px;color:var(--gold)}#narration-continue,#modal-button{margin-top:10px;padding:10px 34px;font-family:inherit;font-size:15px;letter-spacing:1px;color:var(--night);background:linear-gradient(180deg,#f5d98a,var(--gold));border:none;border-radius:6px;cursor:pointer}#narration-continue:hover,#modal-button:hover{filter:brightness(1.08)}#modal{position:fixed;inset:0;background:#050810b8;display:flex;align-items:center;justify-content:center;z-index:50}#modal-inner{max-width:520px;width:90%;background:var(--night);border:1px solid var(--gold);border-radius:10px;padding:22px 26px;text-align:center}#modal-title{margin:0 0 16px;font-weight:400;letter-spacing:2px;color:var(--gold)}#modal-lines .nline .ntext{font-size:15px;line-height:1.65}#boot,#menu,#complete{position:fixed;inset:0;z-index:45;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#14213c,#0a1020 78%);text-align:center}.screen-inner{width:92%;max-width:620px;padding:24px}.crest{font-size:46px;color:var(--gold);margin-bottom:6px}.title{margin:0;font-size:clamp(30px,8vw,46px);font-weight:700;letter-spacing:.18em;color:var(--ink)}.subtitle{margin:6px 0 0;font-style:italic;font-size:17px;color:var(--sand)}.menu-verse{margin:26px auto 2px;max-width:520px;font-style:italic;font-size:16px;color:#bfc9de;line-height:1.5}.menu-ref{margin:0 0 26px;font-size:13px;letter-spacing:1px;color:var(--gold)}#menu-play{padding:12px 26px;font-family:inherit;font-size:17px;color:var(--night);background:linear-gradient(180deg,#f5d98a,var(--gold));border:none;border-radius:7px;cursor:pointer}#menu-play:hover{filter:brightness(1.08)}.menu-status{margin-top:18px;font-size:13px;color:#8fa3c8}.complete-title{margin:8px 0 2px;font-weight:400;letter-spacing:.16em;font-size:26px;color:var(--ink)}#journey{position:fixed;inset:0;z-index:46;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#1b2236,#0a1020 80%);overflow-y:auto}.journey-inner{width:94%;max-width:760px;padding:18px 14px calc(18px + env(safe-area-inset-bottom));text-align:center}.journey-title{margin:4px 0 2px;font-weight:400;letter-spacing:.12em;color:var(--gold);font-size:clamp(20px,5vw,28px)}.journey-help{margin:0 auto 10px;max-width:520px;font-size:13px;color:#b9c2d8}#journey-map{position:relative;width:100%;max-width:560px;margin:0 auto;aspect-ratio:3 / 4;background:radial-gradient(circle at 30% 12%,rgba(232,184,75,.06),transparent 40%),linear-gradient(160deg,#2a2f3f,#1a2030 60%,#141b2b);border:1px solid rgba(232,184,75,.35);border-radius:12px}.journey-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.journey-route polyline{fill:none;stroke:#e8b84b73;stroke-width:.6;stroke-dasharray:1.6 1.6;stroke-linecap:round;vector-effect:non-scaling-stroke}.jnode{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;white-space:nowrap}.jdot{width:16px;height:16px;border:2px solid #8fa3c8;background:#2a3346;flex:none;transform:rotate(45deg);border-radius:3px}.jcard{text-align:left;background:#0c1222d9;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:4px 8px}.jtitle{display:block;font-size:12.5px;color:var(--ink)}.jmeta{display:block;font-size:10px;color:#8fa3c8}.jnode.completed .jdot{border-color:var(--gold);background:var(--gold)}.jnode.available .jdot{border-color:var(--gold);background:#f5d98a;box-shadow:0 0 #e8b84b99;animation:jpulse 1.6s ease-out infinite}.jnode.available .jtitle{color:var(--gold)}.jnode.locked{cursor:not-allowed;opacity:.5}.jnode.locked .jdot{border-color:#5a6478}.jnode.soon.available .jtitle:after{content:" (soon)";color:#8fa3c8;font-style:italic}@keyframes jpulse{0%{box-shadow:0 0 #e8b84b8c}to{box-shadow:0 0 0 10px #e8b84b00}}.journey-note{min-height:18px;margin:10px 0 6px;font-size:13px;color:var(--gold)}.journey-back{padding:8px 22px;font-family:inherit;font-size:14px;color:var(--ink);background:#ffffff0f;border:1px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer}.journey-back:hover{background:#ffffff1f}.journey-actions{display:flex;gap:10px;justify-content:center}#scriptorium{position:fixed;inset:0;z-index:48;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;background:radial-gradient(ellipse at center,#1a2236,#090f1d 80%)}.scriptorium-inner{width:94%;max-width:760px;padding:22px 14px calc(22px + env(safe-area-inset-bottom));text-align:center}.scriptorium-title{margin:4px 0 2px;font-weight:400;letter-spacing:.12em;color:var(--gold);font-size:clamp(20px,5vw,28px)}.scriptorium-hint{margin:0 0 16px;font-size:13px;color:#8fa3c8}.scriptorium-body{text-align:left}.codex-cat{margin:18px 0 8px;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--sand);border-bottom:1px solid rgba(217,196,154,.25);padding-bottom:4px}.codex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.codex-card{background:#0c1222cc;border:1px solid rgba(232,184,75,.3);border-radius:8px;padding:10px 12px}.codex-card.locked{opacity:.5;border-style:dashed}.codex-name{font-size:15px;color:var(--gold)}.codex-blurb{margin-top:4px;font-size:12.5px;line-height:1.45;color:var(--ink)}.codex-ref{margin-top:6px;font-size:11px;letter-spacing:1px;color:var(--gold)}.scriptorium-inner>.journey-back{margin-top:20px}.menu-toggle{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:18px;font-size:13px;color:#b9c2d8;cursor:pointer}.menu-toggle input{width:16px;height:16px;accent-color:var(--gold)}.menu-toggle em{color:#8fa3c8;font-size:11px}#reflection{position:fixed;inset:0;z-index:47;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#14213c,#090f1d 80%);text-align:center}.reflection-inner{max-width:600px}.reflection-eyebrow{font-size:13px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-bottom:18px}.reflection-liken{font-size:16px;line-height:1.6;color:var(--sand);font-style:italic;margin:0 auto 22px}.reflection-question{font-size:20px;line-height:1.6;color:var(--ink);margin:0 auto 14px}.reflection-ref{font-size:13px;letter-spacing:1px;color:var(--gold);margin:0 0 22px}.reflection-note{font-size:13px;color:#8fa3c8;margin:0 0 22px}#reflection-continue{padding:11px 30px;font-family:inherit;font-size:15px;color:var(--night);background:linear-gradient(180deg,#f5d98a,var(--gold));border:none;border-radius:7px;cursor:pointer}#reflection-continue:hover{filter:brightness(1.08)}body.family-mode .reflection-liken{font-size:19px}body.family-mode .reflection-question{font-size:24px}body.family-mode .nline .ntext{font-size:20px}body.family-mode #objective-title{font-size:18px}body.family-mode #objective-desc,body.family-mode .jtitle{font-size:14px}.boot-bar{width:min(280px,60vw);height:6px;margin:26px auto 8px;border:1px solid var(--gold);border-radius:4px;overflow:hidden}.boot-bar-fill{height:100%;width:0;background:var(--gold);transition:width .9s ease}.boot-status{font-size:14px;color:#8fa3c8}
