:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0b0d;--bg2:#131316;--bg3:#17171b;--line:#25252a;--line2:#35353c;--fg:#e8e6e1;--fg2:#9a9891;--fg3:#84827b;--spot:#e8c07d;--spot2:#a37f48;--spot-soft:#bea36b;--warn:#e08d6a;--warn-bg:#e08d6a1f;--ok:#6fae7f;--qr-bg:#fff;--on-spot:#17140e;--spot-hover:#f0cd91;--on-glow:var(--fg);--glow-wash:#e8c07d1f;--mask:#060608db;--scroll:#2c2c32;--scroll-h:#3a3a42;--book-page:#0f0f12;--book-page2:#121116;--book-cover:#15141a;--book-turn:linear-gradient(100deg, #17161c, #100f14 70%);--book-spine:linear-gradient(to right, #08080a, #2a2831 45%, #08080a);--book-thick:repeating-linear-gradient(to bottom, #29272f 0 1px, #121118 1px 2.6px);--book-edge:repeating-linear-gradient(to bottom, #2c2a33 0 1px, #131218 1px 2.8px);--serif:"Songti SC", "STSongti-SC", "STSong", "SimSun", "Noto Serif SC", Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--shadow-sm:0 1px 2px #0000004d, 0 1px 6px #0000002e;--shadow:0 4px 12px #00000059, 0 2px 4px #0003;--shadow-lg:0 12px 40px #00000080, 0 4px 12px #0000004d;--shadow-glow:0 0 0 1px var(--spot2), 0 0 20px var(--glow-wash);--fs-xs:11.5px;--fs-sm:13px;--fs-base:15px;--fs-md:16.5px;--fs-h3:19px;--fs-h2:24px;--fs-h1:34px;--fs-display:46px;--fs-lg:21px;--fs-xl:31px;--fs-2xl:44px;--fs-3xl:56px;--r-sm:6px;--r:12px;--r-lg:18px;--sp-1:6px;--sp-2:12px;--sp-3:18px;--sp-4:28px;--sp-5:44px;--sp-6:72px;--lh-tight:1.25;--lh-snug:1.5;--lh-body:1.8;--lh-loose:2;--ls-1:.02em;--ls-2:.08em;--ls-3:.14em;--ls-4:.18em;--dur:.18s;--maxw-modal:388px;--maxw-narrow:480px;--maxw-read:690px;--maxw:1120px;--navh:58px;--anchor-gap:80px;--open:0;--tilt:0;--mx:0;--my:0}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f2ea;--bg2:#fbf9f3;--bg3:#fff;--line:#e4ded1;--line2:#cdc5b2;--fg:#272419;--fg2:#5b5548;--fg3:#6f6a5c;--spot:#8a6520;--spot2:#775e2c;--spot-soft:#86702f;--warn:#a8481f;--warn-bg:#a8481f1a;--ok:#2f6b46;--on-spot:#fff9ec;--spot-hover:#7a5818;--on-glow:#4a3d1e;--glow-wash:#8a652024;--mask:#2e281c8c;--scroll:#d8d1c2;--scroll-h:#c6bda9;--book-page:#f9f6ee;--book-page2:#f1ecdf;--book-cover:#f6f2e8;--book-turn:linear-gradient(100deg, #fbf8f0, #f0ebdc 70%);--book-spine:linear-gradient(to right, #d9d2c1, #f2edde 45%, #d9d2c1);--book-thick:repeating-linear-gradient(to bottom, #ddd6c5 0 1px, #f7f3ea 1px 2.6px);--book-edge:repeating-linear-gradient(to bottom, #e4ddcb 0 1px, #f9f6ee 1px 2.8px);--shadow-sm:0 1px 2px #3c321e14, 0 1px 6px #3c321e0d;--shadow:0 4px 12px #3c321e1a, 0 2px 4px #3c321e0f;--shadow-lg:0 12px 40px #3c321e26, 0 4px 12px #3c321e14;--shadow-glow:0 0 0 1px var(--spot2), 0 0 20px var(--glow-wash)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:var(--fs-base);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;transition:background-color var(--dur) ease, color var(--dur) ease;overflow-x:clip}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:var(--lh-tight);letter-spacing:var(--ls-1);margin:0}p{margin:0}::selection{background:var(--spot2);color:var(--bg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:10px}@media (hover:hover){::-webkit-scrollbar-thumb:hover{background:var(--scroll-h)}}input,select,textarea{background:var(--bg3);color:var(--fg);border:1px solid var(--line2);border-radius:var(--r-sm);padding:8px 11px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--spot);outline:2px solid var(--spot);outline-offset:2px}input::placeholder,textarea::placeholder{color:var(--fg3);opacity:1}input:disabled,textarea:disabled,select:disabled{opacity:.55;cursor:not-allowed}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}.eyebrow{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);text-transform:uppercase;color:var(--fg3)}.rule{background:var(--line);border:0;height:1px;margin:0}:focus-visible{outline:2px solid var(--spot);outline-offset:2px}.tbl td,.tbl th,.hit .t a,.hit-tags,.rerr,.notes-msg{overflow-wrap:anywhere;word-break:break-word}.skip{z-index:200;position:absolute;top:0;left:-9999px}.skip:focus{background:var(--bg2);border:1px solid var(--spot);border-radius:var(--r-sm);color:var(--fg);font-size:var(--fs-sm);padding:10px 16px;top:14px;left:14px}main:focus,.adm-main:focus{outline:none}@keyframes fadeup{0%{opacity:0;transform:translateY(14px)}}.pagein{animation:.7s cubic-bezier(.22,1,.36,1) both fadeup}.rvx{opacity:0;transition:opacity .85s cubic-bezier(.22, 1, .36, 1) var(--d,0s), transform .85s cubic-bezier(.22, 1, .36, 1) var(--d,0s);transform:translateY(24px)}.rvx.on{opacity:1;transform:none}.hero .fadeup{animation:.9s cubic-bezier(.22,1,.36,1) both fadeup;animation-delay:var(--d,0s)}
.nav{z-index:60;height:var(--navh);border-bottom:1px solid var(--line);background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;position:sticky;top:0}.nav-in{max-width:var(--maxw);align-items:center;gap:var(--sp-4);height:100%;margin:0 auto;padding:0 28px;display:flex}.brand{flex:none;align-items:baseline;gap:10px;display:flex}.brand b{font-family:var(--serif);font-size:var(--fs-lg);letter-spacing:var(--ls-1);font-weight:600}.brand span{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--fg3)}.nav-links{font-size:var(--fs-base);gap:10px;margin-left:auto;display:flex}.nav-links a{color:var(--fg);opacity:.78;transition:color var(--dur), background var(--dur), opacity var(--dur);border-radius:99px;padding:7px 16px}@media (hover:hover){.nav-links a:hover{color:var(--fg);opacity:1;background:var(--bg2)}}.nav-links a:active{color:var(--fg);opacity:1;background:var(--bg2)}.nav-links a:focus-visible{outline:2px solid var(--spot);outline-offset:2px}.nav-links a.on{color:var(--spot);opacity:1;background:var(--glow-wash);box-shadow:inset 0 0 0 1px var(--spot2)}.who{margin-left:var(--sp-3);flex:none;align-items:center;gap:10px;display:flex}.theme-toggle{border:1px solid var(--line);width:32px;height:32px;color:var(--fg2);cursor:pointer;background:0 0;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;transition:color .18s,border-color .18s;display:inline-flex}@media (hover:hover){.theme-toggle:hover{color:var(--spot);border-color:var(--spot2)}}.theme-toggle svg{width:16px;height:16px}.who button{border:1px solid var(--line2);border-radius:var(--r);font-size:var(--fs-xs);color:var(--fg2);cursor:pointer;background:0 0;padding:5px 11px;transition:color .18s,border-color .18s}@media (hover:hover){.who button:hover{color:var(--spot);border-color:var(--spot2)}}.who .st{font-size:var(--fs-xs);color:var(--fg3);font-family:var(--mono);transition:color var(--dur)}.who .st.m{color:var(--spot)}.who .st.a{color:var(--fg2);text-decoration:none}@media (hover:hover){.who .st.a:hover{color:var(--spot)}}
.tabbar{display:none}@media (max-width:720px){.tabbar{z-index:70;height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--fg3);font-size:var(--fs-xs);letter-spacing:var(--ls-2);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;transition:color .18s;display:flex}.tabbar a i{width:21px;height:21px;display:block}.tabbar a i svg{width:100%;height:100%;display:block}.tabbar a.on{color:var(--spot)}.tabbar a:active{color:var(--spot2)}}
.btn{border:1px solid var(--line2);background:var(--bg2);color:var(--fg);border-radius:var(--r);font-size:var(--fs-base);cursor:pointer;transition:border-color var(--dur), color var(--dur), background var(--dur), transform var(--dur), filter var(--dur), box-shadow var(--dur);white-space:nowrap;letter-spacing:var(--ls-1);justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-weight:500;display:inline-flex}.btn:active{filter:brightness(1.05);transform:translateY(1px)}@media (hover:hover){.btn:hover{border-color:var(--spot2);color:var(--spot);box-shadow:var(--shadow-sm)}}.btn.p{background:linear-gradient(180deg, var(--spot), var(--spot2));border-color:var(--spot);color:var(--on-spot);font-weight:600}@media (hover:hover){.btn.p:hover{background:linear-gradient(180deg, var(--spot-hover), var(--spot));color:var(--on-spot);box-shadow:0 4px 16px var(--glow-wash)}}.btn.ghost{background:0 0}.btn.ghost:hover{background:var(--bg2)}.btn.sm{font-size:var(--fs-sm);padding:6px 13px}@media (hover:hover){.btn.danger:hover{border-color:var(--warn);color:var(--warn)}}.btn.arm{background:var(--warn);border-color:var(--warn);color:var(--on-spot);font-weight:600}@media (hover:hover){.btn.arm:hover{background:var(--warn);border-color:var(--warn);color:var(--on-spot);font-weight:600}}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--spot);outline-offset:2px;box-shadow:0 0 0 4px var(--glow-wash)}.chip:focus-visible{outline:2px solid var(--spot);outline-offset:2px}
.vol-head{border-bottom:1px solid var(--line);padding:54px 0 32px}.vol-head .en{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--fg3);margin-bottom:10px}.vol-head h1{font-size:var(--fs-xl)}.vol-head .pre{max-width:var(--maxw-read);color:var(--fg2);font-size:var(--fs-base);line-height:var(--lh-loose);margin-top:16px}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px}.card h3{font-size:var(--fs-md);margin-bottom:10px}.card p{color:var(--fg2);font-size:var(--fs-sm)}
.list{border-top:1px solid var(--line)}.art{border-bottom:1px solid var(--line);transition:background var(--dur);align-items:baseline;gap:14px;padding:12px 14px 12px 0;display:flex}@media (hover:hover){.art:hover{background:var(--bg2)}}.art .id{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);flex:none;width:32px}.art .tt{color:var(--fg2);font-size:var(--fs-base);flex:1;min-width:0}.art.free .tt{color:var(--fg)}.art .lk{font-size:var(--fs-xs);color:var(--fg3);text-align:right;flex:none;width:34px}
.chap{margin-top:40px}.chap-head{align-items:baseline;gap:var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line2);display:flex}.chap-head h2{font-size:var(--fs-md)}.chap-head h2 .chap-head-link{color:inherit;text-decoration:none}@media (hover:hover){.chap-head h2 .chap-head-link:hover{color:var(--spot)}}.chap-head .n{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);margin-left:auto}
.tag{border:1px solid var(--line2);font-size:var(--fs-xs);color:var(--fg2);white-space:nowrap;border-radius:100px;padding:3px 11px;display:inline-block}.chip{background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--fg2);cursor:pointer;padding:7px 13px;transition:color .18s,border-color .18s;display:inline-block}@media (hover:hover){.chip:hover{color:var(--spot);border-color:var(--spot2)}}.chips{flex-wrap:wrap;gap:9px;display:flex}.chips.gap-b{margin-bottom:14px}
.tbl{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;padding:8px 10px}.tbl th{font-size:var(--fs-xs);color:var(--fg3);font-weight:600}.tbl td.k{color:var(--fg);white-space:nowrap}.tbl td.d{color:var(--fg3);font-size:var(--fs-xs);font-family:var(--mono)}.tbl td.v{font-family:var(--mono);color:var(--spot);white-space:nowrap;text-align:right}.tbl tr:last-child td{border-bottom:0}
.radar{width:100%;display:block}.fillg{transform-origin:50%;opacity:0;transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .6s;transform:scale(.05)}.fillg.on{opacity:1;transform:scale(1)}.radar .axis{stroke:var(--line)}.radar .dot{fill:var(--spot)}.radar .lab{fill:var(--fg3)}.radar .lab-num{fill:var(--spot)}
.srcs{max-width:var(--maxw-read);padding-top:var(--sp-3);border-top:1px solid var(--line);margin:28px 0 0}.srcs h3,.srcs h4{font-size:var(--fs-sm);color:var(--fg2);font-family:var(--sans);margin-bottom:10px;font-weight:600}.srcs li{font-size:var(--fs-sm);color:var(--fg3);line-height:var(--lh-body);margin-bottom:4px}.srcs ul{margin:0;padding-left:16px}
.lock{border:1px dashed var(--line2);border-radius:var(--r);text-align:center;max-width:620px;margin:34px auto;padding:40px 34px}.lock.in-flow{margin:28px auto}.lock h2,.lock h3{font-size:var(--fs-lg);color:var(--spot);margin-bottom:var(--sp-2)}.lock p{color:var(--fg2);font-size:var(--fs-base);max-width:430px;margin:0 auto 22px}.lock-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
.tiers{grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px;display:grid}.tier{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r-lg);transition:border-color var(--dur), transform var(--dur), box-shadow var(--dur);flex-direction:column;padding:28px 24px;display:flex}.tier.hot{border-color:var(--spot2);background:var(--glow-wash);box-shadow:var(--shadow-glow);position:relative}@media (hover:hover){.tier:hover{border-color:var(--spot2);box-shadow:var(--shadow);transform:translateY(-3px)}.tier.hot:hover{box-shadow:var(--shadow-glow), var(--shadow-lg)}}.tier .nm{font-size:var(--fs-base);color:var(--fg2);font-weight:500}.tier .pr{font-family:var(--serif);font-size:var(--fs-2xl);color:var(--fg);margin:14px 0 6px;line-height:1}.tier.hot .pr{color:var(--spot)}.tier .pr em{font-style:normal;font-size:var(--fs-sm);color:var(--fg3);font-family:var(--sans);margin-left:6px}.tier .pr .was{font-size:var(--fs-md);color:var(--fg3);font-family:var(--sans);margin-left:10px;font-weight:400}.tier .badge.early{margin-left:var(--sp-1);color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.tier .lim{font-size:var(--fs-sm);color:var(--warn);margin-top:var(--sp-2)}.tier ul{flex:1;margin:20px 0 0;padding:0;list-style:none}.tier li{font-size:var(--fs-base);color:var(--fg2);border-top:1px solid var(--line);line-height:var(--lh-snug);gap:10px;padding:8px 0;display:flex}.tier li .m{color:var(--spot);flex:none;width:12px}.tier li.no,.tier li.no .m{color:var(--fg3)}.tier li .x{color:var(--fg3);font-size:var(--fs-xs);flex:none;margin-left:auto}.tier .btn{width:100%;font-size:var(--fs-base);margin-top:24px;padding:10px 20px}.tier .badge{font-size:var(--fs-xs);color:var(--spot);border:1px solid var(--spot2);border-radius:var(--r-sm);letter-spacing:var(--ls-2);margin-left:auto;padding:3px 9px;font-weight:600}
.searchbox{max-width:var(--maxw-read);gap:10px;margin:26px 0 8px;display:flex}.sb-inputwrap{flex:1;display:flex;position:relative}.searchbox input{background:var(--bg3);border:1px solid var(--line2);border-radius:var(--r-sm);font-size:var(--fs-base);flex:1;padding:11px 34px 11px 14px}.searchbox input:focus{border-color:var(--spot2)}.searchbox input::placeholder{color:var(--fg3)}.search-clear{color:inherit;font-size:var(--fs-md);cursor:pointer;background:0 0;border:none;padding:4px;line-height:1;position:absolute;top:50%;right:10px;transform:translateY(-50%)}@media (hover:hover){.search-clear:hover{color:var(--spot)}}.sb-skel{gap:var(--sp-2);max-width:var(--maxw-read);flex-direction:column;margin:22px 0 8px;display:flex}.sb-skel i{border-radius:var(--r-sm);background:var(--bg3);height:14px;animation:1.2s ease-in-out infinite sb-skel-pulse;display:block}.sb-skel i:nth-child(2){width:82%;animation-delay:.15s}.sb-skel i:nth-child(3){width:64%;animation-delay:.3s}@keyframes sb-skel-pulse{0%,to{opacity:.5}50%{opacity:1}}.hit{border-bottom:1px solid var(--line);padding:20px 0}.hit .t{font-family:var(--serif);font-size:var(--fs-md);margin-bottom:8px}@media (hover:hover){.hit .t a:hover{color:var(--spot)}}.hit .t .id{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);margin-right:8px}.hit .d{font-size:var(--fs-sm);color:var(--fg2);line-height:var(--lh-body);max-width:var(--maxw-read)}.hit .w{font-size:var(--fs-xs);color:var(--fg3);font-family:var(--mono);margin-top:9px}.hit mark.hl{color:var(--spot);background:0 0;padding:0;font-weight:600}.note{color:var(--fg3);font-size:var(--fs-sm);padding:18px 0}
.btn.ghost.p{background:var(--spot);border-color:var(--spot);color:var(--on-spot)}
.foot{border-top:1px solid var(--line);margin-top:var(--sp-6);color:var(--fg3);font-size:var(--fs-base);padding:44px 0 64px}.foot-in{max-width:var(--maxw);flex-wrap:wrap;gap:28px;margin:0 auto;padding:0 28px;display:flex}.foot-in .r{font-family:var(--mono);font-size:var(--fs-sm);margin-left:auto}.foot-links{gap:var(--sp-3);display:flex}.foot-links a{transition:color var(--dur)}@media (hover:hover){.foot-links a:hover{color:var(--spot)}}
@media (max-width:900px){.tiers{grid-template-columns:repeat(2,1fr)}.tier{grid-column:auto}}@media (max-width:720px){.nav-in{gap:14px;padding:0 18px}.nav-links{display:none}.nav-in{justify-content:space-between}.brand span{font-size:var(--fs-xs);letter-spacing:var(--ls-1)}.site-main{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.btn{font-size:var(--fs-sm);padding:9px 16px}.who{margin-left:auto}.wrap,.foot-in{padding:0 18px}.vol-head{padding:36px 0 24px}.tiers{grid-template-columns:repeat(2,1fr);gap:12px}.tier{grid-column:auto;padding:20px 14px}.tier .pr{font-size:var(--fs-xl)}.tier li{font-size:var(--fs-sm);padding:6px 0}.tbl td.d{display:none}.foot{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}}
.nf-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:40px 18px;display:flex}.nf-card{width:100%;max-width:var(--maxw-narrow);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg2);text-align:center;padding:40px 34px 34px}.nf-code{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);text-transform:uppercase;color:var(--spot);margin-bottom:14px}.nf-card h1{font-family:var(--serif);font-size:var(--fs-lg);color:var(--fg);margin:0 0 14px}.nf-card p{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--fg2);margin:0}.nf-links{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px;display:flex}.nf-card .nf-ref{margin-top:var(--sp-3);font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);word-break:break-all}
.md-pre{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);line-height:var(--lh-snug);font-size:var(--fs-sm);margin:18px 0;padding:14px 16px;overflow-x:auto}pre.md-pre code{font-family:var(--mono);font-size:inherit;color:var(--fg);background:0 0;border:none;border-radius:0;padding:0}.md-table-wrap{margin:18px 0;overflow-x:auto}.md-table{border-collapse:collapse;width:100%;font-size:var(--fs-base)}.md-table th,.md-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 12px}.md-table th{background:var(--bg2);color:var(--fg2);white-space:nowrap;font-weight:600}.md-img{border-radius:var(--r);max-width:100%;height:auto;margin:18px 0;display:block}
.session-lost{z-index:110;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r);max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.session-lost-text{font-size:var(--fs-sm);color:var(--fg)}.session-lost-act{align-items:center;gap:10px;display:inline-flex}.session-lost-login{padding:6px 14px}.session-lost-close{color:var(--fg3);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;padding:4px 2px}@media (hover:hover){.session-lost-close:hover{color:var(--fg)}}@media (max-width:720px){.session-lost{bottom:calc(64px + env(safe-area-inset-bottom))}}

