:root{
  --ink:#173f61;
  --muted:#637f98;
  --sky:#e2f4f8;
  --paper:#f7fbfc;
  --line:rgba(23,63,97,.14);
  --white:rgba(255,255,255,.86);
  --shadow:0 14px 38px rgba(44,83,106,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:linear-gradient(180deg,#dff2f7 0%,#eef8fa 42%,#f8fbfc 100%);
  font-family:Inter,ui-rounded,"Avenir Next",Avenir,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.01em;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
.site-header{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  max-width:1380px;margin:auto;padding:24px 42px;
  background:rgba(226,244,248,.78);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.brand{font-size:1.45rem;font-weight:900;letter-spacing:.08em}
nav{display:flex;gap:38px;font-size:.76rem;font-weight:850;letter-spacing:.11em}
nav a{opacity:.82}
nav a:hover{opacity:1}
.section{max-width:1380px;margin:auto;padding:92px 42px}
.hero{
  min-height:620px;
  display:flex;
  align-items:center;
  padding-top:72px;
  padding-bottom:92px;
}
.hero-copy{max-width:900px}
.eyebrow,.work-type,.created-label{
  font-size:.73rem;font-weight:850;letter-spacing:.15em;color:#6e879d;text-transform:uppercase;
}
.eyebrow{margin:0 0 22px}
h1{
  margin:0 0 28px;
  max-width:940px;
  font-size:clamp(4rem,7.5vw,7.4rem);
  line-height:.88;
  letter-spacing:-.065em;
  font-weight:900;
}
.hero-line{
  max-width:620px;margin:0;
  font-size:clamp(1.05rem,1.7vw,1.35rem);
  line-height:1.55;color:#607d97;
}
.section-heading{
  display:flex;align-items:baseline;gap:16px;margin-bottom:32px;
}
.section-number{
  font-size:.76rem;font-weight:900;letter-spacing:.12em;color:#69849a;
}
h2{
  margin:0;font-size:clamp(2rem,3.5vw,3.2rem);
  line-height:1;letter-spacing:-.045em;
}
.card{
  background:rgba(255,255,255,.68);
  border:1px solid rgba(255,255,255,.94);
  box-shadow:var(--shadow);
}
.about-card{
  border-radius:28px;padding:38px 42px;
  display:block;
}
.about-card .lead{
  max-width:860px;margin:0;
  font-size:clamp(1.2rem,2vw,1.55rem);
  line-height:1.55;font-weight:700;
}
.mini-illustration{display:none}
.projects-section{padding-top:76px}
.projects-intro{max-width:760px;margin-bottom:56px}
.projects-intro .lead{margin:0 0 8px;font-size:1.25rem;font-weight:800}
.projects-intro p:last-child{margin:0;color:var(--muted);line-height:1.6}
.work{
  display:grid;
  grid-template-columns:96px minmax(0,1fr);
  gap:24px;
  padding:58px 0;
  border-top:1px solid var(--line);
}
.work:last-of-type{border-bottom:1px solid var(--line)}
.work-number{
  padding-top:4px;
  font-family:"Avenir Next",Avenir,sans-serif;
  font-size:clamp(3.6rem,6vw,6.2rem);
  line-height:.8;
  font-weight:300;
  letter-spacing:-.08em;
  color:rgba(23,63,97,.32);
}
.work-main{min-width:0}
.work-heading{margin-bottom:22px}
.work-type{margin:0 0 9px}
.work h3{
  margin:0;
  font-size:clamp(2.2rem,4.8vw,4.7rem);
  line-height:.92;
  letter-spacing:-.055em;
  font-weight:900;
}
.working-title{
  display:inline-block;margin:13px 0 0;
  padding:7px 11px;border-radius:999px;
  background:rgba(255,255,255,.72);
  font-size:.68rem;font-weight:850;letter-spacing:.12em;
}
.media-placeholder.media-image{
  position:relative;display:block;width:100%;padding:0;
  aspect-ratio:16/9;overflow:hidden;border:0;border-radius:24px;
  cursor:pointer;background:#0b1220;box-shadow:var(--shadow);
}
.media-placeholder.media-image img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
}
.media-shade{
  position:absolute;inset:0;background:rgba(8,22,34,.04);transition:.25s;
}
.media-placeholder.media-image:hover .media-shade{background:rgba(8,22,34,.14)}
.play-pill{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  z-index:2;display:flex;align-items:center;justify-content:center;
  width:88px;height:88px;border-radius:50%;
  background:rgba(255,255,255,.14);
  border:2px solid rgba(255,255,255,.88);
  color:white;font-size:0;box-shadow:0 8px 28px rgba(0,0,0,.16);
  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
  transition:.2s;
}
.play-pill::after{
  content:"▶";font-size:1.55rem;margin-left:5px;color:white;
}
.media-placeholder:hover .play-pill{transform:translate(-50%,-50%) scale(1.06)}
.work-copy{
  display:grid;grid-template-columns:1.15fr .85fr;gap:44px;
  padding:24px 2px 0;
}
.work-copy>p{
  margin:0;max-width:720px;color:#526f88;
  font-size:1.05rem;line-height:1.65;
}
.created-with{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.tool-tags{display:flex;flex-wrap:wrap;gap:8px}
.tool-tags span{
  padding:8px 12px;border-radius:999px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(23,63,97,.08);
  font-size:.75rem;font-weight:760;
}
.app-placeholder{
  width:100%;min-height:470px;position:relative;overflow:hidden;
  border-radius:24px;background:linear-gradient(155deg,#eaf6f8,#dceef3);
  box-shadow:var(--shadow);
  display:flex;align-items:center;justify-content:center;
}
.phone-shell{
  width:210px;height:430px;border-radius:42px;background:#fff;padding:11px;
  box-shadow:0 28px 60px rgba(36,73,94,.16);transform:rotate(-4deg);
}
.phone-screen{
  width:100%;height:100%;border-radius:32px;
  background:linear-gradient(180deg,#f7fcfd,#e3f2f5);
  display:flex;align-items:center;justify-content:center;
}
.eyes-up-mark{
  font-size:2.7rem;line-height:.88;font-weight:950;
  letter-spacing:-.065em;text-align:center;
}
.media-note{
  position:absolute;left:22px;bottom:18px;
  font-size:.67rem;font-weight:800;letter-spacing:.08em;color:#6f899d;
}
.contact-section{padding-bottom:76px}
.contact-card{
  border-radius:28px;padding:38px 42px;
  display:flex;align-items:center;justify-content:space-between;
}
.contact-card .lead{margin:0 0 10px;font-size:1.25rem;font-weight:760}
.email-link{
  display:inline-block;font-size:clamp(1.45rem,3vw,2.3rem);
  font-weight:900;border-bottom:2px solid rgba(23,63,97,.25);
}
.contact-art{display:none}
footer{
  max-width:1380px;margin:auto;padding:34px 42px 46px;
  display:flex;justify-content:space-between;gap:28px;
  border-top:1px solid var(--line);
  color:#6b859a;font-size:.76rem;font-weight:800;letter-spacing:.07em;
}
.footer-line{display:block;margin-top:8px;font-weight:600;letter-spacing:.01em}
.footer-links{display:flex;gap:24px;align-items:flex-end}
@media(max-width:900px){
  .site-header{padding:20px 26px}
  .section{padding-left:26px;padding-right:26px}
  .hero{min-height:560px}
  .work{grid-template-columns:74px minmax(0,1fr)}
  .work-copy{grid-template-columns:1fr}
  .footer-links{flex-direction:column;align-items:flex-start;gap:8px}
}
@media(max-width:620px){
  .site-header{padding:17px 20px}
  nav{gap:13px}nav a{font-size:.63rem}
  .section{padding:62px 20px}
  .hero{min-height:500px;padding-top:50px}
  h1{font-size:clamp(3.3rem,17vw,5rem)}
  .work{grid-template-columns:1fr;gap:12px;padding:44px 0}
  .work-number{font-size:3.4rem;margin-bottom:5px}
  .work h3{font-size:2.5rem}
  .play-pill{width:70px;height:70px}
  .app-placeholder{min-height:340px}
  .phone-shell{width:160px;height:325px}
  .contact-card{padding:30px}
  footer{padding:26px 20px;flex-direction:column}
}


/* Ver.2.7 — lock the hero headline to 3 lines on wide screens */
.hero-copy{
  max-width:1180px;
}
h1{
  max-width:1180px;
  font-size:clamp(4rem,6.7vw,6.8rem);
}
.hero-title-line{
  display:block;
  white-space:nowrap;
}

@media(max-width:900px){
  .hero-title-line{
    white-space:normal;
  }
}


/* EYES UP project image */
.app-placeholder.app-image{
  min-height:0;
  aspect-ratio:16/9;
  background:#dceef3;
}
.app-placeholder.app-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}


/* Ver.2.9 — refined mobile hero headline */
.hero-title-mobile{
  display:none;
}

@media(max-width:620px){
  .hero-title-desktop{
    display:none;
  }

  .hero-title-mobile{
    display:block;
    font-size:clamp(3rem,13vw,4rem);
    line-height:.9;
    letter-spacing:-.06em;
    max-width:none;
  }

  .hero-title-mobile span{
    display:block;
    white-space:nowrap;
  }
}

/* Language switch — English / Japanese */
.header-right{display:flex;align-items:center;gap:24px}
.language-switch{display:flex;align-items:center;gap:6px;font-size:.70rem;font-weight:850;letter-spacing:.10em;color:#69849a;white-space:nowrap}
.language-switch a{opacity:.65}.language-switch a:hover{opacity:1}
.language-current{color:var(--ink)}.language-separator{opacity:.38}
@media(max-width:620px){.header-right{gap:12px}.language-switch{gap:4px;font-size:.61rem}.jp-break{display:none}}


/* Japanese mobile typography refinement */
@media(max-width:620px){
  html[lang="ja"] .work-copy>p{
    font-size:.94rem;
    line-height:1.85;
    letter-spacing:0;
    word-break:normal;
    overflow-wrap:normal;
  }

  html[lang="ja"] .projects-intro p,
  html[lang="ja"] .hero-line{
    line-height:1.75;
  }
}
