:root{--hud-bg:#06111f;--hud-panel:#091727c7;--hud-panel-strong:#0d1f34eb;--hud-border:#6ed0ff47;--hud-border-strong:#6ed0ffa8;--hud-text:#ebf6ff;--hud-text-muted:#ebf6ffb8;--hud-accent:#6ed0ff;--hud-accent-soft:#6ed0ff24;--hud-grid:#6ed0ff14;--hud-shadow:0 24px 80px #0000006b;--hud-radius:1.5rem;--hud-gap:clamp(1rem, 2vw, 1.5rem);--hud-max-width:1200px;--hud-font-sans:"AlibabaPuHuiTi-2-55-Regular", "Alibaba PuHuiTi 2", "Inter", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--hud-font-display:"AlibabaPuHuiTi-2-75-SemiBold", "AlibabaPuHuiTi-2-55-Regular", "Alibaba PuHuiTi 2", "Inter", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--hud-font-mono:"JetBrains Mono", "SFMono-Regular", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--moon-bg:#0a0c12;--moon-panel:#141620;--moon-text:#e8ebf0;--moon-accent:#c9d1e0;--moon-red:#c84646;--moon-text-muted:#e8ebf0ad;--moon-text-subtle:#e8ebf07a;--moon-line:#c9d1e029;--moon-line-strong:#c9d1e052;--moon-gap:clamp(2.25rem, 4vw, 3.5rem);--moon-max-width:1200px;--moon-font-serif:"Cormorant Garamond", "Songti SC", "STSong", "SimSun", Georgia, "Times New Roman", serif;--moon-ease:cubic-bezier(.2, .7, .2, 1);--bw-bg:var(--moon-bg);--bw-fg:var(--moon-text);--bw-fg-muted:#e8ebf0b8;--bw-fg-subtle:#e8ebf08a;--bw-line:var(--moon-line);--bw-line-strong:var(--moon-line-strong);--bw-max-width:980px;--bw-radius:0px}@font-face{font-family:AlibabaPuHuiTi-2-55-Regular;src:url(/fonts/alibaba-puhuiti-2/regular/KUxSeKaz9CEyVwOxgR5XI.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:AlibabaPuHuiTi-2-75-SemiBold;src:url(/fonts/alibaba-puhuiti-2/semibold/ySDx8a6paQSQ7n2m8wcJR.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}:root{color:var(--bw-fg);background:var(--bw-bg);font-family:var(--hud-font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;line-height:1.6}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;font-size:clamp(15px,.2vw + 14px,18px)}body{min-width:320px;min-height:100vh;font-family:var(--hud-font-sans);background:var(--bw-bg);color:var(--bw-fg);margin:0;font-weight:400;line-height:1.6;position:relative;overflow-x:hidden}button,input,textarea,select{font:inherit}#root{isolation:isolate;border:0;width:100%;max-width:none;min-height:100vh;margin:0}a{color:inherit;text-decoration:none;transition:color .18s,opacity .18s}a:hover{opacity:.72}::selection{color:var(--bw-bg);background:var(--bw-fg)}@media (width<=720px){html{font-size:15px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body.moon-cursor-enabled,body.moon-cursor-enabled *{cursor:none!important}.moon-cursor{pointer-events:none;z-index:9999;width:44px;height:44px;margin:0;padding:0;position:fixed;top:-100px;left:-100px;transform:translate(-50%,-50%)}.moon-cursor__moon{filter:drop-shadow(0 1px 2px #00000059);width:100%;height:100%;transition:transform .2s var(--moon-ease), filter .2s var(--moon-ease);background:url(/cursors/moon-3d.png) 50%/contain no-repeat;transform:scale(.72)}.moon-cursor.is-hover .moon-cursor__moon{filter:drop-shadow(0 0 6px #f7ebc8e6)drop-shadow(0 0 18px #f7ebc8a6);transform:scale(1.05)}.moon-cursor.is-active .moon-cursor__moon{filter:drop-shadow(0 0 6px #f7ebc866);transform:scale(.8)}.app-shell{width:min(calc(100% - 2rem), var(--bw-max-width));margin:0 auto;padding:clamp(1.25rem,3vw,2rem) 0 clamp(2.5rem,6vw,3.5rem)}.app-shell__grid{gap:var(--hud-gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.section-frame{border:1px solid var(--hud-border);border-radius:var(--hud-radius);background:var(--hud-panel);min-height:19rem;box-shadow:var(--hud-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform-origin:top;will-change:transform, box-shadow;grid-column:span 6;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;animation:.48s cubic-bezier(.22,1,.36,1) both section-enter;position:relative;overflow:hidden}.section-frame:before{content:"";opacity:.8;pointer-events:none;background:linear-gradient(135deg,#6ed0ff1a,#0000 40%),linear-gradient(#0000,#6ed0ff0f);transition:opacity .18s;position:absolute;inset:0}.section-frame--hero,.section-frame--projects{grid-column:span 12}.section-frame__surface{z-index:1;flex-direction:column;justify-content:space-between;gap:clamp(1rem,2vw,1.5rem);min-height:100%;padding:clamp(1rem,2vw,1.5rem);display:flex;position:relative}.section-frame__header{gap:.9rem;display:grid}.section-frame__eyebrow{color:var(--hud-accent);font:.76rem/1.4 var(--hud-font-mono);letter-spacing:.26em;text-transform:uppercase;margin:0}.section-frame__title{color:var(--hud-text);font-family:var(--hud-font-display);letter-spacing:-.04em;margin:0;font-weight:600;line-height:1.05}.section-frame--hero .section-frame__title{font-size:clamp(3rem,8vw,5rem)}.section-frame:not(.section-frame--hero) .section-frame__title{font-size:clamp(1.55rem,3vw,2.2rem)}.section-frame__description{max-width:60ch;color:var(--hud-text-muted);margin:0;line-height:1.7}.section-frame__content{gap:1rem;display:grid}.hud-decoration{pointer-events:none;position:absolute;inset:0}.hud-decoration__corner,.hud-decoration__axis{opacity:.9;display:block;position:absolute}.hud-decoration__corner{border-color:var(--hud-border-strong);border-style:solid;width:1.15rem;height:1.15rem}.hud-decoration__corner--top-left{border-width:1px 0 0 1px;top:.8rem;left:.8rem}.hud-decoration__corner--top-right{border-width:1px 1px 0 0;top:.8rem;right:.8rem}.hud-decoration__corner--bottom-left{border-width:0 0 1px 1px;bottom:.8rem;left:.8rem}.hud-decoration__corner--bottom-right{border-width:0 1px 1px 0;bottom:.8rem;right:.8rem}.hud-decoration__axis--horizontal{inset-inline:2rem;border-top:1px solid #6ed0ff29;top:1.15rem}.hud-decoration__axis--vertical{border-right:1px solid #6ed0ff1f;top:2rem;bottom:2rem;right:1.15rem}.hero-panel,.hero-panel__actions,.hero-panel__keywords,.panel-grid,.project-panel,.skill-panel,.contact-panel{gap:.85rem;display:grid}.hero-panel{gap:1rem}.hero-panel__actions{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-panel__actions a{border:1px solid var(--hud-border);min-height:3rem;font-family:var(--hud-font-display);color:var(--hud-text);will-change:transform;cursor:pointer;background:#6ed0ff14;border-radius:1rem;justify-content:center;align-items:center;padding:.9rem 1rem;transition:border-color .18s,transform .18s,background .18s,box-shadow .18s;display:inline-flex;box-shadow:inset 0 1px #ffffff08}.hero-panel__actions a:hover{border-color:var(--hud-border-strong);background:#6ed0ff24;transform:translateY(-1px);box-shadow:0 12px 30px #03080f52}.hero-panel__actions a:focus-visible{outline-offset:2px;outline:2px solid #6ed0ffe6}.hero-panel__keywords,.skill-panel__group ul{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));margin:0;padding:0;list-style:none}.hero-panel__keywords li,.panel-card,.project-panel__card,.skill-panel__group,.contact-panel__card{background:var(--hud-panel-strong);border:1px solid #6ed0ff24}.hero-panel__keywords li{color:var(--hud-text-muted);text-align:center;border-radius:999px;padding:.75rem .9rem}.project-panel__experience-card{background:var(--hud-panel-strong);border:1px solid #6ed0ff24;border-radius:1.1rem}.project-panel__experience-meta span,.project-panel__gallery-intro span,.contact-panel__card span,.project-panel__meta span,.skill-panel__group span{color:var(--hud-accent);font:.74rem/1.4 var(--hud-font-mono);letter-spacing:.18em;text-transform:uppercase}.project-panel--experience{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:.75rem}.project-panel__experience-card{gap:.75rem;padding:1rem;display:grid}.project-panel__experience-meta{gap:.6rem;display:grid}.project-panel__experience-meta h3{color:var(--hud-text);font-family:var(--hud-font-display);margin:0;font-size:1.05rem;font-weight:600}.project-panel__experience-card p{color:var(--hud-text-muted);margin:0;line-height:1.7}.panel-grid,.project-panel,.skill-panel{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.panel-card,.project-panel__card,.skill-panel__group,.contact-panel__card{border-radius:1.1rem;padding:1rem}.panel-card p,.project-panel__meta p,.project-panel__body p,.skill-panel__group li,.contact-panel__card strong{color:var(--hud-text-muted);line-height:1.65}.panel-card strong,.project-panel__body h3,.skill-panel__group h3{color:var(--hud-text);font-family:var(--hud-font-display);margin-bottom:.45rem;display:block}.project-panel__card-stack{gap:.75rem;display:grid}.project-panel__card{background:linear-gradient(180deg, #6ed0ff14, #6ed0ff08), var(--hud-panel-strong);align-content:space-between;gap:1rem;min-height:auto;display:grid;position:relative;overflow:hidden}.project-panel__card:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #6ed0ff2e;position:absolute;inset:0}.project-panel__gallery-intro{justify-content:flex-end;display:flex}.project-panel__gallery{scroll-snap-type:x proximity;grid-auto-columns:minmax(16rem,24rem);grid-auto-flow:column;gap:.9rem;padding-bottom:.35rem;display:grid;overflow-x:auto}.project-panel__gallery-image{aspect-ratio:16/10;object-fit:cover;background:var(--hud-panel-strong);scroll-snap-align:start;border:1px solid #6ed0ff29;border-radius:1rem;width:100%}.project-panel__meta,.project-panel__body{z-index:1;gap:.45rem;display:grid;position:relative}.project-panel__meta p,.project-panel__body h3,.project-panel__body p,.skill-panel__group h3,.contact-panel__card strong{margin:0}.skill-panel__group ul{gap:.6rem}.skill-panel__group li{border-radius:.8rem;padding:.7rem .8rem}.contact-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-panel__card{background:linear-gradient(180deg, #6ed0ff1f, #6ed0ff0a), var(--hud-panel-strong);align-content:center;gap:.35rem;min-height:7.5rem;display:grid}.app-shell__grid>.section-frame:nth-child(2){animation-delay:40ms}.app-shell__grid>.section-frame:nth-child(3){animation-delay:80ms}.app-shell__grid>.section-frame:nth-child(4){animation-delay:.12s}.app-shell__grid>.section-frame:nth-child(5){animation-delay:.16s}.app-shell__grid>.section-frame:nth-child(6){animation-delay:.2s}.contact-panel__card a{color:var(--hud-text);font-size:1.05rem;font-family:var(--hud-font-display);word-break:break-word;text-decoration:none}.contact-panel__card a:hover{color:var(--hud-accent)}@media (hover:hover) and (pointer:fine){.section-frame:hover{border-color:#6ed0ff6b;transform:translateY(-4px);box-shadow:0 28px 90px #0000007a}.section-frame.section-frame--editorial:hover{box-shadow:none;border-color:#0000;transform:none}.section-frame:hover:before{opacity:1}.project-panel__card:hover{transform:translateY(-4px)scale(1.01)}}@keyframes section-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (width<=1100px){.panel-grid,.project-panel,.skill-panel{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}}@media (width<=900px){.app-shell{width:min(calc(100% - 1rem), var(--bw-max-width));padding-block:1rem 2rem}.section-frame,.section-frame--hero,.section-frame--projects{grid-column:span 12}.hero-panel__actions,.project-panel--experience,.contact-panel{grid-template-columns:1fr}.section-frame__surface{padding:clamp(1rem,2.8vw,1.25rem)}.experience-panel__line{display:none}}@media (width<=680px){.section-frame{min-height:auto}.section-frame--hero .section-frame__title{font-size:clamp(2.4rem,12vw,3.4rem)}.section-frame:not(.section-frame--hero) .section-frame__title{font-size:clamp(1.35rem,6vw,1.8rem)}.hero-panel__keywords,.skill-panel__group ul{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr))}.project-panel__gallery{grid-auto-columns:minmax(14rem,18rem)}.project-panel,.skill-panel,.panel-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.podcast-hero{grid-template-columns:1fr}.podcast-hero__cover{max-width:min(70vw,18rem)}.project-panel__card,.contact-panel__card{min-height:auto}}@media (width<=560px){.app-shell{width:min(calc(100% - .75rem), var(--bw-max-width))}.section-frame__surface{padding:1rem}.section-frame__eyebrow{letter-spacing:.22em}.project-panel,.skill-panel,.panel-grid{grid-template-columns:1fr}}@media (width<=420px){.app-shell{width:min(calc(100% - .5rem), var(--bw-max-width))}.hero-panel__keywords,.skill-panel__group ul{grid-template-columns:1fr}.hero-panel__actions a,.panel-card,.project-panel__card,.skill-panel__group,.contact-panel__card{padding-inline:.9rem}}@media (prefers-reduced-motion:reduce){.section-frame,.project-panel__card,.hero-panel__actions a{animation:none!important;transform:none!important}}.app-shell__grid{grid-template-columns:1fr;gap:0}.section-frame.section-frame--editorial{border:none;border-top:1px solid var(--bw-line);min-height:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:var(--bw-radius);background:0 0;grid-column:span 12;transition:none;animation:none}.section-frame.section-frame--editorial:before{display:none}.app-shell__grid>.section-frame.section-frame--editorial:last-child{border-bottom:1px solid var(--bw-line)}.section-frame.section-frame--editorial .hud-decoration{display:none}.section-frame.section-frame--editorial .section-frame__surface{text-align:left;background:0 0;align-items:start;gap:1.25rem;padding:clamp(1.2rem,2.6vw,2rem)}.section-frame.section-frame--editorial .section-frame__eyebrow{color:var(--bw-fg-subtle);letter-spacing:.22em}.section-frame.section-frame--editorial .section-frame__title{font-family:var(--hud-font-display);letter-spacing:-.02em;color:var(--bw-fg)}.section-frame.section-frame--editorial .section-frame__description{color:var(--bw-fg-muted)}.editorial-hero{text-align:left;justify-items:start;gap:1rem;display:grid}.editorial-hero__subtitle{color:var(--bw-fg-muted);font-family:var(--hud-font-display);margin:0}.editorial-hero__intro{color:var(--bw-fg);text-align:left;margin:0;padding-left:1.2rem;line-height:1.8}.editorial-hero__nav{flex-wrap:wrap;justify-content:flex-start;gap:1rem;display:flex}.editorial-hero__nav--top{margin-bottom:.25rem}.editorial-hero__nav a{color:var(--bw-fg);border-bottom:1px solid var(--bw-line-strong);padding-bottom:.15rem;text-decoration:none}.editorial-hero__nav a:hover{opacity:.72;border-bottom-color:var(--bw-line-strong)}.section-frame--podcast-hero .section-frame__title{max-width:24ch;font-size:clamp(2.2rem,6vw,3.6rem)}.section-frame--about .section-frame__title{font-size:clamp(1.9rem,4vw,2.8rem)}.podcast-hero{grid-template-columns:minmax(10rem,14rem) 1fr;align-items:start;gap:clamp(1rem,3vw,1.8rem);width:100%;display:grid}.podcast-hero__cover{border:1px solid var(--bw-line);background:var(--bw-bg);width:100%;max-width:14rem}.podcast-hero__cover img{object-fit:cover;aspect-ratio:1;filter:grayscale()contrast(1.06)saturate(0)brightness(1.02);width:100%;height:auto;display:block}.podcast-hero__links{flex-wrap:wrap;justify-content:flex-start;align-items:baseline;gap:1rem;display:flex}.podcast-hero__links a{color:var(--bw-fg);border-bottom:1px solid var(--bw-line-strong);padding-bottom:.15rem;text-decoration:none}.podcast-hero__links a:hover{opacity:.72;border-bottom-color:var(--bw-line-strong)}.podcast-hero__links a:focus-visible{outline:2px solid var(--bw-line-strong);outline-offset:3px}.work-list{gap:clamp(1.9rem,3.5vw,2.6rem);display:grid}.work-list--embedded{gap:clamp(1.5rem,3vw,2.25rem)}.work-item{border-top:1px solid var(--bw-line);text-align:left;gap:.72rem;padding-top:1.75rem;display:grid}.work-list--embedded .work-item:first-child{border-top:none;padding-top:0}.work-item__header{gap:.18rem;display:grid}.work-item__header h3{font-family:var(--hud-font-display);letter-spacing:-.02em;color:var(--bw-fg);margin:0;font-size:clamp(1.4rem,3.2vw,2rem)}.work-item__intro{color:var(--bw-fg-muted);white-space:normal;overflow-wrap:normal;word-break:break-word;text-wrap:wrap;max-width:96ch;margin:.55rem 0 0;line-height:1.75}.work-item__meta{flex-wrap:wrap;align-items:baseline;gap:.35rem .9rem;display:flex}.work-item__meta ul{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.work-item__meta li{font:.66rem/1.3 var(--hud-font-mono);color:var(--bw-fg-subtle);letter-spacing:.1em}.work-item__tags li{text-transform:uppercase}.work-item__bullets{color:var(--bw-fg-muted);font:.76rem/1.6 var(--hud-font-mono);letter-spacing:.02em;gap:.2rem;margin:0;padding-left:0;list-style:none;display:grid}.work-item__bullets li{padding-left:1.15rem;position:relative}.work-item__bullets li:before{content:"//";color:var(--bw-fg-subtle);opacity:.72;position:absolute;top:0;left:0}.work-item__meta ul:not(.work-item__tags) li{color:#e8ebf06b;letter-spacing:.08em;font-size:.62rem}.work-item__tags li{letter-spacing:.12em;font-size:.64rem}.work-item__gallery-label{justify-content:space-between;align-items:center;gap:1rem;display:flex}.work-item__gallery-label span{font:.72rem/1.4 var(--hud-font-mono);color:var(--bw-fg-subtle);letter-spacing:.2em;text-transform:uppercase}.work-item__gallery{scroll-snap-type:x proximity;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;cursor:grab;touch-action:pan-x;gap:1.2rem;width:100%;padding-bottom:.25rem;display:flex;overflow:auto hidden}.work-item__gallery img{aspect-ratio:16/9;object-fit:cover;background:var(--bw-bg);border:1px solid var(--bw-line);scroll-snap-align:start;border-radius:.9rem;flex:none;width:min(72vw,52rem);min-width:min(72vw,52rem)}.work-item__gallery:active{cursor:grabbing}.work-item__gallery::-webkit-scrollbar{height:10px}.work-item__gallery::-webkit-scrollbar-track{background:var(--bw-line);border-radius:999px}.work-item__gallery::-webkit-scrollbar-thumb{background:var(--bw-line-strong);border-radius:999px}.work-item__gallery-controls{opacity:.58;align-items:center;gap:.45rem;transition:opacity .18s;display:inline-flex}.work-item__gallery-label:hover .work-item__gallery-controls,.work-item__gallery-controls:focus-within{opacity:.92}.work-item__gallery-controls button{width:1.55rem;height:1.55rem;color:var(--bw-fg-subtle);font:500 .86rem/1 var(--hud-font-mono);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;transition:border-color .16s,background .16s,color .16s,transform .16s}.work-item__gallery-controls button:hover{border-color:var(--bw-line);color:var(--bw-fg);background:#e8ebf00f}.work-item__gallery-controls button:active{transform:translateY(1px)}.work-item__gallery-controls button:focus-visible{outline:2px solid var(--bw-line-strong);outline-offset:2px}.resume-appendix{grid-template-columns:1fr;gap:1.1rem;display:grid}.resume-appendix--embedded{gap:1.35rem}.resume-appendix__block{grid-column:span 12;gap:.5rem;display:grid}.resume-appendix--embedded .resume-appendix__block:first-child{padding-top:0}.resume-appendix__block h3{font-family:var(--hud-font-display);color:var(--bw-fg);margin:0;font-size:1.1rem}.resume-appendix__block h4,.resume-appendix__block h5{color:var(--bw-fg);margin:0}.resume-appendix__block h4{font-family:var(--hud-font-display);font-size:1.05rem}.resume-appendix__block ul{color:var(--bw-fg-muted);margin:0;padding-left:0;line-height:1.75;list-style:none}.resume-appendix__block li{margin:0;line-height:1.75}.resume-appendix__block .resume-appendix__top-item{margin-top:.95rem}.resume-appendix__block li>.resume-appendix__nested{color:#e8ebf09e;margin-top:.2rem;padding-left:1.1rem;font-size:.9rem;line-height:1.65;display:block}.resume-appendix__location{align-items:center;gap:.45rem;display:inline-flex}.resume-appendix__location-icon{border-radius:999px;flex:none;width:.85rem;height:.85rem}.resume-appendix__groups{gap:.45rem;display:grid}.resume-appendix__group{border-top:1px solid var(--bw-line);gap:.18rem;padding-top:.45rem;display:grid}.resume-appendix__group:first-child{border-top:none;padding-top:0}.resume-appendix__group h4,.resume-appendix__group h5{color:var(--bw-fg-subtle);font:.7rem/1.45 var(--hud-font-mono);letter-spacing:.18em;text-transform:uppercase;margin:0}.resume-appendix__group ul{gap:.14rem;padding-left:0;display:grid}.resume-appendix__group li{color:var(--bw-fg-muted);font-size:.94rem;line-height:1.55}.resume-appendix__group li a,.resume-appendix__group li span a{color:var(--bw-fg);border-bottom:1px solid var(--bw-line);text-decoration:none}.resume-appendix__group li a:hover,.resume-appendix__group li span a:hover{opacity:.72;border-bottom-color:var(--bw-line-strong)}.resume-appendix__block--works .resume-appendix__groups{gap:.38rem}.resume-appendix__block--works .resume-appendix__group{gap:.12rem}.resume-appendix__block--works .resume-appendix__group h4{color:#e8ebf06b;font:.62rem/1.35 var(--hud-font-mono);letter-spacing:.26em;text-transform:uppercase}.resume-appendix__block--works .resume-appendix__group ul{gap:.08rem}.resume-appendix__block--works .resume-appendix__group li{font-size:.92rem;line-height:1.38}.resume-appendix__block--works .resume-appendix__group li a,.resume-appendix__block--works .resume-appendix__group li span a{color:var(--bw-fg);text-underline-offset:.14em;border-bottom:none;text-decoration-line:underline;text-decoration-color:#e8ebf038;text-decoration-thickness:1px;transition:text-decoration-color .16s,text-decoration-thickness .16s}.resume-appendix__block--works .resume-appendix__group li a:hover,.resume-appendix__block--works .resume-appendix__group li span a:hover{opacity:1;text-decoration-color:#e8ebf073;text-decoration-thickness:2px}.resume-appendix__block--works .resume-appendix__group li a:focus-visible,.resume-appendix__block--works .resume-appendix__group li span a:focus-visible{outline:2px solid var(--bw-line-strong);outline-offset:2px}.section-frame--contact.section-frame--editorial .contact-panel{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.section-frame--contact.section-frame--editorial .contact-panel__card{border:1px solid var(--bw-line);background:0 0;border-radius:0;grid-template-rows:auto auto;align-content:start;gap:.35rem;min-height:auto;padding:.9rem;display:grid}.contact-panel__label{color:#e8ebf075;font:.64rem/1.35 var(--hud-font-mono);letter-spacing:.2em;text-transform:uppercase;align-items:baseline;gap:.45rem;display:inline-flex}.contact-panel__icon{object-fit:cover;border-radius:999px;flex:none;align-self:baseline;width:.78rem;height:.78rem;transform:translateY(.08em)}.about-me-panel{gap:clamp(1.5rem,3vw,2.25rem);display:grid}.about-me-panel__section{border-top:1px solid var(--bw-line);gap:1rem;padding-top:1.3rem;display:grid}.about-me-panel__section:first-child{border-top:none;padding-top:0}.about-me-panel__section-header{gap:.35rem;display:grid}.about-me-panel__section-header h3{color:var(--bw-fg-subtle);font:.74rem/1.45 var(--hud-font-mono);letter-spacing:.22em;text-transform:uppercase;margin:0}.site-footer{background:var(--bw-bg);border-top:none}.site-footer__inner{width:min(calc(100% - 2rem), var(--bw-max-width));margin:0 auto;padding:1rem 0 1.4rem}.site-footer__nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.site-footer__link{border-top:none;align-content:start;gap:.28rem;padding:.9rem 0;display:grid}.site-footer__label{color:var(--bw-fg-subtle);font:.64rem/1.35 var(--hud-font-mono);letter-spacing:.2em;text-transform:uppercase}.site-footer__value{color:var(--bw-fg);font-family:var(--hud-font-display);text-underline-offset:.14em;line-height:1.35;text-decoration-line:underline;text-decoration-color:#e8ebf038;text-decoration-thickness:1px;transition:text-decoration-color .16s,text-decoration-thickness .16s}.site-footer__link:hover .site-footer__value{text-decoration-color:#e8ebf073;text-decoration-thickness:2px}.site-footer__link:focus-visible{outline:2px solid var(--bw-line-strong);outline-offset:2px}.section-frame--contact.section-frame--editorial .contact-panel__value{color:var(--bw-fg);font-family:var(--hud-font-display);word-break:normal;overflow-wrap:normal;text-underline-offset:.14em;font-size:1rem;line-height:1.35;text-decoration-line:underline;text-decoration-color:#e8ebf038;text-decoration-thickness:1px;transition:text-decoration-color .16s,text-decoration-thickness .16s}.section-frame--contact.section-frame--editorial .contact-panel__value:hover{text-decoration-color:#e8ebf073;text-decoration-thickness:2px}.section-frame--contact.section-frame--editorial .contact-panel__value:focus-visible{outline:2px solid var(--bw-line-strong);outline-offset:2px}@media (width<=900px){.work-item__gallery{gap:.9rem}.section-frame--contact.section-frame--editorial .contact-panel,.site-footer__nav{grid-template-columns:1fr}}@media (width<=560px){.work-item__gallery img{width:min(86vw,26rem);min-width:min(86vw,26rem)}.site-footer__inner{width:min(calc(100% - 1.5rem), var(--bw-max-width))}}.page{min-height:100vh}.site-header{border-bottom:1px solid var(--bw-line);background:var(--bw-bg);border-radius:0;width:100%}.site-header__inner{width:min(calc(100% - 2rem), var(--bw-max-width));justify-content:flex-end;align-items:center;gap:1rem;margin:0 auto;padding:.9rem 0;display:flex}.site-header__right{justify-content:flex-end;align-items:center;gap:1rem;display:flex}.site-header__nav{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.language-toggle{border:1px solid var(--bw-line);background:var(--bw-bg);align-items:center;gap:.35rem;padding:.15rem .35rem;display:inline-flex}.language-toggle__btn{appearance:none;cursor:pointer;font:.72rem/1.1 var(--hud-font-mono);letter-spacing:.08em;color:var(--bw-fg-subtle);background:0 0;border:0;margin:0;padding:.2rem .4rem;transition:color .16s,background .16s}.language-toggle__btn:hover{color:var(--bw-fg)}.language-toggle__btn[data-active=true]{color:var(--bw-bg);background:var(--bw-fg)}.language-toggle__divider{background:var(--bw-line);width:1px;height:.85rem}.site-header__nav-item{appearance:none;cursor:pointer;font:.82rem/1.1 var(--hud-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bw-fg);background:0 0;border:0;border-bottom:1px solid #e8ebf038;align-items:center;margin:0;padding:.25rem 0;text-decoration:none;transition:border-bottom-color .16s;display:inline-flex}.site-header__nav-item:hover{border-bottom-color:#e8ebf073}.site-header__nav-item[data-active=true]{border-bottom-color:#e8ebf0b3}.site-header__avatar{border:1px solid var(--bw-line-strong);background:var(--bw-bg);cursor:pointer;border-radius:0;flex:none;width:3.25rem;height:3.25rem;padding:0;overflow:hidden}.site-header__avatar img{object-fit:contain;aspect-ratio:1;filter:grayscale()contrast(1.06)saturate(0)brightness(1.02);width:100%;height:100%;display:block}@media (width<=560px){.site-header__inner{width:min(calc(100% - 1.5rem), var(--bw-max-width));padding:.75rem 0}.site-header__nav{gap:.75rem}}.section-frame--podcast-home .section-frame__title{letter-spacing:-.03em;font-size:clamp(2.2rem,5vw,3.2rem)}.podcast-home{gap:1.4rem;display:grid}.podcast-home__top{grid-template-columns:168px minmax(0,1fr);align-items:start;gap:1.2rem;display:grid}.podcast-home__cover{border:1px solid var(--bw-line);width:168px;height:168px}.podcast-home__cover img{object-fit:cover;filter:grayscale()contrast(1.04);width:100%;height:100%;display:block}.podcast-home__description{color:#e8ebf0b8;max-width:56ch;margin:0;line-height:1.65}.podcast-home__links{font:.82rem/1.2 var(--hud-font-mono);letter-spacing:.14em;text-transform:uppercase;flex-wrap:wrap;gap:1.1rem;margin-top:.85rem;display:inline-flex}.podcast-home__links a{color:var(--bw-fg);text-underline-offset:.14em;-webkit-text-decoration:underline #e8ebf038;text-decoration:underline #e8ebf038;text-decoration-thickness:1px;transition:text-decoration-color .16s,text-decoration-thickness .16s}.podcast-home__links a:hover{text-decoration-color:#e8ebf073;text-decoration-thickness:2px}.podcast-home__episodes{border-top:1px solid var(--bw-line);gap:.75rem;padding-top:1.1rem;display:grid}.podcast-home__episode{border-bottom:1px solid var(--bw-line);gap:.35rem;padding:.85rem 0;display:grid}.podcast-home__episode a{color:var(--bw-fg);font-family:var(--hud-font-display);letter-spacing:-.01em;font-weight:600;text-decoration:none}.podcast-home__episode a:hover{text-underline-offset:.14em;-webkit-text-decoration:underline #e8ebf073;text-decoration:underline #e8ebf073;text-decoration-thickness:2px}.podcast-home__episode p{color:#e8ebf0b3;margin:0;line-height:1.65}@media (width<=560px){.podcast-home__top{grid-template-columns:1fr}.podcast-home__cover{width:min(68vw,240px);height:min(68vw,240px)}}.moon-gallery{flex-direction:column;grid-column:span 12;display:flex}.app-shell--gallery{--bw-max-width:1400px}.moon-gallery__header{flex:none;gap:.4rem;padding:clamp(.25rem,1vh,1rem) 0 clamp(.9rem,2vh,1.5rem);display:grid}.moon-viewer{flex:none;grid-template-rows:minmax(0,1fr) auto;height:clamp(22rem,72svh,44rem);min-height:22rem;display:grid;position:relative}.moon-gallery__eyebrow{color:var(--moon-accent);font:.72rem/1.4 var(--hud-font-mono);letter-spacing:.26em;text-transform:uppercase;margin:0}.moon-gallery__title{color:var(--moon-text);font-family:var(--moon-font-serif);letter-spacing:.01em;margin:0;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:500;line-height:1.1}.moon-viewer__stage{min-height:0;position:relative}.moon-viewer__track{scroll-snap-type:x mandatory;scrollbar-width:none;outline:none;width:100%;height:100%;display:flex;overflow:auto hidden}.moon-viewer__track::-webkit-scrollbar{display:none}.moon-viewer__track:focus-visible{outline:2px solid var(--moon-accent);outline-offset:-2px}.moon-slide{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;min-width:100%;height:100%;margin:0;position:relative}.moon-slide__frame{justify-content:center;align-items:center;min-height:0;display:flex;position:absolute;inset:clamp(.4rem,1.5vh,1rem) clamp(1rem,4vw,3rem) 4.6rem}.moon-slide__frame:focus-visible{outline:2px solid var(--moon-accent);outline-offset:2px}.moon-slide__frame img{object-fit:contain;-webkit-user-select:none;user-select:none;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.moon-slide__caption{text-align:center;pointer-events:none;align-content:center;justify-items:center;gap:.2rem;height:2.6rem;display:grid;position:absolute;bottom:clamp(.4rem,1.5vh,1rem);left:0;right:0}.moon-slide__title{color:var(--moon-text);font-family:var(--moon-font-serif);margin:0;font-size:clamp(1.2rem,2.2vw,1.5rem);font-weight:500;line-height:1.25}.moon-slide__meta{color:var(--moon-text-subtle);font:.76rem/1.5 var(--hud-font-mono);letter-spacing:.04em;margin:0}.moon-viewer__nav{z-index:3;appearance:none;-webkit-backdrop-filter:blur(8px);width:3rem;height:3rem;color:var(--moon-text);font:1.05rem/1 var(--hud-font-mono);cursor:pointer;transition:background .22s var(--moon-ease), border-color .22s var(--moon-ease), color .22s var(--moon-ease), opacity .22s var(--moon-ease);background:#14162080;border:1px solid #c9d1e052;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.moon-viewer__nav:hover:not(:disabled){border-color:var(--moon-accent);color:var(--moon-accent);background:#141620c7}.moon-viewer__nav:focus-visible{outline:2px solid var(--moon-accent);outline-offset:3px}.moon-viewer__nav:disabled{opacity:.28;cursor:default}.moon-viewer__nav--prev{left:clamp(.9rem,3vw,2rem)}.moon-viewer__nav--next{right:clamp(.9rem,3vw,2rem)}.moon-timeline{border-top:1px solid var(--moon-line);align-items:center;gap:clamp(1rem,3vw,2rem);padding:.8rem 0 .2rem;display:flex}.moon-timeline__counter{color:var(--moon-accent);font:.8rem/1 var(--hud-font-mono);letter-spacing:.12em;font-variant-numeric:tabular-nums;flex:none}.moon-timeline__years{scrollbar-width:none;align-items:center;gap:clamp(.9rem,2.5vw,1.6rem);display:flex;overflow-x:auto}.moon-timeline__years::-webkit-scrollbar{display:none}.moon-timeline__year{appearance:none;cursor:pointer;color:var(--moon-text-subtle);font:.78rem/1.2 var(--hud-font-mono);letter-spacing:.1em;font-variant-numeric:tabular-nums;transition:color .22s var(--moon-ease), border-bottom-color .22s var(--moon-ease);background:0 0;border:0;border-bottom:1px solid #0000;margin:0;padding:.3rem 0}.moon-timeline__year:hover{color:var(--moon-text)}.moon-timeline__year[data-active=true]{color:var(--moon-accent);border-bottom-color:var(--moon-accent)}.moon-timeline__year:focus-visible{outline:2px solid var(--moon-accent);outline-offset:3px}@media (width<=560px){.moon-viewer{height:clamp(20rem,68svh,36rem);min-height:20rem}.moon-viewer__nav{width:2.75rem;height:2.75rem}.moon-slide__frame{padding:clamp(.4rem,1.5vh,.9rem) .75rem .6rem}}@media (height<=30rem){.moon-viewer{min-height:20rem}.moon-gallery__header{padding-bottom:.5rem}.moon-slide__frame{padding-top:.4rem;padding-bottom:.4rem}.moon-slide__caption{padding-bottom:.5rem}}@media (prefers-reduced-motion:reduce){.moon-viewer__track{scroll-behavior:auto}}.intro{z-index:9000;background:var(--moon-bg);transition:opacity .5s var(--moon-ease);position:fixed;inset:0}.intro--fading{opacity:0;pointer-events:none}.intro__stage{cursor:pointer;width:100%;height:100%;position:relative}.intro__bg{background:url(/moon/iss071-e-67226.jpg) 50%/cover no-repeat;position:absolute;inset:0}.intro__stage:after{content:"";pointer-events:none;background:radial-gradient(#0000 42%,#0a0c129e 100%);position:absolute;inset:0}.intro__vignette{pointer-events:none;background:radial-gradient(#0000 42%,#0a0c129e 100%);position:absolute;inset:0}.intro__prompt{text-align:center;color:var(--moon-text);justify-items:center;animation:2.6s ease-in-out infinite intro-pulse;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.intro__prompt-en{font:.74rem/1.4 var(--hud-font-mono);letter-spacing:.34em;color:var(--moon-text-subtle);text-shadow:0 1px 10px #0000008c}.intro__credit{color:#e8ebf085;font:.68rem/1.5 var(--hud-font-mono);letter-spacing:.04em;text-shadow:0 1px 6px #0009;margin:0;position:absolute;bottom:clamp(.75rem,2vw,1.5rem);right:clamp(.75rem,2vw,1.5rem)}.intro__canvas{display:block;position:absolute;inset:0}@keyframes intro-pulse{0%,to{opacity:.72}50%{opacity:1}}.lightbox{z-index:100;-webkit-backdrop-filter:blur(6px);animation:lightbox-in .24s var(--moon-ease);background:#0a0c12f5;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox__figure{flex-direction:column;align-items:center;gap:1rem;max-width:calc(100vw - 8rem);max-height:calc(100dvh - 4rem);margin:0;display:flex}.lightbox__figure img{object-fit:contain;-webkit-user-select:none;user-select:none;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 12rem);display:block}.lightbox__caption{text-align:center;justify-items:center;gap:.25rem;display:grid}.lightbox__title{color:var(--moon-text);font-family:var(--moon-font-serif);margin:0;font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:500;line-height:1.25}.lightbox__meta{color:var(--moon-text-subtle);font:.78rem/1.5 var(--hud-font-mono);letter-spacing:.04em;margin:0}.lightbox__counter{color:var(--moon-accent);font:.8rem/1 var(--hud-font-mono);letter-spacing:.12em;font-variant-numeric:tabular-nums;position:absolute;top:1.2rem;left:1.4rem}.lightbox__close{z-index:2;appearance:none;-webkit-backdrop-filter:blur(8px);width:3rem;height:3rem;color:var(--moon-text);font:1.5rem/1 var(--hud-font-mono);cursor:pointer;transition:background .22s var(--moon-ease), border-color .22s var(--moon-ease), color .22s var(--moon-ease);background:#14162080;border:1px solid #c9d1e052;border-radius:50%;place-items:center;display:grid;position:absolute;top:1rem;right:1rem}.lightbox__close:hover{border-color:var(--moon-accent);color:var(--moon-accent);background:#141620c7}.lightbox__close:focus-visible,.lightbox__nav:focus-visible{outline:2px solid var(--moon-accent);outline-offset:3px}.lightbox__nav{appearance:none;-webkit-backdrop-filter:blur(8px);width:3rem;height:3rem;color:var(--moon-text);font:1.05rem/1 var(--hud-font-mono);cursor:pointer;transition:background .22s var(--moon-ease), border-color .22s var(--moon-ease), color .22s var(--moon-ease), opacity .22s var(--moon-ease);background:#14162080;border:1px solid #c9d1e052;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav:hover:not(:disabled){border-color:var(--moon-accent);color:var(--moon-accent);background:#141620c7}.lightbox__nav:disabled{opacity:.28;cursor:default}.lightbox__nav--prev{left:clamp(.9rem,3vw,2rem)}.lightbox__nav--next{right:clamp(.9rem,3vw,2rem)}@media (width<=560px){.lightbox__figure{max-width:calc(100vw - 5rem)}.lightbox__figure img{max-height:calc(100dvh - 11rem)}.lightbox__nav{width:2.75rem;height:2.75rem}}
