:root{--bg: #ffffff;--bg-soft: #f3f4f7;--bg-mid: #e9ebf0;--ink: #0c1832;--ink-2: #4a556f;--ink-3: #7b849b;--ink-mute: #a8afc0;--violet: #4c39f5;--violet-deep: #2d1fbf;--violet-dark: #1c1392;--violet-light: #7c6fff;--violet-soft: #eeebff;--sky: #a7befe;--sky-mid: #7e9cee;--sky-light: #d2ddff;--sky-soft: #eef3ff;--line: rgba(12, 24, 50, .1);--line-2: rgba(12, 24, 50, .06);--font-jp: "Noto Sans JP", system-ui, sans-serif;--font-en: "Inter", system-ui, sans-serif;--font-serif: "Fraunces", Georgia, serif;--ease: cubic-bezier(.22, 1, .36, 1);--ease-expo: cubic-bezier(.19, 1, .22, 1)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-jp);background:var(--bg);color:var(--ink);line-height:1.7;font-weight:400;font-feature-settings:"palt";-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--violet);color:#fff}a{color:inherit;text-decoration:none}button{background:none;border:0;cursor:pointer;font:inherit;color:inherit}.container{width:100%;max-width:1440px;margin:0 auto;padding:0 clamp(20px,4vw,56px);position:relative}.nav{position:fixed;top:0;left:0;right:0;z-index:80;padding:20px 0;transition:padding .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease)}.nav.scrolled{padding:14px 0;background:#ffffffd9;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);box-shadow:0 1px 0 var(--line)}.nav-inner{max-width:1440px;margin:0 auto;padding:0 clamp(20px,4vw,56px);display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-en);font-weight:600;font-size:19px;color:var(--ink);letter-spacing:-.01em;transition:transform .4s var(--ease)}.logo:hover{transform:translate(-2px)}.logo-mark{width:32px;height:32px;flex-shrink:0}.nav-center{display:flex;gap:30px;align-items:center;font-size:14px;font-weight:500;color:var(--ink)}.nav-center a{position:relative;padding:6px 0}.nav-center a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}.nav-center a:hover:after{transform:scaleX(1);transform-origin:left}@media(max-width:900px){.nav-center{display:none}}.nav-right{display:flex;align-items:center;gap:10px}.pill{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-family:var(--font-en);font-size:14px;font-weight:500;letter-spacing:.01em;transition:all .3s var(--ease);white-space:nowrap}.pill-primary{background:var(--violet);color:#fff}.pill-primary:hover{background:var(--violet-deep);transform:translateY(-1px);box-shadow:0 10px 28px #4c39f552}.pill-ghost{background:var(--ink);color:#fff}.pill-ghost:hover{background:var(--violet)}.hero{min-height:100vh;max-width:1440px;margin:0 auto;padding:140px clamp(20px,4vw,56px) 60px;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;overflow:hidden}@media(max-width:960px){.hero{grid-template-columns:1fr;padding:120px clamp(20px,4vw,56px) 40px;min-height:auto}}.hero-inner{position:relative;z-index:2}.hero-visual{position:relative;height:100%;min-height:480px}@media(max-width:960px){.hero-visual{min-height:360px;margin-right:-20px}}.hero-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-en);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:48px;padding:8px 16px;border-radius:999px;background:var(--bg-soft);opacity:0;animation:fadeUp .9s var(--ease) .2s forwards}.hero-kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--violet);box-shadow:0 0 10px #4c39f599;animation:blink 1.8s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.45}}.hero-title{font-size:clamp(40px,5.8vw,86px);line-height:1.12;letter-spacing:-.02em;font-weight:800;color:var(--ink);margin-bottom:36px}.hero-title .char{display:inline-block;opacity:0;transform:translateY(.7em);animation:charIn .85s var(--ease-expo) forwards;animation-delay:calc(var(--i, 0) * 35ms + .35s)}.hero-title .char.accent{color:var(--violet)}@keyframes charIn{to{opacity:1;transform:translateY(0)}}.hero-sub{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:clamp(16px,1.4vw,22px);color:var(--ink-2);margin-bottom:56px;max-width:34ch;line-height:1.5;opacity:0;animation:fadeUp .9s var(--ease) .85s forwards}.hero-sub em{font-style:italic;color:var(--violet)}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hero-meta{display:grid;grid-template-columns:repeat(3,auto);gap:clamp(20px,3vw,48px);padding-top:28px;border-top:1px solid var(--line);max-width:540px;opacity:0;animation:fadeUp .9s var(--ease) 1.1s forwards}.hero-meta-item{font-family:var(--font-en);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.hero-meta-item strong{display:block;font-family:var(--font-jp);font-weight:600;font-size:14px;color:var(--ink);margin-top:6px;letter-spacing:.01em;text-transform:none}@media(max-width:540px){.hero-meta{grid-template-columns:1fr 1fr;gap:20px}.hero-meta-item:nth-child(3){display:none}}.iso-illustration{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;animation:fadeUp 1.2s var(--ease) .5s forwards}.iso-illustration svg{width:100%;max-width:580px;height:auto;filter:drop-shadow(0 40px 60px rgba(12,24,50,.08));animation:floatSlow 12s ease-in-out infinite}@keyframes floatSlow{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(-.3deg)}}.scroll-cue{position:absolute;bottom:40px;left:clamp(20px,4vw,56px);display:flex;align-items:center;gap:16px;writing-mode:vertical-rl;font-family:var(--font-en);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);opacity:0;animation:fadeUp 1s var(--ease) 1.4s forwards}.scroll-cue .line{width:1px;height:48px;background:var(--line);position:relative;overflow:hidden}.scroll-cue .line:after{content:"";position:absolute;left:0;right:0;top:-50%;height:50%;background:var(--violet);animation:scrollLine 2.2s ease-in-out infinite}@keyframes scrollLine{0%{top:-50%}to{top:100%}}@media(max-width:960px){.scroll-cue{display:none}}.mission{position:relative;padding:clamp(120px,20vh,200px) 0;background:var(--bg);overflow:hidden}.mission-ribbon-l,.mission-ribbon-r{position:absolute;width:400px;height:280px;pointer-events:none;z-index:0}.mission-ribbon-l{top:-20px;left:-80px;transform:rotate(25deg)}.mission-ribbon-r{top:40px;right:-120px;transform:rotate(-30deg)}.mission-inner{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:0 clamp(20px,4vw,56px);text-align:center}.mission-label{font-family:var(--font-en);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--violet);margin-bottom:32px}.mission-text{font-size:clamp(24px,3.4vw,44px);font-weight:700;line-height:1.6;letter-spacing:-.005em;color:var(--ink);max-width:32ch;margin:0 auto 48px}.mission-text .char{display:inline-block;opacity:.18;transition:opacity .7s var(--ease),color .7s var(--ease);transition-delay:calc(var(--i, 0) * 22ms)}.mission-text.in-view .char{opacity:1}.mission-text.in-view .char.accent{color:var(--violet)}.mission-btn{display:inline-flex;align-items:center;gap:14px;font-size:14px;font-weight:500;color:var(--ink);padding:8px 0}.mission-btn .circle{width:56px;height:56px;border-radius:50%;border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;transition:all .4s var(--ease)}.mission-btn:hover .circle{background:var(--violet);border-color:var(--violet)}.mission-btn:hover .circle svg{stroke:#fff}.mission-btn .circle svg{width:20px;height:20px;stroke:var(--violet);fill:none;stroke-width:1.6;transition:all .4s var(--ease)}.what{padding:clamp(100px,16vh,160px) 0;background:var(--bg-soft);position:relative;overflow:hidden}.what-head{display:flex;align-items:baseline;justify-content:space-between;gap:40px;margin-bottom:60px;padding-bottom:28px;border-bottom:1px solid var(--line);flex-wrap:wrap}.section-title-en{font-family:var(--font-en);font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.section-title-en .num{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--violet);font-size:18px;margin-right:12px;vertical-align:baseline}.section-meta{font-family:var(--font-en);font-size:12px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}.what-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,6vw,100px);align-items:center}@media(max-width:900px){.what-grid{grid-template-columns:1fr}}.what-text{font-size:clamp(28px,4vw,56px);font-weight:700;line-height:1.35;letter-spacing:-.02em;max-width:16ch}.what-text em{font-family:var(--font-serif);font-weight:400;font-style:italic;color:var(--violet)}.what-illustration{position:relative;width:100%;aspect-ratio:1 / 1;max-width:520px;margin:0 auto}.what-illustration svg{width:100%;height:100%}.what-sub{margin-top:48px;font-size:15px;line-height:1.9;color:var(--ink-2);max-width:48ch}.what-sub strong{color:var(--ink);font-weight:600}.services{padding:clamp(100px,14vh,140px) 0;background:var(--bg)}.services-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:72px;align-items:end;padding-bottom:32px;border-bottom:1px solid var(--line)}@media(max-width:820px){.services-head{grid-template-columns:1fr;gap:20px}}.services-head h2{font-size:clamp(36px,5.2vw,76px);font-weight:700;line-height:1.05;letter-spacing:-.03em}.services-head h2 em{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--violet)}.services-head p{font-size:15px;line-height:1.85;color:var(--ink-2);max-width:44ch}.services-list{display:flex;flex-direction:column}.service-row{display:grid;grid-template-columns:80px 1fr auto 60px;gap:clamp(16px,3vw,40px);align-items:center;padding:36px 8px;border-top:1px solid var(--line);position:relative;cursor:pointer;transition:padding .4s var(--ease)}.service-row:last-child{border-bottom:1px solid var(--line)}.service-row:before{content:"";position:absolute;left:-4vw;right:-4vw;top:0;bottom:0;background:var(--violet-soft);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease);z-index:-1}.service-row:hover:before{transform:scaleY(1);transform-origin:top}.service-row:hover{padding:44px 8px}.service-num{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(34px,4vw,56px);color:var(--violet);line-height:1;letter-spacing:-.02em}.service-title{font-size:clamp(22px,2.4vw,32px);font-weight:700;letter-spacing:-.015em;line-height:1.25;margin-bottom:6px}.service-desc{color:var(--ink-2);font-size:14px;line-height:1.75;max-width:56ch}.service-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:200px}.service-tag{font-family:var(--font-en);font-size:11px;font-weight:500;letter-spacing:.02em;padding:5px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);background:var(--bg)}.service-arrow{width:48px;height:48px;border-radius:50%;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;transition:all .4s var(--ease)}.service-arrow svg{width:18px;height:18px;stroke:var(--ink);fill:none;stroke-width:1.6;transition:transform .4s var(--ease)}.service-row:hover .service-arrow{background:var(--violet)}.service-row:hover .service-arrow svg{stroke:#fff;transform:translate(3px,-3px)}@media(max-width:720px){.service-row{grid-template-columns:56px 1fr 44px;grid-template-areas:"num body arrow";gap:16px;padding:28px 4px!important}.service-num{grid-area:num;font-size:28px}.service-body{grid-area:body;min-width:0}.service-arrow{grid-area:arrow;width:40px;height:40px}.service-arrow svg{width:14px;height:14px}.service-tags{display:none}}.profile{padding:clamp(100px,14vh,160px) 0;background:var(--bg-soft);position:relative;overflow:hidden}.profile-head{margin-bottom:72px;padding-bottom:28px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap}.profile-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(40px,6vw,90px);align-items:start}@media(max-width:860px){.profile-grid{grid-template-columns:1fr;gap:32px}}.profile-card{position:relative;aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:var(--bg-mid)}.profile-card svg{width:100%;height:100%;display:block}.profile-tag{position:absolute;bottom:18px;left:18px;right:18px;display:flex;justify-content:space-between;font-family:var(--font-en);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);z-index:2}.profile-body h2{font-size:clamp(44px,6.5vw,104px);font-weight:800;line-height:.95;letter-spacing:-.03em;margin-bottom:16px}.profile-body h2 em{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--violet)}.profile-romaji{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:clamp(18px,2vw,26px);color:var(--ink-2);margin-bottom:40px}.profile-body h3{font-size:clamp(20px,2.3vw,28px);font-weight:700;line-height:1.5;letter-spacing:-.01em;margin-bottom:24px;max-width:26ch}.profile-body h3 em{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--violet)}.profile-body p{font-size:15px;line-height:1.95;color:var(--ink-2);margin-bottom:20px;max-width:54ch}.profile-body p strong{color:var(--ink);font-weight:600}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:36px 0;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat-num{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(28px,3.5vw,44px);color:var(--violet);line-height:1;letter-spacing:-.02em}.stat-label{font-family:var(--font-en);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-top:10px}.profile-links{display:flex;gap:12px;flex-wrap:wrap}.linkedin{display:inline-flex;align-items:center;gap:12px;padding:14px 24px;border:1.5px solid var(--ink);border-radius:999px;font-family:var(--font-en);font-size:13px;font-weight:500;transition:all .3s var(--ease);color:var(--ink)}.linkedin:hover{background:var(--ink);color:#fff}.linkedin svg{width:14px;height:14px;fill:currentColor}.cta{padding:clamp(100px,16vh,180px) 0;background:var(--bg);position:relative;overflow:hidden}.cta-inner{text-align:center;position:relative;z-index:2}.cta-label{font-family:var(--font-en);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--violet);margin-bottom:24px}.cta-title{font-size:clamp(40px,7vw,108px);font-weight:800;line-height:1.05;letter-spacing:-.03em;margin-bottom:32px}.cta-title em{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--violet)}.cta-title-en{font-family:var(--font-en);letter-spacing:-.02em;color:var(--violet)}.cta-desc{font-size:15px;color:var(--ink-2);max-width:44ch;line-height:1.9;margin:0 auto 48px}.cta-btn{display:inline-flex;align-items:center;gap:14px;padding:20px 36px;background:var(--violet);color:#fff;font-family:var(--font-en);font-size:14px;font-weight:500;border-radius:999px;transition:all .35s var(--ease);position:relative;overflow:hidden}.cta-btn:before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease);border-radius:999px}.cta-btn:hover:before{transform:scaleX(1);transform-origin:left}.cta-btn:hover{box-shadow:0 16px 40px #0c183229}.cta-btn span,.cta-btn svg{position:relative;z-index:1}.cta-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;transition:transform .4s var(--ease)}.cta-btn:hover svg{transform:translate(4px,-4px)}.cta-btn[disabled]{opacity:.6;cursor:not-allowed}.cta-btn[disabled]:hover:before{transform:scaleX(0)}.contact-form{max-width:640px;margin:16px auto 0;text-align:left;display:flex;flex-direction:column;gap:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:600px){.form-row{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;gap:8px}.form-label{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.form-label em{color:var(--violet);font-style:normal;margin-left:4px}.contact-form input,.contact-form textarea{width:100%;font:inherit;font-family:var(--font-jp);font-size:15px;line-height:1.6;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:border-color .25s var(--ease),box-shadow .25s var(--ease);resize:vertical}.contact-form input:hover,.contact-form textarea:hover{border-color:#0c183238}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 4px #4c39f524}.contact-form textarea{min-height:140px;font-family:var(--font-jp)}.form-consent{margin-top:8px;display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--ink-2);line-height:1.6;cursor:pointer}.form-consent input[type=checkbox]{width:16px;height:16px;margin-top:3px;flex-shrink:0;accent-color:var(--violet);cursor:pointer}.form-consent a{color:var(--violet);text-decoration:underline}.form-footer{margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:12px}.form-error{color:#c0392b;font-size:13px}.form-error a{color:var(--violet);text-decoration:underline}.form-success{max-width:520px;margin:16px auto 0;padding:40px 24px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:16px}.form-success-icon{width:56px;height:56px;margin:0 auto 20px;border-radius:50%;background:var(--violet);display:flex;align-items:center;justify-content:center}.form-success-icon svg{width:26px;height:26px;stroke:#fff;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}.form-success h3{font-size:22px;font-weight:700;margin-bottom:10px;letter-spacing:-.01em}.form-success p{font-size:14px;color:var(--ink-2);line-height:1.85;margin-bottom:20px}.form-reset{font-family:var(--font-en);font-size:13px;color:var(--violet);cursor:pointer;padding:6px 0;border-bottom:1px solid var(--violet)}.form-reset:hover{color:var(--violet-deep);border-color:var(--violet-deep)}.cta-deco{position:absolute;pointer-events:none;opacity:.65}.cta-deco.left{left:-100px;top:50%;transform:translateY(-50%) rotate(18deg);width:320px}.cta-deco.right{right:-80px;bottom:40px;transform:rotate(-22deg);width:280px}@media(max-width:720px){.cta-deco{display:none}}footer{padding:100px 0 40px;background:var(--bg-soft);position:relative;overflow:hidden}.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:100px}@media(max-width:860px){.footer-top{grid-template-columns:1fr 1fr;gap:36px}}@media(max-width:520px){.footer-top{grid-template-columns:1fr}}.footer-brand{display:flex;align-items:center;gap:12px;font-family:var(--font-en);font-weight:600;font-size:22px;color:var(--ink);margin-bottom:16px;letter-spacing:-.01em}.footer-tagline{font-size:14px;color:var(--ink-2);line-height:1.8;max-width:28ch}.footer-col h4{font-family:var(--font-en);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:20px}.footer-col ul{list-style:none}.footer-col li{margin-bottom:12px}.footer-col a{font-size:14px;color:var(--ink);transition:color .3s}.footer-col a:hover{color:var(--violet)}.footer-bottom{padding-top:28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-family:var(--font-en);font-size:12px;color:var(--ink-3);letter-spacing:.03em;align-items:center}.footer-bottom .socials{display:flex;gap:12px}.footer-bottom .socials a{width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease)}.footer-bottom .socials a:hover{background:var(--violet);transform:translateY(-2px)}.footer-bottom .socials svg{width:14px;height:14px;fill:currentColor}.footer-ribbon-l,.footer-ribbon-r{position:absolute;pointer-events:none;width:320px}.footer-ribbon-l{left:-140px;top:60px;transform:rotate(35deg)}.footer-ribbon-r{right:-120px;bottom:-40px;transform:rotate(-35deg)}.reveal-up{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal-up.in-view{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.hero-title .char,.reveal-up{opacity:1;transform:none}.mission-text .char{opacity:1}}
