*{margin:0;padding:0;box-sizing:border-box}:root{--fg:#1a1a1a;--bg:#fff;--line:#e8e8e8;--gray:#9a9a9a;--gray-dark:#555}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:Helvetica Neue,Helvetica,Arial,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;font-size:13px;line-height:1.8;letter-spacing:.03em}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}li,ul{list-style:none}.container{max-width:1120px;margin:0 auto;padding:0 28px;min-height:100vh;display:flex;flex-direction:column}.site-header{padding:36px 0 6px}.site-header-row{display:flex;justify-content:space-between;align-items:baseline}.site-header h1{font-size:15px;font-weight:700;letter-spacing:.16em}.site-header h1 .name-toggle,.site-header h1 a,.site-header nav a{transition:opacity .3s ease}.site-header h1 .name-toggle{font:inherit;letter-spacing:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:12px}.site-icon{width:40px;height:40px;border-radius:50%;object-fit:cover}.site-header h1 .name-toggle:hover,.site-header h1 a:hover,.site-header nav a:hover{opacity:.5}.site-header nav a{font-size:12px;letter-spacing:.1em;color:var(--gray-dark)}.profile-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .55s cubic-bezier(.22,1,.36,1),opacity .45s ease}.profile-panel.open{grid-template-rows:1fr;opacity:1}.profile-panel>div{overflow:hidden}.profile-inner{padding:18px 0 6px;max-width:640px}.profile-tagline{font-size:12px;letter-spacing:.08em;margin-bottom:8px}.profile-text{font-size:12px;color:var(--gray-dark);letter-spacing:.05em;white-space:pre-line}.info-heading{font-size:13px;font-weight:700;letter-spacing:.14em;margin-bottom:36px}.info-section{margin-bottom:8px}.info-name{font-size:14px;font-weight:700;letter-spacing:.08em;margin-bottom:4px}.info-tagline{font-size:12px;color:var(--gray-dark);letter-spacing:.06em;margin-bottom:16px}.info-text{font-size:12.5px;color:var(--fg);letter-spacing:.04em;line-height:2.1;white-space:pre-line;max-width:640px;margin-bottom:16px}.info-mail a{font-size:12px;letter-spacing:.06em;text-decoration:underline;text-underline-offset:3px}.info-mail a:hover{opacity:.6}.info-divider{border:none;margin:30px 0;font-size:12px;color:var(--gray)}.info-divider:before{content:"–"}.info-sns li{margin-bottom:2px}.info-sns a{font-size:12.5px;letter-spacing:.06em;transition:opacity .3s ease}.info-sns a:hover{opacity:.5}.back-to-top{margin-top:48px}.back-to-top a{font-size:12px;letter-spacing:.1em;color:var(--gray);transition:color .3s ease}.back-to-top a:hover{color:var(--fg)}.intro{font-size:12px;color:var(--gray-dark);letter-spacing:.06em;margin-bottom:44px}.intro a{text-decoration:underline;text-underline-offset:3px}.intro a:hover{opacity:.6}.main{flex:1 1;padding-bottom:40px}.filter-row{display:flex;flex-wrap:wrap;gap:4px 20px;margin-bottom:30px}.filter-row button{font:inherit;font-size:12px;letter-spacing:.08em;background:none;border:none;cursor:pointer;color:var(--gray);padding:0;transition:color .3s ease}.filter-row button:hover{color:var(--fg)}.filter-row button.active{color:var(--fg);border-bottom:1px solid var(--fg)}.works-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:44px 28px;gap:44px 28px}.work-card{display:block;opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1)}.work-card.reveal{opacity:1;transform:none}.work-card .thumb{position:relative;aspect-ratio:1024/436;overflow:hidden;border-radius:2px}.work-card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,1,.36,1),opacity .45s ease;will-change:transform}.work-card .thumb img.hover-img{opacity:0}.work-card:hover .thumb img{transform:scale(1.03)}.work-card:hover .thumb img.hover-img{opacity:1}.work-card h2{font-size:13px;font-weight:500;letter-spacing:.04em;line-height:1.6;margin-top:12px;transition:opacity .3s ease}.work-card:hover h2{opacity:.55}.work-card .sub{font-size:11px;color:var(--gray);letter-spacing:.06em;margin-top:2px}.page{max-width:860px;animation:pageIn .6s cubic-bezier(.22,1,.36,1) both}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.page .back{display:inline-block;font-size:12px;letter-spacing:.12em;margin-bottom:30px;color:var(--gray);transition:color .3s ease}.page .back:hover{color:var(--fg)}.page h1.work-title{font-size:19px;font-weight:700;letter-spacing:.05em;line-height:1.5;margin-bottom:6px}.page .meta{font-size:11px;color:var(--gray);letter-spacing:.1em;margin-bottom:26px}.page .meta span+span:before{content:" / "}.video-embed{position:relative;width:100%;aspect-ratio:16/9;background:#000;margin-bottom:28px}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.hero-strip{width:100%;aspect-ratio:16/9;margin-bottom:28px}.hero-strip img{width:100%;height:100%;object-fit:cover}.prose p{margin-bottom:1em}.prose a{text-decoration:underline}.gallery{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px;margin-top:20px}.gallery img{width:100%;aspect-ratio:16/9;object-fit:cover}.credits{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:var(--gray);white-space:pre-line;letter-spacing:.06em}.about-sns{margin-top:32px}.about-sns li a{font-size:12px;letter-spacing:.1em;border-bottom:1px solid var(--line);transition:border-color .3s ease}.about-sns li a:hover{border-bottom-color:var(--fg)}.site-footer{display:flex;justify-content:space-between;align-items:baseline;padding:24px 0 36px;font-size:11px;color:var(--gray);letter-spacing:.08em}.site-footer ul{display:flex;gap:18px}.site-footer a{transition:color .3s ease}.site-footer a:hover{color:var(--fg)}.setup-note{border:1px dashed var(--line);padding:24px;font-size:12px;color:var(--gray);line-height:2}.setup-note code{background:#f4f4f4;padding:1px 6px;border-radius:3px;font-size:11px}@media (prefers-reduced-motion:reduce){.page,.work-card,.work-card .thumb img{transition:none!important;animation:none!important;opacity:1;transform:none}}@media (max-width:680px){.container{padding:0 20px}.site-header{padding-top:26px}.intro{margin-bottom:32px}.works-grid{gap:32px}.gallery,.works-grid{grid-template-columns:1fr}.site-footer{flex-direction:column;gap:8px}}