.hero{border-bottom:1px solid var(--line);height:320vh;position:relative}.hero-stage{top:var(--navh);height:calc(100vh - var(--navh));align-items:center;padding:40px 28px;display:flex;position:sticky;overflow:hidden}.scrollhint{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--fg3);opacity:calc((1 - var(--open)) * .95);pointer-events:none;flex-direction:column;align-items:center;gap:7px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.scrollhint i{background:linear-gradient(var(--fg3), transparent);width:1px;height:26px;animation:1.7s ease-in-out infinite hintdrop;display:block}@keyframes hintdrop{0%{transform-origin:top;transform:scaleY(0)}55%{transform-origin:top;transform:scaleY(1)}to{transform-origin:bottom;transform:scaleY(0)}}.hero-in{width:100%;max-width:var(--maxw);grid-template-columns:1fr auto;align-items:center;gap:64px;margin:0 auto;display:grid}.hero-copy{z-index:2;position:relative}.hero-copy h1{font-size:var(--fs-3xl);letter-spacing:var(--ls-1);font-weight:600;line-height:1.2}.hero h1 .rv{vertical-align:bottom;margin:0 -3px;padding:0 3px;display:inline-block;overflow:hidden}.hero h1 .rv i{animation:.95s cubic-bezier(.22,1,.36,1) both rise;animation-delay:calc(var(--i) * 42ms);font-style:normal;display:inline-block;transform:translateY(110%)}@keyframes rise{to{transform:translateY(0)}}.hero h1 .sub{color:var(--fg2);text-wrap:balance;margin-top:.2em;font-size:.58em;font-weight:400;display:block}.hero .sub2{margin-top:var(--sp-3);color:var(--fg2);font-size:var(--fs-md);max-width:460px;line-height:var(--lh-loose)}.hero .acts{gap:var(--sp-2);flex-wrap:wrap;margin-top:36px;display:flex}.hero .acts .btn{font-size:var(--fs-md);padding:12px 28px}
.hero-art{--bw:252px;--bh:352px;perspective:1500px;transform:translate3d(calc(var(--mx,0) * -16px), calc(var(--my,0) * -12px), 0);flex:none;transition:transform .5s cubic-bezier(.22,1,.36,1);position:relative}.bspot{width:calc(var(--bw,280px) * 2.6);background:radial-gradient(ellipse at center, var(--glow-wash), transparent 66%);height:120px;opacity:calc(var(--open,0) * .95);pointer-events:none;position:absolute;bottom:-70px;left:50%;transform:translate(-50%)}.book{width:calc(var(--bw) * 2);height:var(--bh);transform-style:preserve-3d;transform:translateX(calc(var(--bw) * -.5 + var(--open) * var(--bw) * .5)) rotateX(calc(var(--open) * 10deg * (1 - var(--tilt)) + var(--tilt) * 45deg)) scale(calc(1 - var(--tilt) * .06));will-change:transform;position:relative}.book:before{content:"";background:linear-gradient(to bottom, #0000006b, transparent 60%), var(--book-thick);border-radius:0 0 7px 7px;height:9px;position:absolute;bottom:-9px;left:3px;right:3px}.bright,.bcover{width:50%;height:100%;position:absolute;top:0}.bright{background: linear-gradient(to right, #00000042, transparent 10%), linear-gradient(105deg, #0003, transparent 26%), var(--book-page);border:1px solid var(--line);border-radius:0 var(--r) var(--r) 0;border-left:none;padding:30px 25px;left:50%;overflow:hidden}.bcover{transform-origin:0;transform:rotateY(calc(var(--open) * -180deg));transform-style:preserve-3d;left:50%}.bface{backface-visibility:hidden;padding:30px 25px;position:absolute;inset:0;overflow:hidden}.bface.front{background: radial-gradient(130% 100% at 16% 0%, #ffffff24, transparent 40%),  linear-gradient(to right, #0000006b, transparent 13%),  linear-gradient(115deg, var(--glow-wash), transparent 36%), url(/covers/front-cover.svg) center / cover no-repeat, var(--book-cover);border:1px solid var(--line2);border-radius:0 var(--r) var(--r) 0;box-shadow:inset 0 1px #ffffff29,inset 1px 0 #ffffff17,inset 0 -2px 4px #00000073,inset -2px 0 4px #00000059,0 30px 52px #00000080,0 10px 20px #00000052}.bface.back{background: linear-gradient(to right, #0000003d, transparent 13%), linear-gradient(255deg, #00000038, transparent 30%), url(/covers/back-cover.svg) center / cover no-repeat, var(--book-page2);border:1px solid var(--line);border-radius:var(--r) 0 0 var(--r);border-left:none;transform:rotateY(180deg)}.spine{background: linear-gradient(to right, #00000080, #0000001a 30%, #ffffff24 50%, #0000001a 70%, #00000080), var(--book-spine);width:4px;opacity:calc(.35 + var(--open) * .85);border-radius:2px;position:absolute;top:0;bottom:-9px;left:calc(50% - 2px)}.bedge{background: linear-gradient(to right, #ffffff1a, transparent 40%), var(--book-edge);border-radius:0 4px 4px 0;width:8px;position:absolute;top:3px;bottom:3px;box-shadow:inset 0 0 5px #00000080,1px 1px 3px #0000004d}.bedge.r{right:-8px}.bedge.l{opacity:var(--open);border-radius:4px 0 0 4px;left:-8px}.bface .k{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--spot2);margin-bottom:16px}.bface .t{font-family:var(--serif);font-size:var(--fs-h1);line-height:var(--lh-tight);color:var(--fg)}.bface .u{background:var(--line2);height:1px;position:absolute;bottom:26px;left:25px;right:25px}.bface .m{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--fg3);position:absolute;bottom:12px;left:25px}.bleaf-title{font-family:var(--serif);font-size:var(--fs-md);color:var(--fg);margin-bottom:var(--sp-2)}.bleaf-body{font-size:var(--fs-xs);line-height:var(--lh-loose);color:var(--fg2)}.bleaf-body b{color:var(--spot);font-weight:600}.bright .bpage-in{opacity:clamp(0, calc((var(--open) - .5) * 3.2), 1);transition:opacity var(--dur) linear}@keyframes leafin{0%{opacity:0;transform:translate(12px)}}.leaf{animation:.45s cubic-bezier(.22,1,.36,1) both leafin}.bleaf-k{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--spot2);margin-bottom:10px}.bleaf-ft{margin-top:var(--sp-2);font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-2);color:var(--spot)}.bturn{transform-origin:0;width:50%;height:100%;transform-style:preserve-3d;background:var(--book-turn);border:1px solid var(--line);border-radius:0 var(--r) var(--r) 0;opacity:var(--open);pointer-events:none;z-index:4;border-left:none;animation:.85s cubic-bezier(.4,.05,.2,1) both pageturn;position:absolute;top:0;left:50%;box-shadow:-6px 0 18px #0006}@keyframes pageturn{0%{opacity:var(--open);transform:rotateY(0)}82%{opacity:var(--open)}to{opacity:0;transform:rotateY(-168deg)}}
.band{border-bottom:1px solid var(--line);--sp:1;padding:100px 0}.band-head{max-width:760px;margin-bottom:50px}.band-head .eyebrow{margin-bottom:var(--sp-3)}.band-head h2{font-size:var(--fs-xl);margin-bottom:18px;line-height:1.3}.band-head p{color:var(--fg2);font-size:var(--fs-md);line-height:var(--lh-loose)}.band .band-head{opacity:calc(.2 + var(--sp) * .8);transform:translateY(calc((1 - var(--sp)) * 30px))}.band .band-head .eyebrow{margin-bottom:2px;padding-bottom:10px;position:relative}.band .band-head .eyebrow:after{content:"";height:1px;width:calc(var(--sp) * 190px);background:linear-gradient(to right, var(--spot2), transparent);max-width:100%;position:absolute;bottom:0;left:0}
.vcard{opacity:calc(clamp(0, (var(--sp) - var(--i,0) * .1) * 2.6, 1) * .85 + .15);transform:translateY(calc((1 - clamp(0, (var(--sp) - var(--i,0) * .1) * 2.6, 1)) * 34px))}.adv{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.adv-col{border:1px solid var(--line);border-top:3px solid var(--spot2);border-radius:var(--r-lg);background:var(--bg);transition:background var(--dur), border-color var(--dur), transform var(--dur), box-shadow var(--dur);flex-direction:column;padding:32px 28px 28px;display:flex}@media (hover:hover){.adv-col:hover{background:var(--bg2);border-color:var(--spot2);box-shadow:var(--shadow);transform:translateY(-3px)}}.adv-k{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--spot2)}.adv-col>h3{font-size:var(--fs-h3);margin:10px 0 22px}.adv-li{gap:18px;margin:0;padding:0;list-style:none;display:grid}.adv-li>li{border-top:1px dashed var(--line);gap:7px;padding-top:18px;display:grid}.adv-li>li:first-child{border-top:none;padding-top:0}.adv-li b{font-size:var(--fs-md);color:var(--fg)}.adv-li span{color:var(--fg2);font-size:var(--fs-sm);line-height:var(--lh-body)}.vols{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.vcard{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg2);transition:border-color var(--dur), transform var(--dur), box-shadow var(--dur);flex-direction:column;padding:30px 26px;display:flex;position:relative;overflow:hidden}.vcard:before{content:"";background:linear-gradient(90deg, var(--spot2), transparent);opacity:0;height:3px;transition:opacity var(--dur);position:absolute;top:0;left:0;right:0}@media (hover:hover){.vcard:hover{border-color:var(--spot2);box-shadow:var(--shadow);transform:translateY(-3px)}.vcard:hover:before{opacity:1}}.vcard .en{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--fg3)}.vcard h3{font-size:var(--fs-h2);margin:14px 0 12px}.vcard p{color:var(--fg2);font-size:var(--fs-base);line-height:var(--lh-body);flex:1}.vcard .ft{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--line);font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);gap:10px;display:flex}.vcard .ft b{color:var(--spot);font-weight:600}

