@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
:root{--ink:#17251f;--green:#19533f;--mint:#4ed3b0;--coral:#f47c68;--paper:#f7f5ef;--white:#fffefb;--line:#d9ded5;--muted:#6e7971;--mono:'DM Mono',monospace;--sans:'Manrope','Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.7}a{color:inherit;text-decoration:none}.site-shell{overflow:hidden}.site-header{height:88px;padding:0 6vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:11px}.brand strong{display:block;font-size:21px;letter-spacing:-.08em;line-height:1}.brand small{display:block;color:#6d7972;font:9px/1.2 var(--mono);letter-spacing:.08em;margin-top:5px}.brand-mark{width:28px;height:28px;border:1px solid var(--green);border-radius:50%;display:flex;align-items:flex-end;justify-content:center;gap:2px;padding:6px}.brand-mark i{display:block;width:3px;background:var(--coral);border-radius:3px}.brand-mark i:nth-child(1){height:5px}.brand-mark i:nth-child(2){height:10px}.brand-mark i:nth-child(3){height:15px}.site-nav{display:flex;gap:27px;align-items:center;font:10px var(--mono);letter-spacing:.08em}.site-nav a{position:relative}.site-nav a:not(.nav-contact)::after{content:'';position:absolute;left:0;bottom:-9px;width:0;height:2px;background:var(--coral);transition:width .25s}.site-nav a:hover::after{width:100%}.nav-contact{background:var(--green);color:var(--white);padding:13px 19px;border-radius:99px}.nav-contact span{color:var(--mint);margin-left:13px}.menu-toggle{display:none;border:0;background:none;font:10px var(--mono);letter-spacing:.1em}.menu-toggle span{font-size:19px;margin-left:8px}.section-pad{padding-left:11vw;padding-right:11vw}.eyebrow,.section-tag{font:10px var(--mono);letter-spacing:.1em;color:#7d8c82}.section-tag span{color:var(--coral);margin-right:10px}.hero{min-height:670px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6vw;padding-top:73px;padding-bottom:90px;position:relative}.hero::before{content:'01 / HOME';position:absolute;right:11vw;top:34px;color:#a3aaa4;font:10px var(--mono)}.hero h1{font-size:clamp(55px,7.7vw,105px);line-height:1.05;letter-spacing:-.09em;margin:23px 0 30px;font-weight:800}.hero h1 em,.concept h2 em,.section-heading h2 em,.challenge h2 em,.solution h2 em,.contact h2 em{font-style:normal;color:var(--coral)}.hero-lead{max-width:500px;color:var(--muted);font-size:13px;line-height:2.15}.round-link{display:inline-flex;align-items:center;gap:25px;margin-top:35px;border-bottom:1px solid var(--ink);padding-bottom:8px;font:11px var(--mono)}.round-link span{color:var(--coral);font-size:17px}.hero-art{height:475px;background:var(--green);position:relative;overflow:hidden;border-radius:50% 50% 2px 2px}.orbit{border:1px solid rgba(78,211,176,.4);border-radius:50%;position:absolute}.orbit-a{width:520px;height:520px;left:-50px;top:-40px}.orbit-b{width:350px;height:350px;left:35px;top:45px}.art-device{position:absolute;transform:rotate(15deg);border:1px solid rgba(255,255,255,.5);border-radius:15px}.art-back{width:176px;height:315px;left:24%;top:80px;background:linear-gradient(140deg,#dfeae2,#83a69a)}.art-back span{position:absolute;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#eaf5ef 0 8%,#445f58 9% 30%,#a6c2b6 31% 40%,#334f47 41%);top:22px;right:22px}.art-front{width:200px;height:350px;left:40%;top:57px;background:#152a22;box-shadow:18px 28px 50px rgba(0,0,0,.22);display:flex;align-items:center;justify-content:center}.art-front small{position:absolute;top:22px;left:20px;color:#a7d5c1;font:8px var(--mono);letter-spacing:.1em}.art-front b{font-size:83px;color:var(--mint);font-weight:400;transform:rotate(-14deg)}.art-front i{position:absolute;bottom:30px;width:38px;height:2px;background:var(--coral)}.art-label{position:absolute;color:rgba(255,255,255,.6);font:10px/1.45 var(--mono);letter-spacing:.11em}.art-label b{color:var(--mint);font-weight:400}.label-a{top:32px;left:30px}.label-b{right:29px;bottom:28px;text-align:right}.concept{background:var(--white);padding-top:125px;padding-bottom:115px}.concept-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;margin-top:52px}.concept h2,.section-heading h2,.challenge h2,.solution h2{font-size:clamp(35px,4.8vw,66px);line-height:1.2;letter-spacing:-.08em;margin:0;font-weight:800}.concept-grid p{font-size:13px;color:var(--muted);line-height:2.1;margin:0 0 20px}.concept-flow{display:grid;grid-template-columns:1fr 60px 1fr 60px 1fr;align-items:center;gap:18px;border-top:1px solid var(--line);margin-top:70px;padding-top:29px}.concept-flow>div{display:grid;grid-template-columns:42px 1fr}.concept-flow span{color:var(--coral);font:10px var(--mono)}.concept-flow strong{font-size:20px}.concept-flow small{grid-column:2;color:var(--muted);font-size:11px;line-height:1.8;margin-top:8px}.concept-flow>b{font-size:24px;color:var(--coral);font-weight:400}.service{padding-top:125px;padding-bottom:130px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:58px}.section-heading>p{color:var(--muted);font-size:12px;line-height:2;margin:0 7vw 8px 0}.service-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px}.service-card{background:var(--white);padding:29px 30px 33px;min-height:435px;border:1px solid var(--line);transition:transform .3s,box-shadow .3s}.service-card:hover{transform:translateY(-7px);box-shadow:0 18px 35px rgba(23,37,31,.08)}.service-main{background:var(--green);color:var(--white);border-color:var(--green)}.service-card-top{display:flex;justify-content:space-between;font:10px var(--mono);letter-spacing:.08em}.service-card-top b{font-size:18px;color:var(--coral);font-weight:400}.service-visual{height:177px;margin:25px -1px 26px;background:rgba(255,255,255,.09);position:relative;overflow:hidden}.mini-device{position:absolute;width:105px;height:180px;border:1px solid rgba(255,255,255,.7);border-radius:12px;left:36%;top:20px;transform:rotate(19deg);background:linear-gradient(135deg,#9fbbb0,#23483c);box-shadow:20px 10px 30px rgba(0,0,0,.2)}.mini-device.second{left:48%;top:9px;transform:rotate(32deg);background:#dce8df}.service-visual span{position:absolute;bottom:18px;left:20px;color:var(--mint);font:10px/1.45 var(--mono)}.service-card h3{font-size:21px;letter-spacing:-.05em;margin:0 0 9px}.service-card p{color:var(--muted);font-size:12px;line-height:1.9;margin:0}.service-main p{color:#b8d1c6}.service-card>a{display:inline-block;margin-top:24px;border-bottom:1px solid currentColor;padding-bottom:4px;font:10px var(--mono)}.service-card>a span{color:var(--coral);margin-left:10px}.service-icon{height:177px;display:flex;align-items:center;justify-content:center;color:var(--green);font-size:118px;font-weight:300;line-height:1;margin:25px 0 26px;background:#e8f0e8}.icon-check{font-size:98px;color:var(--coral)}.challenge{background:var(--green);color:var(--white);padding-top:115px;padding-bottom:115px;display:grid;grid-template-columns:1fr 1fr;gap:9vw}.challenge .section-tag{color:#aed0c2}.challenge h2{margin-top:50px}.challenge h2 em{color:var(--mint)}.worry-list{border-top:1px solid rgba(255,255,255,.3)}.worry-list>div{display:flex;gap:26px;align-items:center;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.3)}.worry-list span{font:10px var(--mono);color:var(--mint)}.worry-list p{font-size:15px;line-height:1.55;margin:0;color:#deeee6}.worry-list strong{color:var(--mint)}.solution{background:var(--white);padding-top:125px;padding-bottom:135px;display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw}.solution-head h2{margin-top:46px}.solution-head>p{color:var(--muted);font-size:12px;line-height:2;margin-top:28px}.point-list{border-top:1px solid var(--line)}.point{display:grid;grid-template-columns:78px 1fr 34px;gap:20px;padding:26px 0;border-bottom:1px solid var(--line);align-items:start}.point>span{font:10px var(--mono);color:var(--coral);padding-top:3px}.point h3{font-size:18px;margin:0 0 6px}.point p{color:var(--muted);font-size:12px;line-height:1.9;margin:0}.point>b{font:28px var(--mono);color:#dae1db;font-weight:400}.news{padding-top:105px;padding-bottom:115px}.news .section-heading{margin-bottom:38px}.text-link{font:10px var(--mono);border-bottom:1px solid var(--ink);padding-bottom:6px}.text-link span{color:var(--coral);margin-left:12px}.news-item{display:grid;grid-template-columns:120px 70px 1fr;gap:20px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0}.news-item time,.news-category{font:10px var(--mono);color:var(--muted)}.news-category{color:var(--coral)}.news-item a{font-size:13px}.news-item a span{float:right;color:var(--coral);font:18px var(--sans)}.contact{background:var(--mint);padding-top:105px;padding-bottom:105px;position:relative;min-height:500px;overflow:hidden}.contact .section-tag{color:#35786a;position:relative;z-index:1}.contact-inner{position:relative;z-index:1;margin-top:48px}.contact h2{font-size:clamp(42px,6.2vw,86px);letter-spacing:-.09em}.contact h2 em{color:var(--green)}.contact-inner p{font-size:13px;max-width:480px;line-height:2;margin:24px 0 30px}.contact-button{display:inline-flex;gap:28px;align-items:center;background:var(--green);color:var(--white);padding:16px 22px;font-size:12px}.contact-button span{color:var(--mint)}.contact-mark{position:absolute;right:11vw;top:90px;width:250px;height:250px;border:1px solid rgba(23,37,31,.24);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:160px;font-weight:800;color:rgba(23,37,31,.7);transform:rotate(13deg)}.contact-mark::after{content:'kakeru / connect';position:absolute;bottom:39px;font:10px var(--mono);letter-spacing:.1em}.site-footer{background:#10271f;color:var(--white);padding:57px 6vw 26px}.footer-main{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px}.brand-footer .brand-mark{border-color:#c7e0d5}.brand-footer small{color:#a2b9ae}.footer-address{font-size:11px;color:#adc1b6;line-height:1.9}.footer-address p{margin:0}.footer-address a{color:var(--mint)}.footer-nav{display:flex;gap:17px;justify-content:end;align-items:start;flex-wrap:wrap;font:10px var(--mono);color:#d3e4db}.footer-bottom{border-top:1px solid #355044;margin-top:64px;padding-top:18px;display:flex;justify-content:space-between;color:#91aa9e;font:9px var(--mono)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease}.reveal.is-visible{opacity:1;transform:none}@media(max-width:820px){.site-header{height:72px;padding:0 6vw}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--white);padding:16px 6vw 23px;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 15px 25px rgba(23,37,31,.08)}.site-nav.is-open{display:flex}.site-nav a{padding:12px 0;border-bottom:1px solid var(--line)}.site-nav .nav-contact{text-align:center;margin-top:10px;border:0;padding:13px}.section-pad{padding-left:6vw;padding-right:6vw}.hero{display:block;padding-top:72px;padding-bottom:73px}.hero::before{right:6vw}.hero h1{font-size:clamp(53px,14vw,75px)}.hero-lead{font-size:12px}.hero-art{height:340px;margin-top:54px}.art-back{width:140px;height:250px;left:23%;top:63px}.art-front{width:158px;height:280px;left:41%;top:43px}.art-front b{font-size:70px}.orbit-a{width:370px;height:370px;left:-55px;top:-17px}.orbit-b{width:265px;height:265px;left:18px;top:35px}.concept{padding-top:88px;padding-bottom:90px}.concept-grid{display:block;margin-top:40px}.concept h2{font-size:36px}.concept-grid p{font-size:12px;margin-top:28px}.concept-flow{grid-template-columns:1fr;gap:20px;margin-top:52px;padding-top:25px}.concept-flow>b{display:none}.concept-flow>div{grid-template-columns:42px 1fr}.service{padding-top:88px;padding-bottom:90px}.section-heading{display:block;margin-bottom:40px}.section-heading>p{margin:20px 0 0}.section-heading h2{font-size:38px}.service-grid{display:block}.service-card{min-height:0;margin-bottom:15px;padding:25px 23px 28px}.service-visual,.service-icon{height:145px;margin:22px 0}.challenge{display:block;padding-top:87px;padding-bottom:90px}.challenge h2{margin-top:40px;font-size:38px}.worry-list{margin-top:49px}.worry-list p{font-size:14px}.solution{display:block;padding-top:87px;padding-bottom:95px}.solution-head h2{margin-top:40px;font-size:38px}.point-list{margin-top:52px}.point{grid-template-columns:68px 1fr 23px;gap:12px}.point h3{font-size:16px}.point p{font-size:11px}.news{padding-top:77px;padding-bottom:88px}.news .section-heading{display:flex}.news-item{grid-template-columns:90px 45px 1fr;gap:9px}.news-item a{font-size:11px}.contact{padding-top:87px;padding-bottom:95px;min-height:470px}.contact-inner{margin-top:40px}.contact h2{font-size:46px}.contact-inner p{font-size:12px}.contact-mark{width:160px;height:160px;right:-18px;top:265px;font-size:100px}.contact-mark::after{bottom:22px;font-size:8px}.footer-main{grid-template-columns:1fr auto}.footer-address{grid-column:1/-1;grid-row:2}.footer-nav{grid-column:1/-1;justify-content:start;grid-row:3;border-top:1px solid #355044;padding-top:19px}.footer-bottom{display:block;margin-top:50px}.footer-bottom span{display:block;margin-top:6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* Hero product photography */
.hero-art.photo-art{background:var(--green);border-radius:2px;isolation:isolate}.device-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center;position:relative;z-index:0}.photo-art::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(16,54,42,.12),transparent 55%,rgba(10,35,27,.2));pointer-events:none;z-index:1}.photo-art .art-label{z-index:2}.photo-art .label-a{top:30px;left:30px}.photo-art .label-b{right:29px;bottom:28px}@media(max-width:820px){.hero-art.photo-art{height:340px}.photo-art .label-a{top:22px;left:22px}.photo-art .label-b{right:22px;bottom:22px}}

