:root{--bg: #eeeeee;--surface: #ffffff;--ink: #000000;--text: #333333;--muted: #777777;--border: #e4e4e4;color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg: #121212;--surface: #1b1b1b;--ink: #ffffff;--text: #d6d6d6;--muted: #8d8d8d;--border: #2a2a2a}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--bg);color:var(--text);font-family:Lato,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}a{color:inherit}a:focus-visible{outline:2px solid #4c8dff;outline-offset:3px}.card{max-width:960px;margin:56px auto 0;padding:64px 48px 72px;background:var(--surface);border:1px solid var(--border)}h1{margin:0 0 56px;color:var(--ink);font-size:clamp(1.9rem,4.5vw,2.6rem);font-weight:900;line-height:1.1}h2{margin:0 0 22px;color:var(--ink);font-size:1.15rem;font-weight:400}h3{margin:0;font-size:.95rem;font-weight:400}h3 a{text-decoration:none}h3 a:hover{text-decoration:underline}section+section{margin-top:96px}.list{list-style:none;margin:0;padding:0;display:grid;gap:40px}.social-links{display:flex;justify-content:center;align-items:center;gap:18px}.social-links a{display:flex;color:var(--ink)}.social-img{display:block;height:33px;width:auto;margin-top:2px}.only-dark{display:none}:root[data-theme=dark] .only-light{display:none}:root[data-theme=dark] .only-dark{display:block}.project{display:flex;gap:24px;align-items:flex-start}.thumb{flex:none;width:88px;height:88px;display:block}.project .thumb{border-radius:18px}.project-logo{object-fit:cover}.meta{margin:0 0 2px;color:var(--muted);font-size:.85rem}.title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}.title-extra{color:var(--muted);font-size:.85rem}.title-extra:hover{color:var(--ink)}.blurb{margin:4px 0 0;color:var(--muted);font-size:.9rem}.poem{max-width:60ch}.poem p{margin:0 0 1.4em;font-size:.95rem;line-height:1.65}.poem p:last-child{margin-bottom:0}section.active-on{margin-top:56px}section.active-on+section{margin-top:56px}.active-on-logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:16px 40px}.active-on-logos a{display:block}.active-on-logos img{display:block;width:auto}:root[data-theme=dark] .active-on-logos img{filter:invert(1)}.more{margin:6px 0 0;color:var(--muted);font-size:.85rem}@media (max-width: 600px){.card{margin:0;padding:44px 24px 56px;border:0}.site-footer{padding:24px 0 32px}.project{flex-direction:column}}.back{margin:0 0 32px;font-size:.85rem}.detail-title{margin-bottom:8px;font-size:clamp(1.35rem,3vw,1.65rem);font-weight:600}.detail-meta{margin-bottom:22px}.project-page-image{margin-bottom:32px}.project-page-image .thumb{width:128px;height:128px;max-width:100%;border-radius:22px}.project-description{max-width:60ch;margin:0;color:var(--text);font-size:.9rem;line-height:1.65}.project-link{margin:24px 0 0;font-size:.9rem}.project-detail .back,.project-detail .detail-meta{font-size:.8rem}.about .detail-title{margin-bottom:24px}.about-photo{display:block;width:100%;max-width:380px;height:auto}.about-text{max-width:60ch;margin-top:28px}.about-text p{margin:0 0 1.2em;color:var(--text);font-size:.95rem;line-height:1.65}.about-text p:last-child{margin-bottom:0}.hero{display:flex;flex-direction:column;align-items:center;gap:18px}.hero-photo{display:block;width:180px;height:180px;object-fit:cover;border-radius:22px}section.hero+section{margin-top:64px}.site-footer{display:flex;justify-content:center;padding:28px 0 56px}.theme-switch{position:relative;width:48px;height:26px;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer}.theme-switch-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--ink);color:var(--surface);transition:transform .2s ease}.theme-switch[aria-checked=true] .theme-switch-knob{transform:translate(22px)}.theme-switch:focus-visible{outline:2px solid #4c8dff;outline-offset:3px}@media (prefers-reduced-motion: reduce){.theme-switch-knob{transition:none}}section.photos{margin-top:56px}.photo-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.photo-grid a{display:block}.photo-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}.album-detail .detail-title{margin-bottom:24px}.photo-caption{margin:6px 0 0;color:var(--muted);font-size:.8rem}.album-slider{list-style:none;margin:0;padding:0 0 8px;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.album-slider li{flex:none;scroll-snap-align:start}.album-card{display:block;width:200px;text-decoration:none}.album-card img{display:block;width:200px;height:200px;object-fit:cover;border-radius:12px}.album-label{display:block;margin-top:10px;color:var(--ink);font-size:.95rem}.album-count{color:var(--muted);font-size:.8rem}.album-card:hover .album-title{text-decoration:underline}.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#000000eb;color:#fff;overflow:hidden}.lightbox::backdrop{background:#0009}.lightbox-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:56px 72px}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;cursor:zoom-in;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:transform .2s ease}.lightbox-stage img.is-zoomed{position:relative;z-index:1;cursor:grab;touch-action:none;border-radius:0}.lightbox-stage img.is-zoomed:active{cursor:grabbing;transition:none}.lightbox-btn{position:absolute;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#1e1e1eb3;color:#fff;z-index:2;cursor:pointer}.lightbox-btn:hover{background:#3c3c3cd9}.lightbox-btn:focus-visible{outline:2px solid #4c8dff;outline-offset:2px}.lightbox-top{position:absolute;top:16px;right:16px;z-index:2;display:flex;gap:10px}.lightbox-top .lightbox-btn{position:static}.lightbox-prev{left:16px;top:50%;transform:translateY(-50%)}.lightbox-next{right:16px;top:50%;transform:translateY(-50%)}.lightbox-count{position:absolute;z-index:2;top:24px;left:50%;transform:translate(-50%);margin:0;padding:3px 10px;border-radius:999px;background:#1e1e1eb3;font-size:.8rem;color:#ffffffd9;pointer-events:none}.lightbox-caption{position:absolute;z-index:2;bottom:18px;left:50%;transform:translate(-50%);max-width:calc(100% - 32px);margin:0;padding:4px 12px;border-radius:8px;background:#1e1e1eb3;text-align:center;font-size:.85rem;color:#ffffffd9}@media (prefers-reduced-motion: reduce){.lightbox-stage img{transition:none}}@media (max-width: 600px){.lightbox-stage{padding:64px 12px}.lightbox-prev,.lightbox-next{top:auto;bottom:16px;transform:none}}