.post{padding-top:56px;padding-bottom:80px}.narwrap{max-width:var(--maxw-read);margin-top:34px}.meta{font-family:var(--mono);font-size:var(--fs-sm);color:var(--fg3);letter-spacing:var(--ls-1);margin-bottom:24px}@media (hover:hover){.meta a:hover{color:var(--spot)}}.post h1{font-size:var(--fs-h1);margin-bottom:24px;font-weight:600;line-height:1.3}.lead{font-size:var(--fs-md);color:var(--fg2);line-height:var(--lh-loose);border-bottom:1px solid var(--line);padding:20px 0 28px}.lead .sit-tags{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:inline-flex}.sect{margin-bottom:48px}.sect h2{font-size:var(--fs-h3);color:var(--spot);align-items:baseline;gap:12px;margin-bottom:18px;font-weight:600;display:flex}.sect h2:after{content:"";background:var(--line2,var(--line));flex:1;max-width:120px;height:1px}.sect p{font-size:var(--fs-md);line-height:var(--lh-loose);color:var(--fg);margin-bottom:16px}.sect strong{color:var(--spot-soft,var(--spot));font-weight:600}.sect ol,.sect ul{margin:0 0 16px;padding-left:24px}.sect li{font-size:var(--fs-md);line-height:var(--lh-loose);margin-bottom:var(--sp-2)}.sect blockquote{border-left:3px solid var(--spot2);color:var(--fg2);font-family:var(--serif);font-size:var(--fs-md);margin:0 0 18px;padding:8px 0 8px 20px}.sect code{font-family:var(--mono);background:var(--bg3);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px 6px;font-size:.88em}.pager{border-top:1px solid var(--line);gap:16px;margin-top:50px;padding-top:28px;display:flex}.pager a{border:1px solid var(--line);border-radius:var(--r);font-size:var(--fs-base);color:var(--fg2);transition:border-color var(--dur), color var(--dur), box-shadow var(--dur);flex:1;padding:18px 20px}@media (hover:hover){.pager a:hover{border-color:var(--spot2);color:var(--fg);box-shadow:var(--shadow-sm)}}.pager a span{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);margin-bottom:var(--sp-1);letter-spacing:var(--ls-2);display:block}.pager a.r{text-align:right}.note-box{border:1px solid var(--line2);border-left:3px solid var(--spot2);border-radius:0 var(--r) var(--r) 0;background:var(--bg2);font-size:var(--fs-base);color:var(--fg2);line-height:var(--lh-body);padding:22px 26px}.note-box b{color:var(--fg)}.fs-toggle{align-items:center;gap:6px;display:flex}.fs-toggle-label{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);margin-right:4px}.fs-toggle .btn.on{border-color:var(--spot);color:var(--spot)}:root[data-fs="0"] .sect p,:root[data-fs="0"] .sect li{font-size:var(--fs-base)}:root[data-fs="2"] .sect p,:root[data-fs="2"] .sect li{font-size:var(--fs-h3)}.read-progress{z-index:60;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0}.read-progress-fill{background:var(--spot);transform-origin:0;will-change:transform;height:100%;transform:scaleX(0)}.sect pre{position:relative}.code-copy{font-size:var(--fs-xs);color:inherit;border:1px solid var(--line);cursor:pointer;opacity:0;transition:opacity var(--dur);background:0 0;border-radius:6px;padding:2px 8px;position:absolute;top:8px;right:8px}.sect pre:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy:hover{border-color:var(--spot);color:var(--spot)}.sect img{cursor:zoom-in;border-radius:8px;max-width:100%;height:auto;margin:20px auto;display:block}.img-lightbox{z-index:1400;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:zoom-out;background:#0c0c0edb;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.img-lightbox-img{object-fit:contain;cursor:default;border-radius:10px;max-width:92vw;max-height:88vh;box-shadow:0 18px 60px #00000080}.img-lightbox-x{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #fff3;border-radius:50%;width:38px;height:38px;font-size:22px;line-height:1;position:fixed;top:18px;right:20px}.img-lightbox-x:hover{background:#ffffff38}
.dg{margin-top:44px}.dg .lb{font-family:var(--mono);font-size:var(--fs-sm);color:var(--fg3);letter-spacing:var(--ls-3);border-bottom:1px solid var(--line2);padding-bottom:12px;font-weight:500}.di{border-bottom:1px solid var(--line);padding:24px 0}.di .t{font-family:var(--serif);font-size:var(--fs-h3);margin-bottom:var(--sp-2);color:var(--fg)}.di .s{color:var(--spot2);font-size:var(--fs-base);margin-bottom:10px}.di .n{color:var(--fg2);font-size:var(--fs-base);line-height:var(--lh-loose);max-width:var(--maxw-read)}.di .src{font-family:var(--mono);font-size:var(--fs-sm);color:var(--fg3);margin-top:10px}
.lib{padding-top:46px}.lib-hero{max-width:var(--maxw-read);margin-bottom:34px}.lib-hero h1{font-size:var(--fs-display);margin:14px 0 16px}.lib-pre{color:var(--fg2);font-size:var(--fs-base);line-height:var(--lh-loose)}.lib-pre a{color:var(--spot);border-bottom:1px solid var(--spot2)}.lib-stats{flex-wrap:wrap;gap:30px;margin-top:26px;display:flex}.lib-stats div b{font-family:var(--serif);font-size:var(--fs-h2);color:var(--fg);display:block}.lib-stats div span{font-size:var(--fs-xs);color:var(--fg3)}.lib-search{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg2);margin-bottom:56px;padding:22px}
.ev{padding-top:50px}.ev-hero{max-width:var(--maxw-read);margin-bottom:44px}.ev-hero h1{font-size:var(--fs-display);margin:14px 0 18px}.ev-hero p{color:var(--fg2);font-size:var(--fs-md);line-height:var(--lh-loose);max-width:560px}.ev-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.ev-sec{margin-top:48px}.ev-h2{font-size:var(--fs-lg);margin-bottom:10px}.ev-sub{color:var(--fg2);font-size:var(--fs-md);line-height:var(--lh-loose);max-width:560px;margin-bottom:var(--sp-3)}.subbox{max-width:560px}.sub-in{flex-wrap:wrap;gap:10px;display:flex}.sub-in input{flex:1;min-width:220px}.sub-tip{font-size:var(--fs-xs);color:var(--fg3);line-height:var(--lh-body);margin-top:10px}.sub-ok{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--spot)}.sub-bad{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--warn)}.ev-grid .ev-k{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--spot2);margin-bottom:var(--sp-2)}.ev-grid.ev-how{grid-template-columns:repeat(4,1fr);gap:14px}.ev-grid.ev-how .card{padding:18px 16px}.ev-grid.ev-how .card h3{font-size:var(--fs-md)}@media (max-width:1024px){.ev-grid.ev-how{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.ev-grid.ev-how{grid-template-columns:1fr}}.ev-badges,.ev-tags{flex-wrap:wrap;gap:6px;margin:0 0 10px;display:flex}.ev-meta{color:var(--fg2);font-size:var(--fs-sm);margin:6px 0}.ev-meta b{color:var(--fg)}.ev-details{color:var(--fg2);font-size:var(--fs-sm);line-height:var(--lh-body)}.ev-cta{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg2);max-width:var(--maxw-read);margin:50px 0 64px;padding:32px 30px}.ev-cta p{color:var(--fg2);font-size:var(--fs-md);line-height:var(--lh-loose);margin-bottom:var(--sp-3)}
.joinflow{margin-top:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg2);grid-template-columns:1.1fr 1fr;gap:34px;padding:34px 32px;display:grid}.jf-l h2{font-size:var(--fs-h2);margin-bottom:20px}.jf-steps{gap:var(--sp-3);counter-reset:step;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.jf-steps li{counter-increment:step;grid-template-columns:34px 1fr;gap:14px;display:grid}.jf-steps li:before{content:counter(step);border:1px solid var(--spot2);width:34px;height:34px;font-family:var(--mono);font-size:var(--fs-sm);color:var(--spot);border-radius:50%;justify-content:center;align-items:center;display:flex}.jf-steps b{font-size:var(--fs-base);margin-bottom:4px;display:block}.jf-steps span{color:var(--fg2);font-size:var(--fs-sm);line-height:var(--lh-body)}.jf-r{flex-direction:column;align-items:center;gap:20px;display:flex}.qrimg{object-fit:contain;border-radius:var(--r);background:var(--qr-bg);width:200px;height:200px;padding:8px}.qrph{border:1px dashed var(--line2);border-radius:var(--r);text-align:center;width:200px;height:200px;color:var(--fg3);font-size:var(--fs-xs);line-height:var(--lh-body);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.qrph b{color:var(--fg2);font-size:var(--fs-sm)}
.buywx{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);width:100%;padding:20px 18px}.buywx-h{margin-bottom:14px}.buywx-h b{font-size:var(--fs-base);margin-bottom:var(--sp-1);display:block}.buywx-h span{color:var(--fg2);font-size:var(--fs-sm);line-height:var(--lh-body)}.buywx-id{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.buywx-id code{min-width:0;font-family:var(--mono);font-size:var(--fs-md);border:1px dashed var(--line2);border-radius:var(--r);background:var(--bg2);overflow-wrap:anywhere;flex:auto;padding:12px 14px}.buywx .qrph{text-align:left;width:auto;height:auto;padding:var(--sp-3);font-size:var(--fs-xs);align-items:flex-start}.buywx .qrph code{font-family:var(--mono);color:var(--spot2)}
.why{margin-top:34px}.why-groups{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px;display:grid}.why-group{border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);padding:22px 20px}.why-g{font-family:var(--mono);font-size:var(--fs-xs);color:var(--spot2);letter-spacing:var(--ls-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line);margin-bottom:14px}.why-group ul{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.why-group li b{font-size:var(--fs-base);margin-bottom:5px;display:block}.why-group li span{color:var(--fg2);font-size:var(--fs-sm);line-height:var(--lh-body)}.tiers-sec{margin-top:46px}.tiers-foot{color:var(--fg3);font-size:var(--fs-sm);line-height:var(--lh-body);margin-top:22px}.tiers-foot a{color:var(--spot)}.join-state{border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);align-items:center;gap:18px;margin-top:30px;padding:18px 22px;display:flex}.join-state-item{flex-direction:column;gap:4px;min-width:0;display:flex}.join-state-item .jl{font-size:var(--fs-xs);color:var(--fg3);font-family:var(--mono);letter-spacing:var(--ls-2)}.join-state-item b{font-size:var(--fs-md);color:var(--spot);overflow-wrap:anywhere}.join-state-item b.free{color:var(--fg2);font-weight:500}.join-state-cta{flex:none;margin-left:auto}@media (max-width:720px){.join-state{flex-wrap:wrap;gap:14px;padding:16px 18px}.join-state-cta{width:100%;margin-left:0}}
.redeem{width:100%;max-width:340px}.redeem .rk{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--spot2);margin-bottom:8px}.redeem h3{font-size:var(--fs-md);margin-bottom:14px}.redeem .rin{gap:8px;display:flex}.redeem input{background:var(--bg);border:1px solid var(--line2);border-radius:var(--r);min-width:0;color:var(--fg);font-size:var(--fs-base);font-family:var(--mono);flex:1;padding:10px 12px}.redeem input:focus{border-color:var(--spot2)}.redeem .rerr{color:var(--warn);font-size:var(--fs-sm);margin-top:8px}.redeem .rok{color:var(--spot);font-size:var(--fs-base)}.redeem .rnote{color:var(--fg3);font-size:var(--fs-xs);line-height:var(--lh-body);margin-top:10px}.redeem.done{border:1px solid var(--spot2);border-radius:var(--r);padding:var(--sp-3)}.redeem.done b{color:var(--spot)}.redeem.done p{color:var(--fg2);font-size:var(--fs-sm);margin:8px 0 14px}
.paybtns{margin-top:22px}.paybtns .payrow .btn{width:auto;font-size:var(--fs-sm);white-space:nowrap;flex:1 1 0;margin-top:0;padding:10px 12px}.paybtns .paygo{width:100%;font-size:var(--fs-sm);white-space:nowrap;margin-top:0;padding:7px 12px}.paybtns .payerr{font-size:var(--fs-sm);color:var(--warn);line-height:var(--lh-body);margin:12px 0 0}.paybtns .paysm{font-size:var(--fs-xs);color:var(--fg3);margin:12px 0 0}.payok{border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.payok b{color:var(--spot);font-size:var(--fs-md)}.payok span{font-size:var(--fs-sm);color:var(--fg2);line-height:var(--lh-body)}.payok code{font-family:var(--mono);color:var(--spot2)}.payqr-img{border-radius:var(--r);background:var(--qr-bg);box-sizing:border-box;border:1px solid var(--line2);width:168px;height:168px;padding:6px}.payqr-wait{font-size:var(--fs-xs);color:var(--fg3);text-align:center}.payqr-timeout{text-align:center;font-size:var(--fs-sm);color:var(--warn);flex-direction:column;align-items:center;gap:8px;display:flex}.payqr-timeout p{margin:0}.payqr-timeout code{font-family:var(--mono);color:var(--spot2);font-size:var(--fs-base)}.payqr-foot{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.payqr-no{font-size:var(--fs-xs);color:var(--fg3);font-family:var(--mono);overflow-wrap:anywhere}.payqr-cancel{font-size:var(--fs-xs);color:var(--fg2);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;text-decoration:underline}.payqr-cancel:hover{color:var(--fg)}.paymodal{z-index:300;background:var(--mask);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.paymodal-card{background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-lg);width:100%;max-width:320px;box-shadow:var(--shadow-lg);padding:22px 20px}.paymodal-h{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.paymodal-h b{font-size:var(--fs-md);display:block}.paymodal-h span{font-size:var(--fs-sm);color:var(--spot);font-weight:600}.paymodal-x{color:var(--fg3);cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:22px;line-height:1}.paymodal-x:hover{color:var(--fg)}.paymodal-body{flex-direction:column;align-items:center;gap:14px;display:flex}.paymodal-options{flex-direction:column;gap:10px;width:100%;display:flex}.paymodal-options .btn{width:100%;font-size:var(--fs-base);margin-top:0;padding:10px 14px}

.donate-sec{max-width:560px;padding-top:var(--sp-5);margin:0 auto}.donatebox{margin-top:18px}.donate-ams{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.donate-ams .am{border:1px solid var(--line2);border-radius:var(--r);background:var(--bg2);min-width:64px;color:var(--fg);font-size:var(--fs-base);cursor:pointer;transition:border-color var(--dur), background var(--dur), color var(--dur);flex:1 1 0;padding:10px 8px;font-weight:600}.donate-ams .am:hover{border-color:var(--spot2);color:var(--spot)}.donate-ams .am.on{border-color:var(--spot);background:linear-gradient(180deg, var(--spot), var(--spot2));color:var(--on-spot)}.donate-ams .am:focus-visible{outline:2px solid var(--spot);outline-offset:2px}.donate-note{font-size:var(--fs-sm);color:var(--fg3);line-height:var(--lh-body);margin:20px 0 0}@media (max-width:720px){.donate-ams .am{flex:calc(50% - 10px)}}
.mynote{max-width:var(--maxw-read);border-top:1px solid var(--line2);margin-top:40px;padding-top:24px}.mynote .nk{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--spot2);margin-bottom:var(--sp-2)}.mynote textarea{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);width:100%;min-height:96px;color:var(--fg);font-size:var(--fs-base);line-height:var(--lh-body);resize:vertical;padding:12px 14px}.mynote textarea:focus{border-color:var(--spot2)}.mynote .nrow{align-items:center;gap:var(--sp-2);margin-top:10px;display:flex}.mynote .nsaved{color:var(--fg3);font-size:var(--fs-xs)}.notes-list{max-width:760px}.note-card{border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);margin-bottom:14px;padding:18px 20px}.note-card .nh{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.note-card .nh a{color:var(--spot);font-size:var(--fs-sm)}.note-card .nb{color:var(--fg2);font-size:var(--fs-base);line-height:var(--lh-loose);white-space:pre-wrap}.notes-empty{color:var(--fg3);font-size:var(--fs-base);padding:30px 0}.notes-empty p{line-height:var(--lh-body);margin:0}.notes-acts{flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0 22px;display:flex}.notes-empty .notes-acts{margin:20px 0 0}.notes-msg{font-size:var(--fs-xs);font-family:var(--mono);color:var(--spot)}
@media (max-width:1024px){.adv{grid-template-columns:1fr;gap:24px}.vols{grid-template-columns:repeat(2,1fr)}.hero-in{gap:34px}.hero-art{--bw:230px;--bh:322px}}@media (max-width:720px){.hero{height:150vh}.hero-stage{align-items:flex-start;padding:32px 18px}.hero-in{grid-template-columns:1fr;gap:18px}.hero-copy{text-align:center}.hero-copy h1{font-size:var(--fs-2xl)}.hero .claim{font-size:var(--fs-md);margin-top:var(--sp-3)}.hero .sub2{font-size:var(--fs-sm);margin-top:var(--sp-2);margin-left:auto;margin-right:auto}.hero .acts{gap:var(--sp-1);margin-top:var(--sp-2);justify-content:center}.hero .acts .btn{font-size:var(--fs-base);padding:10px 20px}.hero .stats{gap:22px;margin-top:26px}.hero .stats div b{font-size:var(--fs-lg)}.hero-art{--bw:138px;--bh:193px;justify-self:center;margin:0 auto}.bspot{height:66px;bottom:-44px}.bright,.bface{padding:16px 13px}.bface .t{font-size:var(--fs-base)}.bface .k{font-size:var(--fs-xs);margin-bottom:8px}.bface .u,.bface .m{left:13px;right:13px}.bface .m{font-size:var(--fs-xs);bottom:7px}.bleaf-title{font-size:var(--fs-xs);margin-bottom:var(--sp-1)}.bleaf-body{font-size:var(--fs-xs);line-height:var(--lh-body)}.lib-hero h1{font-size:var(--fs-xl)}.lib-stats{gap:20px}.band{padding:60px 0}.band-head{margin-bottom:var(--sp-4)}.band-head h2{font-size:var(--fs-h2)}.band-head p{font-size:var(--fs-base)}.adv{grid-template-columns:repeat(2,1fr);gap:14px}.adv-col:last-child{grid-column:1/-1}.adv-col{padding:18px 14px}.adv-col>h3{font-size:var(--fs-h3);margin:8px 0 16px}.adv-li>li{padding-top:12px}.adv-li b{font-size:var(--fs-md)}.adv-li span{font-size:var(--fs-base)}.vols{grid-template-columns:repeat(2,1fr);gap:14px}.vcard{padding:20px 16px}.vcard h3{font-size:var(--fs-h3)}.vcard p{font-size:var(--fs-base)}.ev-hero h1{font-size:var(--fs-xl)}.joinflow{grid-template-columns:1fr;padding:24px 18px}.jf-r{align-items:stretch}.qrimg,.qrph{margin:0 auto}.redeem{max-width:none}.ev-grid{grid-template-columns:1fr}.post h1{font-size:var(--fs-h1)}.sect p,.sect li{font-size:var(--fs-base)}.sect h2{font-size:var(--fs-h3)}.post{padding-top:32px;padding-bottom:50px}.note-box{font-size:var(--fs-base);padding:16px 18px}.why-groups{gap:8px}.why-group{padding:14px 10px}}@media (prefers-reduced-motion:reduce){.hero{height:auto;min-height:calc(100vh - var(--navh))}.hero-stage{height:auto;min-height:calc(100vh - var(--navh));position:static}.bturn{display:none}}
.tagix{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);margin:26px 0 6px;padding:18px 20px}.tagix-head{align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.tagix-head b{font-family:var(--serif);font-size:var(--fs-base);color:var(--fg)}.tagix-head span{font-size:var(--fs-xs);color:var(--fg3)}.chip i{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);margin-left:var(--sp-1)}.chip.on{color:var(--spot);border-color:var(--spot2);background:var(--bg3)}.chip.dim{font-size:var(--fs-xs);opacity:.85;padding:5px 11px}.chip.legacy{color:var(--fg3);border-style:dashed}@media (hover:hover){.chip.legacy:hover{color:var(--warn);border-color:var(--warn)}}.chip.legacy.on{color:var(--warn);border-color:var(--warn);background:var(--bg3)}.chips-legacy{margin-top:9px}.hit-tags{gap:var(--sp-1);flex-wrap:wrap;margin-top:7px;display:flex}.mini-tag{font-size:var(--fs-xs);color:var(--fg3);background:var(--bg3);border:1px solid var(--line);cursor:pointer;transition:color var(--dur), border-color var(--dur);border-radius:99px;padding:2px 9px}.mini-tag.on{color:var(--spot);border-color:var(--spot2)}@media (hover:hover){.mini-tag:hover{color:var(--spot);border-color:var(--spot2)}}.post-tags{margin-top:var(--sp-2);flex-wrap:wrap;gap:7px;display:flex}
.chap-crumbs-n{margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--fg2)}.chap-crumbs-n b{color:var(--spot)}.chap-foot{gap:10px;margin-top:34px;display:flex}.post-brief{border:1px solid var(--line2);border-left:3px solid var(--spot);border-radius:var(--r);background:var(--bg2);margin:26px 0 6px;padding:20px 22px}.post-brief .pb-t{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--spot2);margin-bottom:var(--sp-2)}.pb-row{gap:var(--sp-2);font-size:var(--fs-base);line-height:var(--lh-body);grid-template-columns:76px 1fr;padding:6px 0;display:grid}.pb-row+.pb-row{border-top:1px dashed var(--line)}.pb-k{color:var(--fg3);font-size:var(--fs-sm);padding-top:2px}.pb-v{color:var(--fg)}.sect-nav{flex-wrap:wrap;gap:8px;margin:18px 0 8px;display:flex}.sn-item{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);border:1px solid var(--line);border-radius:99px;padding:4px 12px;transition:color .18s,border-color .18s}@media (hover:hover){.sn-item:hover{color:var(--spot);border-color:var(--spot2)}}.sect,.sn-item{scroll-margin-top:var(--anchor-gap)}.post ul li.ck{align-items:baseline;gap:10px;margin-left:-22px;list-style:none;display:flex}.post ul li.ck .box{border:1.5px solid var(--fg3);border-radius:3px;flex:none;width:13px;height:13px;display:inline-block;transform:translateY(1.5px)}.post ul li.ck.done .box{background:var(--spot);border-color:var(--spot)}
.news-hero{padding-bottom:var(--sp-3);border-bottom:1px solid var(--line2);margin:26px 0 4px}.news-hero-date{font-size:var(--fs-h1);letter-spacing:var(--ls-1);font-weight:600;line-height:var(--lh-tight);align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.news-hero-wd{font-size:var(--fs-base);color:var(--fg3);font-weight:400}.news-hero-meta{margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--fg3)}.news-hero-meta .news-back{margin-left:var(--sp-2)}.news-quick{border:1px solid var(--line2);border-left:3px solid var(--spot);border-radius:var(--r);background:var(--bg2);margin-top:22px;padding:16px 18px}.news-quick-h{font-size:var(--fs-sm);letter-spacing:var(--ls-3);color:var(--spot2);margin-bottom:10px}.news-quick ol{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.news-quick li{border-bottom:1px dashed var(--line);align-items:baseline;gap:10px;padding:10px 0;display:flex}.news-quick li:last-child{border-bottom:none;padding-bottom:2px}.news-quick b{font-size:var(--fs-base);font-weight:500;line-height:var(--lh-snug);flex:1}.news-quick i{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-2);color:var(--fg3);border:1px solid var(--line2);white-space:nowrap;border-radius:999px;flex:none;padding:1px 8px}.news-group{margin-top:26px}.news-group h2{font-size:var(--fs-lg);border-bottom:1px solid var(--line2);padding-bottom:10px}.news-list{flex-direction:column;gap:0;display:flex}.news-item{border-bottom:1px solid var(--line);padding:16px 2px}.news-item h3{font-size:var(--fs-md);line-height:var(--lh-snug);letter-spacing:var(--ls-1)}.news-item p{font-size:var(--fs-base);line-height:var(--lh-body);color:var(--fg2);margin-top:7px}.news-src{gap:var(--sp-2);font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);opacity:.85;flex-wrap:wrap;align-items:baseline;margin-top:8px;display:flex}.news-src a{color:var(--fg3);text-decoration:none}@media (hover:hover){.news-src a:hover{color:var(--spot)}}.news-item-date{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3)}.news-src-plain i{opacity:.75;margin-left:5px;font-style:normal}@media (hover:hover){.news-src-plain:hover i{opacity:1}}.news-back{margin-left:var(--sp-2);color:var(--spot);font-family:var(--sans)}.news-archive{border-top:1px solid var(--line);margin-top:52px;padding-top:26px}.news-archive h2{font-size:var(--fs-md);margin-bottom:14px}.news-arc-list{flex-wrap:wrap;gap:8px;display:flex}.news-arc{align-items:baseline;gap:var(--sp-1);border:1px solid var(--line2);border-radius:var(--r-sm);font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg2);transition:border-color var(--dur), color var(--dur);padding:6px 11px;display:inline-flex}@media (hover:hover){.news-arc:hover{border-color:var(--spot2);color:var(--fg)}}.news-arc.on{border-color:var(--spot);color:var(--spot)}.news-arc i{color:var(--fg3);font-style:normal}.news-arc-tip{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--fg3)}
.pp{margin-top:var(--sp-3)}.pp-bar{background:var(--bg3);border-radius:3px;height:6px;overflow:hidden}.pp-fill{background:var(--spot);border-radius:3px;height:100%;transition:width .4s}.pp-text{font-size:var(--fs-sm);color:var(--fg2);margin-top:8px}.pp-text a{color:var(--spot)}.pp-note{font-size:var(--fs-sm);color:var(--warn);margin:8px 0 0}.stage-chap{margin-bottom:var(--sp-3)}.sc-head{font-size:var(--fs-base);margin-bottom:8px;font-weight:600}.sc-vol{font-size:var(--fs-xs);color:var(--fg3);margin-left:10px;font-weight:400}.sc-list{margin:0;padding:0;list-style:none}.sc-list li+li{margin-top:2px}.sc-list a{font-size:var(--fs-base);color:var(--fg);border-radius:8px;align-items:center;gap:10px;padding:7px 10px;text-decoration:none;display:flex}@media (hover:hover){.sc-list a:hover{background:var(--bg3)}}.sc-list .sc-id{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);min-width:30px}.sc-list .chip{font-size:var(--fs-xs);margin-left:auto;padding:1px 8px}.sc-list a:focus-visible,.stage-gate a:focus-visible{outline:2px solid var(--spot);outline-offset:2px;background:var(--bg3)}.stage-gate{border:1px dashed var(--spot2);border-radius:var(--r);background:var(--bg2);margin-top:22px;padding:16px 18px}.sg-label{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-2);color:var(--spot);margin-bottom:8px}.stage-gate a{font-size:var(--fs-base);color:var(--fg);font-weight:600;text-decoration:none}@media (hover:hover){.stage-gate a:hover{color:var(--spot)}}.stage-gate .chip{font-size:var(--fs-xs);vertical-align:2px;margin-left:10px;padding:1px 8px}.sg-next{font-size:var(--fs-sm);color:var(--fg2);margin:10px 0 0}
.stage-crumbs{font-size:var(--fs-sm);color:var(--fg2);margin-bottom:10px}.stage-crumbs a{color:var(--spot);text-decoration:none}@media (hover:hover){.stage-crumbs a:hover{text-decoration:underline}}.free-note{font-size:var(--fs-sm);color:var(--fg2);border-left:3px solid var(--spot2);background:var(--bg2);border-radius:0 8px 8px 0;margin:14px 0 0;padding:6px 12px}.lockwall{border:1px solid var(--line);background:var(--bg2);border-radius:14px;margin:22px 0 4px;padding:26px 26px 22px}.lw-hook{font-size:var(--fs-md);line-height:var(--lh-body);margin:0 0 14px;font-weight:600}.lw-pos{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-2);color:var(--spot);margin-bottom:14px}.lw-body p{font-size:var(--fs-sm);color:var(--fg2);margin:0 0 8px}.lw-body ul{flex-wrap:wrap;gap:6px 14px;margin:0 0 12px;padding:0;list-style:none;display:flex}.lw-body li{font-size:var(--fs-sm);color:var(--fg);border:1px solid var(--line);background:var(--bg3);border-radius:999px;padding:2px 11px}.lockwall .lw-proof{font-size:var(--fs-sm);color:var(--fg3)}.lw-cta{border-top:1px solid var(--line);margin-top:4px;padding-top:14px}.lockwall .lw-price{font-size:var(--fs-sm);line-height:var(--lh-body)}.lw-btns{gap:var(--sp-2);flex-wrap:wrap;margin-top:14px;display:flex}
.sc-list li.rd>a{opacity:.55}.rd-check{font-family:var(--mono);font-size:var(--fs-xs);color:var(--spot);flex:none;margin-left:8px}.stage-gate a.sg-passed{opacity:.6}.stage-gate a .rd-check{margin-left:10px}.pp-resume{color:var(--spot);font-weight:600}.pager-chip{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);border:1px solid var(--line2);color:var(--fg3);vertical-align:1px;border-radius:99px;margin-left:8px;padding:1px 8px}.pager-chip.f{color:var(--spot);border-color:var(--spot2)}.sn-item.on{color:var(--spot);border-color:var(--spot);background:var(--bg2)}.backtop{z-index:60;align-items:center;gap:var(--sp-1);border:1px solid var(--line2);background:var(--bg);color:var(--fg2);font-size:var(--fs-sm);cursor:pointer;opacity:0;visibility:hidden;transition:opacity var(--dur), transform var(--dur), visibility var(--dur), border-color .18s, color .18s;box-shadow:var(--shadow-sm);border-radius:99px;padding:8px 14px;display:inline-flex;position:fixed;bottom:30px;right:26px;transform:translateY(8px)}.backtop svg{width:14px;height:14px}.backtop.show{opacity:1;visibility:visible;transform:none}@media (hover:hover){.backtop:hover{border-color:var(--spot2);color:var(--spot)}}@media (max-width:720px){.backtop{right:14px;bottom:calc(72px + env(safe-area-inset-bottom));padding:8px 12px}}

