:root{--background:#f6f4ef;--surface:#fff;--surface-strong:#14201f;--text:#19211f;--muted:#5f6b69;--line:#14201f1a;--accent:#1e6f5c;--accent-dark:#164d42;--accent-soft:#e7f1ec;--shadow:0 18px 50px #14201f14}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--text);font-family:var(--font-inter), var(--font-noto-sans-jp), -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;overflow-x:clip}a{color:inherit;text-decoration:none}main{overflow:hidden}.hero,.section,.cta{width:min(1120px,100% - 48px);margin:0 auto}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .72s cubic-bezier(.22,1,.36,1),transform .72s cubic-bezier(.22,1,.36,1);transform:translateY(22px)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}html{scroll-behavior:auto}}.hero{padding:0 0 96px;position:relative}.hero:before,.hero:after{content:"";z-index:-1;filter:blur(70px);pointer-events:none;border-radius:50%;position:absolute}.hero:before{background:radial-gradient(circle,#1e6f5c2e,#0000 65%);width:540px;height:540px;animation:26s ease-in-out infinite alternate auroraDrift1;top:-140px;right:-140px}.hero:after{background:radial-gradient(circle,#9ce0c452,#0000 65%);width:460px;height:460px;animation:32s ease-in-out infinite alternate auroraDrift2;top:320px;left:-200px}@keyframes auroraDrift1{to{transform:translate(-70px,60px)scale(1.15)}}@keyframes auroraDrift2{to{transform:translate(80px,-50px)scale(1.1)}}.nav{z-index:20;background:0 0;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:24px;margin:0 -16px;padding:18px 16px;transition:border-color .2s,background-color .2s;display:flex;position:sticky;top:0}.logo{align-items:center;line-height:0;display:inline-flex}.logoImage{width:168px;height:auto;display:block}.navLinks{color:var(--muted);align-items:center;gap:28px;font-size:.9rem;font-weight:500;display:flex}.navLinks a{transition:color .16s}.navLinks a:hover{color:var(--accent)}.heroGrid{grid-template-columns:minmax(0,1.15fr) 360px;align-items:start;gap:64px;padding-top:clamp(32px,5vw,56px);display:grid}.heroCopy h1,.section h2,.cta h2{color:var(--text);letter-spacing:-.02em;margin:0;font-weight:800;line-height:1.18}h1,h2,h3{line-break:strict;text-wrap:balance;word-break:auto-phrase}.lead,.sectionHeader p,.ventureHead p,.splitContent p,.company p,.cta p,.career li,.heroCard p,.ventureCard p,.serviceCard p,.caseCard p{word-break:auto-phrase}.heroCopy h1{max-width:760px;font-size:clamp(2.6rem,5vw,4.4rem)}.lead{max-width:680px;color:var(--muted);margin:28px 0 0;font-size:clamp(1.02rem,1.6vw,1.18rem);font-weight:400;line-height:1.95}.eyebrow{color:var(--accent);letter-spacing:.22em;text-transform:uppercase;margin:0 0 16px;font-size:.74rem;font-weight:700}.heroActions,.metrics,.tagList{flex-wrap:wrap;gap:12px;display:flex}.heroActions{margin-top:36px}.button{border-radius:999px;justify-content:center;align-items:center;min-height:50px;padding:0 26px;font-size:.94rem;font-weight:600;transition:transform .2s,box-shadow .2s,background-color .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--accent);color:#fff;box-shadow:0 12px 28px #1e6f5c38}.button.primary:hover{background:var(--accent-dark)}.button.secondary{border:1px solid var(--line);background:var(--surface);color:var(--accent-dark)}.button.secondary:hover{border-color:var(--accent)}.statsRow{border-top:1px solid var(--line);flex-wrap:wrap;gap:40px;margin:44px 0 0;padding-top:32px;display:flex}.statsRow dt{color:var(--accent-dark);letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:700}.statsRow dd{color:var(--muted);margin:6px 0 0;font-size:.86rem;line-height:1.6}.heroCard{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:28px;padding:36px;position:relative;overflow:hidden}.cardLabel{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.cardHeadline{color:var(--text);letter-spacing:-.03em;margin:18px 0 16px;font-size:clamp(1.5rem,2.8vw,2.1rem);font-weight:800;line-height:1.28}.heroCard p:not(.cardLabel):not(.cardHeadline){color:var(--muted);margin:0;line-height:1.85}.metrics{margin-top:26px}.metrics span,.tagList span{border:1px solid var(--line);background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:8px 14px;font-size:.8rem;font-weight:500}.section{padding:104px 0}.sectionHeader p,.splitContent p,.company p,.cta p{color:var(--muted);margin:0;font-size:1.04rem;font-weight:400;line-height:1.95}.section h2,.cta h2{font-size:clamp(2rem,4vw,3.4rem)}.sectionHeader{max-width:720px;margin-bottom:52px}.sectionHeader p{margin-top:20px}.profile{border-top:1px solid var(--line);grid-template-columns:320px minmax(0,1fr);align-items:start;gap:64px;display:grid}.profilePhoto{position:sticky;top:96px}.profileImg{object-fit:cover;object-position:center top;border-radius:22px;width:100%;height:auto}.profileBody{padding-top:4px}.profileBody h2{font-size:clamp(2rem,4vw,3.4rem)}.profileLead{color:var(--muted);line-height:1.85;margin:20px 0 36px!important;font-size:1.1rem!important}.career{border-top:1px solid var(--line);flex-direction:column;gap:24px;margin:0;padding:32px 0 0;list-style:none;display:flex}.career li{color:var(--muted);padding-left:22px;font-size:1rem;line-height:1.8;position:relative}.career li:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:.7em;left:0}.serviceGrid,.caseGrid{gap:22px;min-width:0;display:grid}.serviceGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.serviceCard,.caseCard{border:1px solid var(--line);background:var(--surface);border-radius:22px;padding:30px;transition:transform .24s,box-shadow .24s;box-shadow:0 10px 30px #14201f0a}.serviceCard:hover,.caseCard:hover{transform:translateY(-4px);box-shadow:0 22px 50px #14201f1a}.serviceCard span{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;font-size:.74rem;font-weight:700}.serviceCard h3,.caseCard h3{color:var(--text);letter-spacing:-.01em;margin:18px 0 12px;font-size:1.3rem;font-weight:700;line-height:1.5}.serviceCard p,.caseCard p{color:var(--muted);margin:0;line-height:1.85}.contrast{background:var(--surface-strong);color:#fff;width:100%;max-width:none;padding-left:max(24px,50% - 560px);padding-right:max(24px,50% - 560px);overflow-x:clip}.contrast .sectionHeader,.contrast .caseGrid{width:100%;max-width:1120px;margin-left:auto;margin-right:auto}.contrast .sectionHeader h2,.contrast .caseCard h3{color:#fff}.contrast .sectionHeader p,.contrast .caseCard p{color:#ffffffa8}.caseGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.caseCard{box-shadow:none;background:#ffffff0d;border-color:#ffffff1a;flex-direction:column;display:flex}.caseCard:hover{box-shadow:none;border-color:#ffffff38;transform:translateY(-4px)}.caseThumb{background:radial-gradient(circle at 80% 20%,#9ce0c447,#0000 60%),linear-gradient(135deg,#1e6f5c8c,#14201fd9);border-radius:14px;align-items:flex-end;height:132px;margin-bottom:22px;padding:16px;display:flex}.caseThumb span{color:#ffffffc7;letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;font-weight:600}.caseThumb--image{background:#ffffff0a;padding:0;overflow:hidden}.caseThumbImg{object-fit:cover;object-position:center top;width:100%;height:100%}.caseMock{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:14px;height:148px;margin-bottom:22px;overflow:hidden}.caseMockPhone{flex-direction:column;height:100%;padding:10px 12px 12px;display:flex}.caseMockPhoneBar{background:#ffffff40;border-radius:999px;width:28%;height:4px;margin:0 auto 8px}.caseMockMap{background:linear-gradient(#9ce0c42e,#14201f66),#1e6f5c40;border-radius:10px;flex:1;position:relative}.caseMockPin{background:#9ce0c4;border-radius:50%;width:10px;height:10px;position:absolute;top:28%;left:24%;box-shadow:0 0 0 4px #9ce0c440}.caseMockPin--b{top:52%;left:58%}.caseMockPin--c{top:38%;left:72%}.caseMockStamp{color:#ffffffb8;text-align:center;margin-top:8px;font-size:.72rem;font-weight:600}.caseMockBrowser{flex-direction:column;height:100%;padding:10px 12px 12px;display:flex}.caseMockBrowserBar{gap:5px;margin-bottom:10px;display:flex}.caseMockBrowserBar span{background:#ffffff38;border-radius:50%;width:7px;height:7px}.caseMockEcGrid{flex:1;grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.caseMockEcGrid div{background:#ffffff1f;border-radius:6px}.caseMockNoshi{color:#ffffffc7;text-align:center;background:#9ce0c42e;border-radius:6px;margin-top:8px;padding:5px 8px;font-size:.68rem;font-weight:600}.caseMockWebHero{background:linear-gradient(135deg,#1e6f5c8c,#9ce0c459);border-radius:8px;height:42px;margin-bottom:10px}.caseMockWebLines{flex-direction:column;gap:6px;display:flex}.caseMockWebLines span{background:#ffffff24;border-radius:999px;height:6px;display:block}.caseMockWebLines span:first-child{width:88%}.caseMockWebLines span:nth-child(2){width:72%}.caseMockWebLines span:nth-child(3){width:56%}.caseCategory{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.contrast .caseCategory{color:#9ce0c4e6}.tagList{margin-top:22px}.tagList span{color:#ffffffd1;background:#ffffff14;border-color:#ffffff1f}.textLink{color:#9ce0c4;margin-top:auto;padding-top:24px;font-weight:600;display:inline-flex}.textLink:hover{color:#fff}.venture{border-top:1px solid var(--line)}.ventureHead{max-width:680px}.ventureHead h2{letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(2rem,4vw,3.4rem);font-weight:800;line-height:1.18}.ventureHead p{color:var(--muted);margin:20px 0 0;font-size:1.04rem;line-height:1.95}.ventureCards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:48px;display:grid}.ventureCard{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:28px 30px;box-shadow:0 8px 24px #14201f0a}.ventureCard h3{color:var(--text);margin:0 0 14px;font-size:1.1rem;font-weight:700;line-height:1.5}.ventureCard p{color:var(--muted);margin:0;font-size:.97rem;line-height:1.85}.ventureLink{color:var(--accent);margin-top:18px;font-size:.92rem;font-weight:700;display:inline-flex}.ventureLink:hover{color:var(--accent-dark)}.process ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.process li{border:1px solid var(--line);background:var(--surface);min-height:178px;color:var(--accent-dark);border-radius:20px;padding:22px;font-weight:600;line-height:1.7}.process li span{border:1px solid var(--accent);background:var(--surface);width:42px;height:42px;color:var(--accent);letter-spacing:.08em;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-bottom:24px;font-size:.78rem;font-weight:700;display:flex}.process ol{position:relative}@media (min-width:1041px){.process ol:before{content:"";background:linear-gradient(90deg, var(--accent), #1e6f5c33);transform-origin:0;height:2px;transition:transform 1.4s cubic-bezier(.22,1,.36,1) .25s;position:absolute;top:43px;left:2%;right:2%;transform:scaleX(0)}.process ol.is-visible:before{transform:scaleX(1)}}.company{grid-template-columns:.82fr 1fr;align-items:start;gap:56px;display:grid}.company p{color:var(--muted);margin:0;font-size:1.04rem;line-height:1.95}.cta{background:radial-gradient(circle at top right, #9ce0c438, transparent 26rem), var(--surface-strong);color:#fff;text-align:center;border-radius:32px;margin-bottom:48px;padding:88px 70px}.cta h2{color:#fff;max-width:760px;margin-left:auto;margin-right:auto}.cta p{color:#ffffffb3;max-width:620px;margin:24px auto 0}.cta .button{margin-top:36px}.contactPage{padding-bottom:96px}.contactGrid{grid-template-columns:.9fr 1.1fr;align-items:start;gap:64px;padding-top:72px;display:grid}.contactIntro h1{color:var(--text);letter-spacing:-.02em;margin:0;font-size:clamp(2rem,4vw,3.2rem);font-weight:800;line-height:1.2}.contactIntro .lead{margin-top:24px}.contactMeta{color:var(--muted);margin:32px 0 0;font-size:.96rem;line-height:1.8}.contactMeta a{color:var(--accent);font-weight:600}.contactMeta a:hover{color:var(--accent-dark)}.contactFormWrap{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:24px;padding:36px}.contactForm{flex-direction:column;gap:22px;display:flex}.formField{flex-direction:column;gap:8px;display:flex}.formField label{color:var(--text);font-size:.86rem;font-weight:600}.formField input,.formField select,.formField textarea{border:1px solid var(--line);background:var(--background);width:100%;color:var(--text);border-radius:12px;padding:13px 14px;font-family:inherit;font-size:.96rem;line-height:1.6;transition:border-color .16s,box-shadow .16s}.formField textarea{resize:vertical}.formField input:focus,.formField select:focus,.formField textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #1e6f5c1f}.contactForm .button{align-self:flex-start;margin-top:4px}.contactForm .button:disabled{opacity:.55;cursor:not-allowed;transform:none}.formNotice{border:1px solid var(--line);background:var(--accent-soft);color:var(--accent-dark);border-radius:12px;margin:0;padding:14px 16px;font-size:.88rem;line-height:1.7}.formNotice code{font-size:.84em}.formNotice--error{color:#9c2f23;background:#b03a2e14;border-color:#b03a2e4d}.formResult{border:1px solid var(--line);background:var(--accent-soft);color:var(--accent-dark);border-radius:16px;padding:28px;line-height:1.85}.formResultTitle{margin:0 0 8px;font-size:1.15rem;font-weight:700}.formResult p:not(.formResultTitle){margin:0}@media (max-width:1040px){.contactGrid{grid-template-columns:1fr;gap:40px;padding-top:48px}.heroGrid,.profile,.company{grid-template-columns:1fr}.heroGrid{gap:40px;padding-top:32px}.heroCard{max-width:560px}.profilePhoto{max-width:280px;position:static}.serviceGrid,.caseGrid,.ventureCards,.process ol{grid-template-columns:1fr}.process li{min-height:auto}}@media (max-width:640px){.hero,.section,.cta{width:min(100% - 32px,1120px)}.hero{padding-bottom:48px}.heroGrid{gap:28px;padding-top:24px}.heroCopy h1{font-size:clamp(2rem,9vw,2.6rem)}.lead{margin-top:20px;line-height:1.85}.heroActions{flex-direction:column;margin-top:24px}.heroCard{padding:24px}.statsRow{gap:20px;margin-top:32px;padding-top:24px}.nav{gap:12px;margin:0;padding:14px 0}.logoImage{width:132px}.navLinks{gap:12px;font-size:.78rem}.button{width:100%}.section{padding:56px 0}.sectionHeader{margin-bottom:32px}.sectionHeader p{margin-top:14px}.profile{gap:32px}.profileLead{margin:16px 0 24px!important}.career{gap:18px;padding-top:24px}.serviceGrid,.caseGrid,.ventureCards,.process ol{gap:16px}.serviceCard,.caseCard{min-width:0;padding:22px}.contrast{width:100%;padding-left:16px;padding-right:16px}.contrast .sectionHeader,.contrast .caseGrid{max-width:none}.contrast .sectionHeader h2,.contrast .sectionHeader p,.contrast .caseCard h3,.contrast .caseCard p{overflow-wrap:anywhere}.caseMock{height:120px;margin-bottom:18px}.caseThumb{height:112px;margin-bottom:18px}.tagList{margin-top:16px}.textLink{padding-top:18px}.ventureCards{margin-top:32px}.ventureCard{padding:22px}.process li{padding:18px}.contactPage{padding-bottom:64px}.contactGrid{gap:32px;padding-top:32px}.contactFormWrap{padding:24px}.cta{border-radius:24px;margin-bottom:32px;padding:40px 20px}}.nav.is-scrolled{border-bottom-color:var(--line);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);background:#f6f4efeb;box-shadow:0 10px 30px #14201f0f}@keyframes heroLineUp{0%{transform:translateY(110%)}to{transform:none}}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.heroLine{margin-bottom:-.08em;padding-bottom:.08em;display:block;overflow:hidden}.heroLine>span{animation:.9s cubic-bezier(.22,1,.36,1) .1s forwards heroLineUp;display:block;transform:translateY(110%)}.heroLine:nth-child(2)>span{animation-delay:.22s}.heroIntro .eyebrow{animation:.7s cubic-bezier(.22,1,.36,1) both heroFadeUp}.heroIntro .lead{animation:.8s cubic-bezier(.22,1,.36,1) .4s both heroFadeUp}.heroIntro .heroActions{animation:.8s cubic-bezier(.22,1,.36,1) .55s both heroFadeUp}.heroIntro .statsRow{animation:.8s cubic-bezier(.22,1,.36,1) .7s both heroFadeUp}.scrollCue{color:var(--muted);letter-spacing:.24em;text-transform:uppercase;align-items:center;gap:14px;margin-top:56px;font-size:.7rem;font-weight:700;animation:.8s cubic-bezier(.22,1,.36,1) .9s both heroFadeUp;display:flex}.scrollCueLine{background:var(--line);width:1px;height:44px;position:relative;overflow:hidden}.scrollCueLine:after{content:"";background:var(--accent);width:100%;height:40%;animation:2.1s ease-in-out infinite scrollCueDrop;position:absolute;top:-40%;left:0}@keyframes scrollCueDrop{to{top:110%}}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;overflow:hidden}.marqueeTrack{width:max-content;animation:32s linear infinite marqueeScroll;display:flex}.marquee:hover .marqueeTrack{animation-play-state:paused}.marqueeGroup{gap:56px;padding-right:56px;display:flex}.marqueeGroup span{color:var(--muted);letter-spacing:.06em;white-space:nowrap;font-size:.92rem;font-weight:600}.marqueeGroup span:before{content:"·";color:var(--accent);margin-right:56px}@keyframes marqueeScroll{to{transform:translate(-50%)}}.section{position:relative}.ghostNum{z-index:0;color:#0000;letter-spacing:-.04em;-webkit-text-stroke:1.5px #1e6f5c24;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:clamp(6rem,13vw,10.5rem);font-weight:800;line-height:1;position:absolute;top:56px;right:0}.contrast .ghostNum{-webkit-text-stroke:1.5px #ffffff1a;right:max(24px,50% - 560px)}@keyframes pinPulse{0%,to{transform:scale(1)}50%{transform:scale(1.55)}}.caseCard:hover .caseMockPin{animation:1.3s ease-in-out infinite pinPulse}.caseCard:hover .caseMockPin--b{animation-delay:.25s}.caseCard:hover .caseMockPin--c{animation-delay:.5s}@keyframes cellGlow{0%,to{background:#ffffff1f}50%{background:#9ce0c473}}.caseCard:hover .caseMockEcGrid div{animation:1.6s ease-in-out infinite cellGlow}.caseCard:hover .caseMockEcGrid div:nth-child(2){animation-delay:.25s}.caseCard:hover .caseMockEcGrid div:nth-child(3){animation-delay:.5s}@keyframes lineShine{0%,to{opacity:1}50%{opacity:.45}}.caseCard:hover .caseMockWebLines span{animation:1.5s ease-in-out infinite lineShine}.caseCard:hover .caseMockWebLines span:nth-child(2){animation-delay:.2s}.caseCard:hover .caseMockWebLines span:nth-child(3){animation-delay:.4s}.button.primary:after{content:"→";margin-left:10px;transition:transform .2s}.button.primary:hover:after{transform:translate(4px)}.footer{background:var(--surface-strong);color:#ffffffad}.footerInner{grid-template-columns:1.3fr .7fr 1fr;gap:48px;width:min(1120px,100% - 48px);margin:0 auto;padding:72px 0 56px;display:grid}.footerLogo{color:#fff;letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:800}.footerTagline{max-width:380px;margin:16px 0 0;font-size:.94rem;line-height:1.9}.footerLabel{color:#9ce0c4;letter-spacing:.2em;text-transform:uppercase;margin:0 0 16px;font-size:.7rem;font-weight:700}.footerNav{flex-direction:column;align-items:flex-start;gap:12px;font-size:.94rem;display:flex}.footerNav a{transition:color .16s}.footerNav a:hover{color:#9ce0c4}.footerContact a{color:#fff;font-weight:600;transition:color .16s}.footerContact a:hover{color:#9ce0c4}.footerNote{margin:14px 0 0;font-size:.86rem;line-height:1.8}.footerBottom{border-top:1px solid #ffffff1a}.footerBottom p{margin:0;font-size:.82rem}.footerBottom{justify-content:space-between;align-items:center;gap:16px;width:min(1120px,100% - 48px);margin:0 auto;padding:22px 0;display:flex}@media (max-width:900px){.ghostNum{display:none}}@media (max-width:640px){.scrollCue{display:none}.marqueeGroup{gap:36px;padding-right:36px}.marqueeGroup span:before{margin-right:36px}.footerInner{grid-template-columns:1fr;gap:36px;padding:48px 0 40px}.footerBottom{flex-direction:column;align-items:flex-start;gap:6px}}@media (prefers-reduced-motion:reduce){.hero:before,.hero:after,.marqueeTrack,.scrollCueLine:after,.caseCard:hover .caseMockPin,.caseCard:hover .caseMockEcGrid div,.caseCard:hover .caseMockWebLines span{animation:none!important}.heroLine>span,.heroIntro .eyebrow,.heroIntro .lead,.heroIntro .heroActions,.heroIntro .statsRow,.scrollCue{opacity:1;transform:none;animation:none!important}.process ol:before{transition:none!important;transform:scaleX(1)!important}}
