:root{--bg:#ffffff;--surface:#ffffff;--surface-2:#f6f7f9;--surface-3:#eceef2;--ink:#0f1115;--ink-soft:#4b5058;--ink-faint:#878d96;--ink-invert:#ffffff;--line:#e5e8ec;--line-soft:#eff1f4;--line-strong:#d2d7de;--accent:#c62f22;--accent-hover:#a5231a;--accent-wash:#fdf3f1;--ok:#17805a;--shadow-1:0 1px 2px rgba(15, 17, 21, .04), 0 1px 3px rgba(15, 17, 21, .05);--shadow-2:0 12px 32px rgba(15, 17, 21, .10);--radius:12px;--radius-sm:8px;--radius-xs:5px;--wrap:720px;--wrap-wide:1240px;--side-w:320px;--gap:44px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,
               "PingFang SC", "HarmonyOS Sans SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei",
               "Source Han Sans SC", "Noto Sans SC", sans-serif;--font-serif:"Source Serif 4", Charter, Georgia, "Iowan Old Style", "Times New Roman",
                "Songti SC", "Source Han Serif SC", SimSun, serif;--font-mono:"SF Mono", "JetBrains Mono", "Cascadia Mono", Consolas, "Roboto Mono", Menlo, monospace}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.78;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}.wrap-wide{max-width:var(--wrap-wide);margin:0 auto;padding:0 24px}.wrap.is-home{max-width:var(--wrap-wide)}.mark{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.mark-issue{color:var(--accent)}.mark-cjk{font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.2em;color:var(--ink-faint)}.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);border-bottom:1px solid var(--line);backdrop-filter:saturate(180%)blur(12px);-webkit-backdrop-filter:saturate(180%)blur(12px)}.topbar{max-width:var(--wrap-wide);margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:32px;min-height:62px}.topbar-brand{font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--ink);text-decoration:none;white-space:nowrap}.topbar-brand:hover{color:var(--accent)}.topbar-nav{display:flex;gap:28px;list-style:none;margin:0;padding:0;flex-wrap:wrap}.topbar-nav a{color:var(--ink-soft);text-decoration:none;font-size:15px;font-weight:500;padding:21px 0;border-bottom:2px solid transparent;display:inline-block;transition:color .15s ease,border-color .15s ease}.topbar-nav a:hover{color:var(--ink)}.topbar-nav a[aria-current=page]{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}.topbar-right{display:flex;align-items:center;gap:16px;margin-left:auto}.topbar-cta{font-size:14px;font-weight:600;color:#fff;background:var(--ink);padding:8px 18px;border-radius:var(--radius-xs);text-decoration:none;white-space:nowrap;transition:background .15s ease}.topbar-cta:hover{background:var(--accent)}.account{display:flex;align-items:center;gap:10px}.yh-account-name{font-size:13.5px;color:var(--ink-faint)}.issue-strip{max-width:var(--wrap-wide);margin:0 auto;padding:0 24px 10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.issue-strip-note{font-size:12.5px;color:var(--ink-faint)}.paper{max-width:var(--wrap-wide);margin:0 auto;padding:30px 24px 0;display:grid;grid-template-columns:minmax(0,1fr)var(--side-w);gap:var(--gap);align-items:start}.paper-main{min-width:0}.paper-side{min-width:0;display:flex;flex-direction:column;gap:20px}.channel-dek{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--ink-soft);margin:0 0 22px}.channel-dek-bar{width:3px;height:16px;background:var(--accent);border-radius:2px;flex:none}.cover{position:relative;overflow:hidden;background:var(--surface-3)}.cover-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.2,.7,.3,1)}.cover-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,9,12,0) 42%,rgba(8,9,12,.62) 82%,rgba(8,9,12,.9) 100%);pointer-events:none}.cover-lockup{position:absolute;left:0;right:0;bottom:0;padding:0 16px 14px;color:#fff;display:flex;flex-direction:column;gap:2px}.cover-lockup-kind{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.82}.cover-lockup-title{font-size:15px;font-weight:700;letter-spacing:.01em;line-height:1.3}.corner{position:absolute;top:12px;left:12px;font-size:11px;line-height:1;font-weight:600;letter-spacing:.06em;color:#fff;background:var(--accent);padding:6px 10px;border-radius:999px;box-shadow:0 2px 8px rgba(8,9,12,.18)}.corner-plan{background:rgba(15,17,21,.72);backdrop-filter:blur(6px)}.lead{display:grid;grid-template-columns:42% minmax(0,1fr);gap:30px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:28px;box-shadow:var(--shadow-1)}.lead-figure{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--radius-sm);overflow:hidden;text-decoration:none;background:var(--surface-3)}.lead-figure:hover .cover-img{transform:scale(1.04)}.lead-text{min-width:0;display:flex;flex-direction:column;padding:4px 8px 4px 0}.lead-title{font-size:clamp(26px,2.7vw,38px);font-weight:800;line-height:1.24;letter-spacing:-.02em;margin:0 0 14px;color:var(--ink);text-wrap:balance}.lead-title a{color:var(--ink);text-decoration:none}.lead-title a:hover{color:var(--accent)}.lead-standfirst{font-size:16.5px;line-height:1.78;color:var(--ink-soft);margin:0 0 18px}.lead-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line-soft);display:flex;gap:16px;align-items:baseline;font-size:13px;color:var(--ink-faint)}.lead-node{color:var(--ink-soft);font-weight:500}.feed-tabs{display:flex;gap:4px;margin-bottom:20px}.feed-tab{font-family:var(--font-sans);font-size:13.5px;font-weight:600;color:var(--ink-soft);background:0 0;border:1px solid transparent;padding:7px 16px;cursor:pointer;border-radius:999px;transition:background .15s ease,color .15s ease}.feed-tab:hover{color:var(--ink);background:var(--surface-2)}.feed-tab.is-on{color:var(--ink);background:var(--surface-2);border-color:var(--line)}.feed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.feed-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.feed-item:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-3px)}.feed-item:hover .cover-img{transform:scale(1.045)}.fi-fig{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;text-decoration:none;background:var(--surface-3)}.fi-title{font-size:17px;font-weight:700;line-height:1.45;letter-spacing:-.005em;margin:16px 18px 0;flex:auto;color:var(--ink);text-wrap:balance}.fi-title a{color:var(--ink);text-decoration:none}.fi-title a:hover{color:var(--accent)}.fi-foot{display:flex;justify-content:space-between;gap:10px;padding:12px 18px 16px;font-size:12.5px;color:var(--ink-faint)}.fi-node{color:var(--ink-faint);font-weight:500}.is-plan .fi-title a{color:var(--ink-soft)}.is-plan .cover{opacity:.82}.feed.is-list{grid-template-columns:1fr;gap:0}.feed.is-list .feed-item{flex-direction:row;align-items:center;gap:20px;border-radius:0;border-width:0 0 1px;padding:18px 4px;background:0 0;box-shadow:none!important;transform:none!important}.feed.is-list .feed-item:hover{background:var(--surface-2)}.feed.is-list .fi-fig{flex:0 0 120px;width:120px;aspect-ratio:4/5;border-radius:var(--radius-sm)}.feed.is-list .cover-lockup{padding:0 8px 8px}.feed.is-list .cover-lockup-title{font-size:11px}.feed.is-list .cover-lockup-kind{font-size:8.5px}.feed.is-list .fi-title{margin:0;flex:auto;font-size:17px}.feed.is-list .fi-foot{flex:none;flex-direction:column;align-items:flex-end;gap:2px;padding:0 0 0 12px;min-width:86px}.side-mod{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 20px 18px;box-shadow:var(--shadow-1)}.side-mod-title{font-size:15px;font-weight:700;letter-spacing:.01em;text-align:center;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line-soft);position:relative}.side-mod-title::after{content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);width:30px;height:2px;background:var(--accent);border-radius:2px}.side-text{font-size:13.5px;color:var(--ink-soft);line-height:1.75;margin:0 0 16px}.side-note{font-size:12px;color:var(--ink-faint);margin:12px 0 0}.side-more{display:block;margin-top:16px;padding:9px 0;text-align:center;background:var(--surface-2);border-radius:var(--radius-xs);font-size:13px;font-weight:500;color:var(--ink-soft);text-decoration:none;transition:background .15s ease,color .15s ease}.side-more:hover{background:var(--ink);color:#fff}.tool-group+.tool-group{margin-top:18px}.tool-label{font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 8px}.tool-list{list-style:none;margin:0;padding:0}.tool-list li{display:flex;align-items:baseline;gap:8px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.tool-list li:last-child{border-bottom:none}.tool-name{font-size:14px;color:var(--ink);text-decoration:none;line-height:1.55;flex:auto;min-width:0;font-weight:500}.tool-name:hover{color:var(--accent)}.tool-tag{flex:none;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:3px;padding:2px 6px}.tool-tag.is-plan{color:var(--accent);border-color:#f0cfc9;background:var(--accent-wash)}.tool-loading{color:var(--ink-faint);font-size:13px;border-bottom:none!important}.side-list{list-style:none;margin:0;padding:0}.side-list li{position:relative;padding:10px 0 10px 14px;border-bottom:1px solid var(--line-soft);display:flex;align-items:baseline;gap:8px}.side-list li:last-child{border-bottom:none}.side-list li::before{content:"";position:absolute;left:0;top:18px;width:5px;height:5px;background:var(--accent);border-radius:50%}.side-list a{font-size:13.5px;color:var(--ink);text-decoration:none;line-height:1.6;flex:auto;min-width:0}.side-list a:hover{color:var(--accent)}.side-list-meta{flex:none}.subscribe-form{display:flex;gap:8px;flex-wrap:wrap}.subscribe-form input[type=email]{flex:1 1 130px;min-width:0;padding:10px 13px;font-size:14px;font-family:var(--font-sans);border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface);color:var(--ink)}.subscribe-form input[type=email]:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.subscribe-form button{padding:10px 20px;font-size:14px;font-family:var(--font-sans);font-weight:600;color:#fff;background:var(--ink);border:none;border-radius:var(--radius-xs);cursor:pointer;transition:background .15s ease}.subscribe-form button:hover{background:var(--accent)}.subscribe{margin:36px 0 20px;padding:26px 28px 24px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius)}.subscribe-label{margin:0 0 10px}.subscribe h2{font-size:19px;font-weight:700;margin:0 0 8px;line-height:1.45;letter-spacing:-.01em}.subscribe p{margin:0 0 16px;color:var(--ink-soft);font-size:14.5px;line-height:1.75}.subscribe .note{font-size:12.5px;color:var(--ink-faint);margin:12px 0 0}.subscribe .note a{color:var(--ink-soft)}.site-foot{margin-top:64px;padding:40px 0 52px;border-top:1px solid var(--line);background:var(--surface-2)}.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;align-items:start}.foot-title{font-size:18px;font-weight:800;letter-spacing:-.01em;margin:0 0 6px;color:var(--ink)}.foot-latin{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 12px}.foot-sub{font-size:13.5px;color:var(--ink-soft);margin:0 0 10px}.foot-note{font-size:12.5px;color:var(--ink-faint);margin:0}.foot-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}.foot-links a{font-size:13.5px;color:var(--ink-soft);text-decoration:none}.foot-links a:hover{color:var(--accent)}.foot-contact p{font-size:13.5px;color:var(--ink-soft);margin:0 0 12px}.foot-contact a{color:var(--ink-soft);text-decoration:none}.foot-contact a:hover{color:var(--accent)}.foot-label{margin:0 0 6px!important}.foot-legal{color:var(--ink-faint);font-size:12px;margin:30px 0 0}.foot-legal a{color:var(--ink-faint);text-decoration:none}.foot-legal a:hover{color:var(--accent)}.section{padding:56px 0;border-bottom:1px solid var(--line-soft)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:26px}.section-head h2{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0}.section-head .more{color:var(--ink-soft);text-decoration:none;font-size:14.5px;white-space:nowrap}.section-head .more:hover{color:var(--accent)}.post-list{list-style:none;margin:0;padding:0}.post-list li{padding:24px 0;border-bottom:1px solid var(--line-soft)}.post-list li:last-child{border-bottom:none}.post-item{display:flex;gap:20px;align-items:flex-start}.post-thumb{flex:0 0 88px;width:88px;aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-sm);background:var(--surface-3);display:block}.post-thumb .cover-img{height:100%}.post-body{min-width:0;flex:auto}.post-list .title{font-size:21px;font-weight:700;text-decoration:none;color:var(--ink);line-height:1.45;letter-spacing:-.01em;text-wrap:balance}.post-list .title:hover{color:var(--accent)}.post-list .summary{color:var(--ink-soft);font-size:15.5px;margin:8px 0 0}.post-list .meta{color:var(--ink-faint);font-size:13px;margin-top:9px;display:flex;gap:14px;flex-wrap:wrap}.tag{display:inline-block;padding:3px 10px;font-size:12px;font-weight:500;color:var(--accent);background:var(--accent-wash);border-radius:999px;text-decoration:none;letter-spacing:.01em}.tag:hover{background:var(--accent);color:#fff}.tag-plan{color:var(--ink-faint);background:0 0;border:1px solid var(--line-strong);letter-spacing:.1em}.tag-plan:hover{color:var(--ink-faint);background:0 0;border-color:var(--ink-faint)}.article{padding:48px 0 68px}.article header{margin-bottom:30px}.article h1{font-size:clamp(28px,3.2vw,40px);font-weight:800;line-height:1.24;letter-spacing:-.022em;margin:0 0 16px;text-wrap:balance}.article .meta{color:var(--ink-faint);font-size:13.5px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}.article .content{font-size:17px;line-height:1.85}.article .content h2{font-size:25px;font-weight:800;letter-spacing:-.018em;margin:48px 0 18px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}.article .content h3{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:34px 0 12px}.article .content p{margin:0 0 18px}.article .content ul,.article .content ol{margin:0 0 18px;padding-left:1.4em}.article .content li{margin-bottom:8px}.article .content blockquote{margin:28px 0;padding:6px 0 6px 22px;border-left:3px solid var(--accent);color:var(--ink-soft);font-size:19px;font-weight:500;line-height:1.7}.article .content img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.article .content table{width:100%;border-collapse:collapse;margin:26px 0;font-size:15.5px}.article .content th,.article .content td{border:1px solid var(--line);padding:10px 13px;text-align:left}.article .content th{background:var(--surface-2);font-weight:600}.article .content code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-2);padding:2px 6px;border-radius:4px}.article .content pre{background:#14171c;color:#e8eaed;padding:18px 20px;border-radius:var(--radius-sm);overflow-x:auto;line-height:1.65;font-size:14.5px}.article .content pre code{background:0 0;color:inherit;padding:0}.article .content hr{border:none;border-top:1px solid var(--line);margin:44px 0}.article-hero{margin:0 0 34px;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;background:var(--surface-3)}.article-hero img{width:100%;height:100%;object-fit:cover;display:block}.page-head{padding:48px 0 28px;border-bottom:1px solid var(--line);margin-bottom:34px}.page-head h1{font-size:clamp(28px,3.2vw,40px);font-weight:800;letter-spacing:-.022em;margin:0 0 12px;line-height:1.24}.page-head .lede{color:var(--ink-soft);font-size:16.5px;margin:0}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.resource{display:block;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.resource:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-2px)}.resource h3{font-size:18px;font-weight:700;letter-spacing:-.01em;margin:0 0 8px}.resource p{color:var(--ink-soft);font-size:14.5px;margin:0 0 14px}.resource .fmt{font-size:12px;color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.08em}@media(max-width:1100px){.paper{grid-template-columns:minmax(0,1fr)}.paper-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;margin-top:36px}.foot-grid{grid-template-columns:1fr 1fr}}@media(max-width:900px){.feed{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){body{font-size:16.5px}.topbar{flex-wrap:wrap;gap:14px;padding:12px 20px;min-height:0}.topbar-brand{font-size:18px;width:100%}.topbar-nav{gap:20px}.topbar-nav a{padding:6px 0}.topbar-right{width:100%;margin-left:0}.issue-strip{padding:0 20px 8px}.issue-strip-note{display:none}.paper{padding:20px 20px 0}.lead{grid-template-columns:1fr;gap:18px;padding:14px}.lead-figure{aspect-ratio:16/9}.lead-text{padding:0 4px 4px}.feed{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.fi-title{font-size:15.5px;margin:13px 13px 0}.fi-foot{padding:10px 13px 13px}.cover-lockup{padding:0 12px 11px}.cover-lockup-title{font-size:13px}.feed.is-list .feed-item{flex-direction:column;gap:12px;align-items:stretch}.feed.is-list .fi-fig{flex:none;width:100%}.feed.is-list .fi-foot{flex-direction:row;width:100%;padding:0}.paper-side{grid-template-columns:1fr}.foot-grid{grid-template-columns:1fr}.article-hero{aspect-ratio:16/9}}@media(max-width:460px){.feed{grid-template-columns:1fr}}.member-page{padding:48px 0 24px}.member-page h1{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 10px}.member-page .lede{color:var(--ink-soft);font-size:16.5px;margin:0 0 28px}.yh-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px 32px;margin-bottom:24px;box-shadow:var(--shadow-1)}.yh-btn{display:inline-block;padding:11px 24px;font-size:15px;font-family:var(--font-sans);font-weight:600;color:#fff;background:var(--ink);border:1px solid var(--ink);border-radius:var(--radius-xs);cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.yh-btn:hover{background:var(--accent);border-color:var(--accent)}.yh-btn:disabled{opacity:.5;cursor:not-allowed}.yh-btn-ghost{color:var(--ink-soft);background:0 0;border:1px solid var(--line-strong)}.yh-btn-ghost:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-wash)}.yh-btn-sm{padding:7px 15px;font-size:13.5px}.yh-form{display:flex;flex-direction:column;gap:16px}.yh-field{display:flex;flex-direction:column;gap:6px}.yh-label{font-size:13.5px;color:var(--ink-soft)}.yh-field input[type=text],.yh-field input[type=tel],.yh-field input[type=email],.yh-field select{padding:11px 14px;font-size:15px;font-family:var(--font-sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-xs);width:100%}.yh-field input:focus,.yh-field select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.yh-field-code{flex-direction:row;gap:10px;align-items:stretch}.yh-field-code input{flex:auto}.yh-field-code .yh-btn{flex:none;white-space:nowrap}.yh-channels{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-xs);overflow:hidden}.yh-channel-tab{flex:1;padding:10px;font-size:14px;font-weight:500;font-family:var(--font-sans);color:var(--ink-soft);background:0 0;border:0;cursor:pointer;transition:background .15s ease,color .15s ease}.yh-channel-tab:hover{color:var(--ink)}.yh-channel-tab.is-on{background:var(--surface);color:var(--ink);font-weight:600}.yh-hint{margin:0;font-size:13.5px;color:var(--ink-faint);line-height:1.65}.yh-hint.is-error{color:var(--accent)}.yh-checks{display:flex;flex-wrap:wrap;gap:9px 20px;margin-top:4px}.yh-check{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--ink-soft);cursor:pointer}.yh-check input{accent-color:var(--accent)}.yh-check-block{margin-top:4px}.yh-meta{display:flex;gap:14px;font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);margin:0 0 14px!important}.yh-modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(15,17,21,.45);display:flex;align-items:center;justify-content:center;padding:20px;animation:yh-fade .16s ease-out}@keyframes yh-fade{from{opacity:0}to{opacity:1}}.yh-modal{position:relative;width:100%;max-width:430px;background:var(--surface);border-radius:var(--radius);padding:32px 32px 30px;box-shadow:0 24px 60px rgba(0,0,0,.22);animation:yh-rise .18s ease-out}@keyframes yh-rise{from{transform:translateY(10px);opacity:.6}to{transform:none;opacity:1}}.yh-modal-title{font-size:22px;font-weight:800;letter-spacing:-.015em;margin:0 0 6px}.yh-modal-sub{margin:0 0 22px;font-size:14.5px;color:var(--ink-soft)}.yh-modal-close{position:absolute;top:12px;right:14px;width:32px;height:32px;line-height:1;font-size:22px;color:var(--ink-faint);background:0 0;border:none;cursor:pointer}.yh-modal-close:hover{color:var(--accent)}.yh-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);z-index:300;padding:12px 24px;background:var(--ink);color:#fff;font-size:14.5px;border-radius:var(--radius-xs);box-shadow:0 10px 30px rgba(0,0,0,.24);animation:yh-rise .18s ease-out}.yh-toast.is-ok{background:var(--ok)}.yh-toast.is-error{background:var(--accent)}.yh-toast.is-out{opacity:0;transition:opacity .3s}.yh-list{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.yh-list-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-xs);text-decoration:none;color:inherit;font-size:14.5px}.yh-list-item:hover{border-color:var(--accent)}.yh-list-item span{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint)}.course-product{padding:26px 0 28px;border-bottom:1px solid var(--line)}.course-product:first-child{padding-top:4px}.course-product:last-child{border-bottom:none;padding-bottom:4px}.course-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.course-title{font-size:22px;font-weight:800;letter-spacing:-.015em;margin:0}.course-price{font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--accent)}.course-badge{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ok);border:1px solid var(--ok);border-radius:999px;padding:3px 10px}.course-summary{color:var(--ink-soft);font-size:15px;margin:10px 0 0}.course-promise{margin:16px 0 0;padding:14px 18px;background:var(--accent-wash);border-left:3px solid var(--accent);color:var(--ink);font-size:15.5px;line-height:1.75}.course-lesson-count{color:var(--ink-faint);font-size:13px;margin:12px 0 0}.course-lessons{list-style:none;margin:18px 0 0;padding:0}.course-lesson{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 0;border-top:1px solid var(--line-soft)}.course-lesson-main{min-width:0;flex:auto}.course-lesson-title{display:block;font-size:15.5px;font-weight:600;color:var(--ink)}.course-lesson-summary{display:block;color:var(--ink-faint);font-size:13.5px;margin-top:4px;line-height:1.6}.course-lesson-side{flex:none;display:flex;align-items:center;gap:12px}.course-done-mark{font-family:var(--font-mono);font-size:11px;color:var(--ok);letter-spacing:.06em}.course-pending{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:999px;padding:3px 9px}.course-lesson-btn{font-family:var(--font-sans);font-size:13.5px;font-weight:600;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-xs);padding:8px 16px;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease}.course-lesson-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.course-lesson.is-done .course-lesson-title{color:var(--ink-soft)}.course-player{margin:20px 0 4px;padding:22px 24px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius)}.course-playing-title{font-size:17px;font-weight:700;margin:0 0 14px;letter-spacing:-.01em}.course-video{width:100%;max-height:62vh;background:#000;border-radius:var(--radius-xs);display:block}.course-video-status{color:var(--ink-faint);font-size:13px;margin:10px 0 0}.course-video-status.is-error{color:var(--accent)}.course-playing-summary{color:var(--ink-soft);font-size:14.5px;line-height:1.7;margin:10px 0 0}@media(max-width:640px){.course-lesson{flex-direction:column;align-items:flex-start;gap:12px}.course-lesson-side{width:100%;justify-content:space-between}.course-player{padding:18px 16px}}@media(max-width:640px){.member-page h1{font-size:27px}.yh-card{padding:22px 20px}.yh-modal{padding:28px 20px 24px}}