:root{--paper:#fcfdfd;--ink:#111;--muted:#6f7a7a;--line:#1111111a;--hair:1px solid var(--line);--card:#ffffff6b;--card-solid:#ffffffa8;--glass:blur(28px) saturate(1.7) brightness(1.04);--glass-edge:inset 0 1px 0 #ffffffd9, inset 0 -1px 0 #0000000a, inset 1px 0 0 #ffffff59, inset -1px 0 0 #ffffff59;--shadow:0 6px 24px #1428320b, 0 1px 2px #14283208;--r:22px;--tiffany:#0abab5;--tiffany-soft:#81d8d0;--font:-apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;--display:"Didot", "Bodoni 72", "Didot LT STD", "Playfair Display", "Times New Roman", serif;--sheet-w:clamp(380px, 36vw, 560px);--chip:var(--ink);--gap:24px}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--font);margin:0;font-size:14px;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.caps{font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;font-size:11px}.stage{position:fixed;inset:0}.stage canvas{display:block}.backdrop{background:var(--paper);position:absolute;inset:0;overflow:hidden}.blob{background:radial-gradient(circle at center, var(--c) 0%, color-mix(in srgb, var(--c) 60%, transparent) 30%, transparent 68%);opacity:.7;will-change:transform;border-radius:50%;width:80vmax;height:80vmax;animation:26s ease-in-out infinite alternate drift;position:absolute}.blob.b1{--c:#d6f1ef;top:-32vmax;left:-28vmax}.blob.b2{--c:#e0f3f5;animation-duration:33s;animation-delay:-12s;bottom:-34vmax;right:-30vmax}.blob.b3{--c:#fff;animation-duration:37s;animation-delay:-6s;top:0;left:10vmax}.blob.b4{--c:#fff;animation-duration:29s;animation-delay:-20s;top:-28vmax;right:0}@keyframes drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(8vmax,6vmax)scale(1.15)}}.paper{pointer-events:none;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.3' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0.4 0 0 0 0.3 0 0.4 0 0 0.3 0 0 0.4 0 0.3 0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.55' numOctaves='3' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0.4 0 0 0 0.3 0 0.4 0 0 0.3 0 0 0.4 0 0.3 0 0 0 0.45 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");position:absolute;inset:0}.splash{z-index:20;background:var(--paper);transition:opacity var(--fade) ease;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.splash.out{opacity:0;pointer-events:none}.splash .mark{transition:transform var(--fade) cubic-bezier(.2, .8, .2, 1);flex-direction:column;align-items:center;gap:6px;display:flex}.splash.out .mark{transform:scale(1.06)}.splash .cluster{margin-bottom:8px;overflow:visible}.splash .cluster circle{transform-box:fill-box;transform-origin:50%;opacity:.9;animation:.6s cubic-bezier(.2,.9,.3,1.3) both grow,3s ease-in-out 1.2s infinite bob;transform:scale(0)}.splash .cluster line{stroke:#1113;stroke-width:1px;stroke-dasharray:1;stroke-dashoffset:1px;animation:.5s ease-out both draw}@keyframes grow{to{transform:scale(1)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes bob{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.splash .title{font-size:30px;font-weight:300;animation:1.2s cubic-bezier(.2,.8,.2,1) .2s both tracking}@keyframes tracking{0%{letter-spacing:.02em;text-indent:.02em;opacity:0}to{letter-spacing:.3em;text-indent:.3em;opacity:1}}.splash .sub{font-family:var(--display);letter-spacing:.06em;color:#0a9a96;font-size:15px;font-weight:600;animation:.7s cubic-bezier(.2,.8,.2,1) 1s both rise}.corner{z-index:2;transition:right .5s cubic-bezier(.2,.8,.2,1);position:absolute}.corner.tl{top:var(--gap);left:var(--gap)}.corner.tr{top:var(--gap);right:var(--gap)}.corner.bl{bottom:var(--gap);left:var(--gap)}.corner.br{bottom:var(--gap);right:var(--gap);display:flex}.stage.open .corner.tr,.stage.open .corner.br{right:calc(var(--sheet-w) + var(--gap) * 2)}.glass{background:var(--card);-webkit-backdrop-filter:var(--glass);box-shadow:var(--glass-edge), var(--shadow);position:relative}.glass:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(160deg,#ffffff8c 0%,#fff0 38% 70%,#ffffff2e 100%);position:absolute;inset:0}.round{min-width:42px;height:42px;color:var(--ink);letter-spacing:.1em;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:12px;transition:background .15s,transform .15s;display:inline-flex}.round.icon{width:40px;padding:0}button.round:hover{background:#ffffffb3;transform:translateY(-1px)scale(1.02)}.round.on{color:#fff;background:#111111d1}.round.on:before{opacity:.35}.round.progress{color:var(--ink);margin-right:8px}.round.progress b{font-family:var(--display);color:var(--tiffany);font-size:15px;font-weight:400}.round.progress i{background:#11111114;border-radius:2px;width:40px;height:3px;overflow:hidden}.round.progress i:after{content:"";height:100%;width:var(--p);background:var(--tiffany);transition:width .4s cubic-bezier(.2,.8,.2,1);display:block}.nameplate{text-align:center;pointer-events:none;flex-direction:column;align-items:center;display:flex}.nameplate .title{letter-spacing:.22em;text-indent:.22em;font-size:22px;font-weight:300;line-height:1.2}.nameplate .sub{font-family:var(--display);letter-spacing:.04em;color:#0a9a96;margin:6px 0 0;font-size:15px;font-weight:600;line-height:1.3}.nameplate i{background:#11111140;width:24px;height:1px;margin:10px 0 8px}.nameplate .range{font-family:var(--display);letter-spacing:.03em;color:var(--muted);font-size:12px;line-height:1.4}.legend ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.legend button{letter-spacing:.12em;height:30px;color:var(--ink);border-radius:999px;align-items:center;gap:10px;padding:0 10px 0 4px;font-size:13px;font-weight:300;transition:color .15s,opacity .2s;display:flex}.legend button:hover span{color:#0a9a96}.legend button.off{opacity:.35}.legend i{background:var(--chip);border-radius:50%;flex:none;width:8px;height:8px}.legend button.on i{box-shadow:0 0 0 3px #fff, 0 0 0 4px var(--chip)}.legend .n{font-family:var(--display);color:var(--muted);margin-left:2px;font-size:12px}.legend button.on{padding:0 12px 0 8px}.search{flex-direction:row-reverse;align-items:center;gap:8px;display:flex}.search-box{align-items:center;gap:10px;animation:.2s cubic-bezier(.2,.8,.2,1) pop;display:flex}@keyframes pop{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.search-box{border-radius:999px}.search input{width:240px;height:42px;color:var(--ink);font:inherit;letter-spacing:.04em;background:0 0;border:0;border-radius:999px;outline:none;padding:0 18px}.search input::placeholder{color:var(--muted)}.search .count{color:var(--muted);white-space:nowrap;font-size:12px}.toolbar{align-items:center;display:flex}.card,.sheet{border-radius:var(--r)}.sheet{background:var(--card-solid);-webkit-backdrop-filter:blur(14px)}.hover-card{top:calc(var(--gap) + 52px);right:var(--gap);pointer-events:none;width:300px;padding:20px 22px;position:absolute}.hover-card h2{font-size:22px}.sheet{--pad:34px;top:var(--gap);right:var(--gap);bottom:var(--gap);width:var(--sheet-w);flex-direction:column;transition:transform .5s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;overflow:hidden;transform:translate(calc(100% + 40px))}.sheet.open{transform:none}.sheet-scroll{padding:32px var(--pad) 28px;scrollbar-width:thin;flex:1;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.no{font-family:var(--display);letter-spacing:.12em;color:var(--muted);font-size:13px}.no b{color:var(--ink);margin-left:4px;font-size:22px;font-weight:400}.no small{margin-left:6px;font-size:11px}.chip{letter-spacing:.12em;color:var(--ink);align-items:center;gap:7px;font-size:11px;display:inline-flex}.chip:before{content:"";background:var(--chip);border-radius:50%;width:8px;height:8px}.sheet h2,.hover-card h2{letter-spacing:.12em;margin:0;font-size:30px;font-weight:300;line-height:1.25}.subtitle-line{font-family:var(--display);letter-spacing:.05em;color:#0a9a96;margin:8px 0 22px;font-size:16px;font-weight:600;line-height:1.4}.summary{border-bottom:var(--hair);margin:0 0 26px;padding:0 0 22px;font-size:16px;font-weight:300;line-height:1.75}.hover-card .summary{border:0;margin:8px 0 0;padding:0;font-size:14px}.body{font-size:15px;line-height:1.95}.body p{margin:0 0 12px}.link{border-bottom:1px solid var(--tiffany);color:var(--ink);padding:0 1px;transition:color .15s}.link:hover{color:var(--tiffany)}.sec{margin:0 0 24px;animation:.45s cubic-bezier(.2,.8,.2,1) both rise}.sec:first-child{animation-delay:50ms}.sec:nth-child(2){animation-delay:.12s}.sec:nth-child(3){animation-delay:.19s}.sec:nth-child(4){animation-delay:.26s}.sec:nth-child(5){animation-delay:.33s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.sec h3{letter-spacing:.2em;color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:500}.sec.plain,.sec.quiz,.sec.notes{border-radius:12px;padding:18px 20px}.sec.plain{background:#eaf7f6}.sec.plain h3{color:var(--tiffany)}.sec.quiz{background:#11111108}.sec.quiz h3:before{content:"Q";font-family:var(--display);color:var(--tiffany);margin-right:8px;font-size:14px}.sec.notes{border:1px dashed var(--line)}.sec p:last-child{margin-bottom:0}.sec strong{background:linear-gradient(#0000 62%,#81d8d08c 62%);font-weight:500}.sec.meta{border-top:var(--hair);margin-top:26px;padding-top:20px;animation:none}.relations{flex-direction:column;gap:8px;margin:0 0 10px;padding:0;list-style:none;display:flex}.relations li{align-items:center;gap:12px;display:flex}.relations .verb{letter-spacing:.12em;min-width:40px;color:var(--muted);font-size:11px}.relations .link{border-bottom-color:var(--chip)}.sources{margin:0;padding:0;font-size:12px;list-style:none}.sources a{color:var(--muted);word-break:break-all}.sources a:hover{color:var(--ink)}.collect{margin:0 var(--pad) 16px;background:var(--tiffany);color:#fff;letter-spacing:.2em;border-radius:999px;height:44px;font-size:12px;transition:background .15s}.collect:hover{background:#099e9a}.collect.done{color:var(--tiffany);border:1px solid var(--tiffany);background:#fff}.prevnext{border-top:var(--hair);display:flex}.prevnext button{padding:16px var(--pad);text-align:left;flex:1;align-items:center;gap:12px;display:flex}.prevnext button.next{text-align:right;border-left:var(--hair);justify-content:flex-end}.prevnext button:disabled{opacity:.35;cursor:default}.prevnext button:not(:disabled):hover{background:#11111108}.prevnext button>span:not(.arrow){flex-direction:column;gap:3px;display:flex}.prevnext small{font-family:var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:10px}.prevnext .arrow{font-family:var(--display);color:var(--ink);font-size:22px}.sheet:before{opacity:.45}.round.tour{position:relative}.round.tour .ring{pointer-events:none;width:calc(100% + 2px);height:calc(100% + 2px);position:absolute;inset:-1px;transform:rotate(-90deg)}.round.tour .ring circle{fill:none;stroke:var(--tiffany);stroke-width:2px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0;animation:countdown var(--t) linear forwards;animation-play-state:inherit}@keyframes countdown{to{stroke-dashoffset:100px}}.round.lit{background:#ffffffb3}.list{background:var(--card-solid);right:var(--gap);bottom:calc(var(--gap) + 54px);border-radius:var(--r);z-index:3;flex-direction:column;width:320px;max-height:min(70vh,640px);animation:.3s cubic-bezier(.2,.8,.2,1) rise;display:flex;position:absolute}.stage.open .list{right:calc(var(--sheet-w) + var(--gap) * 2)}.list header{border-bottom:var(--hair);justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.list nav{gap:4px;display:flex}.list nav button{letter-spacing:.1em;height:30px;color:var(--muted);border-radius:999px;padding:0 12px;font-size:12px}.list nav button.on{color:var(--ink);background:#1111110f}.list nav b{font-family:var(--display);color:var(--tiffany);font-size:14px;font-weight:400}.list .close{color:var(--muted);font-size:22px;line-height:1}.list .empty{color:var(--muted);margin:0;padding:24px 20px 28px;font-size:13px;line-height:1.7}.list ol{scrollbar-width:thin;margin:0;padding:8px 10px 14px;list-style:none;overflow-y:auto}.list h4{letter-spacing:.16em;color:var(--chip);margin:12px 10px 4px;font-size:11px;font-weight:500}.list li button{text-align:left;border-radius:8px;grid-template-columns:34px 1fr 18px;align-items:center;width:100%;height:30px;padding:0 10px;font-size:13px;display:grid}.list li button:hover,.list li button.cur{background:#ffffffb3}.list .idx{font-family:var(--display);letter-spacing:.06em;color:var(--muted);font-size:11px}.list .mark{color:var(--tiffany);text-align:right;font-size:13px;font-weight:700}.sheet .handle{display:none}@media (max-width:720px){:root{--gap:14px;--sheet-w:100vw}.hover-card{display:none}.corner.tl{top:var(--gap);left:var(--gap);right:64px}.legend ul{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-direction:row;gap:4px;padding-bottom:4px;overflow-x:auto}.legend ul::-webkit-scrollbar{display:none}.legend button{white-space:nowrap;border-radius:999px;flex:none;height:30px;padding:0 10px 0 8px;font-size:12px}.legend .n{display:none}.nameplate{text-align:left;align-items:flex-start;max-width:calc(100vw - 190px)}.nameplate .title{letter-spacing:.16em;text-indent:0;font-size:14px}.nameplate .sub{white-space:nowrap;margin-top:2px;font-size:11px}.nameplate i,.nameplate .range,.round.progress .lbl{display:none}.round.progress i{width:28px}.search input{width:min(240px,100vw - 80px)}.sheet{--pad:22px;border-radius:var(--r) var(--r) 0 0;width:auto;height:62vh;inset:auto 0 0;transform:translateY(calc(100% + 40px))}.sheet.open{transform:none}.sheet .handle{background:#11111124;border-radius:2px;flex:none;width:40px;height:4px;margin:10px auto 0;display:block}.sheet-scroll{padding:16px var(--pad) 20px;overscroll-behavior:contain}.sheet h2{font-size:24px}.subtitle-line{margin-bottom:14px;font-size:14px}.summary{margin-bottom:18px;padding-bottom:16px;font-size:15px}.body{font-size:14.5px;line-height:1.85}.collect{margin:0 var(--pad) 10px;height:40px}.prevnext button{padding:12px var(--pad)}.stage.open .corner.tr{right:var(--gap)}.stage.open .corner.bl{display:none}.stage.open .corner.br{right:var(--gap);bottom:calc(62vh + 12px)}.stage.open .round.progress{display:none}.list{border-radius:var(--r) var(--r) 0 0;width:auto;max-height:70vh;bottom:0;left:0;right:0}.stage.open .list{right:0}}
