@font-face{
  font-family:'Great Vibes Self';
  src:url(data:font/woff2;base64,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) format('woff2');
  font-weight:400;
  font-display:swap;
}

:root{
  --bg:#ffffff;
  --surface:#f7f7f5;
  --ink:#141414;
  --ink-soft:#5c5c58;
  --line:#d9d8d2;
  --line-strong:#141414;
  --max:1160px;
  --gutter:6vw;
  --serif:'Shippori Mincho', serif;
  --sans:'Zen Kaku Gothic New', sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"palt";
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}

/* -------- header -------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:76px;
}
.logo{
  display:flex;
  flex-direction:column;
  line-height:1;
}
.logo .logo-mark{
  display:flex;align-items:baseline;
}
.logo .logo-s{
  font-family:'Great Vibes Self','Great Vibes','Segoe Script','Bradley Hand',cursive;
  font-size:30px;
  font-weight:400;
  margin-right:-2px;
}
.logo .logo-en{
  font-family:'Great Vibes Self','Great Vibes','Segoe Script','Bradley Hand',cursive;
  font-size:44px;
  font-weight:400;
  margin-right:6px;
}
.logo span.sub{color:var(--ink-soft);font-family:var(--sans);font-size:11px;letter-spacing:.18em;font-weight:400;margin-top:2px;}

nav.main-nav ul{
  display:flex;gap:36px;list-style:none;margin:0;padding:0;
}
nav.main-nav a{
  position:relative;font-size:14px;letter-spacing:.05em;padding-bottom:6px;
}
nav.main-nav a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--ink);transition:width .3s ease;
}
nav.main-nav a:hover::after,
nav.main-nav a.is-active::after{width:100%;}
nav.main-nav a.is-active{color:var(--ink);}

.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;
  width:32px;height:22px;position:relative;
}
.nav-toggle span{
  position:absolute;left:0;width:100%;height:1px;background:var(--ink);transition:all .25s ease;
}
.nav-toggle span:nth-child(1){top:0;}
.nav-toggle span:nth-child(2){top:10px;}
.nav-toggle span:nth-child(3){top:20px;}
.nav-toggle.is-open span:nth-child(1){transform:translateY(10px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-10px) rotate(-45deg);}

/* -------- footer -------- */
.site-footer{
  border-top:1px solid var(--line);
  padding:56px 0 28px;
  margin-top:120px;
}
.footer-grid{
  display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;
  padding-bottom:32px;
}
.footer-col h3{
  font-family:var(--serif);font-weight:500;font-size:15px;margin:0 0 14px;
}
.footer-col p, .footer-col a{
  font-size:13.5px;color:var(--ink-soft);margin:0 0 6px;display:block;
}
.footer-col a:hover{color:var(--ink);}
.footer-bottom{
  border-top:1px solid var(--line);padding-top:20px;
  font-size:12px;color:var(--ink-soft);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
}

/* -------- generic section helpers -------- */
.section{padding:96px 0;}
.section.alt{background:var(--surface);}
.section-head{max-width:640px;margin-bottom:56px;}
.eyebrow{
  font-size:12.5px;color:var(--ink-soft);letter-spacing:.12em;margin:0 0 14px;
}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0;}
h1{font-size:clamp(34px,5vw,58px);line-height:1.35;}
h2{font-size:clamp(26px,3.2vw,38px);line-height:1.5;}
h3{font-size:20px;line-height:1.6;}
p.lead{font-size:17px;color:var(--ink-soft);}

.line-rule{
  width:64px;height:1px;background:var(--ink);border:0;margin:22px 0;
}
.line-rule.center{margin-left:auto;margin-right:auto;}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-size:14px;letter-spacing:.04em;
  padding:14px 0;border-bottom:1px solid var(--ink);
}
.btn .arrow{
  width:22px;height:1px;background:var(--ink);position:relative;transition:width .3s ease;
}
.btn:hover .arrow{width:34px;}

/* -------- hero -------- */
.hero{
  padding:120px 0 90px;
  position:relative;
}
.hero .eyebrow{margin-bottom:22px;}
.hero h1{max-width:820px;}
.hero-sub{
  margin-top:26px;max-width:520px;color:var(--ink-soft);font-size:16px;
}
.hero-line-wrap{margin:44px 0 0;}
.hero-line{
  width:100%;height:1px;
  stroke:var(--ink);stroke-width:1;fill:none;
  stroke-dasharray:1000;stroke-dashoffset:1000;
  animation:draw 1.8s ease forwards .3s;
}
@keyframes draw{to{stroke-dashoffset:0;}}
@media (prefers-reduced-motion:reduce){
  .hero-line{animation:none;stroke-dashoffset:0;}
}

