:root{--color-paper: oklch(97.6% .008 78);--color-paper-2: oklch(94.2% .011 78);--color-paper-3: oklch(91.4% .013 78);--color-ink: oklch(21% .012 62);--color-ink-2: oklch(36% .014 62);--color-ink-3: oklch(47% .012 62);--color-rule: oklch(80.5% .012 78);--color-rule-strong: oklch(62% .014 72);--color-accent: oklch(52% .19 30);--color-accent-soft: oklch(52% .19 30 / .1);--color-accent-ink: oklch(46% .17 30);--color-focus: oklch(46% .17 30);--color-on-accent: oklch(97.6% .008 78);--color-danger: oklch(47% .19 18);--color-danger-soft: oklch(47% .19 18 / .1);--color-on-danger: oklch(98% .006 78);--color-success: oklch(45% .09 158);--color-success-soft: oklch(45% .09 158 / .12);--color-stage: oklch(17% .008 62);--color-on-media: oklch(98% .004 78);--color-scrim: oklch(15% .01 62 / .62);--color-backdrop: oklch(17% .01 62 / .62);--color-skeleton: oklch(93.5% .01 78);--shadow-overlay: 0 18px 48px oklch(20% .02 62 / .22);--font-display: "Lora", "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", SimSun, Georgia, serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1.0625rem;--text-lg: 1.3125rem;--text-xl: 1.625rem;--text-display: clamp(1.875rem, 3.4vw, 2.75rem);--lh-display: 1.12;--lh-title: 1.35;--lh-body: 1.62;--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-2xl: 3.5rem;--space-3xl: 5.5rem;--page-max: 1680px;--page-pad: clamp(1rem, 3vw, 2.25rem);--measure: 62ch;--plate-min: 15rem;--plate-gap: 1px;--hit: 2.75rem;--glow-cursor-primary: #0891b2;--glow-cursor-secondary: #7c3aed;--glow-cursor-trail-length: 48;--glow-cursor-trail-width: 11;--glow-cursor-trail-taper: .8;--glow-cursor-follow-speed: .22;--glow-cursor-glow-intensity: 1.6;--glow-cursor-glow-spread: 1.6;--glow-cursor-hotspot: .85;--glow-cursor-brightness: 1.4;--glow-cursor-opacity: 1.8;--glow-cursor-pulse-speed: 1.1;--glow-cursor-noise-strength: .05;--glow-cursor-idle-timeout: 700;--glow-cursor-fade-duration: 900;--glow-cursor-blend-mode: multiply;--stroke-text-stroke: var(--color-ink-2);--stroke-text-fill: var(--color-ink);--bg-image: url(/assets/site-background-BKRYlkuJ.webp);--bg-scrim-strong: .82;--bg-scrim-soft: .5;--bg-scrim-min: .12;--bg-photo-max-luma: 161;--dock-panel-height: 3.75rem;--dock-radius: 14px;--dock-radius-item: 10px;--dock-border-width: 3px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--z-raised: 10;--z-sticky: 200;--z-cursor: 350;--z-header: 360;--z-modal: 400;--z-toast: 500}html[data-theme=dark]{--color-paper: oklch(17.5% .008 68);--color-paper-2: oklch(13.5% .007 68);--color-paper-3: oklch(23% .009 68);--color-ink: oklch(93.5% .006 78);--color-ink-2: oklch(80% .008 78);--color-ink-3: oklch(66% .009 78);--color-rule: oklch(31% .01 68);--color-rule-strong: oklch(48% .012 68);--color-accent: oklch(62% .17 32);--color-accent-soft: oklch(62% .17 32 / .18);--color-accent-ink: oklch(74% .14 32);--color-focus: oklch(74% .14 32);--color-on-accent: oklch(18% .01 62);--color-danger: oklch(66% .16 18);--color-danger-soft: oklch(66% .16 18 / .18);--color-on-danger: oklch(19% .01 62);--color-success: oklch(74% .12 158);--color-success-soft: oklch(74% .12 158 / .16);--color-stage: oklch(11% .006 62);--color-on-media: oklch(96% .005 78);--color-scrim: oklch(10% .008 62 / .66);--color-backdrop: oklch(8% .008 62 / .7);--color-skeleton: oklch(22% .009 68);--shadow-overlay: 0 18px 48px oklch(0% 0 0 / .55);--glow-cursor-primary: #67e8f9;--glow-cursor-secondary: #a78bfa;--glow-cursor-glow-intensity: 1.2;--glow-cursor-glow-spread: 1.3;--glow-cursor-opacity: 1.2;--glow-cursor-blend-mode: screen;--stroke-text-stroke: var(--color-ink-2)}.stroke-text{display:block;width:100%;line-height:0}.stroke-text--hover{cursor:pointer}.stroke-text__svg{display:block;width:100%;height:var(--stroke-text-height, 160px);overflow:visible}.stroke-text__stroke,.stroke-text__fill{font-family:var(--font-display);font-style:normal;user-select:none}.stroke-text__stroke{vector-effect:non-scaling-stroke}.glow-cursor{position:relative;width:100%;height:100%;overflow:hidden}.glow-cursor__canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;user-select:none}.glow-cursor__content{position:relative;z-index:1;width:100%;height:100%}.tilted-card-figure{position:relative;width:100%;height:100%;perspective:800px;display:flex;flex-direction:column;align-items:center;justify-content:center}.tilted-card-mobile-note{position:absolute;top:1rem;text-align:center;font-size:.875rem;display:none}@media (max-width: 640px){.tilted-card-caption{display:none}}.tilted-card-inner{position:relative;transform-style:preserve-3d}.tilted-card-img{position:absolute;top:0;left:0;object-fit:cover;border-radius:15px;will-change:transform;transform:translateZ(0)}.tilted-card-overlay{position:absolute;top:0;left:0;z-index:2;will-change:transform;transform:translateZ(30px)}.tilted-card-caption{pointer-events:none;position:absolute;left:0;top:0;border-radius:4px;background-color:#fff;padding:4px 10px;font-size:10px;color:#2d2d2d;opacity:0;z-index:3}.dock-outer{margin:0 .5rem;display:flex;max-width:100%;align-items:center}.dock-panel{position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);display:flex;align-items:flex-end;width:fit-content;gap:1rem;border-radius:1rem;background-color:#120f17;border:1px solid #222;padding:0 .5rem .5rem}.dock-item{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background-color:#120f17;border:1px solid #222;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;cursor:pointer;outline:none}.dock-icon{display:flex;align-items:center;justify-content:center}.dock-label{position:absolute;top:-1.5rem;left:50%;width:fit-content;white-space:pre;border-radius:.375rem;border:1px solid #222;background-color:#120f17;padding:.125rem .5rem;font-size:.75rem;color:#fff;transform:translate(-50%)}
