/* INBEST Lab v32 — bold local work, clear business entry. */
:root{--v32-ink:#171b19;--v32-lime:#c9ff3b;--v32-paper:#fff;--v32-soft:#f4f6f2;--v32-rule:#d9dfd8}
html{scroll-behavior:smooth}
body.v32{color:var(--v32-ink)}
.v32 .site-header{z-index:90}
.v32 .desktop-nav a,.v32 .mobile-menu a{font-weight:650}
.v32 .header-contact{white-space:nowrap}
.v32 .header-contact,.v32 .pill-button,.v32 .contact-button{font-weight:700}
.v32 .section-label,.v32 .page-kicker,.v32 .editorial-label{letter-spacing:.08em}
.v32 .hero-3d{isolation:isolate}
.v32 .hero-3d:after{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.81) 27%,rgba(255,255,255,.20) 54%,transparent 72%),linear-gradient(180deg,rgba(255,255,255,.4),transparent 38%,transparent 68%,rgba(255,255,255,.75));}
.v32 .hero-3d-copy{z-index:4}
.v32 .hero-3d .hero-place{position:static;max-width:none;margin:0 0 clamp(18px,2vw,32px);padding:8px 12px;background:var(--v32-lime);color:var(--v32-ink);font-size:clamp(.78rem,1vw,.96rem);font-weight:800;letter-spacing:.04em;text-align:left;line-height:1.5}
.v32 .hero-3d h1{max-width:17em;font-size:clamp(3.5rem,7.25vw,8.4rem);line-height:1.06;letter-spacing:-.075em;color:var(--v32-ink);text-shadow:0 1px 15px #fff9}
.v32 .hero-3d h1>span{display:block;overflow-wrap:normal}
.v32 .hero-3d h1>span:last-child{font-size:1em}
.v32 .hero-3d h1>span:last-child:after{display:block;content:"";width:min(55%,9em);height:clamp(8px,1.1vw,18px);margin-top:.08em;background:var(--v32-lime);box-shadow:none}
.v32 .hero-3d .hero-lead{max-width:38em;color:#232a24;font-size:clamp(1rem,1.2vw,1.22rem);font-weight:650;line-height:1.9;text-shadow:0 1px 5px #fff}
.v32 .hero-3d .hero-support{grid-template-columns:minmax(0,1fr) auto}
.v32 .hero-3d .hero-actions .pill-button{min-width:310px;background:var(--v32-ink);color:white}
.v32 .hero-3d .hero-actions .pill-button:hover{background:#333b32;color:var(--v32-lime)}
.v32 .hero-3d .hero-actions .button-arrow{background:var(--v32-lime);color:var(--v32-ink)}
.v32 .hero-3d .hero-actions .hero-text-link{color:var(--v32-ink);border-color:#454c45;font-weight:700}
.v32 .hero-3d .hero-3d-foot{color:#263026}
.v32 .hero-3d .hero-3d-foot>a{color:#263026;font-weight:700}
.v32 .hero-3d .hero-3d-foot a span{color:inherit}
.v32 .hero-3d:before{opacity:.12}
.v32 .hero-3d .city-poster{filter:grayscale(.25) contrast(1.06)}
.v32 .model-loading .city-poster,.v32 .model-ready:not(.model-geo-ready) .city-poster{opacity:1;visibility:visible}
.v32 .model-geo-ready .city-poster{opacity:0;visibility:hidden}
.v32-mobile-break{display:none}

.v32 .works-section{background:#f8faf5}
.v32 .works-section .section-heading{align-items:end}
.v32 .works-section .section-heading h2{font-size:clamp(3.5rem,7.3vw,8rem);line-height:1;letter-spacing:-.075em}
.v32 .works-section .portfolio-card{background:white}
.v32 .works-section .portfolio-caption h3{font-weight:750}
.v32 .works-section .section-heading>p,.v32 .portfolio-description,.v32 .philosophy-content>p:not(.overline),.v32 .scene-copy>p:last-child,.v32 .reason-list p,.v32 .process-steps p,.v32.inner-page .contact-aside>p{font-size:1rem;line-height:1.9}
.v32 .works-section .portfolio-card-link:focus-visible{outline:3px solid #202b19;outline-offset:5px}

.v32 .services{background:#fff}
.v32 .services>.section-heading{border-bottom:1px solid var(--v32-rule);padding-bottom:40px;margin-bottom:0}
.v32 .services>.section-heading h2{font-size:clamp(3.2rem,6.5vw,7.5rem);line-height:1.09;letter-spacing:-.07em}
.v32 .services>.section-heading h2 span{color:#759a16}
.v32 .services>.section-heading>p{font-size:1.06rem;line-height:1.8}
.v32-service-stack{width:100%}
.v32-eyebrow{font-family:Inter,"Noto Sans JP",sans-serif;font-size:.82rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
.v32-service-main{display:grid;grid-template-columns:1fr .94fr;min-height:590px;color:white;background:#1b211c;text-decoration:none;overflow:hidden}
.v32-service-main-copy{padding:clamp(34px,5vw,84px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.v32-service-main .v32-eyebrow{color:var(--v32-lime);margin-bottom:30px}
.v32-service-type{display:inline-block;font-size:1rem;font-weight:700;border-bottom:1px solid var(--v32-lime);padding-bottom:10px}
.v32-service-main h3{font-size:clamp(2.6rem,5vw,6.4rem);font-weight:760;letter-spacing:-.075em;line-height:1.15;margin:42px 0 28px}
.v32-service-main-copy>p:not(.v32-eyebrow){max-width:35em;font-size:1.05rem;line-height:1.95;color:#e1e7de}
.v32-link{display:inline-flex;gap:28px;align-items:center;border-bottom:1px solid var(--v32-lime);padding:18px 0 13px;margin-top:32px;font-weight:750;color:white}
.v32-link b{color:var(--v32-lime);font-size:1.3rem}
.v32-service-main-visual{position:relative;background:var(--v32-lime);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:9%}
.v32-service-main-visual:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,#1620140c 0,#1620140c 1px,transparent 1px,transparent 35px),repeating-linear-gradient(90deg,#1620140c 0,#1620140c 1px,transparent 1px,transparent 35px)}
.v32-service-main-visual>span{position:absolute;top:28px;left:32px;z-index:2;color:#192117;font-size:.76rem;line-height:1.6;font-weight:800;letter-spacing:.1em}
.v32-service-main-visual img{position:relative;z-index:1;width:100%;max-width:730px;max-height:470px;object-fit:cover;box-shadow:32px 34px 0 #1b211c;transform:rotate(-3deg);transition:transform .45s ease}
.v32-service-main:hover .v32-service-main-visual img{transform:rotate(-1deg) scale(1.025)}
.v32-service-next-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:54px 0 24px}
.v32-service-next-heading .v32-eyebrow{color:#657548}
.v32-service-next-heading>p:last-child{font-size:1rem;line-height:1.7;color:#596158}
.v32-service-next{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.v32-service-next>a{position:relative;min-height:360px;padding:clamp(28px,4vw,58px);background:#edf3e7;color:var(--v32-ink);text-decoration:none;display:flex;flex-direction:column;border:1px solid #dce5d2;transition:background .2s ease,transform .2s ease}
.v32-service-next>a:last-child{background:#e9eeed;border-color:#dbe3e1}
.v32-service-next>a:hover{background:var(--v32-lime);transform:translateY(-4px)}
.v32-next-no{font-size:.78rem;font-weight:800;letter-spacing:.12em;color:#546e31}
.v32-service-next strong{font-size:clamp(2rem,3.5vw,4.5rem);letter-spacing:-.07em;line-height:1.18;margin:30px 0 auto}
.v32-service-next>a>span:nth-last-of-type(1){font-size:1rem;margin-top:32px;font-weight:600}
.v32-service-next>a>b{position:absolute;right:30px;bottom:25px;font-size:1.55rem}
.v32-service-main:focus-visible,.v32-service-next>a:focus-visible{outline:3px solid #1f291d;outline-offset:5px}
.v32 .services .section-end-link{margin-top:34px}

.v32 .inner-page .page-hero,.v32.inner-page .page-hero{padding-bottom:clamp(48px,5vw,90px)}
.v32.inner-page .page-intro p{font-size:clamp(1rem,1.16vw,1.15rem);line-height:1.9}
.v32.inner-page .editorial-content>p,.v32.inner-page .capability-grid p,.v32.inner-page .work-process p{font-size:1rem;line-height:1.9}
.v32.inner-page .page-body .editorial-row{padding-top:clamp(52px,5vw,84px);padding-bottom:clamp(52px,5vw,84px)}
.v32.inner-page .page-cta strong{font-size:clamp(1.8rem,3.8vw,4rem);line-height:1.25}
.v32.inner-page .v32-service-stack{margin-bottom:48px}
.v32-proof-band{display:grid;grid-template-columns:.82fr 1fr;gap:6%;align-items:center;padding:clamp(50px,7vw,120px) var(--gutter);background:#1b211c;color:white;overflow:hidden}
.v32-proof-band .v32-eyebrow{color:var(--v32-lime)}
.v32-proof-band h2{font-size:clamp(2.3rem,4vw,5rem);line-height:1.25;letter-spacing:-.07em;margin:24px 0}
.v32-proof-band p:not(.v32-eyebrow){font-size:1.05rem;line-height:1.9;color:#dbe2da}
.v32-proof-band a{display:inline-block;color:white;font-weight:700;border-bottom:1px solid var(--v32-lime);padding:20px 0 10px;text-decoration:none}
.v32-proof-band img{width:100%;max-height:470px;object-fit:cover;box-shadow:24px 24px 0 var(--v32-lime);transform:rotate(2deg)}
.v32-next-band{padding:65px 0;border-block:1px solid var(--v32-rule)}
.v32-next-band h2{font-size:clamp(2rem,4vw,4.5rem);letter-spacing:-.06em;margin:20px 0 38px}
.v32-next-band>div{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.v32-next-band a{display:block;padding:27px;background:var(--v32-soft);font-size:1rem;color:var(--v32-ink);font-weight:700;text-decoration:none}
.v32-next-band a:hover{background:var(--v32-lime)}

@media(max-width:1050px){
  .v32 .hero-3d:after{background:linear-gradient(180deg,#fff 0%,#fffd 35%,#fff8 55%,transparent 75%,#fffe)}
  .v32 .hero-3d .hero-support{grid-template-columns:1fr}
  .v32 .hero-3d .hero-actions{justify-content:flex-start}
  .v32 .hero-3d h1{font-size:clamp(3.2rem,8.5vw,6.5rem)}
  .v32-service-main{min-height:0}
  .v32-service-main h3{font-size:clamp(2.8rem,5vw,4.6rem)}
}
@media(max-width:700px){
  .v32 .hero-3d{min-height:850px;padding-top:105px}
  .v32 .hero-3d .hero-place{font-size:.78rem;margin-bottom:17px}
  .v32 .hero-3d h1{font-size:clamp(2.65rem,10.8vw,4.7rem);line-height:1.15;max-width:100%;text-wrap:pretty}
  .v32 .hero-3d h1>span{overflow-wrap:anywhere}
  .v32-mobile-break{display:inline}
  .v32 .hero-3d h1>span:last-child:after{height:9px;margin-top:.16em}
  .v32 .hero-3d .hero-lead{font-size:1rem;line-height:1.75}
  .v32 .hero-3d .hero-scene{flex:0 0 220px}
  .v32 .hero-3d .hero-actions{gap:12px}
  .v32 .hero-3d .hero-support{background:#1b211c;padding:20px;margin-top:8px}
  .v32 .hero-3d .hero-lead{color:#fff;text-shadow:none}
  .v32 .hero-3d .hero-actions .pill-button{background:var(--v32-lime);color:#1b211c}
  .v32 .hero-3d .hero-actions .button-arrow{background:#1b211c;color:#fff}
  .v32 .hero-3d .hero-actions .hero-text-link{color:#fff;border-color:#fff9}
  .v32 .hero-3d .hero-actions .pill-button{width:100%;min-width:0;white-space:normal}
  .v32 .hero-3d .hero-actions .hero-text-link{display:inline-flex}
  .v32 .hero-3d .hero-3d-foot{margin-top:20px}
  .v32 .hero-3d .model-lab{top:0}
  .v32 .works-section .section-heading h2{font-size:clamp(2.9rem,13vw,5rem)}
  .v32 .services>.section-heading h2{font-size:clamp(2.7rem,10vw,5rem)}
  .v32-service-main{grid-template-columns:1fr}
  .v32-service-main-copy{padding:34px 24px 42px}
  .v32-service-main h3{font-size:clamp(2.6rem,11vw,4.5rem);margin:28px 0 20px}
  .v32-service-main-visual{min-height:320px;padding:13%}
  .v32-service-main-visual img{box-shadow:15px 16px 0 #1b211c}
  .v32-service-next-heading{display:block;padding:40px 0 22px}
  .v32-service-next-heading>p:last-child{margin-top:15px}
  .v32-service-next{grid-template-columns:1fr}
  .v32-service-next>a{min-height:320px}
  .v32-service-next strong{font-size:clamp(2.5rem,10vw,4rem)}
  .v32-proof-band{grid-template-columns:1fr;padding:60px 24px 76px;gap:35px}
  .v32-proof-band img{box-shadow:15px 16px 0 var(--v32-lime)}
  .v32-next-band>div{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .v32-service-main-visual img,.v32-service-next>a{transition:none}
}
