@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;600&display=swap";:root{font-family:Inter,Noto Sans SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#171717;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:#fff;-webkit-font-smoothing:antialiased}button,a{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.page-shell{width:min(1050px,calc(100% - 48px));margin:0 auto;padding:64px 0 52px}.site-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px}.brand-mark{display:inline-grid;place-items:center;width:48px;height:48px;color:#171717;font-size:42px;transition:transform .16s ease}.brand-mark:hover{transform:rotate(-8deg)}.gallery-link{padding:8px 0;border:0;background:transparent;color:#777;font-size:24px;font-weight:500;cursor:pointer}.gallery-link:hover,.gallery-link:focus-visible{color:#171717}.intro{padding-bottom:34px}h1{margin:0 0 36px;font-size:clamp(32px,3vw,40px);font-weight:600;letter-spacing:-.045em;line-height:1}.intro-copy{color:#7b7b7b;font-size:clamp(19px,1.75vw,25px);font-weight:400;letter-spacing:-.026em;line-height:1.46}.intro-copy p{margin:0 0 24px}.intro-copy strong,.inline-emphasis{color:#171717;font-weight:500}.inline-emphasis{display:inline-flex;align-items:baseline;gap:5px;margin:0 3px;white-space:nowrap}.inline-emphasis svg{position:relative;top:2px;flex:0 0 auto;font-size:.9em}.text-link{display:inline-flex;align-items:baseline;gap:3px;color:#171717;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.text-link svg{position:relative;top:2px;font-size:.8em}.signature{display:flex;align-items:center;gap:12px;margin:30px 0 0;color:#8d8d8d;font-size:20px}.signature span{color:#171717;font-size:14px}.list-section{padding:32px 0 34px;border-top:1px solid #e6e6e6}.section-title{margin:0 0 26px;color:#8a8a8a;font-size:22px;font-weight:400;letter-spacing:-.02em}.rows{display:grid;gap:14px}.info-row{display:flex;align-items:center;justify-content:space-between;min-width:0;font-size:22px;letter-spacing:-.025em;line-height:1.35}button.info-row{width:100%;padding:0;border:0;background:transparent;text-align:left}.row-main{display:flex;min-width:0;align-items:center;gap:8px}.row-icon{flex:0 0 auto;width:24px;height:24px;color:#171717}.row-name{color:#171717;font-weight:500;white-space:nowrap}.row-separator,.row-description,.row-meta{color:#888}.row-meta{margin-left:24px;text-align:right;white-space:nowrap}.project-row,.note-row{padding:6px 0;border-radius:4px;cursor:pointer;transition:color .15s ease,transform .15s ease}.project-row:hover,.project-row:focus-visible,.note-row:hover,.note-row:focus-visible{outline:none;transform:translate(4px)}.project-row:hover .row-description,.project-row:focus-visible .row-description,.note-row:hover .row-name,.note-row:focus-visible .row-name{color:#171717}.tech-icons{display:flex;flex:0 0 auto;align-items:center;gap:10px;margin-left:22px;color:#999;font-size:22px}.row-arrow{flex:0 0 auto;margin-left:22px;color:#999}.site-footer{display:flex;align-items:center;justify-content:space-between;padding:38px 0 12px;border-top:1px solid #e6e6e6}.social-links{display:flex;align-items:center;gap:22px}.social-links a{display:grid;place-items:center;width:28px;height:28px;font-size:27px}.social-links a:hover,.social-links a:focus-visible{color:#777}.follow-link{display:inline-flex;align-items:center;gap:7px;font-size:19px;font-weight:500}.back-link{display:inline-flex;align-items:center;gap:8px;font-size:18px}.post{max-width:680px;padding-bottom:48px;color:#2a2a2a;font-size:19px;letter-spacing:-.012em;line-height:1.7}.post .post-date{margin:0 0 14px;color:#8a8a8a;font-size:15px}.post h1{margin-bottom:40px;font-size:clamp(36px,4vw,48px);line-height:1.08}.post h2{margin:48px 0 14px;color:#171717;font-size:23px;font-weight:600;letter-spacing:-.03em}.post p{margin:0 0 22px}.post ul{margin:0 0 22px;padding-left:22px}.post li{margin-bottom:12px}.post strong{color:#171717;font-weight:600}.detail-dialog{width:min(760px,calc(100% - 32px));max-height:min(82vh,820px);padding:0;overflow:auto;border:1px solid #e2e2e2;border-radius:18px;background:#fff;box-shadow:0 24px 80px #00000029}.detail-dialog::backdrop{background:#ffffffc2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-panel{position:relative;padding:52px}.dialog-close{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid #dedede;border-radius:50%;background:#fff;font-size:20px;cursor:pointer}.dialog-kicker{margin:0 0 15px;color:#8b8b8b;font-size:14px}.dialog-panel h2{margin:0 0 20px;font-size:34px;font-weight:600;letter-spacing:-.045em}.dialog-body{margin:0;color:#6e6e6e;font-size:19px;line-height:1.7}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.gallery-grid figure{margin:0}.gallery-grid img{display:block;width:100%;aspect-ratio:16 / 9;border:1px solid #e4e4e4;border-radius:10px;object-fit:cover}.gallery-grid figcaption{margin-top:9px;color:#777;font-size:13px}@media(max-width:760px){.page-shell{width:min(100% - 34px,620px);padding-top:34px}.site-header{margin-bottom:32px}.gallery-link{font-size:18px}h1{margin-bottom:28px;font-size:34px}.intro-copy{font-size:19px;line-height:1.55}.info-row{align-items:flex-start;font-size:18px}.row-main{flex-wrap:wrap;row-gap:2px}.row-description{flex-basis:calc(100% - 40px);margin-left:32px}.row-separator{display:none}.row-meta{padding-top:2px;font-size:15px}.project-row .row-main{padding-right:8px}.project-row .row-description{flex-basis:100%}.tech-icons{gap:7px;margin-left:10px;padding-top:3px;font-size:18px}.note-row .row-name{white-space:normal}.signature{font-size:17px}.dialog-panel{padding:48px 24px 28px}.gallery-grid{grid-template-columns:1fr}}@media(max-width:440px){.page-shell{width:calc(100% - 28px)}.brand-mark{width:42px;height:42px;font-size:37px}.intro-copy{font-size:18px}.intro-copy p{margin-bottom:20px}.list-section{padding:28px 0}.info-row{font-size:17px}.row-meta,.tech-icons{display:none}.site-footer{padding-top:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
