:root{--paper: #f7f9fb;--ink: #1a1a1a;--ink-soft: #525252;--ink-faint: #a3a3a3;--rule: #e0e7ec;--accent: oklch(.55 .2 250)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Apple SD Gothic Neo,Pretendard,Malgun Gothic,sans-serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}body{min-height:100vh;display:grid;place-items:center;padding:48px 24px}main{max-width:560px;width:100%}.photo{width:96px;height:96px;border-radius:50%;object-fit:cover;display:block;margin:0 0 28px}h1{font-family:Spectral,Newsreader,Georgia,serif;font-weight:500;font-size:40px;line-height:1.05;letter-spacing:-.02em;margin:0 0 8px}.role{color:var(--ink-soft);margin:0 0 28px;font-size:15px}.bio{color:var(--ink-soft);margin:0 0 28px}.bio em{font-family:Spectral,serif;font-style:italic;font-weight:400}.section-label{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 16px}.work{list-style:none;margin:0 0 28px;padding:0}.work li+li{margin-top:18px}.work a{color:var(--ink);font-weight:500;text-decoration:none;border-bottom:1px dotted var(--ink-faint);padding-bottom:1px}.work a:hover{color:var(--accent);border-bottom-color:var(--accent)}.work .venue{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:12px;color:var(--ink-faint);white-space:nowrap}.work .note{display:block;color:var(--ink-soft);font-size:15px;margin-top:2px}a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in oklch,var(--accent) 30%,transparent);text-underline-offset:2px}a:hover{text-decoration-color:var(--accent)}.scholar-line{color:var(--ink-soft);font-size:14px;margin:0 0 28px}.scholar-line a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--ink-faint);padding-bottom:1px}.scholar-line a:hover{border-bottom-color:var(--accent);color:var(--accent)}.scholar-line strong{font-variant-numeric:tabular-nums;font-weight:600}.scholar-line .sep{color:var(--ink-faint);margin:0 4px}.scholar-line .updated{margin-left:6px;color:var(--ink-faint);font-size:12px;font-family:IBM Plex Mono,ui-monospace,monospace}nav.links{display:flex;flex-wrap:wrap;gap:8px 16px;padding-top:20px;border-top:1px solid var(--rule);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase}nav.links a{color:var(--ink);text-decoration:none;padding:4px 0}nav.links a:hover{color:var(--accent)}nav.tabs{display:flex;gap:20px;margin:0 0 32px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase}nav.tabs a{color:var(--ink-faint);text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent}nav.tabs a:hover{color:var(--ink)}nav.tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--rule)}.page-title{font-family:Spectral,Newsreader,Georgia,serif;font-weight:500;font-size:32px;line-height:1.1;letter-spacing:-.02em;margin:0 0 12px}main.wide{max-width:880px}.year-index{display:flex;gap:14px;margin:0 0 30px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:12px;letter-spacing:.06em}.year-index a{color:var(--ink-faint);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px}.year-index a:hover{color:var(--ink);border-bottom-color:var(--rule)}.year-heading{font-family:Spectral,Newsreader,Georgia,serif;font-size:20px;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--rule);scroll-margin-top:24px}.year+.year{margin-top:40px}.gallery{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:24px 20px}@media(min-width:700px){.gallery{grid-template-columns:repeat(3,1fr)}}@media(max-width:699px){.caption .when{display:block;margin-left:0}}.shot{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:3px;overflow:hidden;line-height:0}.shot img{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;transition:opacity .15s ease}.shot:hover img{opacity:.88}.shot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.caption{margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--ink-soft)}.caption .where{font-weight:500;color:var(--ink)}.caption .when{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:11px;color:var(--ink-faint);margin-left:6px}.caption .note{display:block;margin-top:1px}.caption .note-en{display:block;margin-top:1px;color:var(--ink-faint)}.lightbox{border:0;padding:0;max-width:100vw;max-height:100vh;width:100%;height:100%;background:none;overflow:hidden}.lightbox::backdrop{background:color-mix(in oklch,var(--ink) 88%,transparent)}.lightbox figure{margin:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px 24px;pointer-events:none}.lightbox img{max-width:min(100%,720px);max-height:78vh;width:auto;height:auto;border-radius:3px;pointer-events:auto}.lightbox figcaption{color:var(--paper);font-size:14px;text-align:center;max-width:520px;pointer-events:auto}.lightbox figcaption .where{font-weight:500}.lightbox figcaption .when{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:11px;opacity:.6;margin-left:8px}.lightbox figcaption .note{display:block;margin-top:3px;opacity:.85}.lightbox figcaption .note-en{display:block;margin-top:1px;opacity:.55}.lightbox .close,.lightbox .step{position:fixed;border:0;background:none;color:var(--paper);opacity:.55;cursor:pointer;font-family:Inter,system-ui,sans-serif;line-height:1;padding:12px}.lightbox .close:hover,.lightbox .step:hover{opacity:1}.lightbox .close{top:12px;right:16px;font-size:30px}.lightbox .step{top:50%;transform:translateY(-50%);font-size:40px}.lightbox .prev{left:8px}.lightbox .next{right:8px}@media(max-width:600px){.lightbox .step{font-size:30px}}footer{margin-top:40px;font-size:12px;color:var(--ink-faint);font-family:IBM Plex Mono,ui-monospace,monospace}@media(max-width:480px){.work .venue{display:block;margin-top:3px}.work .venue .sep{display:none}}