.lib-search-head h2{font-family:var(--serif);font-size:var(--fs-lg);color:var(--fg);margin:0 0 4px}.lib-search-head p{font-size:var(--fs-sm);color:var(--fg3);margin:0}.sec-head{flex-wrap:wrap;align-items:baseline;gap:14px;margin:60px 0 22px;display:flex}.sec-head h2{font-family:var(--serif);font-size:var(--fs-h2);color:var(--fg);margin:0}.sec-head span{font-size:var(--fs-base);color:var(--fg3)}.sec-head h2 .sec-no{font-style:normal;font-size:var(--fs-base);color:var(--fg3);margin-right:var(--sp-1);vertical-align:2px}.stg-cards{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stg-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg2);transition:border-color var(--dur), transform var(--dur), box-shadow var(--dur);flex-direction:column;gap:10px;padding:24px 22px 18px;text-decoration:none;display:flex}@media (hover:hover){.stg-card:hover{border-color:var(--spot2);box-shadow:var(--shadow);transform:translateY(-3px)}}.stg-no{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--spot2)}.stg-name{font-family:var(--serif);font-size:var(--fs-lg);color:var(--fg);align-items:baseline;gap:8px;display:flex}.stg-name i{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--fg3)}@media (hover:hover){.stg-card:hover .stg-name{color:var(--spot)}}.stg-q{font-size:var(--fs-base);line-height:var(--lh-body);color:var(--fg2);flex:1}.stg-meta{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);border-top:1px solid var(--line);padding-top:10px}
.lk-wrap{max-width:var(--maxw-narrow)}.lk-form{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg2);flex-direction:column;gap:14px;padding:26px 24px 22px;display:flex}.lk-field{gap:var(--sp-1);flex-direction:column;display:flex}.lk-field span{font-size:var(--fs-sm);color:var(--fg2)}.lk-field input{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);width:100%;font-size:var(--fs-base);color:var(--fg);padding:11px 12px}.lk-field input:focus{border-color:var(--spot2)}.lk-form .err{min-height:18px;font-size:var(--fs-sm);color:var(--warn,#e0a030);margin:0}.lk-field .err{min-height:0}.lk-btn{justify-content:center;margin-top:4px}.lk-alt{font-size:var(--fs-sm);color:var(--fg3);text-align:center;margin:0}.lk-form .ok{border:1px solid var(--ok);color:var(--fg2);background:var(--bg2);font-size:var(--fs-sm);border-radius:8px;padding:8px 12px}.acc-card{border:1px solid var(--line);background:var(--bg2);border-radius:14px;min-width:0;padding:22px 24px}.acc-card h2{font-size:var(--fs-md);margin:0 0 14px}.acc-dl{gap:10px;margin:0;display:grid}.acc-dl>div{align-items:baseline;gap:14px;display:flex}.acc-dl dt{font-size:var(--fs-sm);color:var(--fg3);flex:0 0 6em}.acc-dl dd{font-size:var(--fs-base);margin:0}.acc-dl code{font-size:var(--fs-sm);color:var(--fg3);letter-spacing:1px}.acc-dl a{color:var(--spot)}.acc-tip{font-size:var(--fs-sm);color:var(--fg3);line-height:var(--lh-body);margin:0 0 14px}.acc-warn{font-size:var(--fs-sm);color:var(--warn,#b45309);margin:14px 0 0}.acc-act{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.acc-msg{font-size:var(--fs-sm);color:var(--fg2);width:100%;margin:10px 0 0}.acc-log{gap:8px;margin:0;padding:0;list-style:none;display:grid}.acc-log li{font-size:var(--fs-sm);color:var(--fg2);gap:14px;display:flex}.acc-log-t{color:var(--fg3);flex:0 0 8.5em}.acc-hint{font-size:var(--fs-xs);color:var(--fg3);margin:10px 0 0}.api-new{align-items:center;gap:10px;margin:0 0 14px;display:flex}.api-label{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--fg);font-size:var(--fs-base);border-radius:9px;flex:auto;padding:9px 12px}.api-actions{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.api-toast{border:1px solid color-mix(in srgb, var(--spot) 55%, transparent);background:color-mix(in srgb, var(--spot) 12%, transparent);color:var(--fg);font-size:var(--fs-sm);line-height:var(--lh-body);border-radius:9px;margin:0 0 14px;padding:8px 12px}.api-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.api-item{border:1px solid var(--line);background:var(--bg);border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 12px;display:flex}.api-meta{flex-wrap:wrap;align-items:baseline;gap:10px;min-width:0;display:flex}.api-prefix{font-size:var(--fs-sm);color:var(--fg2);letter-spacing:1px;word-break:break-all}.api-lt{font-size:var(--fs-sm);color:var(--fg2)}.api-tier{font-size:var(--fs-xs);color:var(--spot);border:1px solid var(--spot);border-radius:999px;padding:1px 8px}.api-q{font-size:var(--fs-sm);color:var(--fg2);flex:auto}.api-last{color:var(--fg3);margin-left:10px}
.ev-quota{border:1px solid var(--line);border-left:3px solid var(--spot);background:var(--bg2);font-size:var(--fs-base);color:var(--fg2);border-radius:10px;margin-bottom:16px;padding:12px 16px}.ev-quota b{color:var(--fg)}.ev-rsvp{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.ev-rsvp-err{font-size:var(--fs-sm);color:var(--warn,#b45309)}.ev-h3{font-size:var(--fs-base);color:var(--fg3);margin:26px 0 12px}.ev-done{gap:8px;margin:0;padding:0;list-style:none;display:grid}.ev-done li{gap:var(--sp-2);font-size:var(--fs-base);color:var(--fg2);border-bottom:1px dashed var(--line);align-items:baseline;padding-bottom:8px;display:flex}.ev-done-d{font-size:var(--fs-sm);color:var(--fg3);font-family:var(--mono,monospace);flex:0 0 7.5em}.ev-rsvp-ok{color:var(--ok,#15803d);font-size:var(--fs-base)}.ev-rsvp-note{font-size:var(--fs-sm);color:var(--warn,#b45309)}.ev-confirm{border:1px solid var(--spot);background:var(--bg2);border-radius:10px;flex:100%;margin:4px 0 0;padding:12px 14px}.ev-confirm-msg{font-size:var(--fs-base);color:var(--fg);margin:0 0 10px}.ev-confirm-acts{flex-wrap:wrap;gap:8px;display:flex}.ev-redeem{border:1px dashed var(--line);background:var(--bg2);border-radius:10px;flex:100%;margin:4px 0 0;padding:12px 14px}.ev-redeem-tip{font-size:var(--fs-sm);color:var(--fg2);margin:0 0 10px}.ev-redeem-tip code{color:var(--spot)}.ev-redeem-in{flex-wrap:wrap;gap:8px;display:flex}.ev-redeem-in input{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--fg);font-size:var(--fs-base);border-radius:8px;flex:auto;padding:8px 10px}.ev-redeem-cancel{margin-top:8px}
.flow-strip{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.flow-step{align-items:center;gap:8px;display:flex}.flow-node{border:1px solid var(--line);background:var(--bg2);font-size:var(--fs-sm);color:var(--fg2);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:5px 14px;display:inline-flex}.flow-node b{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-2);color:var(--spot2)}.flow-arrow{color:var(--fg3);font-style:normal;font-size:var(--fs-sm)}.vol-links{font-size:var(--fs-sm);color:var(--fg3);margin:16px 0 0}.vol-links a{color:var(--fg2);border-bottom:1px solid var(--line);padding-bottom:1px;text-decoration:none}@media (hover:hover){.vol-links a:hover{color:var(--spot);border-color:var(--spot2)}}.vol-links .sep{color:var(--fg3);margin:0 7px}.shelf2{grid-template-columns:1.25fr 1fr;align-items:stretch;gap:14px;display:grid}.col-grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px;display:grid}.col-card{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);flex-direction:column;gap:7px;padding:20px 20px 16px;text-decoration:none;transition:border-color .18s,transform .18s;display:flex}@media (hover:hover){a.col-card:hover{border-color:var(--spot2);transform:translateY(-2px)}a.col-card:hover .col-name{color:var(--spot)}}.col-card.is-soon{background:0 0;border-style:dashed}.col-k{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-4);color:var(--spot2)}.col-card.is-soon .col-k{color:var(--fg3)}.col-name{font-family:var(--serif);font-size:var(--fs-h3);color:var(--fg)}.col-desc{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--fg3);flex:1}.col-go{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);border-top:1px solid var(--line);padding-top:8px}@media (hover:hover){a.col-card:hover .col-go{color:var(--spot2)}}.stage-hero .stage-q-lg{font-size:var(--fs-md);color:var(--fg);margin:6px 0 10px}.stg-page-chap{margin-top:30px}.stg-pn{margin-top:var(--sp-5);justify-content:space-between;gap:14px;display:flex}.stg-pn-card{border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);flex-direction:column;gap:4px;max-width:46%;padding:14px 18px;text-decoration:none;transition:border-color .18s;display:flex}@media (hover:hover){.stg-pn-card:hover{border-color:var(--spot2)}}.stg-pn-card span{font-size:var(--fs-xs);font-family:var(--mono);color:var(--fg3)}.stg-pn-card b{font-family:var(--serif);font-size:var(--fs-md);color:var(--fg)}@media (hover:hover){.stg-pn-card:hover b{color:var(--spot)}}.stg-pn-card.r{text-align:right;margin-left:auto}
@media (max-width:900px){.stg-cards{grid-template-columns:repeat(2,1fr)}.shelf2{grid-template-columns:1fr}}@media (max-width:720px){.stg-cards{grid-template-columns:1fr}.flow-strip{align-items:stretch;gap:var(--sp-1);flex-direction:column}.flow-step{justify-content:flex-start}.flow-arrow{display:none}.flow-node{justify-content:flex-start;padding:8px 16px}.searchbox{flex-wrap:nowrap}.searchbox input{min-width:0;font-size:var(--fs-md);padding:12px 14px}.searchbox .btn{flex:none}.lib-stats{gap:16px 22px}.lib-stats div b{font-size:var(--fs-lg)}.lib-search{padding:18px 16px}.sec-head{margin-top:var(--sp-5)}.sec-head h2,.stg-name{font-size:var(--fs-lg)}.stg-pn{margin-top:36px}.stg-pn-card{max-width:48%;padding:12px 14px}.stg-pn-card b{font-size:var(--fs-base)}.sc-list a{gap:8px;padding:10px}.brand b{font-size:var(--fs-md)}.btn.p,.btn{font-size:var(--fs-base)}}.sc-list .chip{white-space:nowrap;flex:none}.stg-card,.stg-pn-card{word-break:break-word}@media (max-width:720px){.sect-nav{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.sect-nav::-webkit-scrollbar{display:none}.sn-item{white-space:nowrap;font-size:var(--fs-sm);flex:none;padding:8px 14px}}
.doc-sec{max-width:860px;margin-top:var(--sp-5)}.doc-sec h2{font-size:var(--fs-lg);font-family:var(--serif);margin:0 0 var(--sp-2);border-bottom:1px solid var(--line);padding-bottom:10px}.doc-sec h3{font-size:var(--fs-md);margin:var(--sp-4) 0 var(--sp-1);font-family:var(--mono);color:var(--spot);font-weight:500}.doc-sec p{color:var(--fg2);line-height:var(--lh-body);margin:0 0 var(--sp-2)}.doc-list{margin:0 0 var(--sp-2);color:var(--fg2);line-height:var(--lh-body);padding-left:20px}.doc-list li{margin-bottom:var(--sp-1)}.doc-list b{color:var(--fg)}.doc-sec .doc-muted{color:var(--fg3);font-size:var(--fs-sm)}.doc-table{border-collapse:collapse;width:100%;margin:var(--sp-2) 0 var(--sp-3);font-size:var(--fs-sm)}.doc-table th,.doc-table td{border:1px solid var(--line);text-align:left;vertical-align:top;color:var(--fg2);line-height:var(--lh-body);padding:9px 12px}.doc-table thead th,.doc-table tbody th{color:var(--fg);background:var(--bg3);white-space:nowrap;font-weight:500}.doc-table code{font-family:var(--mono);font-size:var(--fs-sm);color:var(--spot);word-break:break-all}.doc-code{background:var(--bg3);border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--mono);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--fg);margin:0 0 var(--sp-3);white-space:pre;padding:14px 16px;overflow-x:auto}@media (max-width:720px){.doc-sec{margin-top:var(--sp-4)}.doc-table th,.doc-table td{padding:8px 9px}}
.as-body{margin:22px 0 8px}.as-card{border:1px solid var(--line);background:var(--bg2);border-radius:14px;padding:26px 26px 22px}.as-intro .flow-strip{margin-bottom:20px}.as-steps{gap:10px;margin:0 0 6px;padding:0;list-style:none;display:grid}.as-steps li{gap:var(--sp-2);font-size:var(--fs-sm);color:var(--fg2);line-height:var(--lh-body);align-items:baseline;display:flex}.as-steps li b{color:var(--fg);flex:0 0 3.2em;font-weight:600}.as-prev{font-size:var(--fs-sm);color:var(--fg3);border-top:1px dashed var(--line);margin:14px 0 0;padding-top:14px}.as-go{margin-top:var(--sp-3)}
.as-prog{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.as-prog-track{background:var(--bg3);border-radius:2px;flex:1;height:3px;overflow:hidden}.as-prog-track i{background:var(--spot2);height:100%;transition:width var(--dur) ease;display:block}.as-prog-n{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);letter-spacing:var(--ls-2);white-space:nowrap}.as-topic{font-size:var(--fs-xs);font-family:var(--mono);letter-spacing:var(--ls-2);color:var(--spot2);margin-bottom:8px}.as-stem{font-size:var(--fs-h3);font-weight:600;line-height:var(--lh-snug);margin:0 0 18px}.as-opts{gap:9px;display:grid}.as-opt{text-align:left;font:inherit;font-size:var(--fs-base);line-height:var(--lh-body);color:var(--fg2);background:var(--bg3);border:1px solid var(--line);cursor:pointer;transition:border-color var(--dur) ease, background var(--dur) ease, color var(--dur) ease;border-radius:10px;padding:12px 15px}@media (hover:hover){.as-opt:hover{border-color:var(--line2);color:var(--fg)}}.as-opt.on{border-color:var(--spot2);background:var(--glow-wash);color:var(--fg)}.as-nav{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-top:16px;display:flex}.as-hint{font-size:var(--fs-xs);color:var(--fg3)}.as-linkbtn{font:inherit;font-size:var(--fs-sm);color:var(--spot2);cursor:pointer;background:0 0;border:none;padding:0}@media (hover:hover){.as-linkbtn:hover{color:var(--spot)}}.as-linkbtn:disabled{color:var(--fg3);cursor:default}.as-confirm,.as-linkbtn.danger{color:var(--warn)}@media (hover:hover){.as-linkbtn.danger:hover{color:var(--fg)}}
.as-r-k{font-size:var(--fs-xs);color:var(--fg3);margin-bottom:16px}.as-bars{gap:9px;margin-bottom:22px;display:grid}.as-bar-row{align-items:center;gap:var(--sp-2);display:flex}.as-bar-l{font-size:var(--fs-sm);color:var(--fg2);white-space:nowrap;flex:0 0 8.5em}.as-bar-track{background:var(--bg3);border-radius:7px;flex:1;height:14px;overflow:hidden}.as-bar-fill{background:var(--line2);border-radius:7px;min-width:2px;height:100%;display:block}.as-bar-fill.hot{background:var(--spot)}.as-bar-fill.low{background:var(--warn);opacity:.75}.as-bar-n{text-align:right;font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);flex:0 0 1.6em}.as-r-sec{border-top:1px dashed var(--line);margin-top:16px;padding-top:16px}.as-r-sec h3{font-size:var(--fs-base);margin:0 0 8px}.as-r-sec p{font-size:var(--fs-base);line-height:var(--lh-body);color:var(--fg2);margin:0}.as-r-sec a{color:var(--fg);border-bottom:1px solid var(--spot2);text-decoration:none}@media (hover:hover){.as-r-sec a:hover{color:var(--spot)}}.as-cta{border-top:1px dashed var(--line);font-size:var(--fs-sm);color:var(--fg2);line-height:var(--lh-body);margin:18px 0 0;padding-top:16px}.as-cta a{color:var(--spot2);border-bottom:1px solid var(--spot2);text-decoration:none}@media (hover:hover){.as-cta a:hover{color:var(--spot)}}.as-sync{font-size:var(--fs-xs);color:var(--fg3);margin:14px 0 0}.as-mirror{font-size:var(--fs-xs);color:var(--fg3);text-align:center;margin:26px 0 0}@media (max-width:720px){.as-card{padding:20px 16px 18px}.as-bar-l{font-size:var(--fs-xs);flex-basis:6.5em}.as-stem{font-size:var(--fs-md)}}


