:root{--bg:#06070a;--bg-soft:#0a0c11;--bg-card:#080a0e;--fg:#e9ebf2;--fg-dim:#9ba1b0;--fg-faint:#6a7080;--line:#ffffff14;--line-strong:#ffffff29;--grad:linear-gradient(90deg, #8b6bff, #2f7cff);--grad-soft:linear-gradient(90deg, #8b6bff24, #2f7cff24);--sans:-apple-system, BlinkMacSystemFont, "Inter", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--max:1180px;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow-wrap:break-word;margin:0;font-size:16px;line-height:1.65}::selection{color:#fff;background:#8b6bff52}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,p{margin:0}:focus-visible{outline-offset:3px;border-radius:2px;outline:1px solid #8b6bff}.shell{width:100%;max-width:var(--max);margin:0 auto;padding:0 clamp(20px,5vw,48px)}.mono{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);font-size:11px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rule{background:var(--line);border:0;height:1px;margin:0}.site-header{z-index:30;-webkit-backdrop-filter:saturate(140%)blur(14px);border-bottom:1px solid var(--line);background:#06070ac7;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;height:64px;display:flex}.brand{align-items:baseline;gap:10px;min-width:0;display:inline-flex}.brand-mark{background:var(--grad);border-radius:3px;flex:none;width:14px;height:14px;transform:translateY(1px)}.brand-name{letter-spacing:-.01em;white-space:nowrap;font-size:14px;font-weight:600}.brand-sub{color:var(--fg-faint);white-space:nowrap;font-size:11px;display:none}.site-nav{align-items:center;gap:4px;display:flex}.nav-link{color:var(--fg-dim);transition:color .18s var(--ease);white-space:nowrap;padding:6px 10px;font-size:13px;position:relative}.nav-link:before{content:"/";font-family:var(--mono);color:var(--fg-faint);opacity:.55;margin-right:8px}.nav-link:hover,.nav-link[aria-current=page]{color:var(--fg)}.nav-link[aria-current=page]:after{content:"";background:var(--grad);height:1px;position:absolute;bottom:-1px;left:26px;right:10px}.lang{border-left:1px solid var(--line);align-items:center;margin-left:6px;padding-left:12px;display:inline-flex}.lang-btn{font-family:var(--mono);letter-spacing:.1em;color:var(--fg-faint);transition:color .18s var(--ease);padding:4px 5px;font-size:11px}.lang-btn:hover{color:var(--fg-dim)}.lang-btn[aria-pressed=true]{color:var(--fg)}.lang-btn[aria-pressed=true]:after{content:"";background:var(--grad);height:1px;margin-top:2px;display:block}.btn{letter-spacing:-.01em;border:1px solid var(--line-strong);height:42px;transition:background .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);align-items:center;gap:10px;padding:0 18px;font-size:14px;font-weight:500;display:inline-flex}.btn:hover{background:#ffffff0a;border-color:#ffffff47}.btn:active{transform:translateY(1px)}.btn--primary{background:linear-gradient(var(--bg-card), var(--bg-card)) padding-box, var(--grad) border-box;border:1px solid #0000}.btn--primary:hover{background:linear-gradient(#0f1219, #0f1219) padding-box, var(--grad) border-box;border-color:#0000}.btn .arrow{font-family:var(--mono);color:var(--fg-dim);transition:transform .2s var(--ease);font-size:13px}.btn:hover .arrow{color:var(--fg);transform:translate(3px)}.hero{border-bottom:1px solid var(--line);padding:clamp(56px,11vh,128px) 0 clamp(48px,8vh,88px)}.hero-eyebrow{align-items:center;gap:10px;margin-bottom:28px;display:inline-flex}.hero-eyebrow:before{content:"";background:var(--grad);width:18px;height:1px}.hero-title{letter-spacing:-.035em;white-space:pre-line;max-width:15ch;margin-bottom:28px;font-size:clamp(2.5rem,7vw,5.4rem);font-weight:500;line-height:1.04}.hero-lede{max-width:54ch;color:var(--fg-dim);font-size:clamp(15px,1.4vw,18px);line-height:1.7}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:36px;display:flex}.hero-hint{font-family:var(--mono);letter-spacing:.06em;color:var(--fg-faint);margin-left:4px;font-size:11px}.section{border-bottom:1px solid var(--line);padding:clamp(56px,9vh,96px) 0}.section:last-child{border-bottom:0}.section-head{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:36px;display:flex}.section-title{letter-spacing:-.025em;font-size:clamp(1.35rem,2.4vw,1.9rem);font-weight:500}.section-note{max-width:34ch;color:var(--fg-faint);text-align:right;font-size:13px;line-height:1.6}.section-index{margin-bottom:10px;display:block}.work-grid{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.card{border-bottom:1px solid var(--line);transition:background .22s var(--ease);padding:26px clamp(18px,2.4vw,30px) 28px;display:block;position:relative}.card:nth-child(odd){border-right:1px solid var(--line)}.card:last-child:nth-child(odd){border-right:0;grid-column:1/-1}.card:last-child:nth-child(odd) .card-metrics{max-width:520px}.card--aux{background:var(--grad-soft);flex-direction:column;justify-content:center;display:flex}.card--aux:hover{background:linear-gradient(90deg,#8b6bff33,#2f7cff29)}.card--aux .card-sub{margin-bottom:0}.card:before{content:"";background:var(--grad);width:0;height:1px;transition:width .32s var(--ease);position:absolute;top:0;left:clamp(18px,2.4vw,30px)}.card:hover{background:#ffffff06}.card:hover:before{width:64px}.card-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.card-index{font-family:var(--mono);letter-spacing:.12em;color:var(--fg-faint);font-size:11px}.card-kind{font-family:var(--mono);letter-spacing:.1em;color:var(--fg-dim);border:1px solid var(--line);padding:2px 7px;font-size:10px}.card-title{letter-spacing:-.02em;margin-bottom:6px;font-size:clamp(1.05rem,1.6vw,1.28rem);font-weight:500;line-height:1.35}.card-sub{color:var(--fg-dim);margin-bottom:18px;font-size:13.5px;line-height:1.55}.card-tags{flex-wrap:wrap;gap:4px 12px;margin-bottom:22px;display:flex}.tag{font-family:var(--mono);letter-spacing:.04em;color:var(--fg-faint);font-size:10.5px}.tag:before{content:"#";opacity:.5}.card-metrics{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:16px;display:grid}.metric-label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:9.5px;display:block;overflow:hidden}.metric-value{color:var(--fg);letter-spacing:-.01em;font-size:13px;font-weight:500}.teaser-inner{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:end;gap:40px;display:grid}.teaser-title{letter-spacing:-.03em;margin-bottom:16px;font-size:clamp(1.6rem,3.4vw,2.6rem);font-weight:500;line-height:1.15}.teaser-text{max-width:46ch;color:var(--fg-dim);margin-bottom:24px;font-size:14.5px;line-height:1.7}.teaser-side{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.page{padding:clamp(48px,8vh,88px) 0 clamp(64px,10vh,120px)}.page-head{border-bottom:1px solid var(--line);padding-bottom:36px}.page-title{letter-spacing:-.032em;margin:14px 0;font-size:clamp(1.9rem,4.6vw,3.2rem);font-weight:500;line-height:1.1}.page-sub{max-width:62ch;color:var(--fg-dim);font-size:clamp(15px,1.5vw,17px);line-height:1.65}.back{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint);transition:color .18s var(--ease);align-items:center;gap:8px;margin-bottom:28px;font-size:11px;display:inline-flex}.back:hover{color:var(--fg)}.detail-head{border-bottom:1px solid var(--line);padding-bottom:32px}.detail-title{letter-spacing:-.032em;margin:16px 0 14px;font-size:clamp(1.8rem,4.4vw,3rem);font-weight:500;line-height:1.12}.detail-sub{max-width:54ch;color:var(--fg-dim);font-size:clamp(15px,1.5vw,17px);line-height:1.65}.detail-meta{flex-wrap:wrap;gap:8px 18px;margin-top:22px;display:flex}.detail-body{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:clamp(32px,6vw,72px);padding-top:40px;display:grid}.prose-title{margin-bottom:18px;display:block}.prose p{color:#c9ccd6;max-width:62ch;margin-bottom:22px;font-size:15.5px;line-height:1.8}.prose p:last-child{margin-bottom:0}.aside{flex-direction:column;gap:28px;display:flex;position:sticky;top:96px}.aside-title{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint);border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:8px;font-size:10px}.facts{flex-direction:column;display:flex}.fact{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:baseline;gap:16px;padding:8px 0;display:flex}.fact-label{color:var(--fg-faint);font-size:12.5px}.fact-value{font-family:var(--mono);color:var(--fg);text-align:right;font-size:12.5px}.aside-links{flex-direction:column;gap:8px;display:flex}.aside-links .btn{justify-content:space-between;width:100%;height:40px;font-size:13px}.confidential-note{color:var(--fg-faint);border:1px solid var(--line);background:var(--bg-soft);padding:12px 14px;font-size:12.5px;line-height:1.6}.about-grid{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:clamp(32px,6vw,72px);padding-top:40px;display:grid}.about-lines p{color:#c9ccd6;max-width:60ch;margin-bottom:20px;font-size:16px;line-height:1.8}.contact-heading{margin-top:40px}.contact-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:20px;padding:12px 0;display:flex}.contact-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint);font-size:10.5px}.contact-value{color:var(--fg);font-size:14px}a.contact-value:hover{text-underline-offset:4px;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.photo{aspect-ratio:4/5;border:1px dashed var(--line-strong);background:var(--grad-soft);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);place-items:center;font-size:10.5px;display:grid}.world{background:radial-gradient(120% 90% at 50% 0,#0d1120 0%,#06070a 62%);height:calc(100svh - 64px);min-height:520px;position:relative;overflow:hidden}.world-canvas{position:absolute;inset:0}.world-overlay{pointer-events:none;flex-direction:column;justify-content:space-between;padding:clamp(18px,3vw,36px);display:flex;position:absolute;inset:0}.world-overlay>*{pointer-events:auto;width:-moz-fit-content;width:fit-content}.world-title{letter-spacing:-.02em;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:500}.world-subtitle{color:var(--fg-faint);margin-top:4px;font-size:12.5px}.world-bottom{align-items:center;gap:16px;display:flex}.world-bottom .back{margin-bottom:0}.world-hint{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint);font-size:10.5px}.world-head{width:-moz-fit-content;width:fit-content}.world-hover{color:var(--fg);font-size:13px}.world-panel{border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(380px,100%);animation:panel-in .36s var(--ease);background:#07090edb;padding:20px 22px 18px}.world-panel .mono{margin-bottom:10px;display:block}.world-panel-title{letter-spacing:-.02em;font-size:1.12rem;font-weight:500;line-height:1.35}.world-panel-text{color:var(--fg-dim);margin-top:8px;font-size:13px;line-height:1.6}.world-panel-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.world-panel-actions .btn{height:38px;font-size:13px}@keyframes panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.world-panel{width:100%;padding:16px 16px 14px}}.world-loading{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.world-fallback{padding:clamp(40px,8vh,80px) 0}.island-list{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:32px;display:grid}.island-item{border-bottom:1px solid var(--line);padding:22px 24px 24px 0}.island-item:nth-child(odd){border-right:1px solid var(--line);padding-right:24px}.island-item:nth-child(2n){padding-left:24px}.island-item:last-child:nth-child(odd){border-right:0;grid-column:1/-1;padding-right:0}.island-name{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:8px;font-size:10.5px;display:block}.island-project{letter-spacing:-.015em;font-size:16px;font-weight:500;display:block}.notfound{text-align:center;place-content:center;gap:16px;min-height:calc(100svh - 64px);padding:64px 24px;display:grid}.notfound h1{letter-spacing:-.03em;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:500}.notfound p{color:var(--fg-dim);font-size:14.5px}.notfound .btn{justify-self:center;margin-top:8px}.site-footer{border-top:1px solid var(--line);padding:28px 0 40px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-left,.footer-right{flex-wrap:wrap;align-items:center;gap:6px 18px;display:flex}.footer-link{color:var(--fg-dim);transition:color .18s var(--ease);font-size:12.5px}.footer-link:hover{color:var(--fg)}@media (min-width:760px){.brand-sub{border-left:1px solid var(--line);padding-left:10px;display:inline}}@media (max-width:900px){.section-head{flex-direction:column;align-items:flex-start;gap:10px}.section-note{text-align:left}.teaser-inner{grid-template-columns:1fr;align-items:start;gap:28px}.detail-body,.about-grid{grid-template-columns:1fr}.aside{position:static}.about-grid .photo{order:-1;max-width:240px}}@media (max-width:640px){.header-inner{height:56px}.brand-sub{display:none}.nav-link{padding:6px 7px;font-size:12.5px}.nav-link:before{display:none}.nav-link[aria-current=page]:after{left:7px;right:7px}.lang{margin-left:2px;padding-left:8px}.hero{padding-top:48px}.hero-title{max-width:100%}.hero-actions .btn{flex:auto;justify-content:center}.hero-hint{flex-basis:100%;margin-left:0}.work-grid{grid-template-columns:1fr}.card:nth-child(odd){border-right:0}.island-list{grid-template-columns:1fr}.island-item:nth-child(odd){border-right:0;padding-right:0}.island-item:nth-child(2n){padding-left:0}.world{height:calc(100svh - 56px)}.notfound{min-height:calc(100svh - 56px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.prose-item{grid-template-columns:76px 1fr;gap:20px;margin-bottom:18px;display:grid}.prose-item>p{margin:0}.prose-label{color:var(--fg-faint);letter-spacing:.16em;padding-top:5px}.diagram{border-top:1px solid var(--line);margin-top:44px;padding-top:28px}.diagram-row{align-items:stretch;gap:0;margin:0 0 16px;padding:0;list-style:none;display:flex}.diagram-node{border:1px solid var(--line);text-align:center;min-height:64px;color:var(--fg-dim);background:#ffffff04;flex:1 1 0;justify-content:center;align-items:center;padding:10px 12px;font-size:13px;line-height:1.4;display:flex}.diagram-node+.diagram-node{margin-left:26px;position:relative}.diagram-node+.diagram-node:before{content:"→";text-align:center;width:26px;color:var(--fg-faint);font-size:12px;position:absolute;left:-26px}.diagram-note{max-width:62ch;color:var(--fg-dim);margin:0;font-size:14px;line-height:1.75}@media (max-width:640px){.prose-item{grid-template-columns:1fr;gap:4px}.prose-label{padding-top:0}.diagram-row{flex-direction:column}.diagram-node+.diagram-node{margin-top:22px;margin-left:0}.diagram-node+.diagram-node:before{content:"↓";width:100%;height:22px;line-height:22px;top:-22px;left:0}}.notes-empty{border:1px dashed var(--line);max-width:62ch;color:var(--fg-dim);margin:44px 0 0;padding:28px 32px;font-size:15px;line-height:1.7}.notes-list{border-top:1px solid var(--line);margin:44px 0 0;padding:0;list-style:none}.note-item{border-bottom:1px solid var(--line);padding:24px 0}.note-title{margin:8px 0 6px;font-size:20px;font-weight:500}.note-summary{max-width:62ch;color:var(--fg-dim);margin:0}.gallery{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:20px;margin:56px 0 0;padding-top:36px;display:grid}.gallery-item{margin:0}.gallery-item img{border:1px solid var(--line);width:100%;height:auto;display:block}.gallery-caption{color:var(--fg-faint);margin-top:10px;font-size:13px;line-height:1.6}@media (max-width:900px){.gallery{grid-template-columns:1fr}}.about-solo{max-width:720px;margin-top:44px}.world-foot{flex-direction:column;gap:12px;width:100%;display:flex}.world-chips{scrollbar-width:none;gap:8px;padding-bottom:4px;display:none;overflow-x:auto}.world-chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);color:var(--fg-dim);font-family:var(--mono);letter-spacing:.1em;cursor:pointer;background:#07090eb8;border-radius:2px;flex:none;padding:9px 13px;font-size:11px;transition:border-color .2s,color .2s}.chip:hover,.chip:focus-visible{color:var(--fg);border-color:#ffffff3d}.chip[aria-pressed=true]{background-image:var(--grad);color:#fff;border-color:#0000}@media (max-width:720px){.world-chips{display:flex}.world.is-focused .world-chips{display:none}}