/* Legal pages */
.legal-body{background:var(--paper)}.legal-back{font:10px var(--mono);letter-spacing:.1em;border-bottom:1px solid var(--ink);padding-bottom:6px}.legal-back span{color:var(--coral);margin-left:12px}.legal-page{max-width:900px;margin:0 auto;padding:100px 6vw 130px}.legal-kicker{color:var(--coral);font:10px var(--mono);letter-spacing:.12em}.legal-page h1{font-size:clamp(48px,7vw,88px);line-height:1.05;letter-spacing:-.09em;margin:28px 0 30px}.legal-page h1 em{font-style:normal;color:var(--coral)}.legal-lead{max-width:680px;color:var(--muted);font-size:14px;line-height:2.15;margin:0}.legal-date{color:#89958b;font:10px var(--mono);margin:28px 0 75px}.legal-content{border-top:1px solid var(--line)}.legal-content section{padding:34px 0;border-bottom:1px solid var(--line)}.legal-content h2{font-size:20px;letter-spacing:-.04em;margin:0 0 14px}.legal-content p,.legal-content li{color:var(--muted);font-size:13px;line-height:2.05}.legal-content p{margin:0}.legal-content ul{margin:8px 0 0;padding-left:1.4em}.legal-contact{background:var(--white);border-left:3px solid var(--mint);padding:19px 22px;color:var(--muted);font-size:13px;line-height:2}.legal-contact strong{color:var(--ink)}.legal-contact a{color:var(--green);text-decoration:underline}.legal-footer{padding-top:25px}.legal-footer .footer-bottom{margin-top:0}.legal-footer a{color:var(--mint)}@media(max-width:820px){.legal-page{padding-top:72px;padding-bottom:90px}.legal-page h1{font-size:51px}.legal-lead{font-size:12px}.legal-date{margin-bottom:50px}.legal-content section{padding:27px 0}.legal-content h2{font-size:18px}.legal-content p,.legal-content li{font-size:12px}.legal-footer .footer-bottom{display:flex}.legal-footer .footer-bottom span{margin-top:0}}

/* kakeru brand logo */
.brand-logo{width:34px;height:34px;display:block;object-fit:cover;border-radius:50%;flex:0 0 auto}.brand-footer .brand-logo{width:38px;height:38px}@media(max-width:820px){.brand-logo{width:30px;height:30px}.brand-footer .brand-logo{width:34px;height:34px}}

/* Logo candidate gallery */
.logo-candidates-page{max-width:1120px;margin:0 auto;padding:95px 6vw 120px}.logo-candidates-page h1{font-size:clamp(48px,7vw,88px);line-height:1.05;letter-spacing:-.09em;margin:28px 0 30px}.logo-candidates-page h1 em{font-style:normal;color:var(--coral)}.logo-candidates-page .legal-lead{max-width:680px}.candidate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:72px}.candidate-grid article{background:var(--white);border:1px solid var(--line)}.candidate-image{aspect-ratio:1/1;background:var(--paper);overflow:hidden}.candidate-image img{width:100%;height:100%;display:block;object-fit:cover}.candidate-meta{padding:22px 22px 25px}.candidate-meta span{font:10px var(--mono);color:var(--coral);letter-spacing:.1em}.candidate-meta h2{font-size:24px;letter-spacing:-.05em;margin:10px 0 8px}.candidate-meta p{color:var(--muted);font-size:12px;line-height:1.8;margin:0}.candidate-note{color:#89958b;font:10px var(--mono);margin-top:26px}@media(max-width:820px){.logo-candidates-page{padding-top:70px}.candidate-grid{grid-template-columns:1fr;margin-top:50px;gap:22px}.candidate-meta{padding:18px 18px 21px}}

/* Name story */
.name-story{background:var(--paper);padding-top:120px;padding-bottom:120px}.name-story-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:end;margin-top:48px}.name-story h2{font-size:clamp(38px,5vw,68px);line-height:1.15;letter-spacing:-.08em;margin:0;font-weight:800}.name-story h2 em{font-style:normal;color:var(--coral)}.name-story-intro>p{color:var(--muted);font-size:13px;line-height:2.1;margin:0 0 4px}.name-story-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);margin-top:72px;border:1px solid var(--line)}.name-story-grid article{background:var(--white);padding:24px 20px 27px;min-height:230px}.name-story-grid article>span{font:10px var(--mono);color:var(--coral);letter-spacing:.04em}.name-story-grid h3{font-size:19px;line-height:1.45;letter-spacing:-.06em;margin:20px 0 12px}.name-story-grid p{color:var(--muted);font-size:11px;line-height:1.9;margin:0}@media(max-width:1100px){.name-story-grid{grid-template-columns:repeat(3,1fr)}.name-story-grid article:nth-child(4),.name-story-grid article:nth-child(5){grid-column:span 1}}@media(max-width:820px){.name-story{padding-top:88px;padding-bottom:90px}.name-story-intro{display:block;margin-top:40px}.name-story-intro>p{font-size:12px;margin-top:28px}.name-story-grid{grid-template-columns:1fr 1fr;margin-top:50px}.name-story-grid article{min-height:210px;padding:20px 16px}.name-story-grid article:last-child{grid-column:span 2}.name-story-grid h3{font-size:17px}}

/* User-supplied kakeru logo */
.brand-logo{width:210px;height:auto;display:block;object-fit:contain;border-radius:0;flex:0 0 auto}.brand-footer .brand-logo{width:230px}@media(max-width:820px){.brand-logo{width:170px}.brand-footer .brand-logo{width:190px}}

/* White knockout footer logo; retain the original color logo in the header. */
.site-footer .brand-footer {
  justify-self: start;
  align-self: start;
  max-width: 100%;
}
.site-footer .brand-footer .brand-logo {
  max-width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
}
