.hero{position:relative;height:100vh;height:100svh;min-height:640px;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--ink);overflow:hidden}.hero-ambient{position:absolute;inset:0;pointer-events:none;overflow:hidden}.hero-ambient .orb{position:absolute;border-radius:50%;filter:blur(120px);opacity:0;animation:orbIn 2s var(--ease-out) forwards}.orb-1{width:500px;height:500px;background:#1a5cd61f;top:-10%;right:-5%;animation-delay:.5s!important}.orb-2{width:400px;height:400px;background:#1a5cd60f;bottom:-15%;left:-8%;animation-delay:.8s!important}@keyframes orbIn{to{opacity:1}}.hero-content{position:relative;z-index:2;max-width:900px;padding:0 24px}.hero-title{font-family:var(--body-jp);font-size:clamp(28px,4.8vw,52px);font-weight:700;letter-spacing:.08em;line-height:1.5;color:var(--white);margin-bottom:12px;opacity:0;transform:translateY(20px);animation:fadeUp .9s var(--ease-out) .15s forwards}.hero-sub{font-size:clamp(13px,1.4vw,15px);font-weight:300;line-height:2;color:#ffffff61;max-width:520px;margin:0 auto 48px;opacity:0;transform:translateY(16px);animation:fadeUp .8s var(--ease-out) .5s forwards}.hero-cta{opacity:0;transform:translateY(16px);animation:fadeUp .8s var(--ease-out) .7s forwards}.btn-main{display:inline-flex;align-items:center;gap:10px;font-family:var(--body-jp);font-size:13.5px;font-weight:500;letter-spacing:.06em;color:var(--ink);background:var(--white);padding:16px 40px;border-radius:4px;transition:all .4s var(--ease-out);position:relative;overflow:hidden}.btn-main:before{content:"";position:absolute;inset:0;background:var(--accent);transform:translateY(101%);transition:transform .45s var(--ease-out)}.btn-main:hover:before{transform:translateY(0)}.btn-main:hover{color:var(--white)}.btn-main span,.btn-main svg{position:relative;z-index:1}.btn-main svg{width:14px;height:14px;transition:transform .3s}.btn-main:hover svg{transform:translate(3px)}.hero-scroll-indicator{position:absolute;bottom:32px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0;animation:fadeUp .6s var(--ease-out) 1.2s forwards}.hero-scroll-indicator span{font-family:var(--body-en);font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:#fff3}.scroll-dot{width:1px;height:36px;position:relative;overflow:hidden;background:#ffffff0f}.scroll-dot:after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:#fff6;animation:scrollTrail 2s ease-in-out infinite}@keyframes scrollTrail{0%{top:-100%}50%{top:100%}to{top:100%}}.section-pad{padding:clamp(80px,14vw,160px) clamp(20px,5vw,72px)}.container{max-width:1440px;margin:0 auto}.reveal{opacity:0;transform:translateY(56px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.35s}.section-eyebrow{font-family:var(--body-en);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}.section-heading-jp{font-size:clamp(22px,2.6vw,34px);font-weight:600;line-height:1.5;letter-spacing:.04em;color:var(--ink)}.section-heading-en{font-family:var(--heading);font-size:clamp(36px,5.5vw,64px);font-weight:700;letter-spacing:-.01em;color:var(--ink);line-height:1}.strengths{background:var(--cream)}.strengths-top{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:clamp(56px,7vw,96px)}.strengths-intro{font-size:14px;font-weight:300;line-height:2.1;color:var(--mid);max-width:440px;flex-shrink:0}.str-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}.str-card{background:var(--white);padding:clamp(36px,4vw,56px) clamp(28px,3vw,44px);position:relative;transition:background .5s var(--ease-out)}.str-card:hover{background:var(--cream)}.str-card:after{content:"";position:absolute;bottom:0;left:clamp(28px,3vw,44px);right:clamp(28px,3vw,44px);height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}.str-card:hover:after{transform:scaleX(1)}.str-num{font-family:var(--heading);font-size:11px;font-weight:600;letter-spacing:.15em;color:var(--accent);margin-bottom:32px}.str-title{font-size:18px;font-weight:600;color:var(--ink);margin-bottom:16px;letter-spacing:.03em;line-height:1.6}.str-desc{font-size:13.5px;font-weight:300;line-height:2.1;color:var(--mid)}.works{background:var(--warm)}.works-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(48px,6vw,80px)}.view-all{font-family:var(--body-en);font-size:12px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--mute);display:flex;align-items:center;gap:10px;transition:color .3s;padding-bottom:6px;border-bottom:1px solid var(--line)}.view-all:hover{color:var(--ink);border-bottom-color:var(--ink)}.view-all svg{width:14px;height:14px;transition:transform .3s}.view-all:hover svg{transform:translate(4px)}.works-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(20px,3vw,36px)}.works-grid .work-item:nth-child(2){margin-top:clamp(40px,6vw,80px)}.work-item{cursor:pointer}.work-link{display:block}.work-img-wrap{position:relative;overflow:hidden;border-radius:6px;aspect-ratio:3/2;background:var(--bone)}.work-img-wrap .img-reveal{position:absolute;inset:0;background:var(--warm);z-index:2;transform-origin:right;transition:transform .9s var(--ease-smooth)}.work-item.is-visible .img-reveal{transform:scaleX(0)}.work-img-wrap .placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--bone) 0%,#d8d5cf 100%);display:flex;align-items:center;justify-content:center;color:var(--subtle);font-family:var(--body-en);font-size:12px;letter-spacing:.1em;text-transform:uppercase;transition:transform .6s var(--ease-out)}.work-item:hover .placeholder{transform:scale(1.04)}.work-thumb{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}.work-item:hover .work-thumb{transform:scale(1.04)}.work-meta{padding-top:20px}.work-cat{font-family:var(--body-en);font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.work-name{font-size:16px;font-weight:500;color:var(--ink);letter-spacing:.02em;line-height:1.6;margin-bottom:8px}.work-tags{display:flex;gap:12px}.work-tag{font-family:var(--body-en);font-size:10.5px;font-weight:400;color:var(--mute);letter-spacing:.04em}.works-row-2{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(20px,3vw,36px);margin-top:clamp(20px,3vw,36px)}.works-row-2 .work-item:nth-child(1){margin-top:0}.works-row-2 .work-item:nth-child(2){margin-top:clamp(-20px,-3vw,-40px)}.service{background:var(--white)}.service-top{margin-bottom:clamp(56px,7vw,96px)}.service-list{display:flex;flex-direction:column}.svc-row{display:grid;grid-template-columns:80px 1fr;gap:clamp(24px,4vw,56px);align-items:baseline;padding:clamp(32px,4vw,48px) 0;border-top:1px solid var(--line);position:relative;transition:background .4s}.svc-row:last-child{border-bottom:1px solid var(--line)}.svc-row:hover{background:var(--cream);padding-left:24px;padding-right:24px;margin-left:-24px;margin-right:-24px}.svc-idx{font-family:var(--heading);font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--subtle);padding-top:4px;transition:color .3s}.svc-row:hover .svc-idx{color:var(--accent)}.svc-name{font-size:20px;font-weight:600;color:var(--ink);margin-bottom:12px;letter-spacing:.03em;line-height:1.5}.svc-desc{font-size:13.5px;font-weight:300;line-height:2;color:var(--mid);max-width:520px}.about{background:var(--cream)}.about-layout{display:grid;grid-template-columns:.7fr 1fr;gap:clamp(48px,8vw,128px);align-items:center}.about-photo-wrap{position:relative}.about-photo{width:100%;max-width:360px;aspect-ratio:4/5;border-radius:6px;overflow:hidden;position:relative;background:var(--bone)}.about-photo .placeholder-person{width:100%;height:100%;background:linear-gradient(170deg,var(--bone),#ccc9c2);display:flex;align-items:center;justify-content:center}.about-photo .placeholder-person svg{width:56px;height:56px;color:var(--subtle);opacity:.5}.about-photo-frame{position:absolute;top:-16px;left:-16px;width:calc(100% + 32px);max-width:392px;aspect-ratio:4/5;border:1px solid var(--line);border-radius:8px;z-index:-1;transition:transform .6s var(--ease-out)}.about-photo-wrap:hover .about-photo-frame{transform:translate(-4px,-4px)}.about-name-en{font-family:var(--body-en);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}.about-name{font-size:28px;font-weight:600;color:var(--ink);letter-spacing:.06em;margin-bottom:6px}.about-role{font-size:13px;color:var(--accent);font-weight:400;margin-bottom:32px;letter-spacing:.02em}.about-text{font-size:14.5px;font-weight:300;line-height:2.2;color:var(--mid);margin-bottom:32px}.about-skills-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px}.skill-chip{font-family:var(--body-en);font-size:11px;font-weight:400;letter-spacing:.03em;padding:6px 14px;border-radius:3px;border:1px solid var(--line);color:var(--mid);background:var(--white);transition:all .3s}.skill-chip:hover{border-color:var(--accent);color:var(--accent)}.link-arrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:500;color:var(--ink);letter-spacing:.04em;transition:gap .3s var(--ease-out)}.link-arrow:hover{gap:16px}.link-arrow svg{width:14px;height:14px}@media(max-width:1024px){.strengths-top{flex-direction:column;align-items:flex-start;gap:20px}.str-grid,.works-grid,.works-row-2{grid-template-columns:1fr}.works-grid .work-item:nth-child(2),.works-row-2 .work-item:nth-child(2){margin-top:0}.about-layout{grid-template-columns:1fr;gap:48px}.about-photo{max-width:280px;margin:0 auto}.about-photo-frame{max-width:312px}}@media(max-width:768px){.hero{min-height:560px}.svc-row{grid-template-columns:1fr;gap:12px}.svc-idx{margin-bottom:0}.svc-row:hover{padding-left:0;padding-right:0;margin-left:0;margin-right:0}.works-top{flex-direction:column;align-items:flex-start;gap:16px}}
