:root{color-scheme:dark;--paper: #f1e9d5;--sheet: #faf5ea;--sheet-tab: #fbf6ea;--paper-fg: #f6f0e2;--forest: #33503f;--forest-hover: #23382c;--deep: #24382c;--muted-2: #7a7361;--line-2: #ebe0c8;--page-1: #24211c;--page-2: #17140f;--ink: #f2ead9;--ink-soft: #d8ccb2;--muted: #a99e86;--faint: #8a806b;--line: rgba(240, 230, 205, .14);--accent-dark: #8cb8a0;--stage-w: min( calc(100vw - 80px) , 2040px);--stage-h: clamp(520px, calc(100vh - 300px) , 900px);--sheet-w: clamp(560px, calc(var(--stage-w) * .48), 900px);--sheet-h: calc(var(--sheet-w) * .755);--font-display: "Noto Serif SC", "Songti SC", "Source Han Serif SC", "Noto Serif", serif;--font-text: "Spectral", Georgia, "Times New Roman", serif;font-family:var(--font-text);background:var(--page-2);color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{overflow-x:hidden}body{min-height:100vh;background:radial-gradient(1400px 760px at 50% -8%,var(--page-1),var(--page-2) 60%),var(--page-2);color:var(--ink);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body.preview-lock{overflow:hidden}a{color:var(--accent-dark);text-decoration:none}a:hover{color:#a9d0bd}::selection{background:var(--accent-dark);color:#14110c}.sheet,.demo-row{--ink: #23211c;--ink-soft: #4e4a3f;--muted: #6e6857;--faint: #8a8069;--line: #e0d5bc;color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{position:relative;z-index:2;width:100%;max-width:1440px;margin:0 auto;padding:0 40px 40px;display:flex;flex-direction:column;min-height:100vh}.site-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:28px 0 8px}.brand-block{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;min-width:0}.brand{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:.02em}.brand-tag{font-size:13px;letter-spacing:.1em;color:var(--muted)}.contact-links{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;font-size:13px;letter-spacing:.04em}.contact-links a{color:var(--muted);border-bottom:1px solid rgba(240,230,205,.28);padding-bottom:1px}.contact-links a:hover{color:var(--accent-dark);border-color:var(--accent-dark)}.thesis{padding:10px 0 6px;max-width:760px}.thesis-zh{font-family:var(--font-display);font-weight:600;font-size:clamp(27px,5.2vw,40px);line-height:1.18;letter-spacing:.01em;margin:0;text-wrap:pretty}.thesis-en{font-family:var(--font-text);font-style:italic;font-size:clamp(15px,2.2vw,17px);line-height:1.5;color:var(--muted);margin:12px 0 0}.ambient{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.ambient-layer{position:absolute;inset:-80px;filter:blur(26px);opacity:0;transition:opacity .3s ease;background:radial-gradient(120vw 90vh at 50% 40%,var(--amb-wash),transparent 66%),radial-gradient(100vw 80vh at 50% 108%,var(--amb-deep),transparent 70%)}.ambient-layer.is-active{opacity:1}.stage-wrap{flex:1 1 auto;display:flex;flex-direction:column}@media(min-width:761px){.stage-wrap{width:var(--stage-w);max-width:none;position:relative;left:50%;transform:translate(-50%)}}.demo-stage{position:relative;flex:1 1 auto;min-height:var(--stage-h);margin-top:14px}.sheet{position:absolute;left:50%;top:50%;width:var(--sheet-w);height:var(--sheet-h);background:var(--sheet);border:1px solid rgba(250,245,234,.06);box-shadow:0 30px 62px -26px #000000b8;display:flex;flex-direction:column;overflow:hidden;cursor:pointer;transition:transform .32s cubic-bezier(.2,.75,.25,1),width .32s cubic-bezier(.2,.75,.25,1),height .32s cubic-bezier(.2,.75,.25,1),opacity .22s ease,box-shadow .22s ease}.sheet:focus-visible{outline:3px solid var(--accent-dark);outline-offset:3px}.sheet.is-lifted{box-shadow:0 42px 84px -26px #000c}.sheet.is-selected{cursor:default;box-shadow:0 56px 120px -30px #000000d9}.sheet.is-selected .sheet-corner{display:none}.sheet.is-thumb{cursor:pointer}.sheet.is-thumb .corner-name{font-size:13px}.sheet.is-thumb .corner-cat{display:none}.sheet.is-thumb .corner-hint{font-size:8px}.sheet.is-thumb .sheet-corner{padding:7px 10px;border-top-width:3px}.sheet-poster{position:relative;flex:1 1 auto;min-height:0;background-color:#eee6d2;background-image:repeating-linear-gradient(45deg,#786c520d 0 12px,#786c5200 12px 24px);overflow:hidden}.poster-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;background:#eee6d2;display:block}.sheet-ghost{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:30px;color:#cbc0a6}.sheet-enter{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;background:#f1e9d58c;text-align:center}.sheet[data-preview=poster].is-selected .sheet-enter{display:flex}.enter-kicker,.fallback-kicker{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:#9a9078}.btn-enter{min-height:48px;padding:0 24px;background:var(--forest);color:var(--paper-fg);border:1px solid #2a4234;font-family:var(--font-text);font-size:15px;letter-spacing:.02em;cursor:pointer}.btn-enter:hover{background:#2c4636}.sheet-skeleton{position:absolute;inset:0;display:none;flex-direction:column;gap:10px;padding:22px;background:#eee6d2}.sheet[data-preview=mounting] .sheet-skeleton{display:flex}.skel-bar{background:#dccfb4}.skel-bar.a{height:14px;width:40%;animation:skel 1.1s ease-in-out infinite}.skel-bar.b{height:12px;width:70%;animation:skel 1.1s ease-in-out .15s infinite}.skel-bar.c{flex:1;animation:skel 1.1s ease-in-out .3s infinite}.skel-label{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}@keyframes skel{0%,to{opacity:.45}50%{opacity:.8}}.sheet-focus{position:absolute;inset:0;display:none;flex-direction:column;border:2px solid var(--forest)}.sheet[data-preview=focused] .sheet-focus{display:flex}.focus-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;background:var(--deep);color:#e9e1cd;flex:0 0 auto}.focus-bar .title{font-size:11.5px;display:flex;align-items:center;gap:7px}.focus-bar .dot{width:7px;height:7px;border-radius:50%;background:#8fb79c}.btn-exit{font-family:var(--font-text);font-size:12px;color:#e9e1cd;background:transparent;border:1px solid rgba(233,225,205,.4);padding:5px 10px;cursor:pointer;min-height:30px}.btn-exit:hover{background:#e9e1cd1f}.focus-open{font-size:12px;color:#e9e1cd;border-bottom:1px solid rgba(233,225,205,.5);padding-bottom:1px;white-space:nowrap}.focus-open:hover{color:#fff}.focus-bar .grow{flex:1 1 auto}.focus-mount{flex:1 1 auto;min-height:0;display:flex}.sheet-focus iframe{flex:1 1 auto;width:100%;height:100%;display:block;border:0;background:#fff}.sheet-fallback{position:absolute;inset:auto 0 0;display:none;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:8px;padding:40px 18px 16px;background:linear-gradient(#eee6d200,#eee6d2f5 46%);text-align:left}.sheet[data-preview=fallback] .sheet-fallback{display:flex}.fallback-note{font-size:12.5px;color:var(--muted);max-width:44ch;line-height:1.5}.demo-tag{position:absolute;top:10px;left:10px;z-index:3;font-family:var(--font-text);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#f3ece0;background:#23211c9e;padding:4px 7px}.sheet.is-selected .demo-tag{display:none}.sheet.is-thumb .demo-tag{font-size:7px;padding:2px 4px}.sheet-bar{display:none;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line-2);background:#f7f1e2;flex:0 0 auto}.sheet.is-selected .sheet-bar{display:flex}.variant-group{display:flex;gap:6px;align-items:center}.variant-label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.btn-variant{cursor:pointer;font-family:var(--font-text);font-size:12px;letter-spacing:.01em;min-height:40px;padding:8px 12px;background:transparent;color:var(--ink-soft);border:1px solid #c7b89a}.btn-variant[aria-pressed=true]{background:var(--forest);color:var(--paper-fg);border-color:var(--forest)}.open-full{font-size:13px;color:var(--forest);border-bottom:1px solid #b9c4b4;padding-bottom:1px;margin-left:auto}.sheet-corner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;background:var(--sheet-tab);border-top:2px solid var(--sheet-accent, var(--forest));flex:0 0 auto}.corner-name{font-family:var(--font-display);font-weight:600;font-size:17px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet.is-selected .corner-name{font-size:20px}.corner-cat{font-size:11.5px;color:var(--muted-2);margin-top:1px}.corner-hint{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#a99f86;white-space:nowrap}.sheet.is-selected .corner-hint{color:var(--forest)}.stage-hint{position:absolute;left:0;right:0;bottom:2px;text-align:center;font-style:italic;font-size:13px;color:var(--faint);pointer-events:none}.demo-accordion{display:none;flex-direction:column;padding:8px 0 16px}.demo-row{border:1px solid #e2d7bf;background:var(--sheet);box-shadow:0 6px 18px -14px #281e0f66;position:relative}.demo-row+.demo-row{margin-top:-6px}.demo-row.is-selected{box-shadow:0 18px 44px -26px #281e0f8c;z-index:5;margin-top:0}.row-head{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;min-height:56px;background:var(--sheet-tab);border:0;border-left:4px solid var(--sheet-accent, var(--forest));cursor:pointer;text-align:left}.row-head .name{display:block;font-family:var(--font-display);font-weight:600;font-size:17px;line-height:1.1}.row-head .cat{display:block;font-size:12px;color:var(--muted-2);margin-top:1px}.row-chevron{font-size:20px;color:var(--faint)}.row-body{display:none;padding:12px 16px 16px;border-top:1px solid var(--line-2)}.demo-row.is-selected .row-body{display:block}.row-truth{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--forest);margin-bottom:10px}.row-poster{position:relative;height:320px;overflow:hidden;background-color:#eee6d2;background-image:repeating-linear-gradient(45deg,#786c520d 0 12px,#786c5200 12px 24px)}.row-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}.row-poster .cap{position:absolute;left:0;right:0;bottom:0;text-align:center;padding:6px;font-style:italic;font-size:11px;color:var(--faint);background:#f1e9d5b3}.row-variants{display:flex;gap:8px;margin-top:12px}.row-variants .btn-variant{flex:1 1 0;text-align:center;min-height:44px}.btn-enter-mobile{display:block;width:100%;margin-top:12px;min-height:48px;padding:0 20px;background:var(--forest);color:var(--paper-fg);border:1px solid #2a4234;font-family:var(--font-text);font-size:15px;cursor:pointer}.row-open{display:inline-block;margin-top:12px;font-size:13.5px;color:var(--forest);border-bottom:1px solid #b9c4b4}.fs-layer{position:fixed;inset:0;z-index:80;background:var(--paper);display:none;flex-direction:column}.fs-layer.is-open{display:flex}.fs-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:var(--deep);color:#e9e1cd;flex:0 0 auto}.fs-head .stack{display:flex;flex-direction:column;line-height:1.15;min-width:0}.fs-head .name{font-family:var(--font-display);font-size:15px}.fs-head .truth{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#9db0a2}.fs-head .btn-exit{min-height:44px;padding:8px 14px;font-size:13px}.fs-body{flex:1 1 auto;min-height:0;display:flex}.fs-body iframe{flex:1 1 auto;width:100%;border:0;background:#fff}.fs-mounting{flex:1 1 auto;display:flex;align-items:center;justify-content:center;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.fs-fallback{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:#191d19;-webkit-overflow-scrolling:touch}.fs-fallback img{display:block;width:100%;height:auto}.fs-foot{flex:0 0 auto;padding:calc(10px + env(safe-area-inset-bottom)) 16px 10px;background:#efe7d4;border-top:1px solid #ddd1b6;text-align:center}.fs-foot a{font-size:14px;color:var(--forest)}.site-footer{border-top:1px solid var(--line);padding:24px 0 8px;margin-top:24px}.site-footer p{margin:0;font-size:11px;letter-spacing:.06em;color:var(--muted)}@media(max-width:760px){.shell{width:100%;padding:0 16px 24px}.site-header{padding:18px 0 6px}.thesis{padding:6px 0 4px}.demo-stage{display:none}.demo-accordion{display:flex}}@media(min-width:761px){.fs-layer{display:none!important}}@media(prefers-reduced-motion:reduce){.sheet,.ambient-layer{transition:none}.skel-bar,.skel-bar.a,.skel-bar.b,.skel-bar.c{animation:none}html{scroll-behavior:auto}}
