:root{--paper:#f3eee4;--paper-2:#faf7f0;--paper-3:#ece5d8;--ink:#221f1b;--ink-2:#4a443c;--muted:#8a8175;--hairline:#d8d0c0;--hairline-2:#e6dfd1;--zhusha:#a8352a;--zheshi:#97643c;--qiuxiang:#9c8032;--songlv:#4a6f56;--daiqing:#35606e;--zitan:#6a4f6d;--accent:var(--zhusha);--ok:var(--songlv);--danger:#a8352a;--radius:2px;--serif:"Songti SC","STSong","Source Han Serif SC","Noto Serif SC","SimSun",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;color:var(--ink);font-family:var(--serif);line-height:1.85;letter-spacing:.02em;background-color:var(--paper);background-image:radial-gradient(ellipse at 18% 8%,rgba(151,100,60,.05),transparent 55%),radial-gradient(ellipse at 85% 92%,rgba(53,96,110,.045),transparent 55%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");background-attachment:fixed}a{color:inherit;text-decoration:none}.container{max-width:1440px;margin:0 auto;padding:0 28px}.nav{border-bottom:1px solid var(--hairline);background:hsla(40,38%,92%,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:-webkit-sticky;position:sticky;top:0;z-index:10}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px}.brand{gap:10px;font-size:19px;letter-spacing:.14em;color:var(--ink)}.brand,.brand .seal{display:inline-flex;align-items:center}.brand .seal{justify-content:center;width:30px;height:30px;background:var(--zhusha);color:#f6efe4;font-size:14px;letter-spacing:0;border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.brand .dot{color:var(--zhusha);margin:0 2px}.nav-links{display:flex;gap:22px;align-items:center}.nav-links a,.nav-links button{color:var(--ink-2);font-size:14.5px}.nav-links a{position:relative;padding-bottom:2px}.nav-links a:hover{color:var(--zhusha)}.nav-links a:hover:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--zhusha)}.nav-user{color:var(--muted);font-size:13.5px;letter-spacing:.05em}.btn{display:inline-block;border:1px solid var(--hairline);background:var(--paper-2);color:var(--ink-2);padding:7px 18px;border-radius:var(--radius);font-family:var(--serif);font-size:14px;letter-spacing:.08em;cursor:pointer;transition:.18s}.btn:hover{border-color:var(--ink-2);color:var(--ink)}.btn:disabled{opacity:.38;cursor:default}.btn:disabled:hover{border-color:var(--hairline);color:var(--ink-2)}.btn-primary{background:var(--zhusha);color:#f7f1e6;border-color:var(--zhusha)}.btn-primary:hover{background:#932d24;border-color:#932d24;color:#fff}.btn-block{display:block;width:100%;text-align:center}.page-head{margin:40px 0 26px}.page-head h1{margin:0 0 10px;font-size:27px;font-weight:600;letter-spacing:.1em}.page-head p{color:var(--muted);margin:0;font-size:14.5px}.section-title{font-size:15px;color:var(--ink-2);letter-spacing:.18em;margin:36px 0 14px;padding-left:14px;position:relative}.section-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:15px;background:var(--zhusha)}.form{background:var(--paper-2);border:1px solid var(--hairline);border-radius:var(--radius);padding:40px 36px;max-width:430px;margin:72px auto;box-shadow:0 1px 2px rgba(34,31,27,.04)}.form h1{margin:0 0 26px;font-size:22px;letter-spacing:.2em;text-align:center;font-weight:600}.form h1:after{content:"";display:block;width:34px;height:2px;background:var(--zhusha);margin:12px auto 0}.field{margin-bottom:18px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;letter-spacing:.06em}.field input,.field select,textarea{width:100%;background:#fffdf8;border:1px solid var(--hairline);color:var(--ink);padding:10px 12px;border-radius:var(--radius);font-size:14.5px;font-family:var(--serif)}.field input:focus,.field select:focus,textarea:focus{outline:none;border-color:var(--zhusha)}.msg{font-size:13.5px;margin:12px 0}.msg.error{color:var(--zhusha)}.msg.ok{color:var(--songlv)}.hint{color:var(--muted);font-size:13.5px;text-align:center;margin-top:20px}.hint a{color:var(--zhusha)}.row{display:flex;gap:10px}.row input{flex:1 1}.badge{font-size:12px;padding:1px 9px;border:1px solid var(--hairline);border-radius:var(--radius);color:var(--muted);letter-spacing:.06em;white-space:nowrap}.badge.locked{color:var(--zheshi);border-color:#cdb79c}.badge.owned{color:var(--songlv);border-color:#a8bcae}.price{color:var(--zhusha);font-weight:600}.price.free{color:var(--songlv)}.unlock-box{background:var(--paper-2);border:1px solid var(--hairline);border-left:3px solid var(--zhusha);border-radius:var(--radius);padding:24px 26px;margin:18px 0}.unlock-box h3{margin:0 0 10px;font-size:16.5px;font-weight:600;letter-spacing:.1em}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:11px 14px;border-bottom:1px solid var(--hairline-2)}th{color:var(--muted);font-weight:400;letter-spacing:.1em;font-size:13px;border-bottom-color:var(--hairline)}tr:hover td{background:rgba(151,100,60,.035)}code.codeval{background:var(--paper-3);padding:2px 9px;border-radius:var(--radius);font-family:ui-monospace,monospace;color:var(--zheshi)}.empty,code.codeval{letter-spacing:.08em}.empty{color:var(--muted);text-align:center;padding:72px 0;font-size:14.5px}.player{background:#1a1815;border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;margin-bottom:16px}.player audio,.player video{width:100%;display:block}.player.embed{position:relative;padding-top:56.25%;height:0}.player.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.scroll-canvas{position:relative;left:50%;margin-left:-50vw;width:100vw;height:calc(100vh - 72px);min-height:520px;overflow:hidden;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#f4efe4;background-image:radial-gradient(ellipse 70% 55% at 50% 46%,#fbf7ee 0,#f4efe4 58%,#ece4d4 100%);box-shadow:inset 0 0 0 1px rgba(151,100,60,.16),inset 0 0 0 9px hsla(40,38%,92%,.85),inset 0 0 0 10px rgba(151,100,60,.14),inset 0 0 120px rgba(120,92,58,.09)}.scroll-canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.backdrop{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.72}.map-layer{position:absolute;left:0;top:0;transform-origin:0 0}.map-svg{position:absolute;overflow:visible;pointer-events:none}.map-core{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#f2e8d6;font-size:17px;letter-spacing:.22em;text-align:center;line-height:1.7;padding:0 18px;cursor:pointer;transition:color .18s}.map-core:hover{color:#fff}.map-core span{text-indent:.22em}.place{position:absolute;display:flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;line-height:1.4;color:var(--ink-2);text-shadow:0 0 5px #f6f1e6,0 0 5px #f6f1e6,0 0 9px #f6f1e6,0 0 14px #f6f1e6;transition:color .16s,letter-spacing .18s}.place.left{justify-content:flex-end}.place-name{flex:0 0 auto}.place:hover{color:var(--ink);letter-spacing:.06em}.place.active{color:var(--zhusha)}.place.lv1{font-size:17px;letter-spacing:.14em;font-weight:600}.place.lv1:hover{letter-spacing:.2em}.place.lv2{font-size:14.5px;color:var(--ink);letter-spacing:.06em}.place.lv3{font-size:13px;letter-spacing:.03em}.place-mark{font-size:8px;opacity:.95}.place-mark,.place-toggle{line-height:1;text-shadow:none}.place-toggle{width:15px;height:15px;flex:0 0 15px;display:flex;align-items:center;justify-content:center;border:1px solid;border-radius:50%;background:hsla(41,47%,93%,.75);font-size:9px;cursor:pointer;padding:0;font-family:var(--sans);opacity:.55;transition:opacity .16s}.place-toggle:hover{opacity:1}.colophon{position:absolute;left:40px;top:32px;z-index:4;pointer-events:none}.colophon-title{font-size:25px;letter-spacing:.3em;color:var(--ink);text-shadow:0 0 10px hsla(41,47%,93%,.9)}.colophon-sub{margin-top:7px;letter-spacing:.18em}.colophon-sub,.map-legend{font-size:12.5px;color:var(--muted)}.map-legend{position:absolute;left:42px;bottom:34px;z-index:3;display:flex;align-items:center;gap:16px;letter-spacing:.08em;text-shadow:0 0 8px hsla(41,47%,93%,.9);pointer-events:none}.map-legend i{font-style:normal;margin-right:5px;font-size:8px}.legend-tip{opacity:.75}.map-zoom{position:absolute;right:40px;bottom:32px;z-index:3;display:flex;align-items:center;gap:4px}.zbtn{min-width:28px;height:26px;padding:0 8px;border:1px solid var(--hairline);background:hsla(42,50%,96%,.82);color:var(--ink-2);font-family:var(--serif);font-size:13px;border-radius:var(--radius);cursor:pointer;transition:.16s}.zbtn:hover{border-color:var(--ink-2)}.zbtn.wide{padding:0 12px;letter-spacing:.1em}.map-zoom span{color:var(--muted);font-size:12px;min-width:44px;text-align:center}.guide-entry{margin-top:18px;pointer-events:auto}.guide-open{border:1px solid var(--zhusha);color:var(--zhusha);background:hsla(42,50%,96%,.86);font-family:var(--serif);font-size:13.5px;letter-spacing:.14em;padding:6px 16px;border-radius:var(--radius);cursor:pointer;transition:.16s}.guide-open:hover{background:var(--zhusha);color:#f7efe2}.guide-list{margin-top:10px;width:320px;background:hsla(42,50%,96%,.97);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:0 6px 26px rgba(34,31,27,.14);overflow:hidden}.guide-list-head{padding:11px 16px;font-size:12.5px;letter-spacing:.14em;color:var(--muted);border-bottom:1px solid var(--hairline-2)}.guide-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--hairline-2);padding:13px 16px;cursor:pointer;font-family:var(--serif);transition:background .14s}.guide-item:last-child{border-bottom:none}.guide-item:hover{background:rgba(168,53,42,.06)}.guide-item-title{display:block;font-size:15px;color:var(--ink);letter-spacing:.08em}.guide-item-intro{display:block;margin-top:4px;font-size:12.5px;color:var(--muted);line-height:1.7}.guide-item-count{display:inline-block;margin-top:6px;font-size:11.5px;color:var(--zhusha);letter-spacing:.08em}.guide-bar{position:absolute;left:50%;transform:translateX(-50%);bottom:26px;z-index:4;display:flex;align-items:flex-end;gap:18px;max-width:min(760px,calc(100% - 80px));padding:15px 20px;background:hsla(42,50%,96%,.96);border:1px solid var(--hairline);border-top:2px solid var(--zhusha);border-radius:var(--radius);box-shadow:0 8px 30px rgba(34,31,27,.16)}.guide-bar-main{flex:1 1;min-width:0}.guide-bar-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.guide-bar-title{font-size:15.5px;letter-spacing:.1em;color:var(--ink)}.guide-bar-count{font-size:12px;color:var(--zhusha);letter-spacing:.08em}.guide-bar-note{margin-top:5px;font-size:13.5px;color:var(--ink-2);line-height:1.75;min-height:1.75em}.guide-dots{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.guide-dot{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid var(--hairline);background:transparent;cursor:pointer;transition:.14s}.guide-dot.on,.guide-dot:hover{border-color:var(--zhusha)}.guide-dot.on{background:var(--zhusha)}.guide-bar-ctrl{display:flex;gap:5px;flex:0 0 auto}.place.dimmed{opacity:.22}.place.on-route{color:var(--ink)}.place.current-stop{color:var(--zhusha);letter-spacing:.1em}.stop-no{flex:0 0 auto;width:17px;height:17px;line-height:17px;text-align:center;border-radius:50%;background:var(--zhusha);color:#f7efe2;font-size:10.5px;font-family:var(--sans);text-shadow:none}.place.current-stop .stop-no{box-shadow:0 0 0 3px rgba(168,53,42,.22)}.corner-seal{position:absolute;right:42px;top:34px;z-index:3;width:46px;height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--zhusha);color:#f7efe2;font-size:12px;line-height:1.28;letter-spacing:.06em;border-radius:3px;opacity:.9;box-shadow:0 1px 3px rgba(34,31,27,.18);pointer-events:none}.panel-mask{position:fixed;inset:0;background:rgba(34,31,27,.32);z-index:40;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.panel{position:fixed;top:0;right:0;bottom:0;width:min(600px,100%);background:var(--paper-2);border-left:1px solid var(--hairline);z-index:41;display:flex;flex-direction:column;box-shadow:-18px 0 46px rgba(34,31,27,.16)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:26px 28px 20px;border-bottom:1px solid var(--hairline)}.panel-head h2{margin:0;font-size:20px;font-weight:600;letter-spacing:.1em}.panel-path{color:var(--muted);font-size:12.5px;margin-bottom:8px;letter-spacing:.06em}.panel-close{background:none;border:none;color:var(--muted);font-size:17px;cursor:pointer;padding:2px 6px;line-height:1}.panel-close:hover{color:var(--zhusha)}.panel-tabs{display:flex;gap:2px;padding:0 28px;border-bottom:1px solid var(--hairline);flex-wrap:wrap}.panel-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:var(--serif);font-size:14.5px;letter-spacing:.12em;padding:12px 14px;cursor:pointer;margin-bottom:-1px}.panel-tab:hover{color:var(--ink)}.panel-tab.on{color:var(--zhusha);border-bottom-color:var(--zhusha)}.panel-body{padding:26px 28px 40px;overflow-y:auto;flex:1 1}.rich{white-space:pre-wrap;line-height:2;font-size:15px}.rich.transcript{color:var(--ink-2);font-size:14.5px;line-height:2.1;border-left:2px solid var(--hairline);padding-left:18px}.rich.questions{color:var(--ink)}.locked-notice{text-align:center;padding:72px 28px}.locked-notice .seal-lock{width:54px;height:54px;margin:0 auto 18px;border:1.5px solid var(--zhusha);color:var(--zhusha);display:flex;align-items:center;justify-content:center;font-size:20px;letter-spacing:0;border-radius:2px}.locked-notice h3{margin:0 0 8px;font-size:17px;letter-spacing:.12em;font-weight:600}.node-tree{font-size:14.5px}.node-branch{border-left:1px solid var(--hairline-2);padding-left:6px}.node-branch:first-child{border-left:none;padding-left:0}.node-row{display:flex;align-items:center;gap:9px;padding:5px 10px;border-radius:var(--radius)}.node-row:hover{background:rgba(151,100,60,.055)}.node-row:hover .node-actions{opacity:1}.node-caret{background:none;border:none;color:var(--muted);cursor:pointer;font-size:11px;padding:2px 4px}.node-name{cursor:text}.node-count{color:var(--muted);font-size:11px;background:var(--paper-3);border-radius:999px;padding:0 8px}.node-actions{display:flex;gap:5px;margin-left:auto;opacity:0;transition:.14s}.node-actions .btn{padding:1px 10px;font-size:12.5px}.stop-edit{border:1px solid var(--hairline-2);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;background:#fffdf8}.stop-edit-head{display:flex;align-items:center;gap:12px}.stop-results{margin-top:8px;border:1px solid var(--hairline);border-radius:var(--radius);max-height:300px;overflow-y:auto;background:#fffdf8}.stop-result{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--hairline-2);padding:9px 14px;cursor:pointer;font-family:var(--serif);font-size:14px}.stop-result:last-child{border-bottom:none}.stop-result:hover:not(:disabled){background:rgba(168,53,42,.06)}.stop-result:disabled{opacity:.38;cursor:default}.stop-result-path{font-size:11.5px;color:var(--muted)}.node-editor{margin:10px 0 16px 24px;padding:22px 24px;border:1px solid var(--hairline);border-left:3px solid var(--zhusha);border-radius:var(--radius);background:var(--paper-2);max-width:760px}@media (max-width:760px){.container{padding:0 16px}.map-canvas{height:calc(100vh - 250px)}.panel{width:100%}.node-actions{opacity:1;flex-wrap:wrap}}.card-grid{display:grid;grid-gap:16px;gap:16px;margin-top:24px}.card{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper-2);padding:18px 20px}.card h3{margin:0 0 6px;font-size:16.5px}.card p{margin:0;color:var(--ink-2);font-size:14px;line-height:1.7}.card .meta{margin-top:10px;color:var(--muted);font-size:12.5px;letter-spacing:.04em}.card a.card-link{display:block;text-decoration:none;color:inherit}.card a.card-link:hover{border-color:var(--zhusha)}.tag{display:inline-block;font-size:11.5px;padding:2px 9px;border-radius:20px;color:var(--muted);margin-right:6px}.tag,.textarea-field{border:1px solid var(--hairline)}.textarea-field{width:100%;min-height:200px;padding:14px 16px;border-radius:var(--radius);background:var(--paper-2);color:var(--ink);font-family:var(--serif);font-size:15px;line-height:1.9;resize:vertical}.sub-nav{display:flex;gap:18px;margin:-6px 0 18px;flex-wrap:wrap}.sub-nav a{font-size:13.5px;color:var(--muted)}.sub-nav a:hover{color:var(--zhusha)}