/* Haru — ideas into something real. */
:root{--paper:#f7f7f2;--ink:#222a25;--muted:#626a62;--orange:#d94725;--line:#d8dcd2;--font-ja:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;--font-en:"Outfit",sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.9 var(--font-ja);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}h1,h2,h3,p,dl,dd,ul{margin:0}ul{padding:0;list-style:none}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--orange);outline-offset:6px}.container{width:min(1320px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;top:-100px;left:20px;z-index:200;padding:12px 20px;color:white;background:var(--ink)}.skip-link:focus{top:12px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(247,247,242,.96)}.site-header__inner{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.site-header__brand{display:flex;align-items:center;gap:20px}.site-header__logo,.site-footer__logo{font:600 3.3rem/1 var(--font-en);letter-spacing:-.07em}.site-header__logo span{color:var(--orange)}.site-header__name{font-size:.75rem;font-weight:500;letter-spacing:.08em}.site-header__nav{display:flex;align-items:center;gap:32px;font-size:.8rem;font-weight:700}.site-header__nav a{padding-block:12px}.site-header__nav a:hover{color:var(--orange)}.site-header__nav .site-header__cta{padding:10px 22px;border:1px solid var(--ink);border-radius:30px}.site-header__cta:hover{background:var(--ink);color:var(--paper)!important}
.hero{overflow:hidden}.hero__inner{display:grid;grid-template-columns:1fr 1.1fr;align-items:center;padding-top:48px;column-gap:12px}.hero__msg{position:relative;z-index:2;padding:35px 0 48px}.hero__label{font:500 .72rem/1.5 var(--font-en);letter-spacing:.16em;color:var(--orange);margin-bottom:32px;display:flex;align-items:center;gap:12px}.hero__label::before{content:"";width:7px;height:7px;background:var(--orange);border-radius:50%}.hero__title{font-size:clamp(2.5rem,4.6vw,4.5rem);font-weight:900;letter-spacing:-.045em;line-height:1.48;white-space:nowrap}.hero__title-mark{color:var(--orange)}.hero__lead{font-size:.94rem;line-height:2.1;letter-spacing:.025em;margin-top:26px;color:var(--muted)}.hero__link{display:inline-flex;gap:34px;align-items:center;font-weight:700;font-size:.85rem;margin-top:32px}.hero__link span{display:grid;place-items:center;width:40px;height:40px;background:var(--ink);color:var(--paper);border-radius:50%;font-size:1.2rem;transition:transform .2s}.hero__link:hover span{transform:rotate(45deg);background:var(--orange)}.hero__visual{width:118%;max-width:none;margin-left:-8%;perspective:1000px;touch-action:pan-y}.paper-stage__scene{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s cubic-bezier(.2,.8,.2,1)}.paper-stage__art{width:100%;mix-blend-mode:multiply}.hero__foot{grid-column:1/-1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.hero__signature{font:.68rem/1.5 var(--font-en);letter-spacing:.12em;color:var(--muted)}.scroll-link{font:.65rem/1.5 var(--font-en);letter-spacing:.12em;display:flex;align-items:center;gap:20px;min-height:44px}.scroll-link span{font-size:1.1rem}.motion-toggle{justify-self:end;cursor:pointer;border:0;background:none;font-size:.7rem;color:var(--muted);min-height:44px;padding:8px}.motion-toggle span{padding-left:8px}
.section{padding:110px 0}.section__heading{margin-bottom:52px}.section__heading-en{color:var(--orange);font:.78rem/1.6 var(--font-en);letter-spacing:.1em;margin-bottom:18px}.section__heading-ja{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:700;letter-spacing:-.02em}.business .section__heading{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.business .section__heading-en{grid-column:1/-1}.section__intro{justify-self:end;color:var(--muted);font-size:.94rem;align-self:center}.business__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.business__card{border-top:1px solid var(--line);padding-top:22px}.business__number{display:flex;justify-content:space-between;align-items:center;font:1.15rem/1.5 var(--font-en);color:var(--orange);margin-bottom:38px}.business__number span{font:.62rem/1.5 var(--font-en);letter-spacing:.08em;color:var(--muted)}.business__card-body .business__verb{font-size:clamp(1.05rem,1.55vw,1.5rem);font-weight:700;letter-spacing:-.025em;color:var(--ink);line-height:1.6;margin-bottom:20px}.business__card h3{font-size:.8rem;line-height:1.8;font-weight:700;margin-bottom:12px}.business__card-body p{font-size:.9rem;line-height:2;color:var(--muted)}.business__card-note{display:block;font-size:.7rem;margin-top:16px}
.company{background:#eaece4}.company>.container{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}.company__row{display:grid;grid-template-columns:90px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid #cbd0c5}.company__row:first-child{padding-top:0}.company__row dt{font-size:.8rem;font-weight:500}.company__row dd{font-size:.94rem}.contact{padding:104px 0;background:var(--ink);color:var(--paper)}.contact__inner{text-align:center}.contact .section__heading-en{color:#e5a18c}.contact__title{font-size:clamp(1.8rem,3.6vw,3.3rem);font-weight:700;letter-spacing:-.025em;margin-top:20px}.contact__lead{color:#c4cbc1;font-size:.94rem;margin-top:22px}.btn{display:inline-flex;gap:40px;align-items:center;justify-content:center;padding:18px 34px;font-size:.9rem;border:1px solid currentColor;border-radius:40px;transition:background .2s,color .2s}.btn--invert{margin-top:32px;background:var(--paper);color:var(--ink);border-color:var(--paper)}.btn--invert::after{content:"↗";font-size:1.2rem}.btn:hover{background:var(--orange);color:white;border-color:var(--orange)}.contact__notice{font-size:.7rem;color:#c4cbc1;margin-top:14px}.site-footer__inner{display:flex;align-items:center;gap:32px;padding:34px 0}.site-footer__brand{display:flex;align-items:center;gap:16px}.site-footer__logo{font-size:2.3rem}.site-footer__name{font-size:.7rem}.site-footer__nav{display:flex;gap:24px;margin-left:auto;font-size:.75rem}.site-footer__nav a:hover{color:var(--orange)}.site-footer__copyright{font:.65rem/1.5 var(--font-en);color:var(--muted)}.section--tinted{background:#eaece4}.service__card{max-width:760px}.service__badge{color:var(--orange);font-size:.875rem;margin-bottom:14px}.service__name{font-size:1.7rem;margin-bottom:20px}.service__desc{margin-bottom:24px}
@media(min-width:1500px){.hero__inner{padding-top:65px}.hero__msg{padding-bottom:70px}}
@media(max-width:1000px){.container{width:calc(100% - 64px)}.site-header__name{display:none}.hero__title{font-size:clamp(2.5rem,5vw,3.3rem)}.hero__lead{font-size:.85rem}.hero__visual{width:125%;margin-left:-12%}.business__grid{gap:24px}.business__number{display:block}.business__number span{display:block;margin-top:8px}.company>.container{gap:40px}.site-footer__inner{flex-wrap:wrap}.site-footer__copyright{flex-basis:100%}}
@media(max-width:700px){html{scroll-padding-top:80px}.container{width:calc(100% - 40px)}.site-header__inner{min-height:78px;gap:14px}.site-header__logo{font-size:2.6rem}.site-header__nav{gap:16px;font-size:.68rem}.site-header__nav .site-header__cta{padding:8px 12px}.hero__inner{grid-template-columns:1fr;padding-top:28px}.hero__msg{padding:12px 0 0}.hero__label{font-size:.63rem;margin-bottom:22px}.hero__title{font-size:clamp(2.4rem,9.4vw,4rem);line-height:1.45}.hero__lead{font-size:.85rem;margin-top:22px}.hero__link{margin-top:23px}.hero__visual{width:112%;margin:0 -6%;max-width:none}.hero__foot{grid-template-columns:1fr auto;padding:14px 0;gap:4px 10px}.hero__signature{grid-column:1/-1;font-size:.6rem}.scroll-link{font-size:.6rem}.section{padding:68px 0}.section__heading{margin-bottom:34px}.business .section__heading{display:block}.section__intro{margin-top:20px;font-size:.875rem}.business__grid{grid-template-columns:1fr;gap:36px}.business__number{display:flex;margin-bottom:22px}.business__number span{margin:0}.business__card-body .business__verb{font-size:1.4rem;margin-bottom:16px}.business__card h3{font-size:.85rem}.company>.container{display:block}.company__row{grid-template-columns:66px 1fr;gap:16px}.company__row dd{overflow-wrap:anywhere;font-size:.875rem}.contact{padding:72px 0}.contact__title{font-size:clamp(1.5rem,6.2vw,2.5rem)}.contact__lead{font-size:.85rem}.site-footer__inner{gap:24px}.site-footer__nav{margin-left:0;flex-basis:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.paper-stage__scene{transform:none!important}}

/* Graphic direction: expressive live typography, acid yellow and violet. */
:root{--paper:#f5f4f0;--ink:#19191b;--muted:#606063;--orange:#5140cb;--line:#cdccc8}
.site-header{background:rgba(245,244,240,.97)}
.site-header__inner{min-height:90px}.site-header__logo span{color:var(--ink)}
.site-header__nav .site-header__cta{border-radius:0;background:var(--ink);color:var(--paper);padding:10px 24px}
.site-header__nav .site-header__cta:hover{background:#5140cb}
.hero__inner{display:grid;grid-template-columns:1fr;padding-top:0;gap:0}
.hero__msg{display:grid;grid-template-columns:1.25fr 1fr;column-gap:64px;padding:40px 0 36px;align-items:center}
.hero__label{grid-column:1/-1;margin-bottom:25px;font-size:.65rem;color:var(--ink);letter-spacing:.12em}.hero__label::before{border-radius:0;background:var(--ink)}
.hero__title{grid-column:1;grid-row:2/4;font-size:clamp(3rem,5.1vw,5rem);line-height:1.23;letter-spacing:-.055em}.hero__title-mark{color:var(--ink)}
.hero__lead{grid-column:2;margin:0;font-size:.92rem;line-height:2;align-self:end}
.hero__link{grid-column:2;align-self:start;justify-self:start;margin-top:20px;font-size:.8rem;gap:24px}.hero__link span{width:32px;height:32px}
.graphic-stage{background:#dfff00;padding:19px 24px 14px;overflow:hidden;color:var(--ink)}
.graphic-stage__meta{display:flex;justify-content:space-between;font:500 .62rem/1.5 var(--font-en);letter-spacing:.1em}
.letter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;padding:22px 0 12px;isolation:isolate}
.letter{display:flex;justify-content:center;align-items:center;height:clamp(190px,22vw,315px);font:600 clamp(240px,30vw,420px)/.65 var(--font-en);letter-spacing:-.09em;padding-right:.09em;transform-origin:50% 70%;animation:typeset 9s cubic-bezier(.7,0,.2,1) infinite both;will-change:transform;position:relative}
.letter--h{--from-x:-15%;--from-y:5%;--turn:-12deg;--delay:0s}
.letter--a{background:#b5a4fa;--from-x:0%;--from-y:-10%;--turn:10deg;--delay:.13s;z-index:2}
.letter--r{--from-x:7%;--from-y:10%;--turn:-12deg;--delay:.26s}
.letter--u{--from-x:12%;--from-y:-3%;--turn:9deg;--delay:.39s}
.letter{animation-delay:var(--delay)}.letter__dot{position:absolute;right:-.025em;bottom:.07em;font-size:.65em}
.graphic-stage__caption{display:grid;grid-template-columns:repeat(4,1fr);font:500 .64rem/1.5 var(--font-en);letter-spacing:.12em;border-top:1px solid #19191b;padding-top:14px;margin-top:14px}.graphic-stage__edition{text-align:right}
.hero__foot{border-top:0;padding:9px 0}.hero__signature,.scroll-link{font-size:.6rem}.motion-toggle{font-size:.67rem}
@keyframes typeset{0%,10%,90%,100%{transform:translate(0,0) rotate(0)}35%,55%{transform:translate(var(--from-x),var(--from-y)) rotate(var(--turn))}70%,82%{transform:translate(0,0) rotate(0)}}
.motion-paused .letter{animation-play-state:paused}
.section{padding:90px 0}.section__heading-en{font-weight:500;color:#5140cb}.section__heading-ja{font-weight:900}
.business__grid{gap:0;border:1px solid var(--ink)}.business__card{border:0;padding:27px 28px 34px}.business__card+.business__card{border-left:1px solid var(--ink)}.business__card:nth-child(2){background:#dfd7fb}.business__number{color:var(--ink);margin-bottom:52px}.business__card-body .business__verb{font-size:clamp(1rem,1.5vw,1.4rem)}
.company{background:#e8e7e3}.company__row{border-color:#c9c8c3}
.contact{background:#b5a4fa;color:var(--ink)}.contact .section__heading-en,.contact__lead,.contact__notice{color:var(--ink)}.contact__title{font-weight:900}.btn--invert{border-radius:0;background:var(--ink);border-color:var(--ink);color:var(--paper)}
.site-footer__logo{font-size:3rem}.site-footer__inner{padding:40px 0}
@media(min-width:1500px){.hero__inner{padding-top:0}.hero__msg{padding:45px 0}}
@media(max-width:1000px){.hero__msg{column-gap:32px}.hero__title{font-size:clamp(2.7rem,5.5vw,4rem)}.hero__lead{font-size:.8rem}.business__card{padding:22px 20px 28px}.business__number{margin-bottom:30px}}
@media(max-width:700px){.site-header__inner{min-height:76px}.site-header__nav .site-header__cta{padding:8px 10px}.hero__msg{display:block;padding:28px 0}.hero__label{font-size:.56rem;margin-bottom:24px}.hero__title{font-size:clamp(2.8rem,11.5vw,4.5rem);line-height:1.25}.hero__lead{margin-top:24px;font-size:.84rem}.hero__link{margin-top:20px}.graphic-stage{padding:14px 12px 12px}.graphic-stage__meta{font-size:.45rem;letter-spacing:.025em}.letter-grid{padding:25px 0 16px}.letter{height:clamp(95px,26vw,180px);font-size:clamp(122px,33vw,230px)}.graphic-stage__caption{font-size:.45rem;letter-spacing:.05em;margin-top:9px;padding-top:10px}.hero__foot{padding:12px 0}.hero__signature{font-size:.55rem}.business__card{padding:24px}.business__card+.business__card{border-left:0;border-top:1px solid var(--ink)}.business__grid{gap:0}.business__number{margin-bottom:26px}.business__card-body .business__verb{font-size:1.3rem}.section{padding:65px 0}.contact{padding:70px 0}.contact__title{font-size:clamp(1.5rem,6.2vw,2.5rem)}}
@media(prefers-reduced-motion:reduce){.letter{animation:none!important;transform:none!important;will-change:auto}}
