:root{--bg:#0b0a10;--bg-2:#13121b;--panel:#100f18db;--panel-solid:#15141e;--line:#fff0dc1f;--line-strong:#fff0dc3d;--text:#f5efe6;--muted:#b3aa9d;--faint:#7d7569;--gold:#f4b860;--gold-2:#ffd79a;--ember:#e86a3a;--sky:#8fc1e8;--leaf:#8fcf9a;--rose:#e98aa0;--danger:#ff7a6b;--radius:14px;--radius-sm:9px;--shadow:0 20px 60px #00000073;--serif:"Cormorant Garamond", Georgia, serif;--sans:Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--gold-2)}::selection{background:#f4b86059}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.serif{font-family:var(--serif)}.muted{color:var(--muted)}.faint{color:var(--faint)}.gold{color:var(--gold)}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:12px;display:flex}.grow{flex:1;min-width:0}.spacer{flex:1}.center{place-items:center;display:grid}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.btn{border:1px solid var(--line-strong);cursor:pointer;letter-spacing:.01em;-webkit-tap-highlight-color:transparent;background:#ffffff0a;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-weight:600;transition:background .2s,border-color .2s,transform .1s;display:inline-flex}.btn:hover{background:#ffffff17}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg, var(--gold-2), var(--gold));color:#241806;border-color:#0000}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{min-height:32px;padding:0 12px;font-size:13px}.btn.icon{width:42px;padding:0}.btn.danger{color:var(--danger)}.field{flex-direction:column;gap:6px;display:flex}.field>span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px}.input,.textarea,.select{border-radius:var(--radius-sm);border:1px solid var(--line);background:#00000059;width:100%;padding:11px 13px;transition:border-color .2s}.input:focus,.textarea:focus,.select:focus{border-color:var(--gold);outline:none}.textarea{resize:vertical;min-height:96px}.card{border:1px solid var(--line);border-radius:var(--radius);background:#ffffff09;padding:14px 16px}.card.lit{border-color:#f4b86073;box-shadow:inset 0 0 0 1px #f4b86026}.pill{border:1px solid var(--line);color:var(--muted);background:#ffffff0f;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill.gold{color:var(--gold);border-color:#f4b86059}.pill.leaf{color:var(--leaf);border-color:#8fcf9a59}.pill.rose{color:var(--rose);border-color:#e98aa059}.pill.sky{color:var(--sky);border-color:#8fc1e859}.tabs{border:1px solid var(--line);scrollbar-width:none;background:#0000004d;border-radius:999px;gap:4px;padding:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:none;padding:7px 14px;font-size:13px;font-weight:600}.tab[aria-selected=true]{color:var(--gold-2);background:#f4b86029}.progress{background:#ffffff14;border-radius:999px;height:6px;overflow:hidden}.progress>i{background:linear-gradient(90deg, var(--ember), var(--gold), var(--gold-2));border-radius:inherit;height:100%;transition:width .6s;display:block}.check{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.check:last-child{border-bottom:0}.check input{appearance:none;border:1.5px solid var(--line-strong);cursor:pointer;border-radius:7px;flex:0 0 22px;place-items:center;height:22px;margin:1px 0 0;display:grid}.check input:checked{background:var(--gold);border-color:var(--gold)}.check input:checked:after{content:"";border-top:0;border-bottom:2px solid #241806;border-left:2px solid #241806;border-right:0;width:10px;height:6px;transform:rotate(-45deg)translate(1px,-1px)}.check.done .check-title{color:var(--faint);text-decoration:line-through}.panel{z-index:30;top:calc(12px + var(--safe-top));right:12px;bottom:calc(12px + var(--safe-bottom));background:var(--panel);-webkit-backdrop-filter:blur(18px)saturate(1.2);border:1px solid var(--line);width:min(560px,100vw - 24px);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;animation:.45s cubic-bezier(.2,.8,.2,1) panel-in;display:flex;position:fixed}@keyframes panel-in{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:none}}.panel-head{border-bottom:1px solid var(--line);padding:18px 20px 12px}.panel-head h2{font-family:var(--serif);margin:0;font-size:30px;font-weight:600;line-height:1.05}.panel-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.panel-body{-webkit-overflow-scrolling:touch;flex:1;padding:16px 20px 28px;overflow-y:auto}.panel-body h3{font-family:var(--serif);margin:18px 0 8px;font-size:22px;font-weight:600}.panel-body h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 0 6px;font-size:13px}.panel-body p{margin:0 0 10px}.verse{font-family:var(--serif);color:var(--gold-2);font-size:18px;font-style:italic}.verse cite{font-style:normal;font-family:var(--sans);color:var(--muted);margin-top:2px;font-size:12px;display:block}.prose{white-space:pre-wrap;line-height:1.6}@media (max-width:640px){.panel{border-radius:20px 20px 0 0;width:100%;height:78vh;animation-name:sheet-in;inset:auto 0 0}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}}.hud-top{z-index:20;top:calc(12px + var(--safe-top));pointer-events:none;align-items:flex-start;gap:10px;display:flex;position:fixed;left:12px;right:12px}.hud-top>*{pointer-events:auto}.glass{background:var(--panel);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:16px}.hud-bottom{z-index:20;left:50%;bottom:calc(14px + var(--safe-bottom));pointer-events:auto;scrollbar-width:none;gap:6px;max-width:calc(100vw - 24px);padding:6px;display:flex;position:fixed;overflow-x:auto;transform:translate(-50%)}.dock-btn{cursor:pointer;min-width:64px;color:var(--muted);background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;font-size:11px;font-weight:600;display:flex}.dock-btn .glyph{font-size:20px;line-height:1}.dock-btn[aria-current=true],.dock-btn:hover{color:var(--gold-2);background:#f4b86024}@media (max-width:640px){.hud-bottom{justify-content:space-between;gap:0;max-width:none;padding:4px;left:8px;right:8px;transform:none}.dock-btn{flex:1;min-width:0;padding:7px 2px;font-size:10px}.dock-btn .glyph{font-size:18px}}.letterbox:before,.letterbox:after{content:"";z-index:40;background:#000;height:11vh;transition:transform 1.2s cubic-bezier(.7,0,.2,1);position:fixed;left:0;right:0}.letterbox:before{top:0}.letterbox:after{bottom:0}.letterbox.open:before{transform:translateY(-100%)}.letterbox.open:after{transform:translateY(100%)}.title-card{z-index:45;text-align:center;pointer-events:none;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.title-card h1{font-family:var(--serif);letter-spacing:.01em;text-shadow:0 6px 40px #0009;margin:0;font-size:clamp(44px,9vw,112px);font-weight:600;line-height:.95}.title-card .kicker{letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;font-size:12px}.fade-in{animation:1.6s both fade-in}.fade-up{animation:1.2s cubic-bezier(.2,.8,.2,1) both fade-up}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.grain{z-index:41;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:1.2s steps(6,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}33%{transform:translate(-3%,2%)}66%{transform:translate(2%,-3%)}to{transform:translate(0)}}.vignette{z-index:10;pointer-events:none;background:radial-gradient(#0000 55%,#0000008c 100%);position:fixed;inset:0}.screen{z-index:50;padding:24px 16px calc(24px + var(--safe-bottom));place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.screen-card{width:min(520px,100%);padding:26px 24px}.choice{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice button{text-align:left;border-radius:var(--radius);border:1px solid var(--line);cursor:pointer;background:#ffffff08;padding:16px}.choice button[aria-pressed=true]{border-color:var(--gold);background:#f4b8601a}.choice strong{font-family:var(--serif);font-size:22px;display:block}.toast-wrap{z-index:60;left:50%;top:calc(76px + var(--safe-top));pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.toast{border-radius:999px;padding:9px 16px;font-size:13px;font-weight:600;animation:.4s both fade-up}.cheer{z-index:55;pointer-events:none;font-size:34px;animation:4s ease-out forwards float-up;position:fixed;bottom:120px}@keyframes float-up{0%{opacity:0;transform:translateY(0)scale(.6)}15%{opacity:1;transform:translateY(-20px)scale(1.1)}to{opacity:0;transform:translateY(-260px)scale(1)}}.landmark-label{white-space:nowrap;color:var(--text);border:1px solid var(--line-strong);cursor:pointer;-webkit-user-select:none;user-select:none;background:#0b0a10b8;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;transition:background .2s,color .2s;transform:translateY(-6px)}.landmark-label:hover,.landmark-label.active{background:var(--gold);color:#241806}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.grain{display:none}}
