:root{color-scheme:light;--ink:#333;--muted:#666;--blue:#287e4c;--border:#ddd;font-family:"Kaiti SC","STKaiti","KaiTi","楷体",serif;color:var(--ink);background:#fff;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;font-size:19px;line-height:1.7}a{color:var(--ink);text-decoration:none}a:hover{color:var(--blue)}a:focus-visible{outline:2px solid var(--blue);outline-offset:5px}.page{max-width:840px;padding:0 36px;margin:auto}.skip{position:absolute;top:-80px;left:12px;background:#333;color:#fff;padding:8px 12px}.skip:focus{top:8px}.topbar{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:24px 0 0}.wordmark{font-family:"Bradley Hand","Segoe Print",cursive;font-size:30px;font-weight:400;color:#707070;white-space:nowrap}nav{display:flex;flex-wrap:wrap;gap:20px;font-size:17px}nav a{color:#666}.intro{padding:62px 0 42px;text-align:center}h1{font-size:32px;font-weight:400;margin:0 0 18px}.name-en{font-size:18px;margin-left:14px;color:#777}.intro-role{font-size:18px;margin:0 0 24px;color:#555}.summary{font-size:18px;line-height:1.9;margin:0 0 18px}.contact{font-family:system-ui,sans-serif;font-size:14px;color:#777}.contact:hover{color:var(--blue)}h2,h3,p{margin-top:0}.section{padding:28px 0 16px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:0}.section-heading h2{font-size:22px;font-weight:400;margin:0}.section-note{font-size:14px;color:#777}.commercial-grid{display:block}.project{position:relative;padding:24px 0;border-bottom:1px solid #e8e8e8}.project-type{color:#777;font-family:system-ui,sans-serif;font-size:12px;letter-spacing:.3px}.project h3{font-size:23px;font-weight:400;color:#222;line-height:1.5;margin:6px 0 14px}.project>p{font-size:18px;margin:0 0 14px}.responsibility{font-size:17px;color:#555}.responsibility>span{font-size:14px;color:#777}.responsibility p{margin:2px 0 14px}.project>a{display:block;text-align:right;font-size:15px;color:#555}.project>a:hover{color:var(--blue)}.attribution{font-size:13px;color:#777;margin:14px 0 0}.works-grid{display:block}.work-card{padding:28px 0;border-bottom:1px solid #e8e8e8;display:grid;grid-template-columns:220px minmax(0,1fr);gap:30px;align-items:center}.video-wrap{width:100%;background:#fafafa}.video-wrap video{display:block;width:100%;aspect-ratio:9/16;object-fit:contain}.work-copy h3{font-size:24px;font-weight:400;margin:8px 0 18px;color:#222}.work-copy p{font-size:18px;margin:0 0 18px}.work-copy>a{font-size:15px;color:var(--blue)}.music-credit{font-size:13px;color:#777;margin-top:20px}.music-credit p{font-size:13px;margin:8px 0 0}.music-credit summary{cursor:pointer}.suri-cover{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px 0}.suri-cover img{width:112px;height:112px;border-radius:24px}.suri-cover>span{font-size:22px;margin-top:16px}.suri-cover p{font-size:14px;color:#777;margin:6px 0 0}.activity-card{padding:26px 0;border-bottom:1px solid #e8e8e8;min-width:0}.activity-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.activity-heading h3{font-size:21px;font-weight:400;margin:0}.activity-heading p{font-size:15px;margin:8px 0 0}.activity-heading p strong{font-size:25px;font-weight:400;margin-right:6px}.activity-heading a{font-size:14px;color:var(--blue)}.metric-caption{font-size:13px;color:#777;margin-left:8px}.activity-metrics{display:flex;gap:36px;margin:0 0 22px}.activity-metrics>div{display:flex;flex-direction:column}.activity-metrics strong{font-size:25px;font-weight:400}.activity-metrics span{font-size:14px;color:#777}.heat-scroll{overflow-x:auto;padding:4px 2px 8px;max-width:100%}.heatmap{display:block;width:100%;min-width:700px;height:auto;overflow:visible;font-family:system-ui,sans-serif}.heatmap text{font-size:11px;fill:#777}.heat-cell{stroke:transparent;stroke-width:2;cursor:pointer}.heat-cell:hover,.heat-cell:focus{stroke:#333;outline:none}.level-0{fill:#f0f1f0;background:#f0f1f0}.level-1{fill:#c9e7d2;background:#c9e7d2}.level-2{fill:#8ccaa1;background:#8ccaa1}.level-3{fill:#53a871;background:#53a871}.level-4{fill:#287e4c;background:#287e4c}.level-unknown{fill:#fff;background:#fff;stroke:#ddd;stroke-dasharray:2 2}.heat-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0}.heat-detail{font-size:13px;color:#777;margin:0;min-height:23px}.heat-legend{display:flex;gap:5px;align-items:center;font-size:12px;color:#777;white-space:nowrap}.heat-legend i{width:11px;height:11px;border-radius:2px;display:block}.heat-legend .level-unknown{border:1px dashed #bbb;margin-left:6px}.activity-source{font-size:13px;color:#777;margin:12px 0 0}footer{border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:20px;margin-top:38px;padding:24px 0 36px;font-size:14px;color:#777}footer a{color:#777}@media(max-width:600px){.page{padding:0 22px}body{font-size:18px}.topbar{flex-direction:column;gap:10px;padding-top:20px}.wordmark{font-size:28px}nav{font-size:16px;gap:20px}.intro{padding:40px 0 26px}.intro-role,.summary{font-size:17px}.desktop{display:none}.section-heading{align-items:flex-start}.section-heading h2{font-size:21px}.section-note{display:none}.project h3{font-size:22px}.work-card{grid-template-columns:1fr;gap:22px}.video-wrap{max-width:240px;margin:auto}.work-copy h3{font-size:23px}.suri-cover{padding:12px 0}.suri-cover img{width:96px;height:96px}.heat-bottom{flex-direction:column;align-items:flex-start}.activity-metrics{gap:24px;flex-wrap:wrap}.activity-metrics strong{font-size:23px}.activity-heading{align-items:flex-start}footer{flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{nav,.skip{display:none}.page{max-width:none;padding:0}.intro{padding:20px 0}.project,.work-card,.activity-card{break-inside:avoid}.heatmap{min-width:0}.heat-scroll{overflow:visible}a{color:#333}}

/* Reading-first layout, compact activity and mobile rhythm. */
.app-title{display:flex;align-items:center;gap:14px;margin:8px 0 20px}.app-title img{border-radius:13px;flex:none}.app-title h3{margin:0}.intro{padding:44px 0 28px}.activity-card{padding:20px 0}.activity-heading{margin-bottom:12px}.activity-metrics{margin-bottom:12px}.activity-source{font-size:12px;line-height:1.6}.heat-scroll{scrollbar-width:thin}.work-copy .project-type{font-size:12px;line-height:1.7}.video-wrap{border-radius:12px;overflow:hidden;background:#f6f7f3}.work-card{gap:32px;padding:34px 0}.section{padding-top:32px}.section-heading{margin-bottom:4px}nav{gap:18px}
@media(max-width:600px){body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;font-size:16px;line-height:1.85}.page{padding:0 24px}.topbar{gap:14px;padding-top:24px}nav{font-size:13px;gap:22px;width:100%;padding-bottom:14px;border-bottom:1px solid #eee}.intro{text-align:left;padding:32px 0 12px}h1{font-size:30px;letter-spacing:1px}.name-en{font-size:15px;color:#999}.intro-role{font-size:14px;line-height:1.8;margin-bottom:16px}.summary{font-size:15px;color:#666}.contact{font-size:12px}.section{padding-top:28px}.section-heading{padding-bottom:12px}.section-heading h2{font-size:19px;font-weight:500}.activity-card{padding:18px 0}.activity-heading h3{font-size:15px;font-weight:500}.activity-heading p{font-size:12px}.activity-heading p strong{font-size:24px}.activity-heading a{font-size:12px}.activity-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.activity-metrics strong{font-size:22px;letter-spacing:-.5px}.activity-metrics span{font-size:11px}.heat-bottom{gap:4px}.heat-detail{font-size:11px;min-height:18px}.heat-legend{font-size:10px}.activity-source{font-size:10px;color:#929792}.project{padding:23px 0}.project h3{font-size:20px;font-weight:500;margin:6px 0 12px}.project>p,.responsibility{font-size:15px}.responsibility>span{font-size:11px;letter-spacing:1px}.project>a{font-size:12px}.work-card{display:flex;flex-direction:column;gap:20px;padding:28px 0}.work-copy{order:0;width:100%}.video-wrap{order:1;width:100%;max-width:280px;border-radius:14px}.work-copy h3{font-size:21px;font-weight:500}.work-copy p{font-size:15px;line-height:1.85;margin-bottom:12px}.work-copy>a{font-size:12px}.app-title{margin:4px 0 14px;gap:12px}.app-title img{width:44px;height:44px;border-radius:11px}.music-credit{margin-top:10px}.music-credit summary{font-size:11px}.attribution{font-size:11px}footer{font-size:12px;margin-top:28px;padding-bottom:30px}}
.kite-card .work-copy{grid-column:1 / -1}

.kite-gallery{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%}.kite-gallery figure{margin:0;min-width:0}.kite-gallery a{display:block;border-radius:12px;overflow:hidden;border:1px solid #e5e5e5}.kite-gallery img{display:block;width:100%;height:auto}.kite-gallery figcaption{font-size:13px;color:#777;margin-top:10px;text-align:center}@media(max-width:600px){.kite-gallery{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}.kite-gallery figure{flex:0 0 86%;scroll-snap-align:start}.kite-gallery figcaption{font-size:12px}}

.personal-intro{max-width:680px;margin:22px auto 24px;text-align:left;font-size:17px;line-height:1.95;color:#666}.personal-intro p{margin:0 0 12px}@media(max-width:600px){.personal-intro{font-size:15px;line-height:1.9;margin:18px 0 20px}.personal-intro p{margin-bottom:14px}}

.personal-intro strong{color:#333;font-weight:600}

.heat-zoom{display:none}@media(max-width:600px){.heatmap{min-width:0;width:100%}.heat-scroll.is-zoomed .heatmap{min-width:700px}.heat-zoom{display:block;margin:0 0 6px auto;padding:6px 0 6px 14px;background:none;border:0;color:var(--blue);font:inherit;font-size:12px;cursor:pointer;min-height:36px}.heat-zoom:focus-visible{outline:2px solid var(--blue);outline-offset:2px}}
