.chroma-grid{grid-template-columns:repeat(var(--cols,3), 320px);box-sizing:border-box;--x:50%;--y:50%;--r:220px;grid-auto-rows:auto;justify-content:center;gap:.75rem;width:100%;max-width:1200px;height:100%;margin:0 auto;padding:1rem;display:grid;position:relative}@media (width<=1124px){.chroma-grid{grid-template-columns:repeat(auto-fit,minmax(320px,320px));gap:.5rem;padding:.5rem}}@media (width<=480px){.chroma-grid{grid-template-columns:320px;gap:.75rem;padding:1rem}}.chroma-card{corner-shape:squircle;isolation:isolate;contain:layout paint;--grid-x:50%;--grid-y:50%;--mouse-x:50%;--mouse-y:50%;--spotlight-color:#ffffff4d;background:#050505;border:1px solid #333;border-radius:28px;width:320px;height:100%;transition:border-color .3s;display:block;position:relative;overflow:hidden}.chroma-card:hover{border-color:var(--card-border)}.chroma-card-surface{z-index:1;background:var(--card-gradient);filter:grayscale()brightness(.78);flex-direction:column;width:100%;min-height:100%;display:flex;position:relative}.chroma-card-highlight{z-index:2;filter:none;opacity:0;pointer-events:none;-webkit-mask-image:radial-gradient(circle var(--r) at var(--grid-x) var(--grid-y), white 0%, white 10%, #000000f6 24%, #000000e6 40%, #000000c7 58%, #0009 76%, #0000005c 91%, transparent 100%);mask-image:radial-gradient(circle var(--r) at var(--grid-x) var(--grid-y), white 0%, white 10%, #000000f6 24%, #000000e6 40%, #000000c7 58%, #0009 76%, #0000005c 91%, transparent 100%);-webkit-mask-image:radial-gradient(circle var(--r) at var(--grid-x) var(--grid-y), white 0%, white 10%, #000000f6 24%, #000000e6 40%, #000000c7 58%, #0009 76%, #0000005c 91%, transparent 100%);transition:opacity .18s;position:absolute;inset:0}.chroma-grid.is-active .chroma-card-highlight{opacity:1}.chroma-card:before{content:"";z-index:3;border-radius:inherit;corner-shape:inherit;pointer-events:none;background:radial-gradient(circle at var(--mouse-x) var(--mouse-y), #ffffff2e, transparent 68%);opacity:0;transition:opacity .4s;position:absolute;inset:0}.chroma-card:hover:before{opacity:1}.chroma-img-wrapper{z-index:1;aspect-ratio:32/21;box-sizing:border-box;background:0 0;flex:none;width:100%;padding:10px;transition:background .3s;position:relative}.chroma-img-wrapper img{object-fit:cover;corner-shape:squircle;background:#ffffff09;border-radius:20px;width:calc(100% - 20px);height:calc(100% - 20px);display:block;position:absolute;inset:10px}.chroma-info{z-index:1;color:#fff;flex-direction:column;flex:1;gap:.25rem;padding:.75rem 1rem;font-family:system-ui,sans-serif;display:flex;position:relative}.chroma-card.has-links .chroma-info{padding-bottom:3.3rem}.chroma-title-row{align-items:center;gap:.45rem;min-width:0;display:flex}.chroma-badge{color:#ffffffbd;letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;background:#ffffff14;border:1px solid #ffffff2e;border-radius:999px;flex:none;padding:.14rem .42rem;font-size:.58rem;font-weight:650;line-height:1.1}.chroma-info .role,.chroma-link{color:#aaa}.chroma-links{z-index:4;align-items:center;gap:.35rem;min-height:2rem;display:flex;position:absolute;bottom:.72rem;left:1rem;right:1rem}.chroma-link{border-radius:50%;flex:0 0 2rem;justify-content:center;align-items:center;width:2rem;height:2rem;text-decoration:none;transition:background-color .18s,color .18s,transform .18s;display:inline-flex}.chroma-link:hover{color:#fff;background:#ffffff1f;transform:translateY(-1px)}.chroma-link svg{fill:currentColor;width:1.12rem;height:1.12rem}.chroma-link-play-store svg{width:1.18rem;height:1.18rem;transform:translate(.03rem)}.chroma-link-fdroid svg{width:1.14rem;height:1.14rem}.chroma-overlay,.chroma-fade{display:none}.side-rays-container{z-index:3;pointer-events:none;width:100%;height:100%;position:relative;overflow:hidden}.planet-view{--planet-stage-max-height:600px;z-index:1;grid-template-rows:auto minmax(min-content, var(--planet-stage-max-height)) auto;color:#ffffffde;background:0 0;align-content:start;width:min(1240px,100%);height:100svh;min-height:min-content;margin:0 auto;padding:32px 24px;display:grid;position:relative}.planet-heading{text-align:center;z-index:2;pointer-events:none;margin-bottom:8px;position:relative}.planet-heading h1{letter-spacing:-.045em;color:#ffffffeb;margin:0;font-size:clamp(38px,4.5vw,58px);font-weight:650;line-height:.92}.planet-heading-copy>p{color:#a4a7b4;margin:12px 0 0;font-size:14px}.planet-heading .view-switch{margin-top:18px}.planet-layout{grid-row:2;grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:24px;margin-top:0;display:grid}.planet-stage{--planet-control-size:36px;align-self:stretch;min-width:0;position:relative}.planet-canvas{touch-action:none;cursor:grab;outline:none;height:100%;min-height:360px;position:relative;overflow:clip}.planet-canvas:active{cursor:grabbing}.planet-canvas[aria-hidden=true]{opacity:0;pointer-events:none}.planet-canvas:focus-visible{outline-offset:-2px;border-radius:18px;outline:1px solid #b2d0ff}.planet-canvas canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.planet-canvas canvas.is-closeup{-webkit-mask-image:linear-gradient(to right, rgb(0 0 0/var(--planet-edge-opacity)) 0%, #000 6%, #000 94%, rgb(0 0 0/var(--planet-edge-opacity)) 100%), linear-gradient(to bottom, #000 90%, rgb(0 0 0/var(--planet-edge-opacity)) 100%);mask-image:linear-gradient(to right, rgb(0 0 0/var(--planet-edge-opacity)) 0%, #000 6%, #000 94%, rgb(0 0 0/var(--planet-edge-opacity)) 100%), linear-gradient(to bottom, #000 90%, rgb(0 0 0/var(--planet-edge-opacity)) 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.planet-marker{visibility:hidden;white-space:nowrap;font:inherit;cursor:pointer;color:#d4d8d2;background:#19211fe8;border:1px solid #cedbc62e;border-radius:8px;align-items:center;gap:6px;padding:7px 9px;font-size:10px;transition:border-color .2s,background .2s,opacity .2s;display:flex;position:absolute;top:0;left:0;box-shadow:0 3px 12px #080f102e}.planet-marker:is(:hover,:focus-visible,.is-selected){--marker-accent:color-mix(in srgb, var(--region-color) 55%, #e8e7df);--marker-line-color:color-mix(in srgb, var(--marker-accent) 75%, transparent);z-index:2;color:#f3f1ef;background:color-mix(in srgb, var(--region-color) 18%, #191e24);border-color:color-mix(in srgb, var(--marker-accent) 60%, transparent)}.planet-marker-dot,.planet-project-dot{background:var(--region-color);border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.planet-marker:is(:hover,:focus-visible,.is-selected) .planet-marker-dot{background:var(--marker-accent)}.planet-stage-footer{justify-content:space-between;align-items:center;gap:12px;padding:0 24px 0 20px;display:flex;position:absolute;bottom:0;left:0;right:0}.planet-gesture-hint{color:#92959c;letter-spacing:.01em;text-shadow:0 1px 2px #080b11,0 0 6px #080b11;margin:0;font-size:11px}.planet-overview{min-height:var(--planet-control-size);color:#c7cedb;font:inherit;cursor:pointer;background:#171924ef;border:1px solid #ffffff20;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:11px;display:flex}.planet-overview:hover{color:#fff;background:#282b38}.planet-overview:active{transform:scale(.97)}.planet-zoom{background:#171924ef;border:1px solid #ffffff20;border-radius:999px;flex-shrink:0;display:flex;overflow:hidden}.planet-zoom button{width:var(--planet-control-size);height:calc(var(--planet-control-size) - 2px);cursor:pointer;color:#b7bfce;background:0 0;border:0;font-size:18px}.planet-zoom button+button{border-color:#ffffff20;border-left-style:solid;border-left-width:1px}.planet-zoom button:hover{background:#ffffff10}.planet-zoom button:active{color:#f3f1ef;background:#ffffff20;transform:scale(.92)}.planet-detail{background:#17141ccc;border:1px solid #ffffff14;border-radius:24px;padding:12px 12px 20px;scroll-margin-top:16px;position:relative}.planet-detail h2{letter-spacing:-.04em;overflow-wrap:anywhere;color:#ffffffeb;margin:20px 8px 0;font-size:23px;font-weight:650;line-height:1.15}.planet-detail>picture{display:block}.planet-detail img{aspect-ratio:32/21;object-fit:cover;border:1px solid #ffffff14;border-radius:20px;width:100%;height:auto;display:block}.planet-project-description{color:#a4a7b4;margin:10px 8px 20px;font-size:12px;line-height:1.7}.planet-detail-links{align-items:center;gap:12px;margin:0 8px;display:flex}.planet-open{color:#d1e1fc;border-color:#b2d0ff55;border-bottom-style:solid;border-bottom-width:1px;align-items:center;gap:35px;padding-bottom:7px;font-size:13px;display:flex}.planet-open:hover{color:#fff}.planet-badge{color:#909aaa;border:1px solid #ffffff26;border-radius:6px;padding:3px 5px;font-size:9px}.planet-secondary-links{color:#a6b5cd;gap:14px;margin:18px 8px 0;font-size:11px;display:flex}.planet-secondary-links a:hover{color:#fff}.planet-projects{grid-row:3;min-width:0;margin-top:16px}.planet-project-list{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.planet-project-list button{font:inherit;cursor:pointer;color:#a6b5cd;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:10px 13px;font-size:12px;display:flex}.planet-project-list button:hover{color:#e9eff9;background:#ffffff08}.planet-project-list button:active{transform:scale(.97)}.planet-project-list button.is-selected{color:#e9eff9;background:#ffffff10;border-color:#ffffff20}.planet-fallback{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.planet-fallback h2{letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:20px;font-weight:550}.planet-fallback p{color:#a4a7b4;text-wrap:balance;max-width:32ch;margin:12px 0 20px;font-size:14px;line-height:1.7}.planet-fallback button{font:inherit;color:#e9eff9;cursor:pointer;background:#ffffff0c;border:1px solid #ffffff20;border-radius:999px;padding:9px 18px;font-size:13px}.planet-fallback button:hover{background:#ffffff16}.planet-fallback button:active{transform:scale(.97)}.planet-view button:focus-visible,.planet-view a:focus-visible{outline-offset:4px;outline:2px solid #b2d0ff}@media (width<=900px){.planet-view{--planet-stage-max-height:440px;padding:32px 20px}.planet-layout{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.planet-stage-footer{padding:0 8px}}@media (width<=640px){.planet-view{--planet-mobile-nav-height:60px;flex-direction:column;height:auto;min-height:100svh;padding:32px 16px 28px;display:flex}.planet-heading{margin-bottom:8px}.planet-heading-copy>p{margin-top:10px;font-size:13px}.planet-layout{flex-direction:column;gap:24px;display:flex}.planet-stage{--planet-control-size:46px;width:100%}.planet-canvas{height:clamp(240px, calc(100svh - var(--planet-mobile-nav-height) - 180px), 370px);min-height:0;margin:0 -8px}.planet-canvas,.planet-detail{scroll-margin-top:calc(var(--planet-mobile-nav-height) + 8px)}.planet-stage-footer{padding:0 4px}.planet-detail{border-radius:20px;grid-template-columns:88px minmax(0,1fr);gap:0 16px;width:100%;padding:16px;display:grid}.planet-detail>picture{grid-row:1/4}.planet-detail img{aspect-ratio:1;border-radius:14px;width:88px;height:88px}.planet-detail h2{margin:0;font-size:21px}.planet-project-description{margin:8px 0 14px;font-size:12px}.planet-detail-links{flex-wrap:wrap;grid-column:2;gap:8px;margin:0}.planet-open{gap:16px;font-size:12px}.planet-secondary-links{flex-wrap:wrap;grid-column:2;gap:12px;margin:16px 0 0}.planet-projects{z-index:3;height:var(--planet-mobile-nav-height);background:#12111a;flex:none;margin:0 -16px 12px;padding:6px 0;position:sticky;top:0}.planet-project-list{scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:6px;padding:2px 16px;overflow-x:auto}.planet-project-list button{flex:none;min-height:44px;padding:10px;font-size:11px}.planet-project-list button:focus-visible{outline-offset:-3px}.planet-marker{padding:6px 7px;font-size:10px}}.planet-marker:after{content:"";left:calc(50% + var(--marker-line-x,0px));top:calc(50% + var(--marker-line-y,0px));width:var(--marker-stem-length,0px);background:var(--marker-line-color,#d5dfbd90);height:1px;transform:rotate(var(--marker-stem-angle,0deg));transform-origin:0 0;pointer-events:none;transition:background .2s;position:absolute}.planet-marker:before{content:"";left:calc(50% + var(--marker-anchor-x,0px));top:calc(50% + var(--marker-anchor-y,0px));background:var(--marker-accent,#e3e9cf);pointer-events:none;border:1px solid #19211fa8;border-radius:50%;width:5px;height:5px;transition:background .2s;position:absolute;transform:translate(-50%,-50%)}:root{color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#120f17;font-family:PingFang SC,PingFang TC,Hiragino Sans GB,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Segoe UI,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html{background:#120f17}body{background:#120f17;min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}.site-shell{z-index:1;width:100%;min-height:100vh;padding:48px 24px 64px;position:relative}.page-background{z-index:0;pointer-events:none;background:radial-gradient(circle at 18% 0,#7e57ff1c,#0000 34rem),#120f17;position:fixed;inset:0;overflow:hidden}.page-background:after{content:"";z-index:4;background:radial-gradient(circle at 78% 4%,#0000 0 22rem,#120f1726 36rem),linear-gradient(#120f170d,#120f17db 84%),linear-gradient(90deg,#120f17c7,#0000 38%,#120f1729);position:absolute;inset:0}.page-background .side-rays-container{position:absolute;inset:0}.site-header{text-align:center;width:min(1110px,100%);margin:0 auto;padding-bottom:8px}.intro{text-align:center;justify-items:center;gap:20px;max-width:900px;margin:0 auto;padding:42px 0 20px;display:grid}.intro h1{-webkit-user-select:none;user-select:none;color:#ffffffeb;letter-spacing:0;justify-items:center;gap:8px;margin:0;font-size:clamp(42px,6.4vw,78px);font-weight:760;line-height:.92;display:grid}.intro-line{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.12em .22em;display:flex}.selected-name{color:#b9d8ff;isolation:isolate;padding:0 .08em .02em;line-height:.94;display:inline-block;position:relative}.selected-name:before{content:"";z-index:-1;transform-origin:0;background:#2959d6c7;animation:.86s cubic-bezier(.16,1,.3,1) .22s forwards selected-name-slide;position:absolute;inset:.48em 0 .02em;transform:scaleX(0)}.selected-name:after{content:"";z-index:2;opacity:0;background:#c6e0fff2;width:2px;animation:.86s cubic-bezier(.16,1,.3,1) .22s forwards selected-name-caret;position:absolute;top:.48em;bottom:.02em;left:0}.name-pronunciation{color:#becde2a3;font-size:.42em;font-weight:500;line-height:1}.intro-role{color:#ffffffd1;margin:0;font-size:clamp(20px,2.25vw,28px);font-weight:560;line-height:1.35}.projects-section{width:min(1200px,100%);min-height:620px;margin:0 auto;position:relative}.chroma-info .name,.chroma-info .role{margin:0}.chroma-info .name{color:#fff;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap;min-width:0;font-size:1.05rem;font-weight:650;line-height:1.2;overflow:hidden}.chroma-info .role{font-size:.84rem;line-height:1.35}@media (width<=768px){.site-shell{padding:28px 16px 48px}.site-header{padding-inline:clamp(18px,6vw,32px)}.intro{gap:18px;padding:32px 0 20px}.intro h1{font-size:clamp(36px,11.5vw,54px)}.name-pronunciation{width:100%;margin-top:6px;font-size:.34em;display:block}.intro-role{font-size:clamp(18px,5vw,22px)}.projects-section{min-height:0}}@keyframes selected-name-slide{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes selected-name-caret{0%{opacity:0;left:0}12%,86%{opacity:1}to{opacity:0;left:calc(100% - 2px)}}@media (width<=390px){.site-shell{padding-inline:8px}.site-header{padding-inline:18px}.intro h1{font-size:clamp(35px,11.2vw,44px)}.chroma-grid{transform-origin:top;transform:scale(.92)}}.view-switch{--switch-inset:4px;--switch-gap:2px;--switch-list-width:72px;--switch-planet-width:104px;--switch-thumb-width:var(--switch-list-width);--switch-thumb-x:var(--switch-inset);align-items:center;gap:var(--switch-gap);height:32px;padding:0 var(--switch-inset);isolation:isolate;-webkit-user-select:none;user-select:none;pointer-events:auto;background:#7676803d;border:0;border-radius:999px;display:inline-flex;position:relative;box-shadow:inset 0 0 0 1px #ffffff24}.view-switch[data-mode=planet]{--switch-thumb-width:var(--switch-planet-width);--switch-thumb-x:calc(var(--switch-inset) + var(--switch-list-width) + var(--switch-gap))}.view-switch:before{content:"";z-index:0;width:var(--switch-thumb-width);height:24px;transform:translate(var(--switch-thumb-x), -50%);pointer-events:none;background:#636366b8;border-radius:999px;transition:transform .24s cubic-bezier(.22,1,.36,1),width .24s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;left:0;box-shadow:0 1px 2px #00000061}.view-switch button{z-index:1;height:24px;min-height:0;font:inherit;color:#a1a1a6;cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0 10px;font-size:12px;font-weight:520;line-height:1;transition:color .18s;display:inline-flex;position:relative}.view-switch button:first-child{width:var(--switch-list-width)}.view-switch button:last-child{width:var(--switch-planet-width)}.view-switch button[aria-pressed=true]{color:#f5f5f7}.view-switch button:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #b2d0ff}.view-switch svg{fill:none;stroke:currentColor;stroke-width:1.4px;flex:none;width:14px;height:14px}@media (hover:hover) and (pointer:fine){.view-switch button:hover{color:#f5f5f7}}@media (prefers-reduced-motion:reduce){.view-switch button,.view-switch:before{transition:none}}.planet-loading{z-index:1;color:#a4a7b4;background:0 0;place-items:center;min-height:min(60svh,520px);display:grid;position:relative}.planet-loading>div{text-align:center;max-width:340px;padding:24px;line-height:1.7}.planet-loading button{color:#e9eff9;font:inherit;cursor:pointer;background:#171924ef;border:1px solid #ffffff20;border-radius:6px;padding:10px 16px}
