@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800;900&family=Noto+Sans+JP:wght@400;500;600;700;800;900&family=Nothing+You+Could+Do&display=swap');
:root{--ink:#181d1c;--green:#28b879;--green-dark:#169d67;--orange:#ffbd48;--yellow:#f4ec55;--cream:#f1e9dc;--muted:#66716c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:'DM Sans','Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}.skip-link{position:absolute;top:-100px;left:12px;background:#fff;padding:12px;z-index:100}.skip-link:focus{top:12px}main,.site-footer{margin-right:150px}.site-header{position:fixed;z-index:50;right:0;top:0;width:150px;height:100vh;display:flex;align-items:center;flex-direction:column;padding:30px 9px;background:#ffffffeb}.brand{text-align:center;margin-bottom:22px;display:block}.brand-mark{font-weight:900;font-size:34px;letter-spacing:-.14em;display:block;line-height:1}.brand-spark{font-size:15px;vertical-align:top;color:var(--orange);letter-spacing:0}.brand-name{display:block;font-weight:800;font-size:12px;line-height:1.12;letter-spacing:-.055em;margin-top:3px}.brand-name small{display:block;font-size:6px;letter-spacing:0;margin-top:5px}.site-nav{display:flex;flex-direction:column;width:100%;align-items:center;gap:20px;font-weight:800;font-size:12px;letter-spacing:.07em}.site-nav a:hover{color:#e8734c}.site-nav .nav-contact{background:var(--yellow);padding:10px 14px;min-width:116px;text-align:center;transition:background .2s}.site-nav .nav-contact:hover{background:var(--orange);color:var(--ink)}.nav-contact span{margin-left:5px}.menu-toggle{display:none}.hero{height:min(880px,100vh);min-height:690px;position:relative;overflow:hidden;background:#fff}.hero-copy{position:relative;z-index:3;padding:42px 0 0 6%;max-width:650px}.hero-label{font-size:10px;font-weight:800;letter-spacing:.22em;margin:0 0 12px}.hero-label span{color:#e99048}.hero h1{font-size:clamp(49px,5.1vw,78px);line-height:.98;letter-spacing:-.075em;font-weight:900;margin:0}.hero h1 span{display:block}.hero-script{font-family:'Nothing You Could Do',cursive;font-size:clamp(30px,3.3vw,52px);line-height:1;color:#ef8152;transform:rotate(-9deg);margin:-2px 0 3px 215px;white-space:nowrap}.hero-jp{font-weight:800;font-size:18px;letter-spacing:.07em;margin:20px 0 12px}.hero-caption{font-size:11px;line-height:1.9;font-weight:600;margin:0}.hero-image{position:absolute;width:108%;max-width:none;left:-2%;bottom:-60px;z-index:1}.hero-scroll{position:absolute;z-index:4;right:22px;bottom:20px;display:flex;align-items:center;gap:10px;font-size:10px;font-weight:800;letter-spacing:.1em;transform:rotate(-12deg)}.hero-scroll i{display:inline-block;width:36px;height:1px;background:var(--ink)}.hero-side-note{position:absolute;z-index:4;left:12px;bottom:20px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.15em;color:#59635f}.hero-deco{position:absolute;z-index:0}.deco-dot-one{width:115px;height:115px;top:0;left:-15px;background:radial-gradient(#b9dfe0 1px,transparent 1px);background-size:9px 9px;mask-image:radial-gradient(circle,#000 25%,transparent 72%)}.deco-dot-two{width:120px;height:120px;right:30px;top:70px;background:radial-gradient(#f5ce72 2px,transparent 2px);background-size:13px 13px;mask-image:radial-gradient(circle,#000 15%,transparent 75%)}.deco-circle{width:80px;height:80px;border-radius:50%;background:#ffe79b;top:-35px;left:25%}.deco-square{width:21px;height:21px;background:#c4e3f7;top:42px;right:23%}.about-wrap{padding:65px 5% 30px;background:#fff;scroll-margin-top:30px}.about-panel{max-width:1180px;min-height:390px;margin:auto;border-radius:16px;background:var(--orange);position:relative;overflow:hidden;display:grid;grid-template-columns:55% 45%;padding:50px 5% 50px 11%}.vertical-title{position:absolute;left:16px;top:40px;writing-mode:vertical-rl;color:#fff;font-size:36px;letter-spacing:.03em;font-weight:900}.section-kicker{font-size:11px;letter-spacing:.15em;font-weight:900;margin:0 0 14px}.about-copy{z-index:2;position:relative}.about-copy h2{font-size:clamp(24px,2.4vw,38px);line-height:1.5;letter-spacing:-.055em;margin:0 0 22px}.about-copy>p:not(.section-kicker){font-size:12px;line-height:2.15;font-weight:600;max-width:440px;margin:0 0 10px}.pill-link{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;background:#fff;border:1px solid #c1a16e;padding:12px 17px;border-radius:30px;margin-top:15px;font-size:11px;font-weight:800;min-width:205px}.pill-link:hover{background:var(--yellow)}.about-collage{position:relative;min-height:300px}.collage-img{position:absolute;background:#fff;padding:6px;box-shadow:0 9px 20px #9f642536;overflow:hidden;width:45%;height:44%}.collage-img img{width:100%;height:100%;object-fit:cover}.collage-a{left:2%;top:3%;transform:rotate(-8deg)}.collage-b{right:4%;top:17%;transform:rotate(8deg)}.collage-c{left:23%;bottom:0;transform:rotate(4deg)}.business-wrap{padding:25px 5% 0;background:#fff;scroll-margin-top:30px}.business-panel{max-width:1180px;margin:auto;border-radius:18px;background:var(--green);color:#fff;padding:65px 7% 80px;position:relative;overflow:hidden}.business-panel:after{content:'';position:absolute;left:50%;bottom:-34px;transform:translateX(-50%) rotate(45deg);width:70px;height:70px;background:var(--green);border-radius:12px}.business-heading{text-align:center;position:relative;margin-bottom:35px}.heading-shadow{position:absolute;z-index:0;left:50%;top:-35px;transform:translateX(-50%);font-size:clamp(75px,12vw,155px);font-weight:900;letter-spacing:-.08em;opacity:.11}.business-heading>*:not(.heading-shadow){position:relative}.business-heading h2{font-size:37px;margin:0 0 8px}.business-heading>p:last-child{font-size:12px;line-height:1.8;font-weight:600}.business-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:6%;row-gap:55px}.service{display:grid;grid-template-columns:48% 52%;gap:14px;align-items:center;min-width:0}.service-art{border-radius:8px;overflow:hidden;background:#fff;aspect-ratio:1.15}.service-art img{width:100%;height:100%;object-fit:cover}.service-copy{padding-right:2%}.service-num{font-size:10px;letter-spacing:.08em;font-weight:800;color:#dbfff0}.service-copy h3{font-size:20px;line-height:1.4;margin:6px 0 10px}.service-copy p{font-size:11px;line-height:1.95;font-weight:600;margin:0 0 13px}.service-status{display:inline-block;background:#fff;color:var(--green-dark);border-radius:30px;padding:8px 14px;font-size:10px;font-weight:800}.service-farm{grid-column:1/-1;max-width:650px;margin:auto}.purpose{background:var(--cream);padding:140px 5% 115px;scroll-margin-top:30px;position:relative;overflow:hidden}.purpose:before{content:'CREATE IMPRESSION';position:absolute;top:25px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:clamp(56px,10vw,145px);font-weight:900;color:#ffffff9c;letter-spacing:-.075em}.purpose-inner{position:relative;max-width:1000px;margin:auto;text-align:center}.purpose h2{font-size:clamp(34px,4vw,58px);line-height:1.55;letter-spacing:-.055em;margin:0 0 18px}.purpose-lead{font-size:14px;line-height:1.9;font-weight:600}.purpose-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px}.purpose-steps>div{background:#fff;border-radius:13px;min-height:170px;padding:25px;display:flex;flex-direction:column;align-items:center;justify-content:center}.purpose-steps>div:nth-child(1){border-bottom:7px solid #65bfaa}.purpose-steps>div:nth-child(2){border-bottom:7px solid #f3bd64}.purpose-steps>div:nth-child(3){border-bottom:7px solid #83aa72}.step-emoji{font-size:28px;color:#54a98d}.purpose-steps strong{font-size:20px;margin:5px 0}.purpose-steps small{font-size:11px;color:var(--muted)}.message{background:#fff;padding:115px 5%;scroll-margin-top:30px}.message-inner{max-width:1080px;margin:auto;position:relative;display:grid;grid-template-columns:62% 38%;gap:25px;align-items:center}.message-vertical{position:absolute;left:-48px;top:4px;writing-mode:vertical-rl;font-weight:900;font-size:23px;color:#e5ebe7}.message-copy h2{font-size:clamp(32px,3.1vw,48px);line-height:1.55;letter-spacing:-.05em;margin:0 0 30px}.message-copy>p:not(.section-kicker){font-size:13px;line-height:2.15;max-width:610px;color:#44524d}.message-sign{border-top:1px solid #d8dfd9;padding-top:20px;margin-top:30px;font-size:12px}.message-sign b{font-size:18px;margin-left:15px}.message-sign small{display:block;font-size:10px;color:#78857f;margin-top:10px}.message-mark{width:min(100%,315px);aspect-ratio:1;border-radius:50%;background:#fce9b5;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-10deg)}.message-mark span{font-weight:900;font-size:27px;text-align:center;line-height:1;letter-spacing:-.07em}.message-mark b{font-size:80px;color:#f79c59;line-height:1}.company{background:#e9f2ec;padding:100px 5%;scroll-margin-top:30px}.company-inner{max-width:1050px;margin:auto;display:grid;grid-template-columns:34% 1fr;gap:6%}.company-heading h2{font-size:40px;margin:0 0 20px;letter-spacing:-.06em}.company-heading>p:last-child{font-size:12px;line-height:1.9;color:#6b7b70}.company-list{margin:0}.company-list>div{display:grid;grid-template-columns:125px 1fr;gap:15px;border-top:1px solid #adc8b5;padding:19px 0}.company-list>div:last-child{border-bottom:1px solid #adc8b5}.company-list dt{font-size:12px;font-weight:800}.company-list dd{margin:0;font-size:12px;line-height:1.7}.contact{padding:100px 5%;background:#fff;scroll-margin-top:30px}.contact-inner{max-width:1050px;margin:auto;background:#ffe06a;border-radius:15px;text-align:center;padding:75px 25px;position:relative;overflow:hidden}.contact-inner>*:not(.contact-deco){position:relative;z-index:1}.contact-inner h2{font-size:clamp(31px,3vw,48px);line-height:1.5;letter-spacing:-.05em;margin:0 0 20px}.contact-inner>p:not(.section-kicker){font-size:13px}.contact-pending{display:flex;align-items:center;justify-content:center;gap:15px;border:1px solid #be9d3d;background:#fff;border-radius:30px;max-width:390px;margin:32px auto 15px;padding:15px 20px;font-size:12px;font-weight:800}.contact-pending span{font-size:17px}.contact-inner small{font-size:10px;color:#5f593e}.contact-deco{position:absolute;border-radius:50%}.deco-a{width:180px;height:180px;left:-40px;top:-50px;background:#fff3aa}.deco-b{width:130px;height:130px;right:-30px;bottom:-30px;background:#ffd1a5}.site-footer{background:#1e3d34;color:#fff;padding:60px 5% 35px}.footer-inner{max-width:1060px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:40px}.footer-brand{font-size:25px;letter-spacing:-.07em;font-weight:900}.footer-brand small{display:block;font-size:11px;letter-spacing:.05em;margin-top:10px;font-weight:500}.footer-links{display:flex;gap:18px;align-items:flex-start;justify-content:flex-end;font-size:11px;font-weight:800}.footer-inner p{grid-column:1/-1;border-top:1px solid #6b8a78;padding-top:25px;font-size:10px;line-height:1.8;color:#b8c9be;margin:0}
@media(max-width:1100px){main,.site-footer{margin-right:125px}.site-header{width:125px}.hero{min-height:650px}.hero h1{font-size:57px}.hero-image{width:118%;left:-6%}.about-panel{grid-template-columns:60% 40%}.business-grid{gap:38px 25px}.service{grid-template-columns:43% 57%}.service-copy h3{font-size:18px}}@media(max-width:800px){main,.site-footer{margin-right:0}.site-header{position:sticky;top:0;width:100%;height:67px;display:flex;flex-direction:row;justify-content:space-between;padding:8px 18px;background:#fffffff5;box-shadow:0 2px 12px #1d362216}.brand{display:flex;align-items:center;gap:8px;margin:0;text-align:left}.brand-mark{font-size:29px}.brand-name{font-size:11px}.menu-toggle{display:flex;border:0;background:var(--yellow);width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-toggle span{display:block;width:20px;height:2px;background:var(--ink)}.site-nav{display:none;position:absolute;top:67px;left:0;right:0;width:100%;padding:20px;background:#fff;box-shadow:0 12px 20px #1d362222;align-items:stretch;gap:0}.site-nav.is-open{display:flex}.site-nav a{padding:12px;border-bottom:1px solid #e2e8e2}.site-nav .nav-contact{margin-top:14px}.hero{height:720px;min-height:0}.hero-copy{padding:35px 20px 0}.hero h1{font-size:clamp(42px,8vw,64px)}.hero-script{margin-left:135px;font-size:35px}.hero-image{width:130%;left:-15%;bottom:15px}.hero-scroll{bottom:20px}.hero-side-note{display:none}.about-wrap,.business-wrap{padding-left:20px;padding-right:20px}.about-panel{display:block;padding:43px 35px 30px 65px}.about-collage{height:285px;margin-top:10px}.vertical-title{font-size:25px;left:12px}.business-panel{padding:55px 35px 65px}.business-grid{display:block}.service{grid-template-columns:42% 58%;margin-bottom:40px}.service-farm{max-width:none}.company-inner{display:block}.company-list{margin-top:35px}.message-inner{display:block}.message-mark{display:none}.footer-inner{display:block}.footer-links{justify-content:flex-start;margin:30px 0}.footer-inner p{margin-top:20px}}@media(max-width:520px){.hero{height:660px}.hero-copy{padding-top:35px}.hero-label{font-size:8px}.hero h1{font-size:clamp(38px,10vw,52px)}.hero-script{font-size:27px;margin-left:105px}.hero-jp{font-size:15px}.hero-caption{font-size:10px}.hero-image{width:165%;left:-32%;bottom:30px}.hero-scroll{font-size:8px}.about-wrap{padding-top:25px}.about-panel{padding:40px 20px 25px 53px}.about-copy h2{font-size:26px}.about-copy>p:not(.section-kicker){font-size:11px}.about-collage{height:230px}.business-panel{padding:55px 24px 45px}.heading-shadow{font-size:73px}.service{display:block;margin-bottom:45px}.service-art{width:75%;margin:0 auto 15px}.service-copy{padding:0 3%}.service-copy h3{font-size:22px}.service-copy p{font-size:12px}.purpose{padding:110px 20px 80px}.purpose-steps{grid-template-columns:1fr;gap:10px;margin-top:35px}.purpose-steps>div{min-height:110px}.message,.company,.contact{padding:75px 20px}.message-copy h2{font-size:32px}.company-list>div{grid-template-columns:90px 1fr}.contact-inner{padding:55px 20px}.contact-inner h2{font-size:31px}.footer-links{flex-wrap:wrap}.site-footer{padding:45px 20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Hero: keep the headline in its own clear column at desktop widths. */
.hero{height:min(940px,100svh);min-height:760px;isolation:isolate}
.hero-copy{position:relative;z-index:6;width:min(39%,530px);max-width:none;padding:clamp(45px,5vw,84px) 0 0 clamp(32px,5.5vw,110px)}
.hero h1{font-size:clamp(54px,4.7vw,84px);line-height:.96}
.hero-script{font-size:clamp(27px,2.55vw,44px);margin:16px 0 25px 8px;transform:rotate(-5deg);transform-origin:left center}
.hero-jp{margin:0 0 11px;font-size:clamp(16px,1.15vw,21px)}
.hero-caption{max-width:390px;font-size:clamp(11px,.73vw,13px);line-height:1.9}
.hero-scene{position:absolute;z-index:2;width:min(92%,1700px);right:-2%;bottom:-16%;aspect-ratio:1672/941;transform:translate3d(var(--scene-x,0px),var(--scene-y,0px),0);transition:transform .6s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.hero-scene .hero-image{position:relative;inset:auto;width:100%;height:auto;max-width:none;animation:scene-breathe 9s ease-in-out infinite;transform-origin:55% 70%}
.hero-motion-layer{position:absolute;inset:0;overflow:visible}
.scene-cloud{position:absolute;width:5.2%;height:1.5%;border-radius:50%;background:#fff9;filter:blur(3px);animation:cloud-drift 18s ease-in-out infinite alternate}
.cloud-one{left:70%;top:15%}.cloud-two{left:91%;top:23%;width:3.8%;animation-delay:-9s}
.scene-bird{position:absolute;width:2.2%;color:#31556a;filter:drop-shadow(0 1px 1px #fff8);animation:bird-glide 8s ease-in-out infinite alternate}
.scene-bird svg{display:block;width:100%;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.bird-one{left:71%;top:10%}.bird-two{left:85%;top:17%;width:1.5%;animation-duration:10s;animation-delay:-4s}
.scene-water{position:absolute;width:4.2%;height:.7%;border-top:2px solid #ffffffd9;border-radius:50%;filter:drop-shadow(0 0 4px #b4f4ff);animation:water-shimmer 3.4s ease-in-out infinite}
.water-one{left:62%;top:62%;transform:rotate(-26deg)}.water-two{left:68%;top:67%;transform:rotate(-30deg);animation-delay:-1.2s}.water-three{left:59%;top:73%;transform:rotate(28deg);animation-delay:-2.4s}
.scene-glint{position:absolute;color:#fff6b0;font-size:clamp(12px,1.3vw,22px);text-shadow:0 0 6px #fff,0 0 12px #fff;animation:glint 3s ease-in-out infinite}
.glint-one{left:57%;top:39%}.glint-two{left:78%;top:55%;animation-delay:-1.2s}.glint-three{left:36%;top:58%;animation-delay:-2s}
.hero-deco{animation:deco-drift 7s ease-in-out infinite alternate}.deco-square{animation:deco-turn 5s ease-in-out infinite alternate}.deco-dot-two{animation-delay:-3s}
.hero-scroll i{transform-origin:left center;animation:scroll-line 2.2s ease-in-out infinite}

/* Scroll entrances and small, continuous details in the body. */
html.motion-ready [data-reveal]{opacity:0;transform:translate3d(0,42px,0);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
html.motion-ready [data-reveal].is-visible{opacity:1;transform:translate3d(0,0,0)}
.about-collage .collage-a{animation:collage-a 7s ease-in-out infinite alternate}.about-collage .collage-b{animation:collage-b 8s ease-in-out infinite alternate}.about-collage .collage-c{animation:collage-c 6.5s ease-in-out infinite alternate}
.service-art img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}.service:hover .service-art img{transform:scale(1.055)}
.pill-link span,.nav-contact span{transition:transform .25s ease}.pill-link:hover span,.nav-contact:hover span{transform:translateX(5px)}
.purpose-steps>div{transition:transform .35s ease,box-shadow .35s ease}.purpose-steps>div:hover{transform:translateY(-7px);box-shadow:0 15px 30px #376c4930}
.message-mark b{display:block;animation:mark-turn 14s ease-in-out infinite alternate}
.contact-deco{animation:deco-drift 8s ease-in-out infinite alternate}.deco-b{animation-delay:-4s}
@keyframes scene-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.008)}}
@keyframes bird-glide{0%{transform:translate(-8px,4px) rotate(-4deg)}50%{transform:translate(8px,-5px) rotate(2deg)}100%{transform:translate(23px,2px) rotate(5deg)}}
@keyframes cloud-drift{from{transform:translateX(-20px);opacity:.55}to{transform:translateX(28px);opacity:.9}}
@keyframes water-shimmer{0%,100%{opacity:.15;scale:.6 1}45%{opacity:.9;scale:1.1 1}70%{opacity:.45;scale:.85 1}}
@keyframes glint{0%,100%{opacity:.15;transform:scale(.55) rotate(0)}50%{opacity:.95;transform:scale(1.2) rotate(22deg)}}
@keyframes deco-drift{from{transform:translateY(-7px)}to{transform:translateY(11px)}}
@keyframes deco-turn{from{transform:translateY(-5px) rotate(-9deg)}to{transform:translateY(8px) rotate(11deg)}}
@keyframes scroll-line{0%,100%{transform:scaleX(.4);opacity:.5}50%{transform:scaleX(1);opacity:1}}
@keyframes collage-a{from{transform:translateY(0) rotate(-8deg)}to{transform:translateY(-9px) rotate(-6deg)}}
@keyframes collage-b{from{transform:translateY(3px) rotate(8deg)}to{transform:translateY(-10px) rotate(6deg)}}
@keyframes collage-c{from{transform:translateY(0) rotate(4deg)}to{transform:translateY(-7px) rotate(6deg)}}
@keyframes mark-turn{from{transform:rotate(-10deg) scale(.96)}to{transform:rotate(10deg) scale(1.04)}}
@media(max-width:1100px){.hero-copy{width:min(44%,500px)}.hero h1{font-size:clamp(48px,5vw,68px)}.hero-scene{width:83%;right:-5%;bottom:-4%}}
@media(max-width:800px){.hero{height:780px;min-height:0}.hero-copy{width:min(74%,540px);padding:42px 24px 0}.hero h1{font-size:clamp(43px,7vw,64px)}.hero-script{font-size:clamp(28px,4vw,38px);margin:14px 0 20px 6px}.hero-scene{width:110%;right:-14%;bottom:-2%}.hero-caption{max-width:430px}}
@media(max-width:520px){.hero{height:710px}.hero-copy{width:100%;padding:32px 21px 0}.hero h1{font-size:clamp(38px,10vw,54px)}.hero-script{font-size:27px;margin:12px 0 18px 3px}.hero-jp{font-size:16px}.hero-caption{font-size:10px;max-width:310px}.hero-scene{width:142%;right:-31%;bottom:-1%}.scene-glint{font-size:12px}}
@media(prefers-reduced-motion:reduce){.hero-scene,.hero-scene .hero-image,.hero-deco,.scene-cloud,.scene-bird,.scene-water,.scene-glint,.hero-scroll i,.about-collage .collage-img,.message-mark b,.contact-deco{animation:none!important;transition:none!important}html.motion-ready [data-reveal]{opacity:1;transform:none;transition:none}.service-art img,.purpose-steps>div{transition:none}}

/* The mark is drawn as SVG so mobile browsers never substitute an emoji glyph. */
.brand-mark{position:relative;display:inline-block;padding-right:10px;letter-spacing:-.14em}
.brand-spark{position:absolute;top:-5px;right:-5px;display:block;width:16px;height:16px;color:var(--orange);font-size:0;line-height:0}
.brand-spark svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}

/* A typographic sequence replaces the generic icon cards. */
.purpose-steps{list-style:none;padding:0;margin:62px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #bcb7a9;border-bottom:1px solid #bcb7a9;text-align:left}
.purpose-steps>li{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;min-height:188px;padding:26px 28px 31px;background:transparent;border:0;border-right:1px solid #bcb7a9;border-radius:0;box-shadow:none;transition:background .3s ease}
.purpose-steps>li:last-child{border-right:0}
.purpose-steps>li::before{content:'';position:absolute;left:0;top:-2px;width:54px;height:3px;background:#229a78}
.purpose-steps>li:nth-child(2)::before{background:#e39c45}
.purpose-steps>li:nth-child(3)::before{background:#779c72}
.purpose-steps>li:hover{transform:none;box-shadow:none;background:#fff8}
.step-index{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:800;letter-spacing:.18em;color:#817c70}
.purpose-steps>li strong{display:block;font-size:clamp(26px,2.5vw,38px);line-height:1.25;letter-spacing:-.06em;font-weight:800;margin:0 0 9px}
.purpose-steps>li small{display:block;font-size:13px;line-height:1.6;letter-spacing:.025em;color:#4f574f}

/* Representative portrait replaces the decorative stamp. */
.message-inner{grid-template-columns:minmax(0,1.3fr) minmax(280px,.85fr);gap:clamp(35px,5vw,85px)}
.message-photo{margin:0;align-self:center;min-width:0}
.message-photo img{width:100%;height:clamp(345px,31vw,465px);object-fit:cover;object-position:center center;border-radius:3px}
.message-photo figcaption{display:block;border-top:1px solid #d8dfd9;padding-top:10px;margin-top:12px;font-family:'DM Sans',sans-serif;font-size:10px;font-weight:800;letter-spacing:.15em;color:#687771}
.message-photo figcaption span{padding:0 5px;color:#aeb9b2}

@media(max-width:800px){
  .message-inner{display:grid;grid-template-columns:1fr;gap:28px}
  .message-photo{width:min(100%,540px);margin:0 auto}
  .message-photo img{height:auto;aspect-ratio:4/3;object-position:center 42%}
  .purpose-steps{margin-top:40px}
  .purpose-steps>li{min-height:160px;padding:22px 18px 25px}
  .purpose-steps>li strong{font-size:27px}
}
@media(max-width:520px){
  .hero{height:clamp(590px,calc(430px + 50vw),645px)}
  .hero h1{font-size:clamp(32px,9.7vw,52px)}
  .hero-scene{width:140%;right:-20%;bottom:4%}
  .hero-scroll{bottom:15px}
  .brand-spark{width:13px;height:13px;top:-3px;right:-2px}
  .purpose{padding:94px 20px 80px}
  .purpose-steps{display:block;margin-top:32px}
  .purpose-steps>li{min-height:0;display:grid;grid-template-columns:47px 1fr;gap:10px;align-items:center;padding:20px 4px;border-right:0;border-bottom:1px solid #bcb7a9}
  .purpose-steps>li:last-child{border-bottom:0}
  .purpose-steps>li::before{left:0;top:0;width:36px;height:2px}
  .purpose-steps>li strong{font-size:27px;margin:0 0 4px}
  .purpose-steps>li small{font-size:12px}
  .step-index{font-size:12px;align-self:start;padding-top:6px}
  .message{padding:74px 20px}
  .message-inner{gap:26px}
  .message-photo img{aspect-ratio:4/3}
  .about-copy>p:not(.section-kicker),.service-copy p{font-size:12px}
  .company-list dd{font-size:12px;overflow-wrap:anywhere}
}

