:root{--paper: #f7f1e4;--paper-line: #f5efde;--aged: #edddba;--card: #f1e9d6;--line: #c9b088;--ink: #4a3e2e;--ink-soft: #4a3e33;--accent: #8c6f4a;--muted: #b0a186;--watermark: #efe3c4;--sage: #6b7f5e;--sage-bg: #e7e9d8}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:#ece3cd;font-family:Georgia,Songti SC,STSong,SimSun,serif;color:var(--ink-soft);-webkit-font-smoothing:antialiased}.page{max-width:780px;min-height:100vh;margin:0 auto;padding:0 36px;background:repeating-linear-gradient(180deg,var(--paper) 0px,var(--paper) 15px,var(--paper-line) 15px,var(--paper-line) 16px);box-shadow:0 0 48px #4a3e2e2e}.aged-top{height:88px;margin:0 -36px;background:linear-gradient(180deg,var(--aged) 0%,var(--paper) 100%)}.aged-bottom{height:80px;margin:0 -36px;background:linear-gradient(0deg,var(--aged) 0%,var(--paper) 100%)}main{padding:8px 0 24px}.masthead{margin:0 -36px 8px;padding:14px 36px;border-bottom:3px double var(--line);display:flex;align-items:center;justify-content:space-between}.brand{font-size:20px;font-weight:700;letter-spacing:8px;color:var(--ink);text-decoration:none}.brand small{display:block;font-size:10px;letter-spacing:4px;color:var(--muted);font-weight:700;margin-top:2px}.nav-links{display:flex;gap:22px}.nav-links a{font-size:13px;letter-spacing:3px;color:var(--accent);text-decoration:none;font-weight:700}.nav-links a:hover{color:var(--ink)}.playbill-bar{border-top:3px double var(--line);border-bottom:3px double var(--line);padding:18px 0 14px;margin:20px 0 8px;text-align:center}.playbill-bar .overline{font-size:11px;letter-spacing:8px;color:var(--accent);font-weight:700;margin:0 0 8px}.playbill-bar .subline{font-size:11px;letter-spacing:4px;color:var(--muted);font-weight:700;margin:0}.section-head{text-align:center;margin:56px 0 14px}.section-head .diamonds{font-size:13px;letter-spacing:6px;color:var(--accent);font-weight:700;margin:0 0 10px}.section-head h1,.section-head h2{font-size:24px;color:var(--ink);font-weight:700;letter-spacing:5px;line-height:1.9;margin:0}.section-head .lede{font-size:14px;color:var(--accent);font-weight:700;letter-spacing:2px;line-height:2.2;margin:16px 0 0}.rule{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1px 0;margin:14px 0 0}.prose p{font-size:16px;line-height:2.1;letter-spacing:1px;margin:0 0 1.6em;padding:12px 18px;border-radius:6px;background:radial-gradient(ellipse at 18% 15%,rgba(140,111,74,.065),transparent 60%)}.prose p strong{color:#3a2f20;font-weight:700}.watermark{font-size:64px;color:var(--watermark);font-weight:700;text-align:center;line-height:1;margin:40px 0 -10px}.colophon{border-top:3px double var(--line);padding-top:14px;margin:0 0 32px;text-align:center}.colophon p{font-size:11px;letter-spacing:4px;line-height:1.8;color:var(--muted);font-weight:700;margin:0}.program{display:flex;gap:20px;align-items:stretch;border:1px solid var(--line);background:#f1e9d699;padding:18px;margin:22px 0;text-decoration:none;transition:box-shadow .25s ease,transform .25s ease}.program:hover{box-shadow:0 6px 24px #8c6f4a38;transform:translateY(-2px)}.program .thumb{width:168px;flex:none;aspect-ratio:16 / 10;border:1px dashed var(--line);background:var(--card);display:flex;align-items:center;justify-content:center;overflow:hidden}.program .thumb img{width:100%;height:100%;object-fit:cover}.program .thumb video{width:100%;height:100%;object-fit:cover;display:block}.program .thumb .no-img{font-size:30px;color:var(--muted)}.program h3{font-size:19px;color:var(--ink);letter-spacing:3px;margin:2px 0 8px;font-weight:700}.program .desc{font-size:13px;color:var(--accent);letter-spacing:1px;line-height:1.9;margin:0 0 12px}.program .meta{font-size:12px;color:var(--muted);letter-spacing:2px;display:flex;align-items:center;justify-content:space-between}.program .price{font-size:17px;color:var(--accent);font-weight:700;letter-spacing:1px}.empty-note{text-align:center;font-size:14px;color:var(--muted);letter-spacing:2px;line-height:2.2;padding:48px 0}.tag{display:inline-block;font-size:11px;letter-spacing:2px;border-radius:999px;padding:2px 10px;font-weight:700;white-space:nowrap}.tag-free{color:var(--sage);background:var(--sage-bg);border:1px solid var(--sage);text-decoration:none}.tag-lock{color:var(--muted);background:#b0a18624;border:1px solid var(--line)}.btn{display:inline-block;width:100%;font-family:inherit;font-size:14px;letter-spacing:6px;font-weight:700;color:var(--paper);background:var(--accent);border:1px solid var(--accent);padding:12px 0;cursor:pointer;transition:background .2s ease}.btn:hover{background:#6f5838}.btn-outline{display:inline-block;width:100%;font-family:inherit;font-size:14px;letter-spacing:6px;font-weight:700;color:var(--accent);background:transparent;border:1px solid var(--accent);padding:12px 0;cursor:pointer;transition:background .2s ease}.btn-outline:hover{background:#8c6f4a14}.panel{border:1px solid var(--line);background:var(--card);padding:28px 26px}.panel h2{font-size:17px;letter-spacing:4px;color:var(--ink);text-align:center;margin:0 0 22px}.field{margin-bottom:18px}.field label{display:block;font-size:12px;letter-spacing:3px;color:var(--accent);font-weight:700;margin-bottom:8px}.field input{width:100%;font-family:inherit;font-size:15px;letter-spacing:1px;color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);padding:10px 12px;outline:none}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8c6f4a1f}.form-msg{font-size:13px;letter-spacing:1px;line-height:1.8;margin:14px 0 0;text-align:center;min-height:1.8em}.form-msg.err{color:#9c4a38}.form-msg.ok{color:var(--sage)}.detail-grid{display:grid;grid-template-columns:1fr 240px;gap:32px;align-items:start}.hero-frame{aspect-ratio:16 / 9;border:1px dashed var(--line);background:var(--card);display:flex;align-items:center;justify-content:center;overflow:hidden;margin:30px 0 26px}.hero-frame img{width:100%;height:100%;object-fit:cover}.hero-frame .no-img{font-size:44px;color:var(--muted)}.detail-title{text-align:center}.detail-title h1{font-size:24px;letter-spacing:5px;color:var(--ink);font-weight:700;line-height:1.9;margin:0}.detail-title .subtitle{font-size:14px;letter-spacing:2px;color:var(--accent);font-weight:700;margin:14px 0 0}.lesson-list{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--line)}.lesson-list li{border-bottom:1px solid var(--line)}.lesson-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 6px}.lesson-row .num{font-size:13px;color:var(--muted);width:28px;flex:none}.lesson-row .name{font-size:15px;letter-spacing:1px;color:var(--ink-soft);flex:1}.ticket{border:1px solid var(--line);background:var(--card);padding:26px 22px;text-align:center;position:sticky;top:24px}.ticket .price{font-size:30px;color:var(--accent);font-weight:700;letter-spacing:1px}.ticket .instructor{font-size:12px;letter-spacing:3px;color:var(--muted);margin:10px 0 20px}.ticket-msg{font-size:13px;letter-spacing:1px;line-height:1.8;margin:14px 0 0;min-height:1.8em}.ticket-msg.err{color:#9c4a38}.ticket-msg.ok{color:var(--sage)}.learn-grid{display:grid;grid-template-columns:1fr 264px;gap:32px;align-items:start}.gate-note{text-align:center;font-size:15px;letter-spacing:2px;line-height:2.4;color:var(--accent);padding:40px 0 8px}.gate-note a{color:var(--ink)}.player-frame{position:relative;aspect-ratio:16 / 9;background:#2c2620;border:1px solid var(--line);outline:1px dashed var(--line);outline-offset:5px;overflow:hidden}.player-frame video{width:100%;height:100%;display:block}.player-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;letter-spacing:4px;color:var(--muted);pointer-events:none}.done-badge{position:absolute;top:12px;right:12px;font-size:11px;letter-spacing:2px;color:var(--paper);background:#6b7f5eeb;border-radius:999px;padding:3px 12px}.now-title{text-align:center;font-size:19px;letter-spacing:3px;color:var(--ink);font-weight:700;margin:26px 0 6px}.now-status{text-align:center;font-size:12px;letter-spacing:2px;color:var(--muted);margin:0;min-height:1.6em}.now-status.err{color:#9c4a38}.toc{list-style:none;margin:14px 0 0;padding:0;border:1px solid var(--line);background:#f1e9d680}.toc button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font-family:inherit;font-size:14px;letter-spacing:1px;color:var(--ink-soft);background:transparent;border:none;border-bottom:1px solid var(--line);padding:12px 14px;cursor:pointer}.toc li:last-child button{border-bottom:none}.toc button:hover{background:#8c6f4a12}.toc button.active{background:var(--card);box-shadow:inset 3px 0 0 var(--accent)}.toc .num{font-size:12px;color:var(--muted);width:20px;flex:none}.toc .check{color:var(--sage);font-weight:700}.toc .check.hidden{visibility:hidden}.toc .arrow{margin-left:auto;color:var(--muted);font-size:12px}@media(max-width:720px){.page{padding:0 20px}.aged-top,.aged-bottom,.masthead{margin-left:-20px;margin-right:-20px}.detail-grid,.learn-grid{grid-template-columns:1fr}.program{flex-direction:column}.program .thumb{width:100%}.ticket{position:static}}
