:root{color-scheme:light;--page: #f3f2ee;--surface: #ffffff;--surface-soft: #ebe7dc;--ink: #181714;--muted: #65625a;--line: rgba(24, 23, 20, .14);--accent: #0f766e;--accent-ink: #07433f;--project-surface: #24292f;--project-ink: #ffffff;--shadow: 0 20px 60px rgba(43, 40, 32, .12);--title-font: "Quicksand", Inter, "Helvetica Neue", Arial, sans-serif;font-family:Inter,Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--page);color:var(--ink)}a{color:inherit}.github-link{position:fixed;top:14px;right:14px;z-index:10;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#ffffffbd;text-decoration:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:background-color .16s ease,color .16s ease,transform .16s ease}.github-link:hover{color:var(--ink);background:#fff;transform:translateY(-1px)}.scroll-top-button{position:fixed;right:clamp(16px,4vw,28px);bottom:clamp(16px,4vw,28px);z-index:10;display:grid;width:46px;height:46px;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--surface);background:var(--accent-ink);box-shadow:var(--shadow);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(10px);transition:background-color .16s ease,color .16s ease,opacity .16s ease,transform .16s ease}.scroll-top-button.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-top-button:hover{color:var(--surface);background:var(--accent);transform:translateY(-1px)}.scroll-top-button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 58%,transparent);outline-offset:3px}.site-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:72px 0 80px}.site-header{display:grid;grid-template-columns:clamp(120px,18vw,190px) minmax(0,1fr);gap:clamp(22px,4vw,44px);align-items:center;max-width:980px;margin-bottom:40px}.profile-image{display:block;width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:50%}.site-heading{display:grid;gap:16px;min-width:0}.site-label{margin:0;color:var(--accent-ink);font-family:var(--title-font);font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h1{max-width:760px;margin:0;font-family:var(--title-font);font-weight:700;font-size:clamp(2.2rem,6vw,5.8rem);line-height:.94;letter-spacing:0}.lead{max-width:680px;margin:0;color:var(--muted);font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.9}.work-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(38px,5vw,68px) clamp(32px,5vw,56px);padding-top:clamp(30px,4vw,44px);border-top:1px solid var(--line)}.x-embed{display:grid;justify-content:center;width:min(100%,640px);margin-top:clamp(56px,7vw,92px);margin-inline:auto}.x-embed .twitter-tweet{width:100%!important;max-width:none!important;margin:0!important}.x-embed iframe{width:100%!important;max-width:none!important}.work-card{display:grid;grid-template-columns:clamp(108px,12vw,150px) minmax(0,1fr);gap:clamp(18px,3vw,28px);align-items:start;padding:0}.artwork{position:relative;display:block;width:100%;max-width:150px;aspect-ratio:1 / 1;overflow:hidden;border-radius:2px;background-color:var(--surface-soft)}.artwork img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.artwork:hover img{transform:scale(1.02)}.artwork-placeholder{display:grid;width:100%;height:100%;place-items:center;padding:14px;color:var(--muted);font-family:var(--title-font);font-weight:700;text-align:center}.project-artwork{background:var(--project-surface)}.project-placeholder{align-content:center;gap:7px;color:var(--project-ink)}.placeholder-icon{font-size:2rem;line-height:1}.placeholder-source{font-size:.68rem;line-height:1;text-transform:uppercase}.placeholder-title{display:-webkit-box;max-width:100%;max-height:3.36em;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere;font-size:.95rem;line-height:1.12}.work-body{display:flex;min-width:0;flex-direction:column;justify-content:center;padding-block:4px}.eyebrow{display:inline-flex;align-items:center;gap:.44em;width:fit-content;margin:0 0 8px;color:var(--accent);font-family:var(--title-font);font-size:.76rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h2{margin:0;font-family:var(--title-font);font-weight:700;font-size:clamp(1.55rem,2.4vw,2.35rem);line-height:1.08;letter-spacing:0;overflow-wrap:anywhere}h2 a{text-decoration:none}h2 a:hover{color:var(--accent)}.metadata{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin:18px 0 22px}.meta-item{min-width:0}dt{margin:0 0 4px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}dd{margin:0;overflow-wrap:anywhere;font-size:.95rem;line-height:1.45}.description{max-width:680px;margin:0;color:#34312b;font-size:1rem;line-height:1.88}.external-link{display:inline-flex;align-items:center;gap:.45em;width:fit-content;margin-top:18px;padding-bottom:2px;border-bottom:1px solid currentColor;color:var(--accent-ink);font-family:var(--title-font);font-size:.9rem;font-weight:700;line-height:1.2;text-decoration:none}.external-link:hover{color:var(--accent)}@media(max-width:780px){.site-shell{width:min(100% - 24px,560px);padding-top:64px}.site-header{margin-bottom:28px}.site-header{grid-template-columns:1fr}.profile-image{width:min(42vw,150px)}.work-list{align-items:start}.work-card{grid-template-columns:1fr}.artwork{width:100%;max-width:none}.metadata{grid-template-columns:1fr}h2{font-size:clamp(1rem,4.2vw,1.55rem)}.description{font-size:.875rem;line-height:1.7;overflow-wrap:anywhere}}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page: #11100e;--surface: #1d1b18;--surface-soft: #28241d;--ink: #f5f2eb;--muted: #b8b1a3;--line: rgba(245, 242, 235, .16);--accent: #78d8c7;--accent-ink: #aef1e5;--project-surface: #f5f2eb;--project-ink: #11100e;--shadow: 0 20px 60px rgba(0, 0, 0, .32)}.github-link{background:#1d1b18d1}.github-link:hover{background:#28241d}.scroll-top-button,.scroll-top-button:hover{color:var(--page)}.description{color:#ded8cc}}
