:root{--serif:"Cambria", "Georgia", "Times New Roman", serif;--cjk:"STZhongsong", "STSong", "Noto Serif SC", "Songti SC", "SimSun", serif;--cjk-kai:"STKaiti", "STZhongsong", "STSong", "SimSun", serif;--cjk-fs:"STFangsong", "STSong", "SimSun", serif;--mech:"Courier New", "Courier", "Lucida Console", monospace;--paper:#13100c;--paper-raised:#191510;--paper-edge:#0c0a07;--ink:#e6ddd0;--ink-2:#bfb29c;--ink-3:#857864;--ink-4:#504840;--amber:#b8904f;--amber-ink:#d9b47a;--danger:#a85a40;--rule:#e6ddd01a;--rule-strong:#e6ddd033;--ease:cubic-bezier(.22, .61, .36, 1);--t-quick:.2s;--t-slow:.86s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;font-optical-sizing:auto}html,body,#root{width:100%;height:100%;margin:0}body{font-family:var(--cjk);color:var(--ink);background:var(--paper-edge);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow:hidden}.app{position:fixed;inset:0}.app canvas{touch-action:none;display:block}.boot{background:var(--paper-edge);pointer-events:none;place-items:center;animation:.6s forwards fade-out;display:grid;position:absolute;inset:0}.boot-text{font-family:var(--mech);color:var(--ink-3);letter-spacing:.24em;text-transform:uppercase;font-size:.78rem}@keyframes fade-out{to{opacity:0}}.overlay{pointer-events:auto;align-items:center;display:flex;position:absolute;inset:0}.enter-overlay{background:radial-gradient(80% 100% at 20% 40%,#181310e6 0%,#0000 70%),radial-gradient(120% 80% at 80% 80%,#05070a73 0%,#0000 60%),linear-gradient(100deg,#0a0806f2 0%,#0a0806c7 42%,#06070c24 100%)}.enter-card{width:100%;max-width:560px;padding:0 0 0 max(60px,8vw)}.enter-card>*{opacity:0;animation:entry-rise var(--t-slow) var(--ease) forwards;transform:translateY(10px)}.enter-card>:first-child{animation-delay:60ms}.enter-card>:nth-child(2){animation-delay:.18s}.enter-card>:nth-child(3){animation-delay:.28s}.enter-card>:nth-child(4){animation-delay:.4s}.enter-card>:nth-child(5){animation-delay:.54s}.enter-card>:nth-child(6){animation-delay:.68s}.enter-card>:nth-child(7){animation-delay:.8s}@keyframes entry-rise{to{opacity:1;transform:none}}.brand-eyebrow{font-family:var(--cjk-fs);letter-spacing:.28em;color:var(--ink-3);margin:0 0 18px;font-size:.82rem;display:block}.brand-xl{font-family:var(--cjk);letter-spacing:.06em;color:var(--ink);text-shadow:0 1px #000000f2,1px 0 #0006;margin:0;font-size:clamp(4.5rem,13vw,8rem);font-weight:400;font-stretch:100%;line-height:1}.enter-rule{background:var(--amber);opacity:.55;width:64px;height:1px;margin:24px 0 0}.enter-desc{font-family:var(--cjk-kai);color:var(--ink-2);text-indent:2em;max-width:26em;margin:22px 0 0;font-size:.97rem;line-height:2.1}.brand-sub{font-family:var(--cjk-fs);letter-spacing:.16em;color:var(--ink-4);margin-top:28px;font-size:.72rem;display:block}.enter-btn{font-family:var(--cjk);letter-spacing:.12em;color:var(--ink);cursor:pointer;border:none;border-bottom:1px solid var(--rule-strong);transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);background:0 0;border-radius:0;margin-top:36px;padding:4px 0;font-size:1.05rem;font-weight:400;display:inline-block;position:relative}.enter-btn:after{content:"";background:var(--amber-ink);height:1px;transition:right var(--t-quick) var(--ease);position:absolute;bottom:-1px;left:0;right:100%}.enter-btn:hover{color:var(--amber-ink);border-color:#0000}.enter-btn:hover:after{right:0}.enter-hint{font-family:var(--cjk-fs);letter-spacing:.1em;color:var(--ink-4);margin-top:14px;font-size:.72rem}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.crosshair-wrap{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair{width:20px;height:20px;transition:width var(--t-quick) var(--ease), height var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);background:0 0;border:1px solid #e6ddd04d;border-radius:50%;margin:0 auto;position:relative}.crosshair.spotted{border-color:#e7ded1a8}.crosshair.active{border-color:var(--amber);width:12px;height:12px}.crosshair.active:before{content:"";background:var(--amber);width:1px;height:4px;position:absolute;top:-7px;left:50%;transform:translate(-50%)}.crosshair.active:after{content:"";background:var(--amber);width:1px;height:4px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)}.crosshair-wrap .ch-tick-lr{pointer-events:none;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair.active~.ch-tick-lr{display:block}.ch-tick-lr:before,.ch-tick-lr:after{content:"";background:var(--amber);width:4px;height:1px;position:absolute;top:-1px}.ch-tick-lr:before{right:9px}.ch-tick-lr:after{left:9px}.reticle-label{text-align:center;opacity:0;animation:fade-in var(--t-quick) var(--ease) forwards;margin-top:26px}.reticle-label.far .rl-zone{color:var(--ink-3)}.reticle-label.far .rl-hint{color:var(--ink-4)}.reticle-label .rl-zone{font-family:var(--cjk);color:var(--ink);text-shadow:0 1px 6px #000000e6,0 0 20px #000000b3;font-size:.9rem;display:block}.reticle-label .rl-hint{font-family:var(--mech);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);text-shadow:0 1px 6px #000000e6;margin-top:4px;font-size:.62rem;display:block}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.controls-hint{font-family:var(--mech);letter-spacing:.06em;color:var(--ink-4);text-shadow:0 1px 6px #000c;pointer-events:none;white-space:nowrap;font-size:.7rem;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.notice{background:var(--paper-raised);border:1px solid var(--rule-strong);font-family:var(--mech);letter-spacing:.04em;color:var(--ink-2);pointer-events:none;border-radius:2px;padding:6px 16px;font-size:.78rem;position:absolute;top:56px;left:50%;transform:translate(-50%)}.back{cursor:pointer;background:0 0;border:none;border-radius:0;align-items:baseline;gap:7px;padding:4px 0;display:flex;position:absolute;top:22px;right:24px}.back-chevron{font-family:var(--serif);color:var(--ink-4);transition:color var(--t-quick) var(--ease);font-size:1rem;line-height:1}.back-label{font-family:var(--cjk-fs);letter-spacing:.06em;color:var(--ink-3);border-bottom:1px solid var(--rule);transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);padding-bottom:1px;font-size:.82rem}.back-keycap{font-family:var(--mech);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);border:1px solid var(--rule);transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);border-radius:2px;padding:1px 4px 2px;font-size:.6rem}.back:hover .back-chevron,.back:hover .back-label{color:var(--amber-ink)}.back:hover .back-label{border-bottom-color:var(--amber-ink)}.back:hover .back-keycap{color:var(--amber-ink);border-color:var(--amber)}.focus-backdrop{z-index:1;cursor:default;background:0 0;position:absolute;inset:0}.dock{z-index:2;width:min(400px,94vw);animation:panel-enter var(--t-slow) var(--ease) both;display:flex;position:absolute;top:0;bottom:0;left:0}.dock.right{left:auto;right:0}@keyframes panel-enter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}.dock.right{animation-name:panel-enter-right}@keyframes panel-enter-right{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.panel{background: linear-gradient(to bottom, #0000002e 0%, transparent 12%),  linear-gradient(to top, #00000038 0%, transparent 18%),  repeating-linear-gradient(90deg, transparent 0px, transparent 3px, #00000005 3px, #00000005 4px),  linear-gradient(175deg, var(--paper-raised) 0%, var(--paper) 60%, var(--paper-edge) 100%);border-right:1px solid var(--rule);flex-direction:column;width:100%;padding:0;display:flex;overflow:hidden;box-shadow:4px 0 40px -8px #000000a6}.panel-masthead{border-bottom:1px solid var(--rule);flex:none;padding:48px 32px 0 44px}.panel-eyebrow{font-family:var(--cjk-fs);letter-spacing:.24em;color:var(--ink-3);margin:0 0 10px;font-size:.72rem}.panel-title{font-family:var(--cjk);letter-spacing:.08em;color:var(--ink);margin:0 0 20px;font-size:1.5rem;font-weight:400;line-height:1.2}.panel-body{scrollbar-width:thin;scrollbar-color:var(--ink-4) transparent;flex-direction:column;flex:1;gap:20px;padding:24px 32px 36px 44px;display:flex;overflow-y:auto}.panel-body::-webkit-scrollbar{width:2px}.panel-body::-webkit-scrollbar-thumb{background:var(--ink-4)}.panel-hint{font-family:var(--cjk-kai);color:var(--ink-3);border-left:2px solid #b8904f4d;margin:0;padding-left:10px;font-size:.88rem;line-height:1.9}textarea,input[type=text],input:not([type]){width:100%;font-family:var(--cjk);color:var(--ink);border:none;border-bottom:1px solid var(--rule);resize:vertical;transition:border-color var(--t-quick) var(--ease);background:0 0;border-radius:0;outline:none;padding:0 0 8px;font-size:1rem;line-height:1.9}textarea{max-height:40vh;overflow-y:auto}.book-textarea{min-height:13.3em}textarea::placeholder,input::placeholder{color:var(--ink-4);font-style:italic;font-family:var(--cjk-kai)}textarea:focus,input:focus{border-bottom-color:var(--amber)}input[type=color]{border:1px solid var(--rule-strong);cursor:pointer;background:0 0;border-radius:2px;width:26px;height:20px;padding:1px}.field{flex-direction:column;gap:6px;display:flex}.field>span{font-family:var(--mech);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);font-size:.66rem}.row{flex-wrap:wrap;align-items:baseline;gap:18px;display:flex}.error{font-family:var(--mech);color:var(--danger);font-size:.76rem}button{font-family:var(--mech);letter-spacing:.08em;color:var(--ink-3);cursor:pointer;transition:color var(--t-quick) var(--ease);background:0 0;border:none;border-radius:0;padding:0;font-size:.76rem;font-weight:400}button:disabled{opacity:.3;cursor:default}button.primary{font-family:var(--cjk);letter-spacing:.08em;color:var(--ink);border-bottom:1px solid var(--rule-strong);padding-bottom:2px;font-size:.9rem;position:relative}button.primary:after{content:"";background:var(--amber-ink);height:1px;transition:right var(--t-quick) var(--ease);position:absolute;bottom:-1px;left:0;right:100%}button.primary:hover:not(:disabled){color:var(--amber-ink);border-bottom-color:#0000}button.primary:hover:not(:disabled):after{right:0}button.secondary{font-family:var(--cjk-fs);letter-spacing:.06em;color:var(--ink-3);border-bottom:1px solid #0000;padding-bottom:2px;font-size:.82rem}button.secondary:hover:not(:disabled){color:var(--ink-2);border-bottom-color:var(--rule-strong)}button.danger{font-family:var(--cjk-fs);letter-spacing:.06em;color:var(--ink-4);transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);border-bottom:1px solid #0000;padding-bottom:2px;font-size:.82rem}button.danger:hover:not(:disabled){color:var(--danger);border-bottom-color:#a85a4059}button.chip{font-family:var(--mech);letter-spacing:.1em;color:var(--ink-3);background:0 0;border-bottom:1px solid #0000;border-radius:0;padding:2px 0;font-size:.74rem}button.chip.active{color:var(--amber-ink);border-bottom-color:var(--amber)}button.chip:hover:not(.active){color:var(--ink-2)}button.link{text-align:left;color:var(--ink-3);background:0 0;border:none;flex:1;padding:0;font-size:.76rem}button.link:hover{color:var(--ink)}button.icon{color:var(--ink-3);background:0 0;border:none;padding:2px 6px}button.icon:hover{color:var(--ink)}.list{flex-direction:column;display:flex}.list-head{font-family:var(--mech);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--rule);margin-bottom:0;padding-bottom:10px;font-size:.66rem}.empty{font-family:var(--cjk-kai);color:var(--ink-4);padding:16px 0;font-size:.85rem}.list-item{text-align:left;border:none;border-bottom:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:0;align-items:baseline;gap:10px;width:100%;padding:9px 0 9px 12px;transition:none;display:flex;position:relative}.list-item:before{content:"";background:var(--amber);opacity:0;width:1px;transition:opacity var(--t-quick) var(--ease);position:absolute;top:11px;bottom:11px;left:0}.list-item:hover:before,.list-item.active:before{opacity:1}.list-item .title{font-family:var(--cjk);letter-spacing:.02em;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;transition:color var(--t-quick) var(--ease);flex:1;font-size:.92rem;overflow:hidden}.list-item:hover .title{color:var(--ink)}.list-item.active .title{color:var(--amber-ink)}.list-item .date{font-family:var(--mech);letter-spacing:.06em;color:var(--ink-4);white-space:nowrap;flex:none;font-size:.65rem}.list-item .tag{font-family:var(--mech);letter-spacing:.1em;color:var(--ink-4);white-space:nowrap;flex:none;font-size:.65rem}.list-item.active .tag{color:var(--amber)}.dock-controls{pointer-events:auto;flex-direction:column;align-items:flex-start;gap:7px;max-width:72vw;display:flex;position:absolute;bottom:16px;left:max(16px,2vw)}.dock-row{flex-wrap:wrap;align-items:center;gap:7px 12px;display:flex}.dock-row .ctl-divider{margin:0 2px}.ctl-divider{background:var(--rule);flex:none;width:1px;height:12px;margin:0 12px}.ctl{font-family:var(--mech);letter-spacing:.08em;color:var(--ink-3);white-space:nowrap;transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);background:0 0;border:none;border-bottom:1px solid #0000;border-radius:0;padding:0;font-size:.74rem}.ctl:hover{color:var(--ink-2);border-bottom-color:var(--rule)}.ctl.on{color:var(--amber-ink);border-bottom-color:var(--amber);background:0 0}.ctl.on:hover{border-bottom-color:var(--amber-ink)}.ctl.lead{font-family:var(--cjk);letter-spacing:.14em;color:var(--ink-2);border-bottom-color:var(--rule);font-size:.92rem}.ctl.lead:hover{color:var(--amber-ink);border-bottom-color:var(--amber)}.ctl.lead:disabled{color:var(--ink-4);cursor:default;border-bottom-color:#0000}.mood-eyebrow{font-family:var(--mech);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);white-space:nowrap;cursor:default;font-size:.62rem}.moods{align-items:center;gap:8px;display:flex}.now-playing{border-bottom:1px solid var(--rule);align-items:center;gap:16px;padding:16px 0;display:flex}.np-disc{background:#0c0a08;border:1px solid #e6ddd01f;border-radius:50%;flex:none;width:40px;height:40px;position:relative;box-shadow:inset 0 0 0 8px #0c0a08,inset 0 0 0 10px #e6ddd00a,inset 0 0 0 12px #0c0a08,inset 0 0 0 14px #e6ddd008,inset 0 0 0 16px #0c0a08}.np-disc:after{content:"";background:#e6ddd01f;border-radius:50%;position:absolute;inset:44%}.now-playing.on .np-disc{animation:8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.np-meta{flex:1;min-width:0}.np-title{font-family:var(--cjk);letter-spacing:.04em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;overflow:hidden}.np-sub{font-family:var(--mech);letter-spacing:.06em;color:var(--ink-4);margin-top:3px;font-size:.64rem}.np-btn{white-space:nowrap}.np-controls{flex:none;align-items:center;gap:6px;display:flex}.np-skip{font-family:var(--mech);color:var(--ink-3);border:1px solid var(--rule);cursor:pointer;transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);background:0 0;border-radius:3px;padding:5px 7px;font-size:.9rem;line-height:1}.np-skip:hover{color:var(--amber-ink);border-color:var(--amber)}.zone-label{font-family:var(--mech);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);background:var(--paper);border:1px solid var(--rule-strong);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:2px;padding:3px 8px;font-size:.68rem}@media (width<=640px){.enter-card{padding-left:28px;padding-right:20px}.enter-overlay{align-items:center}.brand-xl{font-size:clamp(3.6rem,22vw,6rem)}.enter-desc{line-height:1.95}.controls-hint{font-size:.64rem}.dock{width:100vw}.panel-masthead{padding:44px 20px 0 28px}.panel-body{padding:20px 20px 28px 28px}}@media (prefers-reduced-motion:reduce){.enter-card>*{animation:entry-rise-no-motion var(--t-slow) var(--ease) forwards}@keyframes entry-rise-no-motion{0%{opacity:0}to{opacity:1;transform:none}}.dock{animation:panel-enter-no-motion var(--t-slow) var(--ease) both}@keyframes panel-enter-no-motion{0%{opacity:0}to{opacity:1}}.back,.now-playing.on .np-disc,.scope-overlay{animation:none}}.scope-overlay{pointer-events:none;animation:scope-in .76s var(--ease) both;position:absolute;inset:0}@keyframes scope-in{0%{opacity:0}to{opacity:1}}.scope-porthole{pointer-events:auto;cursor:crosshair;border-radius:50%;width:min(84vmin,760px);height:min(84vmin,760px);position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #03040af2,inset 0 0 60px 20px #000000b3}.scope-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.scope-vignette{pointer-events:none;background:radial-gradient(circle,#0000 46%,#03050c8c 78%,#020308e6 100%);border-radius:50%;position:absolute;inset:0}.scope-ring{pointer-events:none;border:2px solid #caa15a4d;border-radius:50%;position:absolute;inset:0;box-shadow:inset 0 0 0 6px #b8904f14,inset 0 0 22px 2px #caa15a1a}.scope-empty{text-align:center;width:70%;font-family:var(--cjk-kai);color:var(--ink-2);font-size:1rem;line-height:1.9;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scope-masthead{pointer-events:none;max-width:40vw;position:absolute;top:30px;left:max(40px,6vw)}.scope-eyebrow{font-family:var(--cjk-fs);letter-spacing:.26em;color:var(--ink-3);margin:0 0 8px;font-size:.78rem}.scope-title{font-family:var(--cjk);letter-spacing:.06em;color:var(--amber-ink);text-shadow:0 1px #000000e6;margin:0;font-size:clamp(1.4rem,3vw,2rem);font-weight:400}.scope-aim{font-family:var(--cjk-kai);color:var(--ink-2);margin:10px 0 0;font-size:.92rem}.scope-dial{pointer-events:auto;flex-direction:column;align-items:center;gap:12px;width:min(84vmin,760px);display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.scope-tide{font-family:var(--cjk-fs);letter-spacing:.1em;color:var(--ink-3);border:1px solid var(--rule);cursor:pointer;transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);background:#12100c80;border-radius:999px;padding:5px 16px;font-size:.8rem}.scope-tide.on{color:var(--amber-ink);border-color:var(--amber)}.scope-tide:hover{color:var(--amber-ink)}.scope-track{cursor:pointer;touch-action:none;width:100%;height:26px;position:relative}.scope-track-line{background:linear-gradient(90deg,#0000,#d9b47a59 12% 88%,#0000);height:1px;position:absolute;top:50%;left:0;right:0}.scope-handle{background:radial-gradient(circle at 40% 35%,#ffe9c2,#caa15a 70%);border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute;top:50%;box-shadow:0 0 10px 2px #ffb25780}.scope-t0,.scope-t1{font-family:var(--mech);letter-spacing:.08em;color:var(--ink-4);white-space:nowrap;font-size:.62rem;position:absolute;top:100%}.scope-t0{left:0}.scope-t1{right:0}.scope-hint{font-family:var(--cjk-fs);letter-spacing:.08em;color:var(--ink-4);margin:2px 0 0;font-size:.74rem}.scope-card{pointer-events:auto;background:linear-gradient(175deg, var(--paper-raised) 0%, var(--paper) 70%, var(--paper-edge) 100%);border:1px solid var(--rule-strong);width:min(360px,42vw);animation:scope-card-in .42s var(--ease) both;border-radius:3px;padding:22px 24px 20px;position:absolute;top:50%;right:max(40px,5vw);transform:translateY(-50%);box-shadow:0 20px 60px -12px #000c}@keyframes scope-card-in{0%{opacity:0;transform:translate(6px,-50%)}to{opacity:1;transform:translateY(-50%)}}.scope-card-date{font-family:var(--mech);letter-spacing:.14em;color:var(--ink-3);margin-bottom:10px;font-size:.66rem}.scope-card-title{font-family:var(--cjk);color:var(--ink);margin:0 0 12px;font-size:1.2rem;font-weight:400}.scope-card-body{font-family:var(--cjk-kai);color:var(--ink-2);white-space:pre-wrap;max-height:46vh;margin:0 0 18px;font-size:.98rem;line-height:1.95;overflow-y:auto}.scope-card-close{font-family:var(--cjk-fs);letter-spacing:.08em;color:var(--ink-3);border:1px solid var(--rule);cursor:pointer;transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);background:0 0;border-radius:2px;padding:6px 14px;font-size:.82rem}.scope-card-close:hover{color:var(--amber-ink);border-color:var(--amber)}@media (width<=720px){.scope-masthead{max-width:70vw}.scope-card{width:min(88vw,360px);top:auto;bottom:120px;right:50%;transform:translate(50%)}@keyframes scope-card-in{0%{opacity:0}to{opacity:1}}}
