: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}.nav{z-index:20;-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);background:#f6f4efd1;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:24px;margin:0 -16px;padding:18px 16px;transition:border-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{color:var(--accent);letter-spacing:.12em;margin-bottom:28px;font-size:.82rem;font-weight:700;display:block}.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}}
