:root{color-scheme:dark;--bg: #060a17;--bg2: #0c1226;--paper: #101731;--paper2: #161f3e;--ink: #e9edfa;--muted: #8a94b8;--line: #26314f;--accent: #7fa7ff;--accent-deep: #3d5fc4;--accent2: #e6b45c;--good: #4fb28a;--hard: #d49a58;--again: #d4685a;--gold: #ffd76a;--glow: rgba(127, 167, 255, .25);--btn-hi: #5b82e8;--hero-from: #24305e;--hero-to: #131a31;--hero-line: #33406b;--hero-muted: #aebadf;--heat1: #33406b;--heat2: #4a5f9e;--heat3: #6d8fe0;--heat4: #9db8ff;--input-bg: rgba(6, 10, 23, .55);--bar-bg: rgba(9, 14, 30, .88);--chip-bg: rgba(38, 49, 79, .6);--overlay: rgba(10, 12, 22, .5);--shadow: 0 4px 24px rgba(3, 5, 12, .45);--tabbar-h: 60px;--tabbar-total: calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px));--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .16s;--dur-med: .35s}html[data-theme=light]{color-scheme:light;--bg: #f4f2fb;--bg2: #ece8f7;--paper: #fdfcff;--paper2: #f5f2fc;--ink: #3a3454;--muted: #767091;--line: #e3ddf1;--accent: #7663c9;--accent-deep: #5d4ab8;--accent2: #a87b2e;--good: #2e8a63;--hard: #b0762e;--again: #bf5348;--gold: #a8801f;--glow: rgba(118, 99, 201, .16);--btn-hi: #8f7ce0;--hero-from: #7a68cf;--hero-to: #5c49b0;--hero-line: #9887dd;--hero-muted: #e6e1f9;--heat1: #ded6f4;--heat2: #bdabe9;--heat3: #9a82da;--heat4: #7663c9;--input-bg: rgba(255, 255, 255, .7);--bar-bg: rgba(250, 248, 255, .88);--chip-bg: rgba(118, 99, 201, .08);--overlay: rgba(58, 52, 84, .35);--shadow: 0 4px 20px rgba(93, 74, 184, .1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;overflow:hidden;overscroll-behavior:none}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);color:var(--ink);font-family:Georgia,Songti SC,serif;touch-action:manipulation}#root{height:100%;overflow-y:auto;overscroll-behavior-y:contain}button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse 120% 70% at 70% -10%,rgba(61,95,196,.16) 0%,transparent 60%),radial-gradient(ellipse 90% 60% at 15% 110%,rgba(230,180,92,.05) 0%,transparent 55%),linear-gradient(180deg,#081020 0%,var(--bg) 55%,#05070f 100%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(1px 1px at 22px 34px,rgba(233,237,250,.9) 50%,transparent 100%),radial-gradient(1px 1px at 128px 92px,rgba(157,184,255,.7) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 76px 150px,rgba(255,215,106,.55) 50%,transparent 100%),radial-gradient(1px 1px at 180px 41px,rgba(233,237,250,.55) 50%,transparent 100%),radial-gradient(1px 1px at 51px 205px,rgba(157,184,255,.45) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 211px 178px,rgba(233,237,250,.65) 50%,transparent 100%),radial-gradient(1px 1px at 158px 233px,rgba(255,215,106,.35) 50%,transparent 100%);background-size:240px 260px;animation:twinkle 7s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.55}to{opacity:1}}html[data-theme=light] body:before{background:radial-gradient(ellipse 120% 70% at 70% -10%,rgba(118,99,201,.12) 0%,transparent 60%),radial-gradient(ellipse 90% 60% at 15% 110%,rgba(168,123,46,.06) 0%,transparent 55%),linear-gradient(180deg,#f0ecfa 0%,var(--bg) 55%,#eee9f8 100%)}html[data-theme=light] body:after{background-image:radial-gradient(1.5px 1.5px at 22px 34px,rgba(118,99,201,.2) 50%,transparent 100%),radial-gradient(1px 1px at 128px 92px,rgba(118,99,201,.14) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 76px 150px,rgba(168,123,46,.12) 50%,transparent 100%),radial-gradient(1px 1px at 180px 41px,rgba(93,74,184,.12) 50%,transparent 100%),radial-gradient(1px 1px at 51px 205px,rgba(118,99,201,.1) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 211px 178px,rgba(93,74,184,.1) 50%,transparent 100%),radial-gradient(1px 1px at 158px 233px,rgba(168,123,46,.08) 50%,transparent 100%);animation:none;opacity:1}.shell{position:fixed;top:0;left:0;right:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden}@media all and (display-mode: standalone){html{overflow:visible}.shell{height:100vh}}.scroller{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.mapwrap{flex:1 1 auto;min-height:0;position:relative}.wrap{--wrap-pad-l: max(6px, env(safe-area-inset-left));--wrap-pad-r: max(6px, env(safe-area-inset-right));max-width:680px;margin:0 auto;min-height:100%;padding:calc(16px + env(safe-area-inset-top)) var(--wrap-pad-r) 28px var(--wrap-pad-l)}.stickybar{position:sticky;top:calc(var(--bar-top, 0px) + var(--stick-off, 0px) + env(safe-area-inset-top,0px));z-index:8;margin:-4px calc(-1 * var(--wrap-pad-r, 16px)) 12px calc(-1 * var(--wrap-pad-l, 16px));padding:8px 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--bar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.stickybar:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:calc(var(--bar-top, 0px) + var(--stick-off, 0px) + env(safe-area-inset-top,0px));background:var(--bar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transition:opacity .15s}.stickybar.stuck:before{opacity:1}.stickybar .backbtn{background:none;border:none;color:var(--ink);cursor:pointer;font-family:inherit;font-size:14px;padding:4px 2px;display:flex;align-items:center;gap:3px}.wrap-full{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.card{background:linear-gradient(165deg,var(--paper2) 0%,var(--paper) 55%);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.card.pressable{cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow .25s var(--ease-out),border-color .25s}.card.pressable:active{transform:scale(.977)}@media (hover: hover){.card.pressable:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:0 8px 30px var(--glow)}}.btn{font-family:inherit;cursor:pointer;border:none;border-radius:12px;font-size:15px;padding:12px 18px;transition:transform .18s var(--ease-spring),opacity .15s,box-shadow .25s,filter .2s;background:linear-gradient(135deg,var(--btn-hi),var(--accent-deep));color:#fff;box-shadow:0 2px 14px var(--glow)}.btn:active{transform:scale(.955)}@media (hover: hover){.btn:not(:disabled):hover{filter:brightness(1.08);box-shadow:0 4px 20px var(--glow)}}.btn:disabled{opacity:.5;cursor:default;box-shadow:none}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line);box-shadow:none}.btn-outline{background:transparent;color:var(--accent);border:1px solid var(--accent);box-shadow:none}.fade{animation:fadein .4s var(--ease-out)}@keyframes fadein{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.tab-enter{animation:tabEnter .4s var(--ease-out)}@keyframes tabEnter{0%{opacity:0;transform:translateY(12px) scale(.992)}to{opacity:1;transform:none}}.stash{visibility:hidden;height:0;overflow:hidden}.stagger>*{animation:fadein .45s var(--ease-out) both}.stagger>*:nth-child(2){animation-delay:45ms}.stagger>*:nth-child(3){animation-delay:.09s}.stagger>*:nth-child(4){animation-delay:.135s}.stagger>*:nth-child(5){animation-delay:.18s}.stagger>*:nth-child(6){animation-delay:.225s}.stagger>*:nth-child(7){animation-delay:.27s}.stagger>*:nth-child(8){animation-delay:.315s}.stagger>*:nth-child(n+9){animation-delay:.36s}.pop{animation:popin .3s cubic-bezier(.2,1.4,.4,1)}@keyframes popin{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}.glowpulse{animation:glowpulse 1.5s ease-in-out infinite alternate}@keyframes glowpulse{0%{filter:drop-shadow(0 0 5px var(--glow));transform:scale(1)}to{filter:drop-shadow(0 0 16px var(--glow));transform:scale(1.07)}}.hero-sheen{position:relative;overflow:hidden}.hero-sheen:after{content:"";position:absolute;top:-20%;bottom:-20%;left:-55%;width:42%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.16),transparent);transform:skew(-18deg);pointer-events:none;animation:sheen 5s var(--ease-out) infinite}@keyframes sheen{0%,55%{left:-55%}85%,to{left:135%}}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}input,textarea,select{font-family:inherit;color:var(--ink);background:var(--input-bg);border:1px solid var(--line);border-radius:10px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--glow)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}textarea{font-family:ui-monospace,monospace}.tabbar{flex:0 0 auto;z-index:90;background:var(--bar-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;height:var(--tabbar-total);padding-bottom:env(safe-area-inset-bottom);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tabbar button{flex:1;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:inherit;font-size:10.5px;color:var(--muted);padding:0;transition:color .2s}.tabbar button.active{color:var(--accent);font-weight:700}.tabbar button.active .ticon{filter:drop-shadow(0 0 6px var(--glow));transform:translateY(-2px) scale(1.12)}.tabbar .ticon{line-height:1;display:flex;transition:transform .3s var(--ease-spring)}.tabbar button:active .ticon{transform:scale(.82)}.opt{display:block;width:100%;text-align:left;font-family:inherit;cursor:pointer;background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:13px 16px;font-size:15.5px;color:var(--ink);margin-bottom:10px;transition:border-color .15s,background .15s,transform .08s}.opt:active{transform:scale(.985)}.opt.sel-correct{border-color:var(--good);background:color-mix(in srgb,var(--good) 14%,var(--paper));animation:correctpop .5s var(--ease-spring)}.opt.sel-wrong{border-color:var(--again);background:color-mix(in srgb,var(--again) 14%,var(--paper))}.opt.reveal{border-color:var(--good)}.opt:disabled{cursor:default}@keyframes correctpop{0%{transform:scale(1);box-shadow:0 0 color-mix(in srgb,var(--good) 45%,transparent)}40%{transform:scale(1.025)}to{transform:scale(1);box-shadow:0 0 0 14px transparent}}.shake{animation:shake .4s}@keyframes shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.pbar{height:6px;background:var(--line);border-radius:4px;overflow:hidden}.pbar>div{height:100%;border-radius:4px;transition:width .5s var(--ease-out);background:linear-gradient(90deg,var(--accent-deep),var(--accent));box-shadow:0 0 8px var(--glow);position:relative;overflow:hidden}.pbar>div:after{content:"";position:absolute;top:0;bottom:0;left:0;width:46%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);animation:barshine 2.6s linear infinite}@keyframes barshine{0%{transform:translate(-110%)}to{transform:translate(340%)}}.map-overlay{position:absolute;pointer-events:none;top:0;right:0;bottom:0;left:0}.map-overlay>*{pointer-events:auto}.classic-prose{font-size:17px;line-height:1.95;letter-spacing:.01em}.classic-para{margin:0 0 1.05em;text-indent:1.5em}.classic-para.first{text-indent:0}.classic-para.first:first-letter{float:left;font-size:3.1em;line-height:.82;padding:5px 8px 0 0;color:var(--accent2);font-family:Georgia,Songti SC,serif}.classic-sent{border-radius:4px;transition:background .25s}.classic-sent.active{background:var(--glow);box-shadow:0 0 0 3px var(--glow)}.classic-title{text-align:center;font-size:19px;font-weight:700;line-height:1.45;margin:4px 0 2px;font-family:Georgia,Songti SC,serif}.classic-fleuron{text-align:center;color:var(--accent2);font-size:15px;letter-spacing:8px;margin:6px 0 14px;opacity:.8}.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;background:var(--chip-bg);color:var(--muted);border:1px solid var(--line);padding:4px 10px;border-radius:20px}@keyframes auraBreathe{0%,to{opacity:.78;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}@keyframes auraFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-1.6px)}}@keyframes auraOrbit{to{transform:rotate(360deg)}}@keyframes auraBlink{0%,92%,to{transform:scaleY(1)}96%{transform:scaleY(.12)}}@keyframes auraTalk{0%{transform:scaleY(.55)}to{transform:scaleY(1.15)}}@keyframes auraDot{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@media (prefers-reduced-motion: reduce){.aura-face *{animation:none!important}body:after{animation:none!important;opacity:1}.hero-sheen:after,.pbar>div:after{animation:none!important}.glowpulse{animation:none!important}.fade,.pop,.stagger>*,.tab-enter,.opt.sel-correct,.shake{animation-duration:.01ms!important;animation-delay:0ms!important}.card.pressable,.btn,.opt,.tabbar .ticon{transition-duration:.01ms!important}}