.adm{grid-template-columns:218px 1fr;min-height:100vh;display:grid}.adm-side{border-right:1px solid var(--line);align-self:start;height:100vh;padding:22px 18px;position:sticky;top:0;overflow-y:auto}.adm-side .hd{font-family:var(--serif);font-size:var(--fs-md);margin-bottom:4px}.adm-side .hd span{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--fg3);margin-top:4px;display:block}.adm-side nav{flex-direction:column;gap:2px;margin-top:26px;display:flex}.adm-side nav a{border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--fg2);padding:8px 10px}@media (hover:hover){.adm-side nav a:hover{background:var(--bg2);color:var(--fg)}}.adm-side nav a.on{background:var(--bg2);color:var(--spot);box-shadow:inset 3px 0 0 var(--spot)}.adm-side .ft{border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--fg3);line-height:var(--lh-body);margin-top:26px;padding-top:16px}.adm-side .ft a{color:var(--fg2)}@media (hover:hover){.adm-side .ft a:hover{color:var(--spot)}}.adm-themerow{align-items:center;gap:10px;margin-bottom:10px;display:flex}.adm-themerow span{font-size:var(--fs-xs);color:var(--fg3)}.adm-logout{border:1px solid var(--line2);border-radius:var(--r-sm);color:var(--fg2);font:inherit;font-size:var(--fs-xs);cursor:pointer;background:0 0;margin-top:10px;padding:5px 11px}@media (hover:hover){.adm-logout:hover:not(:disabled){color:var(--fg);border-color:var(--fg3)}}.adm-logout:disabled{opacity:.6;cursor:default}.adm-logout-err{font-size:var(--fs-xs);color:var(--warn);margin:8px 0 0}.adm-main{min-width:0;padding:34px 38px 90px}.adm-main h1{font-size:var(--fs-h2);margin-bottom:var(--sp-1)}.adm-main .sub{color:var(--fg2);font-size:var(--fs-sm);margin-bottom:var(--sp-4)}.adm-bread{font-size:var(--fs-sm);color:var(--fg2);margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.adm-bread a{color:var(--fg2)}@media (hover:hover){.adm-bread a:hover{color:var(--spot)}}.adm-bread-sep{color:var(--fg3);margin:0 2px}.adm-bread-cur{color:var(--fg)}
.adm-stats{gap:var(--sp-2);grid-template-columns:repeat(auto-fit,minmax(148px,1fr));margin-bottom:32px;display:grid}.adm-st{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}.adm-st .l{font-size:var(--fs-xs);color:var(--fg3);margin-bottom:7px}.adm-st .v{font-family:var(--serif);font-size:var(--fs-h2);color:var(--spot);line-height:var(--lh-tight)}.adm-st .v.n{color:var(--fg)}.adm-st .x{font-size:var(--fs-xs);color:var(--fg3);margin-top:5px}
.adm-tbl{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.adm-tbl th,.adm-tbl td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}.adm-tbl th{font-size:var(--fs-xs);color:var(--fg3);border-bottom-color:var(--line2);background:var(--bg);z-index:2;font-weight:600;position:sticky;top:0}@media (hover:hover){.adm-tbl tr:hover td{background:var(--bg2)}}.adm-tbl .id{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3)}.adm-tbl .tt{color:var(--fg)}.adm-tbl .num{font-family:var(--mono);color:var(--spot)}.adm-tbl .ok{color:var(--spot)}.adm-tbl .bad{color:var(--warn)}.adm-tags{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}
.bulk-bar{border:1px solid var(--spot2);background:var(--bg2);border-radius:var(--r-sm);flex-direction:column;gap:11px;margin-bottom:16px;padding:14px 16px;display:flex}.bulk-top{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);display:flex}.bulk-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bulk-lab{font-size:var(--fs-xs);color:var(--fg3);min-width:56px}.bulk-tags{flex-wrap:wrap;gap:7px;display:flex}.bulk-tags .chip{font-size:var(--fs-xs);padding:4px 10px}.bulk-tags .chip.on{background:var(--spot);border-color:var(--spot);color:var(--on-spot)}.adm-bar{margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.adm-bar select,.adm-bar input{background:var(--bg3);border:1px solid var(--line2);border-radius:var(--r-sm);font-size:var(--fs-sm);padding:7px 11px}.adm-bar select:focus,.adm-bar input:focus{border-color:var(--spot2)}.adm-bar .grow{flex:1}
.ed{grid-template-columns:1fr 336px;align-items:start;gap:30px;display:grid}.ed-forms{flex-direction:column;gap:22px;min-width:0;display:flex}.fld{flex-direction:column;gap:7px;display:flex}.fld label{font-size:var(--fs-xs);color:var(--fg2);letter-spacing:var(--ls-1)}.fld label b{color:var(--spot);font-weight:600}.fld .hint{font-size:var(--fs-xs);color:var(--fg3);line-height:var(--lh-body)}.fld input,.fld textarea,.fld select{background:var(--bg3);border:1px solid var(--line2);border-radius:var(--r-sm);font-size:var(--fs-base);width:100%;padding:9px 12px;font-family:inherit}.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--spot2)}.fld textarea{resize:vertical;line-height:var(--lh-body)}.fld textarea.sec{min-height:150px;font-size:var(--fs-base)}.fld textarea.json{font-family:var(--mono);font-size:var(--fs-sm);min-height:78px}.fld textarea.json.bad{border-color:var(--warn)}.grid2{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.grid3{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.ed-side{gap:var(--sp-3);flex-direction:column;display:flex;position:sticky;top:22px}.ed-side .box{border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);padding:var(--sp-3)}.ed-side .box h2{font-size:var(--fs-sm);margin-bottom:var(--sp-2);align-items:baseline;gap:8px;display:flex}.ed-side .box h2 em{font-style:normal;font-family:var(--mono);font-size:var(--fs-h3);color:var(--spot);margin-left:auto}.ed-side .save{gap:9px;display:flex}.ed-side .save .btn{flex:1}.msgs{font-size:var(--fs-sm);flex-direction:column;gap:7px;display:flex}.msgs .e{color:var(--warn)}.msgs .w{color:var(--spot2)}.msgs .g{color:var(--spot)}
.pw-form{max-width:var(--maxw-narrow);gap:var(--sp-2);flex-direction:column;display:flex}.pw-form .fld{gap:5px}.pw-check{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--fg2);cursor:pointer;display:flex}
.copy{max-width:980px}.copy-h2{font-size:var(--fs-md);margin-bottom:var(--sp-2)}.copy-h2.tight{margin-bottom:var(--sp-1)}.copy-h3{font-size:var(--fs-base);margin:20px 0 10px}.copy-hint{margin-top:0;margin-bottom:16px}.copy-hint.tight{margin-bottom:var(--sp-2)}.copy-note{margin-bottom:14px}.copy-rule{margin:26px 0}.copy-save{margin-top:22px}.copy-links{margin-top:var(--sp-2);flex-wrap:wrap;gap:14px;display:flex}.pad-b{height:60px}
.login{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login .box{width:100%;max-width:var(--maxw-modal);border:1px solid var(--line2);border-radius:var(--r);background:var(--bg2);padding:34px 30px}.login h1{font-size:var(--fs-h2);margin-bottom:8px}.login p{color:var(--fg2);font-size:var(--fs-sm);line-height:var(--lh-body);margin-bottom:22px}
.dir-vol{border:1px solid var(--line);border-radius:var(--r);margin-bottom:14px;overflow:hidden}.dir-vol>summary{cursor:pointer;font-family:var(--serif);font-size:var(--fs-md);background:var(--bg2);gap:var(--sp-2);align-items:baseline;padding:14px 18px;list-style:none;display:flex}.dir-vol>summary::-webkit-details-marker{display:none}.dir-vol>summary .n{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);margin-left:auto}.dir-body{padding:8px 18px 18px}.dir-items{grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:2px 14px;padding:8px 0 12px;display:grid}.dir-items span{font-size:var(--fs-sm);color:var(--fg3);gap:8px;padding:3px 0;display:flex}.dir-items span.w{color:var(--fg2)}.dir-items span i{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);flex:none}.dir-items span.w i{color:var(--spot)}.dir-edit{border:1px solid var(--line2);background:var(--bg2);border-radius:var(--r-sm);margin:14px 0 4px;padding:12px 14px 4px}.dir-edit-h{justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);margin-bottom:10px;display:flex}.dir-chap{padding-bottom:4px}.dir-ch-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px 0 6px;display:flex}.dir-ch-input{font-size:var(--fs-sm);flex:1;font-family:inherit}.dir-item-input{min-width:0;font-size:var(--fs-sm);flex:1;padding:2px 6px}.fld label .sec-empty{font-style:normal;font-weight:400;font-size:var(--fs-xs);color:var(--warn);margin-left:8px}.fld textarea.sec[aria-invalid=true]{border-color:var(--warn)}.dir-items span{align-items:center}.dir-items span a{font-size:var(--fs-xs);color:var(--fg3);flex:none;text-decoration:underline}.dir-vol>summary:focus-visible,.dir-items span a:focus-visible{outline:2px solid var(--spot);outline-offset:2px}
.us-list{gap:var(--sp-2);flex-direction:column;display:flex}.us-row{border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);gap:var(--sp-1);flex-direction:column;padding:16px 18px;display:flex}.us-main{align-items:center;gap:10px;display:flex}.us-main b{font-family:var(--serif);font-size:var(--fs-md);color:var(--fg)}.us-tier{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--spot2);border:1px solid var(--line);border-radius:999px;padding:2px 8px}.us-off{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 45%, transparent);border-radius:999px;padding:2px 8px}.us-meta{font-size:var(--fs-sm);color:var(--fg2);line-height:var(--lh-body)}.us-meta code{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3)}.us-act{margin-top:4px}.us-managed{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-3);color:var(--spot2);border:1px dashed var(--spot2);border-radius:999px;padding:2px 8px}.us-act-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.us-edit{border:1px dashed var(--line2);border-radius:var(--r);background:var(--bg);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.us-edit-title{font-size:var(--fs-sm);color:var(--fg2);margin-right:4px;font-weight:600}.us-edit-lbl{font-size:var(--fs-xs);color:var(--fg3)}.us-inp{background:var(--bg3);border:1px solid var(--line2);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--fg);padding:7px 10px;font-family:inherit}.us-inp:focus{border-color:var(--spot2);outline:none}
.codes-wrap{max-width:980px}.codes-intro{margin-bottom:var(--sp-3)}.codes-add{gap:8px}.codes-add .grow-in{flex:1;min-width:200px}.codes-add .w-days{width:130px}.codes-add .w-tier,.codes-add .w-note{width:150px}.codes-msg{margin-bottom:14px}.codes-h2{font-size:var(--fs-md);margin:22px 0 10px}.codes-h2.loose{margin-top:26px}.codes-env-tip{margin-bottom:10px}.adm-tbl .th-num{width:86px}.adm-tbl .th-tier{width:150px}.adm-tbl .th-act{width:130px}.adm-tbl .code-cell{font-family:var(--mono);word-break:break-all}.adm-tbl .in-num{width:70px}.adm-tbl .used-line{font-size:var(--fs-xs);margin-top:4px}.adm-tbl .row-act{gap:var(--sp-1);flex-wrap:wrap;display:flex}.dir-items.env-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.dir-items.env-grid .mono{font-family:var(--mono)}
.adm-tbl .th-check{width:34px}.adm-tbl .th-no{width:46px}.adm-tbl .th-vol{width:74px}.adm-tbl .th-n{width:52px}.adm-tbl .th-grade{width:56px}.adm-tbl .th-free{width:44px}.adm-tbl .col-vol{color:var(--fg3);font-size:var(--fs-xs)}.adm-tbl .col-free{font-size:var(--fs-xs)}.adm-tbl .row-planned{opacity:.62}.adm-tbl .col-todo{color:var(--fg3);font-size:var(--fs-xs)}.adm-tbl .row-empty{color:var(--fg3);font-size:var(--fs-sm);padding:18px 0}.hint.gap-t{margin-top:10px}.hint.t12{margin-top:var(--sp-2)}.hint.small{font-size:var(--fs-xs)}.hint .c-warn{color:var(--warn)}.rule.tight{margin:8px 0}.score-den{font-size:var(--fs-xs);color:var(--fg3)}.msgs.t12{margin-top:var(--sp-2)}.ax-row{color:var(--fg2);gap:8px;display:flex}.ax-name{width:62px}.ok.mono{font-family:var(--mono)}.ax-detail{color:var(--fg3);font-size:var(--fs-xs)}.view-links{margin-top:var(--sp-2);flex-wrap:wrap;gap:14px;display:flex}
.ne-group{border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);margin:14px 0;padding:16px 16px 14px}.ne-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.ne-label{flex:1;max-width:320px;font-weight:600}.ne-n{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3)}.ne-n.mono{font-family:var(--mono)}.ne-item{gap:var(--sp-1);border-top:1px dashed var(--line);grid-template-columns:1fr;padding:10px 0;display:grid}.ne-item:first-of-type{border-top:none}.ne-item input,.ne-item textarea{width:100%}.ne-row{align-items:center;gap:8px;display:flex}.ne-num{font-family:var(--mono);font-size:var(--fs-xs);color:var(--fg3);flex:0 0 18px}.ne-add{gap:10px;margin-bottom:4px;display:flex}.ne-add .hint{align-self:center}.ne-meta{grid-template-columns:1fr 1.4fr auto;align-items:center;gap:8px;display:grid}.ne-cell{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:var(--ls-2);color:var(--fg3)}.ne-meta input.warn{border-color:var(--warn)}
.adm-h2{font-size:var(--fs-md);margin-bottom:10px}.adm-h2.big{font-size:var(--fs-h3);margin-bottom:14px}.adm-sect{margin-top:26px}.adm-sect.tight{margin-top:24px}.adm-sect.mid{margin-top:30px}.adm-sect.far{margin-top:34px}.adm-tbl .th-score{width:62px}.adm-tbl .th-weak{width:78px}.adm-tbl .th-gate{width:190px}.note-box.bad{border-left-color:var(--warn);margin-bottom:26px}.note-box.bad16{border-left-color:var(--warn);margin-bottom:16px}.note-box.bad-border{border-color:var(--warn)}.c-warn-fg,.note-box .c-warn-fg,.note-box b.c-warn-fg,.sub.c-warn-fg,.hint.c-warn-fg,.v.c-warn-fg{color:var(--warn)}.sub.c-spot{color:var(--spot)}.sub.t8{margin-top:8px}.sub.mb8{margin-bottom:8px}.sub.mb14{margin-bottom:14px}.sub.mb18{margin-bottom:var(--sp-3)}.sub.neg{margin-top:-10px;margin-bottom:22px}.exp-btn{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.exp-msg{font-size:var(--fs-sm);color:var(--fg3)}.draft-banner{background:var(--warn-bg);border:1px solid var(--warn,#e6a700);font-size:var(--fs-sm);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;padding:10px 14px;display:flex}
@media (max-width:1024px){.ed{grid-template-columns:1fr}.ed-side{position:static}.adm{grid-template-columns:1fr}.adm-side{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static}.adm-side nav{flex-flow:wrap}.adm-main{padding:24px 18px 70px}.grid2,.grid3{grid-template-columns:1fr}.adm-tbl{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}

.pad-end{height:80px}.pad-end.low{height:70px}a.link-spot{color:var(--spot)}a.link-fg2{color:var(--fg2)}a.link-spot.push-l{margin-left:var(--sp-1)}p.p-tight{margin:0 0 8px}p.p-last{margin:0}p.p-lead{font-size:var(--fs-sm);color:var(--fg2);line-height:var(--lh-body);margin-bottom:10px}.note-mini{color:var(--fg3);font-size:var(--fs-xs)}.mono-face{font-family:var(--mono)}.nm-mid{align-items:center;display:flex}.row-12{gap:var(--sp-2);flex-wrap:wrap;display:flex}.row-10-16{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.mt4{margin-top:4px}.mt10{margin-top:10px}.mt14{margin-top:14px}.mt18{margin-top:var(--sp-3)}.mt26{margin-top:26px}.mt30{margin-top:30px}.mt34{margin-top:34px}.mt40{margin-top:40px}.mb4{margin-bottom:4px}.mb6{margin-bottom:var(--sp-1)}.mb12{margin-bottom:var(--sp-2)}.mb14{margin-bottom:14px}.mb16{margin-bottom:16px}.mb18{margin-bottom:var(--sp-3)}.mb22{margin-bottom:22px}.mr10{margin-right:10px}.ml10{margin-left:10px}.push6{margin-top:6px}.push12{margin-top:var(--sp-2)}.push22{margin-top:22px}.w80{width:80px}.w-full{width:100%}.maxw220{max-width:220px}.maxw680,.maxw720{max-width:var(--maxw-read)}.maxw760{max-width:760px}.maxw860{max-width:860px}.maxw960,.maxw980{max-width:980px}.radar-wrap{justify-content:center;width:100%;display:flex}.rc-wrap{align-items:center;gap:10px;display:inline-flex}.rc-note{font-size:var(--fs-xs);color:var(--spot2)}

