@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;550;600;650;700;750;800&display=swap');
:root{color-scheme:dark;--bg:#080808;--fg:#eee;--muted:#858585;--accent:#ff008c;--line:#282828;--pad:clamp(20px,4vw,72px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--fg);font-family:Inter,"Helvetica Neue",Arial,"Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:white}.skip{position:fixed;left:20px;top:-80px;background:var(--accent);padding:14px;z-index:100}.skip:focus{top:12px}.header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);position:sticky;top:0;z-index:20;background:#080808ed;backdrop-filter:blur(16px);border-bottom:1px solid #ffffff08}.wordmark{font-weight:750;font-size:27px;letter-spacing:-1.7px}.wordmark span,.profile h3 span{color:var(--accent)}nav{display:flex;gap:38px}nav a{font-size:12px;font-weight:550;letter-spacing:.09em;position:relative;padding:16px 0}nav a:after{content:"";position:absolute;bottom:8px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s}nav a:hover:after{transform:scaleX(1)}main,footer{margin:0 var(--pad)}.intro{padding:35px 0 53px;display:flex;align-items:end;justify-content:space-between}.intro h1{font-size:clamp(86px,9.8vw,156px);letter-spacing:-.085em;line-height:1.05;margin:0;font-weight:650;animation:intro-in .9s cubic-bezier(.16,1,.3,1) both}.name-dot{color:var(--accent)}.intro p{font-size:14px;color:#aaa;margin:21px 0 0;letter-spacing:.015em;animation:intro-in .9s .12s both}.intro-mark{font-size:12px;letter-spacing:.05em;color:#717171;padding-bottom:3px}.section-bar{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;min-height:88px;gap:16px}h2{font-size:13px;letter-spacing:.1em;font-weight:550;margin:0}#total{color:#696969;letter-spacing:0;font-size:12px;font-weight:400;margin-left:10px;vertical-align:super}.filters{display:flex;gap:7px}.filters button{border:0;background:transparent;padding:12px 18px;font-size:12px;letter-spacing:.045em;color:#969696;position:relative;transition:color .25s,background .25s}.filters button:hover{color:white;background:#151515}.filters button.active{color:var(--accent)}.filters button.active:after{content:"";position:absolute;height:2px;bottom:3px;left:18px;right:18px;background:var(--accent)}.demo-note{font-size:12px;line-height:1.8;color:#7f7f7f;margin:-3px 0 21px}.grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 18px}.card{display:block;min-width:0;transition:transform .4s cubic-bezier(.2,.7,.2,1);}.thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#161616;border:1px solid #ffffff09;border-radius:2px;transition:border-color .3s,box-shadow .3s;display:grid;place-items:center}.thumb img{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .5s;filter:saturate(.82) brightness(.88)}.thumb .fallback{font-size:12px;letter-spacing:.16em;color:#8e8e8e}.play{position:absolute;width:36px;height:36px;border:1px solid #ffffff60;border-radius:50%;display:grid;place-items:center;background:#08080865;backdrop-filter:blur(8px);opacity:0;transform:scale(.8);transition:opacity .3s,transform .3s}.play svg{width:12px;height:12px;fill:white;margin-left:2px}.card h3{font-size:13px;font-weight:450;line-height:1.55;margin:11px 0 0;color:#c9c9c9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:transform .3s,color .3s}.card:focus-visible .thumb{border-color:var(--accent)}@media(hover:hover){.card:hover{transform:translateY(-4px)}.card:hover .thumb{border-color:#ff008c90;box-shadow:0 0 14px #ff008c0b}.card:hover img{transform:scale(1.035);filter:saturate(1) brightness(1)}.card:hover h3{transform:translateX(3px);color:#fff}.card:hover .play{opacity:1;transform:scale(1)}}.load-area{text-align:center;padding:39px 0 68px}.load-area p{font-size:12px;letter-spacing:.07em;color:#6f6f6f;margin:0 0 18px}.load-area button{background:transparent;border:1px solid #393939;padding:15px 31px;font-size:12px;letter-spacing:.1em;transition:border-color .3s,color .3s}.load-area button span{margin-left:26px;color:var(--accent);font-size:16px}.load-area button:hover{border-color:var(--accent);color:white}.empty{padding:60px 0;color:var(--muted);font-size:14px;text-align:center}.about{border-top:1px solid var(--line);padding:64px 0 72px;display:grid;grid-template-columns:1fr 1.5fr 2fr;gap:30px}.profile h3{font-size:53px;letter-spacing:-3px;font-weight:600;margin:-9px 0 15px}.profile p{color:#9a9a9a;font-size:14px;line-height:1.8;margin:0}.about-details{display:grid;grid-template-columns:1fr 1fr;gap:26px}.about-details h3{font-size:11px;font-weight:450;letter-spacing:.12em;color:#6f6f6f;margin:0 0 20px}.about ul{margin:0;padding:0;list-style:none;font-size:14px;line-height:1.95;color:#bdbdbd}.contact{display:grid;grid-template-columns:1fr 3.5fr;gap:30px;border-top:1px solid var(--line);padding:58px 0 72px}.contact h2{padding-top:7px}#contact-links{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}#contact-links a{font-size:clamp(17px,2vw,30px);border-bottom:1px solid #555;padding-bottom:8px;transition:border-color .3s}#contact-links a:hover{border-color:var(--accent)}#contact-links p{margin:0;font-size:14px;color:#858585}.contact-placeholder{display:flex;gap:30px;color:#777;font-size:14px}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);min-height:108px}footer p,footer>a:last-child{font-size:11px;letter-spacing:.055em;color:#777}.progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--accent);z-index:30}.reveal{opacity:1;transform:none}.reveal.waiting{opacity:0;transform:translateY(24px)}.reveal{transition:opacity .8s,transform .8s}#cursor{display:none;position:fixed;top:0;left:0;width:7px;height:7px;background:var(--accent);border-radius:50%;z-index:100;pointer-events:none;opacity:0;transition:width .25s,height .25s,background .25s,border-color .25s;border:1px solid transparent}#cursor.over{width:31px;height:31px;background:#ff008c09;border-color:#ff008c85}@media(pointer:fine) and (hover:hover){#cursor{display:block}}@keyframes intro-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}[hidden]{display:none!important}@media(min-width:1800px){main,footer{max-width:1760px;margin-left:auto;margin-right:auto}}@media(max-width:1199px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}.about{grid-template-columns:.7fr 1.3fr 2fr}}@media(max-width:959px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about{grid-template-columns:1fr 2fr}.about-details{grid-column:2}.contact{grid-template-columns:1fr 2fr}.intro{padding-top:30px}}@media(max-width:600px){.header{height:68px}nav{gap:22px}nav a{font-size:11px}.wordmark{font-size:25px}.intro{padding:25px 0 36px}.intro h1{font-size:90px}.intro p{font-size:12px;margin-top:14px}.intro-mark{display:none}.section-bar{min-height:72px}.filters{gap:0}.filters button{padding:12px 11px}.filters button.active:after{left:11px;right:11px}h2{font-size:12px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.card h3{font-size:12px;line-height:1.6;margin-top:8px}.demo-note{font-size:11px;margin-bottom:16px}.load-area{padding:32px 0 47px}.about{padding:36px 0 43px;gap:31px;grid-template-columns:1fr}.about-details{grid-column:auto;gap:20px}.profile h3{font-size:46px}.profile p{font-size:13px}.contact{grid-template-columns:1fr;padding:32px 0 44px;gap:26px}footer{min-height:88px;gap:12px}footer p,footer>a:last-child{font-size:10px}footer .wordmark{font-size:22px}#total{margin-left:5px;font-size:10px}}
/* Refined surfaces and motion; the films remain the primary visual content. */
:root{--line:#242424;--ease:cubic-bezier(.16,1,.3,1)}
.header{background:#080808d9;border-bottom-color:transparent;transition:background .4s,border-color .4s,box-shadow .4s}
.header.scrolled{background:#080808f0;border-bottom-color:#ffffff0d;box-shadow:0 12px 32px #00000020}
.intro h1{background:linear-gradient(155deg,#fff 18%,#e8e8e8 55%,#a5a5a5);background-clip:text;-webkit-background-clip:text;color:transparent}
.intro .name-dot{color:var(--accent);-webkit-text-fill-color:var(--accent)}
.intro{position:relative}.intro:after{content:"";position:absolute;left:0;bottom:-1px;width:42px;height:1px;background:var(--accent);transform-origin:left;animation:line-enter 1.2s .3s var(--ease) both}
@keyframes line-enter{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.section-bar{min-height:94px}.filters{position:relative;isolation:isolate;padding:4px;background:#101010;border:1px solid #ffffff08;border-radius:5px;gap:2px}
.filters button{font-size:12px;padding:11px 19px;z-index:1;transition:color .3s}
.filters button:hover{background:transparent}.filters button.active:after{display:none}
.filter-indicator{position:absolute;top:4px;bottom:4px;left:0;z-index:0;border:1px solid #ffffff10;border-bottom-color:#ff008c85;border-radius:3px;background:linear-gradient(180deg,#202020,#171717);box-shadow:0 3px 8px #00000030;transition:transform .55s var(--ease),width .55s var(--ease);pointer-events:none}
.grid{gap:32px 20px}.work-item{min-width:0;position:relative}.work-item.awaiting{opacity:0}.card{transition:transform .55s var(--ease)}
.thumb{border-radius:4px;border-color:#ffffff0e;box-shadow:0 3px 12px #00000028;transition:border-color .4s,box-shadow .5s}
.thumb:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px 0 #ffffff12;pointer-events:none}
.thumb img{filter:saturate(.95) brightness(.94);transition:transform .85s var(--ease),filter .65s}
.card h3{font-size:14px;line-height:1.65;color:#c5c5c5;margin-top:12px;transition:color .35s,transform .5s var(--ease)}
.play{width:40px;height:40px;border-color:#ffffff42;background:#08080880;box-shadow:0 6px 24px #00000030;transition:opacity .35s,transform .5s var(--ease)}
.title-toggle{position:absolute;right:7px;top:7px;width:34px;height:34px;border:1px solid #ffffff28;border-radius:50%;background:#080808a8;backdrop-filter:blur(12px);color:#eee;display:grid;place-items:center;opacity:0;transform:translateY(3px);transition:opacity .25s,transform .4s var(--ease),border-color .25s;z-index:2}
.title-toggle svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.15;stroke-linecap:round}.title-toggle:hover,.title-toggle[aria-expanded=true]{border-color:#ff008c95;color:white}
.work-item:focus-within .title-toggle{opacity:1;transform:none}.card:focus-visible .play{opacity:1;transform:scale(1)}
.title-tooltip{position:fixed;z-index:80;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 116px);overflow:auto;padding:22px 24px;background:linear-gradient(135deg,#232323f7,#131313fa);border:1px solid #ffffff20;border-top-color:#ffffff35;border-radius:7px;box-shadow:0 18px 60px #0009,0 0 0 1px #0005;backdrop-filter:blur(24px);opacity:0;visibility:hidden;transform:translateY(7px);transition:opacity .18s,transform .3s var(--ease),visibility 0s .18s;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#555 transparent;pointer-events:none}
.title-tooltip.is-visible{visibility:visible;opacity:1;transform:translateY(0);transition-delay:0s;pointer-events:auto}.tooltip-category{font-size:11px;font-weight:550;letter-spacing:.12em;color:var(--accent);display:flex;align-items:center;gap:9px}.tooltip-category:before{content:"";width:17px;height:1px;background:currentColor}.title-tooltip p{margin:12px 0 0;font-size:14px;line-height:1.95;color:#f1f1f1;overflow-wrap:anywhere;white-space:normal;line-break:strict}
.load-area button{border-radius:3px;background:linear-gradient(180deg,#171717,#101010);box-shadow:inset 0 1px 0 #ffffff07;transition:border-color .35s,transform .4s var(--ease),box-shadow .4s}.load-area button:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0005}
.about,.contact{border-top-color:#2a2a2a}.about-details h3{color:#888;font-size:12px}.about li{transition:color .25s}.about li:hover{color:#fff}#contact-links a{position:relative;border-bottom-color:#333;padding-bottom:12px}#contact-links a:after{content:"";position:absolute;bottom:-1px;height:1px;left:0;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}#contact-links a:hover:after{transform:scaleX(1)}
@media(hover:hover){.work-item:hover .title-toggle{opacity:1;transform:none}.card:hover{transform:translateY(-3px)}.card:hover .thumb{box-shadow:0 10px 28px #0007,0 0 0 1px #ff008c18;border-color:#ff008c65}.card:hover img{transform:scale(1.035);filter:saturate(1) brightness(1)}}
@media(hover:none),(pointer:coarse){.title-toggle{opacity:1;transform:none;width:44px;height:44px;right:3px;top:3px;background:#080808c0}}
@media(max-width:600px){.section-bar{min-height:80px}.filters{padding:3px;gap:0}.filters button{font-size:11px;padding:10px 12px}.filter-indicator{top:3px;bottom:3px}.grid{gap:26px 12px}.card h3{font-size:12px;line-height:1.7;margin-top:10px}.title-toggle{opacity:1;transform:none;width:44px;height:44px;right:3px;top:3px}.title-tooltip{padding:18px 20px}.intro:after{width:28px}.about-details h3{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.waiting,.work-item.awaiting{opacity:1;transform:none}#cursor{display:none!important}}
