.flashcards-page{--trim-w:768px;--trim-h:480px;--safe:24px;--bg:#0c0a08;--bg-elev:#161310;--bg-radial:radial-gradient(1200px 800px at 50% 40%,#1a1612 0%,#0c0a08 70%);--bg-glass:#0c0a08b8;--ink:#f5f1ea;--ink-soft:#e9e1cf;--ink-muted:#cfc7b6;--ink-dim:#8a8474;--line:#2a2620;--line-strong:#3a3428;--line-active:#6e6755;--accent:#cfc7b6;--font-sans:"Schibsted Grotesk",ui-sans-serif,system-ui,sans-serif;--font-serif-zh:"Noto Serif TC",serif;--font-sans-zh:"Noto Sans TC",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--t-fast:.15s ease;--t:.25s ease}.flashcards-page *{box-sizing:border-box}.flashcards-page{background:var(--bg-radial);color:var(--ink);font-family:var(--font-sans);min-height:100vh;margin:0;padding:48px 24px 96px}.flashcards-head{max-width:1100px;color:var(--ink-muted);justify-content:space-between;align-items:flex-end;gap:24px;margin:0 auto 28px;display:flex}.flashcards-head h1{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:14px;font-weight:500}.part-divider{max-width:1100px;color:var(--ink-muted);border-top:1px solid var(--line);align-items:baseline;gap:18px;margin:24px auto 8px;padding-top:18px;display:flex}.part-divider .roman{font-family:var(--font-serif-zh);letter-spacing:.04em;color:var(--ink-soft);font-size:32px;font-weight:500}.part-divider .name{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--ink);font-size:20px;font-weight:600}.part-divider .name-zh{font-family:var(--font-serif-zh);letter-spacing:.06em;color:var(--ink-muted);font-size:18px;font-weight:600}.part-divider .sub{font-family:var(--font-mono);color:var(--ink-dim);letter-spacing:.14em;text-transform:uppercase;margin-left:auto;font-size:11px}.deck{flex-direction:column;gap:48px;max-width:1100px;margin:0 auto;display:flex}.deck>section{flex-direction:column;gap:48px;display:flex}.card-wrap{width:var(--trim-w);height:var(--trim-h);perspective:1800px;cursor:pointer;outline:none;margin:0 auto;position:relative}.card-wrap:focus-visible{box-shadow:0 0 0 3px var(--line-active);border-radius:8px}.card-flip{width:100%;height:100%;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.2,.8,.2,1);position:relative}.card-wrap.is-flipped .card-flip{transform:rotateY(180deg)}.card.face{backface-visibility:hidden;position:absolute;inset:0}.card.face.face-back{transform:rotateY(180deg)}.card{background:#222;border-radius:6px;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 30px 60px -20px #000000b3,0 8px 20px #00000073}.card>.bg{object-fit:cover;object-position:center;width:100%;height:100%;display:block;position:absolute;inset:0}.card.part-deepening>.bg{transform-origin:50%;transform:scale(1.3)translateY(-14%)}.card .overlay-grad-l{background:linear-gradient(90deg,#000000c7 0%,#0000009e 38%,#00000052 60%,#0000002e 100%);position:absolute;inset:0}.card.part-blossoming .overlay-grad-l{background:linear-gradient(90deg,#0000008c 0%,#0006 38%,#0000002e 60%,#0000 100%)}.content{left:var(--safe);right:var(--safe);top:var(--safe);bottom:var(--safe);color:#fff;flex-direction:column;display:flex;position:absolute}.essay,.back-en{grid-template-columns:minmax(180px,32%) 1fr;gap:28px;height:100%;display:grid}.essay .left,.back-en .left{border-right:1px solid #ffffff4d;flex-direction:column;justify-content:space-between;padding-right:20px;display:flex}.essay .right,.back-en .right{flex-direction:column;gap:12px;display:flex;overflow:hidden}.essay .left>div:first-child,.back-en .left>div:first-child{flex-direction:column;display:flex}.essay .left .eyebrow-row,.back-en .left .eyebrow-row{margin-bottom:12px}.eyebrow-row{letter-spacing:.22em;text-transform:uppercase;color:#ffffffb3;justify-content:flex-start;align-items:center;font-family:JetBrains Mono,ui-monospace,monospace;font-size:15px;display:flex}.theme-tag{letter-spacing:.22em;text-transform:uppercase;color:#ffffffe6;align-items:center;gap:8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:15px;display:inline-flex}.theme-tag:before{content:"";background:#fff;border-radius:50%;width:6px;height:6px}.big-num{font-feature-settings:"tnum","lnum";margin:0 0 12px;display:block}.big-num b{color:#fff;letter-spacing:-.03em;font-family:Noto Serif TC,serif;font-size:52px;font-weight:400;line-height:.9;display:block}.big-num .of{display:none}.card[class*=guide-G] .big-num b{letter-spacing:0;font-size:36px;line-height:1.1}.title-zh{letter-spacing:.02em;color:#fff;text-wrap:balance;white-space:pre-line;margin:0 0 20px;font-family:Noto Serif TC,serif;font-size:36px;font-weight:700;line-height:1.18}.title-en{letter-spacing:-.02em;color:#fff;text-wrap:balance;margin:0 0 20px;font-family:Schibsted Grotesk,sans-serif;font-size:30px;font-weight:600;line-height:1.08}.pull-quote{color:#ffffffe6;border-left:2px solid #ffffff73;max-width:240px;margin-top:0;padding-left:14px;font-family:Noto Serif TC,serif;font-size:17px;font-weight:400;line-height:1.6}.pull-quote.en{font-family:Schibsted Grotesk,sans-serif;font-weight:400}.credit-line{letter-spacing:.16em;text-transform:uppercase;color:#ffffffb3;white-space:nowrap;margin-top:auto;padding-top:16px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px}.body-zh{color:#fffffff2;text-wrap:pretty;margin:0;font-family:Noto Sans TC,sans-serif;font-size:17px;font-weight:400;line-height:1.7}.body-zh+.body-zh{margin-top:8px}.body-zh strong{border-bottom:1px solid #fff6;padding-bottom:1px;font-weight:600}.body-en{color:#fffffff2;text-wrap:pretty;margin:0;font-family:Schibsted Grotesk,sans-serif;font-size:16px;font-weight:400;line-height:1.6}.body-en+.body-en{margin-top:7px}.right.dense{gap:7px}.right.dense .body-zh,.right.dense .body-en{font-size:12.5px;line-height:1.55}.right.dense .body-zh+.body-zh,.right.dense .body-en+.body-en{margin-top:4px}.card.guide-G1 .right .body-zh{font-size:14.5px;line-height:1.62}.card.guide-G1 .right .body-zh+.body-zh{margin-top:6px}.card.guide-G1 .right .body-en{font-size:14px;line-height:1.55}.card.guide-G1 .right .body-en+.body-en{margin-top:6px}.card.guide-G1 .g1-c1{width:110px;display:inline-block}.card.guide-G1 .g1-c2{width:56px;display:inline-block}.card.guide-G1 .g1-h{letter-spacing:.18em;text-transform:uppercase;color:#ffffffbf;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px;font-weight:500}.card.guide-G2 .lang-zh .right{gap:0}.card.guide-G2 .lang-zh .right .body-zh{font-size:10.5px;line-height:1.4}.card.guide-G2 .lang-zh .right .body-zh+.body-zh{margin-top:6px}.card.guide-G2 .lang-en .right .body-en{font-size:13.5px;line-height:1.5}.card.guide-G2 .lang-en .right .body-en+.body-en{margin-top:5px}.card.guide-G3 .lang-zh .right .guide-table{font-size:13.25px;line-height:1.42}.card.guide-G3 .lang-zh .right .guide-table thead th{letter-spacing:.04em;text-transform:none;padding:4px 8px 6px;font-family:Noto Sans TC,sans-serif;font-size:13px}.card.guide-G3 .lang-zh .right .guide-table td{padding:4px 8px}.card.guide-G3 .lang-en .right .guide-table{font-size:12px;line-height:1.4}.card.guide-G3 .lang-en .right .guide-table thead th{padding:4px 8px 6px;font-size:10px}.card.guide-G3 .lang-en .right .guide-table td{padding:4px 8px}.card.guide-G3 .lang-en .right .guide-table.guide-table-en{font-size:11.5px;line-height:1.38}.card.guide-G4 .lang-zh .right .body-zh{font-size:14.75px;line-height:1.5}.card.guide-G4 .lang-zh .right .body-zh+.body-zh{margin-top:5px}.card.guide-G5 .lang-zh .right .body-zh{font-size:14.75px;line-height:1.42}.card.guide-G5 .lang-zh .right .body-zh+.body-zh{margin-top:5px}.card.guide-G5 .lang-en .right .body-en{font-size:14.5px;line-height:1.5}.card.guide-G5 .lang-en .right .body-en+.body-en{margin-top:6px}.card.guide-G6 .lang-zh .right .guide-table thead th{letter-spacing:.04em;text-transform:none;font-family:Noto Sans TC,sans-serif;font-size:13px}.card.guide-G6 .lang-en .right .guide-table{font-size:13px;line-height:1.42}.card.guide-G6 .lang-en .right .guide-table thead th{padding:4px 8px 6px;font-size:10px}.card.guide-G6 .lang-en .right .guide-table td{padding:4px 8px}.card.guide-G7 .lang-zh .right{gap:6px}.card.guide-G7 .lang-zh .right .body-zh{font-size:15px;line-height:1.55}.card.guide-G7 .lang-zh .right .body-zh+.body-zh{margin-top:4px}.card.guide-G7 .lang-en .right{gap:4px}.card.guide-G7 .lang-en .right .body-en{font-size:12.5px;line-height:1.4}.card.guide-G7 .lang-en .right .body-en+.body-en{margin-top:3px}.guide-table{border-collapse:collapse;color:#fffffff2;width:100%;font-family:Noto Sans TC,sans-serif;font-size:13.5px;line-height:1.5}.guide-table thead th{letter-spacing:.18em;text-transform:uppercase;color:#ffffffd9;text-align:left;border-bottom:1px solid #ffffff52;padding:6px 10px 8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px;font-weight:600}.guide-table td{vertical-align:top;border-bottom:1px solid #ffffff24;padding:7px 10px}.guide-table tr:last-child td{border-bottom:none}.guide-table .col-key{color:#fff;white-space:nowrap;width:32%;font-weight:600}.guide-table .col-val{color:#ffffffeb}.guide-table.guide-table-en{font-family:Schibsted Grotesk,sans-serif;font-size:13px}.practice-stack{flex-direction:column;gap:8px;margin-top:auto;padding-top:10px;display:flex}.practice{-webkit-backdrop-filter:blur(6px);background:#ffffff12;border:1px solid #ffffff2e;border-radius:8px;grid-template-columns:auto 1fr;gap:10px;padding:9px 12px;display:grid}.practice .label{letter-spacing:.08em;color:#fff;white-space:nowrap;border-right:1px solid #ffffff40;padding-top:1px;padding-right:10px;font-family:Noto Sans TC,sans-serif;font-size:14px;font-weight:600}.practice .text{color:#fffffff2;font-family:Noto Sans TC,sans-serif;font-size:15px;font-weight:400;line-height:1.65}.practice.en .label{text-transform:uppercase;letter-spacing:.12em;font-family:Schibsted Grotesk,sans-serif;font-size:14px}.practice.en .text{font-family:Schibsted Grotesk,sans-serif;font-size:15px;line-height:1.55}.flashcards-page.single-mode{padding-bottom:64px}.flashcards-page.single-mode .flashcards-head{max-width:var(--trim-w);align-items:center;margin:0 auto 28px}.deck-counter{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);align-items:baseline;gap:6px;font-size:12px;display:inline-flex}.deck-counter .cur{color:var(--ink-soft);font-size:14px}.deck-counter .sep{color:var(--line-strong)}.deck-counter .tot{color:var(--ink-dim)}.single-stage{max-width:var(--trim-w);min-height:var(--trim-h);justify-content:center;align-items:center;margin:0 auto;display:flex}.single-placeholder{width:var(--trim-w);height:var(--trim-h);border:1px dashed var(--line);background:#ffffff05;border-radius:6px}.deck-controls{max-width:var(--trim-w);justify-content:center;align-items:center;gap:12px;margin:28px auto 0;display:flex}.ctrl-btn{appearance:none;color:var(--ink-soft);border:1px solid var(--line-strong);font-family:var(--font-sans);letter-spacing:.06em;cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast),transform var(--t-fast);background:0 0;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:500}.ctrl-btn:hover:not(:disabled){border-color:var(--line-active);color:var(--ink);background:#ffffff08}.ctrl-btn:active:not(:disabled){transform:translateY(1px)}.ctrl-btn:focus-visible{box-shadow:0 0 0 3px var(--line-active);outline:none}.ctrl-btn:disabled{opacity:.4;cursor:not-allowed}.ctrl-shuffle{border-color:var(--ink-soft);color:var(--ink);background:#ffffff0a}.ctrl-shuffle:hover:not(:disabled){border-color:var(--ink);background:#ffffff14}.single-hint{max-width:var(--trim-w);text-align:center;font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin:18px auto 0;font-size:11px}@media screen and (max-width:840px){.flashcards-page{padding:24px 12px 64px}.flashcards-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}.part-divider{flex-wrap:wrap;gap:10px;margin:16px auto 4px;padding-top:14px}.part-divider .sub{flex-basis:100%;margin-left:0}.deck,.deck>section{gap:24px}.card-wrap{--scale:calc((100vw - 24px)/var(--trim-w));width:calc(var(--trim-w)*var(--scale));height:calc(var(--trim-h)*var(--scale))}.card-flip{width:var(--trim-w);height:var(--trim-h);transform:scale(var(--scale))translateX(0px)rotateY(0deg);transform-origin:0 0}.card-wrap.is-flipped .card-flip{transform:scale(var(--scale))translateX(var(--trim-w))rotateY(180deg)}.flashcards-page.single-mode .single-stage{min-height:calc(var(--trim-h)*((100vw - 24px)/var(--trim-w)))}.flashcards-page.single-mode .single-placeholder{--scale:calc((100vw - 24px)/var(--trim-w));width:calc(var(--trim-w)*var(--scale));height:calc(var(--trim-h)*var(--scale))}.deck-controls{flex-wrap:wrap;gap:8px}.ctrl-btn{padding:9px 14px;font-size:12px}}