/* -------- works grid -------- */
.works-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
  background:var(--line);
  border:1px solid var(--line);
}
.work-card{
  background:var(--bg);
  padding:0;position:relative;
}
.work-media{
  aspect-ratio:16/10;
  background:var(--surface);
  background-size:cover;
  background-position:center;
  position:relative;overflow:hidden;
  cursor:pointer;
}
.work-media .ph{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:10px;color:var(--ink-soft);font-size:12px;letter-spacing:.06em;
}
.work-media.has-image .ph{
  background:rgba(255,255,255,.0);
}
.work-media.has-image .ph span.label{display:none;}
.work-media.has-image .ph .play{
  background:rgba(255,255,255,.85);
  border-color:var(--ink);
}
.work-media .ph .play{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--ink);
  display:flex;align-items:center;justify-content:center;
  background:var(--bg);
  transition:transform .25s ease;
}
.work-media:hover .ph .play{transform:scale(1.08);}
.work-media .ph .play::after{
  content:"";width:0;height:0;
  border-top:6px solid transparent;border-bottom:6px solid transparent;
  border-left:9px solid var(--ink);margin-left:3px;
}
.work-media iframe{width:100%;height:100%;border:0;position:absolute;inset:0;}
.work-info{padding:20px 22px 26px;}
.work-info .cat{font-size:11.5px;color:var(--ink-soft);letter-spacing:.1em;margin-bottom:8px;}
.work-info h3{font-size:17px;}

@media (max-width:860px){
  .works-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .works-grid{grid-template-columns:1fr;}
}

/* -------- profile table -------- */
.profile-table{width:100%;border-collapse:collapse;margin-top:8px;}
.profile-table tr{border-top:1px solid var(--line);}
.profile-table tr:last-child{border-bottom:1px solid var(--line);}
.profile-table th,.profile-table td{
  text-align:left;padding:20px 0;vertical-align:top;font-weight:400;
}
.profile-table th{
  width:180px;color:var(--ink-soft);font-size:13.5px;letter-spacing:.05em;
}
.profile-table td{font-size:15.5px;}
.profile-table .en{font-size:12.5px;color:var(--ink-soft);}
.profile-table th .en{display:inline-block;margin-top:2px;}

/* -------- director -------- */
.director-layout{
  display:grid;grid-template-columns:340px 1fr;gap:64px;align-items:start;
}
.director-photo{
  aspect-ratio:3/4;background:var(--surface);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);font-size:12.5px;letter-spacing:.06em;
  text-align:center;padding:20px;
  border:1px dashed var(--line);
}
.director-name-en{color:var(--ink-soft);font-size:13px;letter-spacing:.1em;margin-top:8px;}
@media (max-width:800px){
  .director-layout{grid-template-columns:1fr;gap:36px;}
  .director-photo{max-width:280px;}
}

/* -------- about concept -------- */
.concept-block{max-width:760px;}
.concept-block p{margin:0 0 22px;font-size:16px;color:var(--ink-soft);}
.concept-block p.jp{color:var(--ink);font-size:16.5px;}

/* -------- bilingual (ja / en) pairing -------- */
p.en, .lead.en{
  font-size:14px;
  color:var(--ink-soft);
  font-style:normal;
  letter-spacing:.01em;
  line-height:1.75;
}
p.en{padding-top:2px;}
.hero-sub.en{margin-top:12px;font-size:14px;}

/* -------- studio strip -------- */
.strip{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);
  border:1px solid var(--line);margin-top:56px;
}
.strip .ph-box{
  aspect-ratio:4/3;background:var(--surface);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);font-size:11.5px;letter-spacing:.06em;text-align:center;padding:14px;
}
@media (max-width:700px){.strip{grid-template-columns:1fr;}}

/* -------- contact form -------- */
.contact-layout{
  display:grid;grid-template-columns:1fr 1fr;gap:80px;
}
.form-row{margin-bottom:26px;}
.form-row label{
  display:block;font-size:13px;color:var(--ink-soft);letter-spacing:.04em;margin-bottom:10px;
}
.form-row label .en{font-size:11.5px;color:var(--ink-soft);opacity:.75;}
.form-row input,.form-row textarea{
  width:100%;border:0;border-bottom:1px solid var(--line);
  background:transparent;font-family:var(--sans);font-size:15.5px;color:var(--ink);
  padding:8px 0;outline:none;transition:border-color .25s ease;
}
.form-row input:focus,.form-row textarea:focus{border-color:var(--ink);}
.form-row textarea{resize:vertical;min-height:110px;}
.submit-btn{
  border:1px solid var(--ink);background:var(--ink);color:var(--bg);
  font-family:var(--sans);font-size:14px;letter-spacing:.06em;
  padding:15px 34px;cursor:pointer;transition:background .25s ease,color .25s ease;
}
.submit-btn:hover{background:var(--bg);color:var(--ink);}
.submit-btn:disabled{opacity:.5;cursor:default;}
.form-status{margin-top:18px;font-size:14px;}
.form-status.ok{color:#2f6b3a;}
.form-status.err{color:#a33;}

.contact-info h3{margin-bottom:18px;}
.contact-info p{color:var(--ink-soft);font-size:14.5px;margin:0 0 6px;}

@media (max-width:800px){
  .contact-layout{grid-template-columns:1fr;gap:48px;}
}

/* -------- mobile nav -------- */
@media (max-width:800px){
  .nav-toggle{display:block;}
  .nav-toggle.is-open span{background:var(--ink);}
  nav.main-nav{
    display:none;
    position:fixed;top:76px;left:0;right:0;
    height:calc(100vh - 76px);
    height:calc(100dvh - 76px);
    z-index:100;
    background:var(--ink);
    padding:40px var(--gutter);
    overflow-y:auto;
  }
  nav.main-nav.is-open{
    display:flex;
    align-items:flex-start;
  }
  nav.main-nav ul{flex-direction:column;gap:28px;width:100%;}
  nav.main-nav a{
    font-size:22px;font-family:var(--serif);
    color:#ffffff;
  }
  nav.main-nav a::after{background:#ffffff;}
}
