:root{--black:#050505;--white:#f7f7f4;--gray:#aaa;--line:#d3d3ce;--accent:#d8ffbe;--accent-dark:#1d6b42;--sans:"DM Sans","Noto Sans JP",sans-serif;--jp:"Noto Sans JP",sans-serif;--mono:"JetBrains Mono","SFMono-Regular",Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--black);font-family:var(--sans);line-height:1.75;overflow-x:hidden}a{color:inherit}img{max-width:100%;height:auto;display:block}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:99;background:linear-gradient(90deg,#d8ffbe,#7ce8c8,#a8c8ff);transform-origin:0 50%;transform:scaleX(0);pointer-events:none;transition:transform .08s linear}
.site-header{position:fixed;inset:0 0 auto;z-index:50;height:88px;padding:0 4vw;display:flex;align-items:center;color:#fff;border-bottom:1px solid #ffffff26;transition:height .35s cubic-bezier(.22,1,.36,1),background .35s ease,backdrop-filter .35s ease}.site-header.scrolled,.inner-page .site-header{height:72px;background:#050505eb;backdrop-filter:blur(14px)}.logo{display:flex;align-items:center;text-decoration:none;font-size:24px;font-weight:700;letter-spacing:-1.5px;white-space:nowrap}.logo-symbol{display:inline-block;position:relative;width:30px;height:28px;margin-right:8px;font:16px/1 sans-serif;padding-left:8px;transition:transform .45s cubic-bezier(.22,1,.36,1)}.logo:hover .logo-symbol{transform:rotate(18deg) scale(1.06)}.logo-symbol>i,.logo-symbol>b{position:absolute;font-style:normal;font-weight:400}.logo-symbol i{left:0;bottom:0}.logo-symbol b{right:0;bottom:0}.main-nav{display:flex;margin-left:auto;height:100%}.main-nav>a{display:flex;justify-content:center;flex-direction:column;text-decoration:none;padding:0 20px;font-family:var(--jp);font-size:12px;border-left:1px solid #ffffff20;position:relative;transition:background .25s ease,color .25s ease}.main-nav>a:after{content:"";position:absolute;left:20px;right:20px;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.22,1,.36,1)}.main-nav>a:hover{background:#ffffff0d}.main-nav>a:hover:after{transform:scaleX(1)}.main-nav small{font-size:8px;letter-spacing:.12em;color:#888}.header-contact{height:100%;display:flex;align-items:center;text-decoration:none;background:#fff;color:#000;padding:0 27px;font-size:12px;font-weight:700;transition:background .25s ease,color .25s ease}.header-contact:hover{background:var(--accent);color:#050505}.header-contact span{margin-left:22px;transition:transform .25s ease}.header-contact:hover span{transform:translate(3px,-3px)}.menu-button,.mobile-menu{display:none}.hero{min-height:100svh;background:#050505;color:#fff;position:relative;overflow:hidden;display:flex;align-items:center;padding:150px 7vw 110px}#balance-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.88;cursor:crosshair}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to right,transparent,black);pointer-events:none}.hero-content{position:relative;z-index:2;max-width:1000px}.kicker,.section-label{font-size:10px;letter-spacing:.22em;font-weight:700;text-transform:uppercase}.hero h1,.split-heading h2,.about-band h2,.cta-section h2,.page-title h1{font-family:var(--jp);font-weight:500;letter-spacing:-.06em;line-height:1.13}.hero h1{font-size:clamp(55px,8.4vw,126px);margin:35px 0}.hero h1 span{-webkit-text-stroke:1px #fff;color:transparent;transition:color .4s ease,text-shadow .4s ease}.hero h1:hover span{color:#d8ffbe22;text-shadow:0 0 36px #d8ffbe33}.hero-copy{font-family:var(--jp);color:#bbb;font-size:clamp(14px,1.3vw,18px)}.arrow-link{display:inline-flex;justify-content:space-between;align-items:center;width:250px;text-decoration:none;border-bottom:1px solid;padding:12px 0;margin-top:28px;font-size:11px;letter-spacing:.1em;transition:width .3s cubic-bezier(.22,1,.36,1),color .25s ease,border-color .25s ease}.arrow-link:hover{width:268px}.arrow-link span{transition:transform .25s ease}.arrow-link:hover span{transform:translateX(4px)}.light{color:#fff}.hero-legend{position:absolute;z-index:2;bottom:30px;left:7vw;right:7vw;border-top:1px solid #444;padding-top:16px;display:flex;gap:28px;align-items:center;font-size:9px;letter-spacing:.1em;color:#bbb}.hero-legend b{margin-left:auto}.telemetry-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid #ffffff26;border-radius:999px;background:#ffffff08;color:#d8ffbe;font-family:var(--mono);font-size:9px;letter-spacing:.08em}.telemetry-dot{width:6px;height:6px;border-radius:50%;background:#d8ffbe;box-shadow:0 0 10px #d8ffbe;animation:pulseDot 2s infinite}
@keyframes pulseDot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}
.white-section,.black-section,.cta-section{padding:120px 7vw;position:relative}.black-section{background:#050505;color:#fff}.section-label{margin-bottom:65px;color:#777}.split-heading{display:grid;grid-template-columns:1.1fr .55fr;gap:10vw;align-items:end}.split-heading h2{font-size:clamp(42px,5.3vw,76px);margin:0}.split-heading>p,.lead-copy{font-family:var(--jp);color:#666}.black-section .split-heading>p{color:#999}.concept-diagram{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.2fr;gap:18px;align-items:center;margin-top:100px;border-block:1px solid var(--line);padding:32px 0;position:relative}.concept-diagram div{aspect-ratio:1;max-width:160px;border:1px solid #999;border-radius:50%;display:grid;place-items:center;align-content:center;transition:transform .4s cubic-bezier(.22,1,.36,1),background .4s ease,color .4s ease,border-color .4s ease;cursor:pointer;background:var(--white);position:relative;z-index:1}.concept-diagram div:hover{transform:scale(1.07);background:#050505;color:#fff;border-color:#050505}.concept-diagram span{font-size:30px}.concept-diagram p{font-size:9px;letter-spacing:.15em;margin:4px 0 0}.concept-diagram i{font-style:normal}.concept-diagram strong{font-size:clamp(18px,2.2vw,32px)}.service-rows{margin-top:80px;border-top:1px solid #444}.service-rows article,.service-row-link{display:grid;grid-template-columns:70px 1fr 1fr 30px;gap:20px;align-items:center;padding:26px 5px;border-bottom:1px solid #333;transition:padding .3s cubic-bezier(.22,1,.36,1),background .3s ease;text-decoration:none;color:inherit}.service-rows article:hover,.service-row-link:hover{padding-left:18px;background:#111}.service-rows span{font-size:10px;color:#777;font-family:var(--mono)}.service-rows h3{font-family:var(--jp);font-size:21px;margin:0}.service-rows p{color:#888;font-family:var(--jp);font-size:12px;margin:0}.service-rows b{transition:transform .25s ease}.service-rows article:hover b,.service-row-link:hover b{transform:translate(4px,-4px);color:var(--accent)}.featured-case{display:grid;grid-template-columns:.85fr 1.15fr;margin-top:85px;border:1px solid #bbb}.case-art{min-height:660px;background:#080808;position:relative;overflow:hidden}.case-art canvas{width:100%;height:100%;position:absolute}.case-art>span{position:absolute;left:35px;bottom:20px;color:#fff;font-size:100px;font-weight:600}.case-detail{padding:60px}.case-detail>p:first-child,.case-cards span{font-size:9px;letter-spacing:.15em;color:#777}.case-detail h3{font-family:var(--jp);font-size:clamp(28px,3.2vw,45px);line-height:1.45;margin:27px 0}.case-detail>p{font-family:var(--jp);color:#676767}.case-detail .case-lead{font-weight:600;color:#111}.case-columns{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:45px;padding-top:30px;border-top:1px solid var(--line);font:12px var(--jp)}.case-columns ul{padding:0;list-style:none}.case-columns li{padding:5px 0}.case-columns li:before{content:"— ";color:#888}.case-cards{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid #bbb}.case-cards article{min-height:260px;padding:30px;border-right:1px solid #bbb;border-bottom:1px solid #bbb}.case-cards h3{font:19px var(--jp);margin:45px 0 20px}.case-cards p{font:12px var(--jp);color:#777}.about-band-inner{display:grid;grid-template-columns:1.2fr .5fr;gap:10vw}.about-band h2{font-size:clamp(42px,5.2vw,72px);margin:0}.about-band-inner>div{font-family:var(--jp);color:#aaa}.cta-section{background:#eee}.cta-section h2{font-size:clamp(50px,7vw,100px);margin:20px 0 70px}.mega-link{font:clamp(25px,4.5vw,68px) var(--jp);text-decoration:none;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid;padding-bottom:25px;transition:padding-left .35s cubic-bezier(.22,1,.36,1)}.mega-link:hover{padding-left:18px}.site-footer{background:#050505;color:#fff;padding:70px 7vw 30px;display:grid;grid-template-columns:1fr 1.4fr auto;gap:50px;align-items:end;border-top:1px solid #ffffff1a}.site-footer>div>p,.site-footer>p{font-size:9px;letter-spacing:.12em;color:#777}.site-footer nav{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px 26px}.site-footer nav a{font:11px var(--jp);text-decoration:none;color:#aaa;transition:color .2s ease}.site-footer nav a:hover{color:#fff}.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1)}.reveal.visible{opacity:1;transform:none}
.page-hero{background:#050505;color:#fff;padding:180px 7vw 90px;min-height:480px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.page-hero canvas[data-ambient-canvas],.lp-hero canvas[data-ambient-canvas]{position:absolute;inset:0;width:100%;height:100%;opacity:.58;pointer-events:none}.page-title{position:relative;z-index:2;max-width:1080px}.page-title p{font-size:10px;letter-spacing:.2em;color:#888;text-transform:uppercase}.page-title h1{font-size:clamp(46px,7vw,104px);margin:15px 0}.page-title>span{font-family:var(--jp);color:#aaa;display:inline-block;max-width:740px}.page-content{padding:110px 7vw}.content-narrow{max-width:980px;margin:0 auto}.content-block{padding:75px 0;border-top:1px solid #bbb}.content-block:first-child{border-top:0}.content-block .section-label{margin-bottom:30px}.content-block h2{font:500 clamp(32px,4vw,55px)/1.4 var(--jp);letter-spacing:-.04em}.content-block h3{font:22px var(--jp);margin-top:45px}.content-block p,.policy-content p,.policy-content li{font-family:var(--jp);color:#555}.mission-copy{display:grid;grid-template-columns:.7fr 1.3fr;gap:10vw}.company-table{border-top:1px solid #aaa}.company-row{display:grid;grid-template-columns:220px 1fr;padding:25px 0;border-bottom:1px solid #ccc;font-family:var(--jp)}.company-row b{font-size:12px}.positions{border-top:1px solid #aaa}.position{padding:35px 0;border-bottom:1px solid #bbb}.position summary{cursor:pointer;display:flex;justify-content:space-between;font:600 25px var(--jp);list-style:none}.position summary:after{content:"＋"}.position[open] summary:after{content:"−"}.position-body{max-width:780px;padding-top:30px;font-family:var(--jp);color:#555}.position-body h4{margin:24px 0 5px;color:#111}.benefits{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid #bbb}.benefit{padding:25px;min-height:210px;border-right:1px solid #bbb;border-bottom:1px solid #bbb;transition:background .3s ease,transform .3s ease}.benefit:hover{background:#fff;transform:translateY(-4px)}.benefit span{font-size:32px}.benefit h3{font-size:15px}.benefit p{font-size:11px}.contact-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:10vw}.contact-intro h2{font:38px var(--jp)}.contact-form{border-top:1px solid #aaa}.form-row{padding:26px 0;border-bottom:1px solid #ccc}.form-row label{display:block;font:600 13px var(--jp);margin-bottom:11px}.required{color:#555;font-size:9px;margin-left:8px;padding:2px 6px;border:1px solid #bbb}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #aaa;background:#fff;padding:15px;font:15px var(--jp);border-radius:0;transition:border-color .2s ease,box-shadow .2s ease}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:#050505;box-shadow:0 0 0 3px #05050512}.contact-form textarea{min-height:180px;resize:vertical}.consent{display:flex;gap:10px;align-items:flex-start;font:12px var(--jp)}.consent input{width:auto;margin-top:6px}.submit-button{width:100%;background:#050505;color:#fff;border:0;padding:22px 26px;font:600 14px var(--jp);cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .25s ease,transform .2s ease}.submit-button:hover{background:#1c1c1c;transform:translateY(-1px)}.submit-button:disabled{opacity:.5}.form-status{font:13px var(--jp);margin:18px 0}.form-status.success{color:#1c6d38}.form-status.error{color:#a22020}.policy-content{max-width:920px;margin:auto}.policy-content h2{font:600 24px var(--jp);margin-top:55px;padding-bottom:10px;border-bottom:1px solid var(--line)}.policy-content h3{font:600 18px var(--jp);margin-top:32px}.policy-content li{margin:8px 0}
@media(max-width:820px){.site-header{height:70px;padding:0 22px}.main-nav,.header-contact{display:none}.menu-button{display:flex;margin-left:auto;width:42px;height:42px;border:0;background:none;flex-direction:column;justify-content:center;align-items:center;gap:7px}.menu-button span{width:23px;height:1px;background:#fff;transition:.25s}.menu-button[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-menu{position:fixed;inset:70px 0 auto;display:flex;flex-direction:column;gap:15px;padding:28px 22px 38px;background:#050505f8;backdrop-filter:blur(14px);transform:translateY(-130%);transition:.3s;z-index:-1;max-height:calc(100svh - 70px);overflow-y:auto}.mobile-menu.open{transform:none}.mobile-menu a{color:#fff;text-decoration:none;font:15px var(--jp)}.hero{padding:130px 24px 110px;min-height:790px}.hero h1{font-size:52px}.hero-copy br{display:none}.hero-legend{left:24px;right:24px;flex-wrap:wrap}.hero-legend b{display:none}.white-section,.black-section,.cta-section,.page-content{padding:80px 24px}.split-heading,.about-band-inner,.mission-copy,.contact-layout{grid-template-columns:1fr;gap:30px}.split-heading h2,.about-band h2{font-size:39px}.concept-diagram{grid-template-columns:1fr auto 1fr}.concept-diagram div:nth-of-type(3),.concept-diagram i:nth-of-type(2),.concept-diagram b{display:none}.service-rows article,.service-row-link{grid-template-columns:35px 1fr 20px}.service-rows p{grid-column:2}.featured-case{grid-template-columns:1fr}.case-art{min-height:330px}.case-art>span{font-size:65px}.case-detail{padding:35px 24px}.case-columns,.case-cards{grid-template-columns:1fr}.cta-section h2{font-size:50px}.site-footer{grid-template-columns:1fr}.site-footer nav{grid-template-columns:1fr 1fr}.page-hero{padding:140px 24px 60px;min-height:420px}.page-title h1{font-size:44px}.company-row{grid-template-columns:1fr;gap:8px}.benefits{grid-template-columns:1fr 1fr}.position summary{font-size:19px}.contact-intro h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
.form-status.toast{position:fixed;z-index:100;right:28px;bottom:28px;max-width:min(520px,calc(100vw - 40px));margin:0;padding:17px 52px 17px 20px;background:#050505;color:#fff;border:1px solid #333;box-shadow:0 16px 50px #0004;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .25s ease,transform .25s ease}.form-status.toast:after{content:"×";position:absolute;right:20px;color:#888}.form-status.toast.visible{opacity:1;transform:none}.form-status.toast.error{background:#fff;color:#9b1c1c;border-color:#9b1c1c}@media(max-width:820px){.form-status.toast{right:20px;bottom:20px;left:20px;max-width:none}}

/* Mission and editorial case-study refinements */
.hero-copy strong{color:#fff;font-weight:600}.content-narrow{max-width:1320px}.mission-copy{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(48px,6vw,96px);align-items:start}.mission-copy>div{min-width:0}.mission-copy h2{font-size:clamp(30px,2.8vw,44px);line-height:1.38;margin:0;overflow-wrap:anywhere}.mission-copy h2 span{display:block;white-space:normal}.mission-copy>div:last-child{max-width:640px;padding-top:34px}.mission-copy>div:last-child h3{font-size:clamp(18px,1.45vw,23px);line-height:1.65;margin:0 0 22px}.mission-copy>div:last-child p{font-size:clamp(14px,1vw,16px);line-height:2;margin:0 0 20px}.case-slider-head{display:flex;justify-content:space-between;align-items:center;margin-top:75px;border-top:1px solid #aaa;padding-top:18px}.case-slider-head p{font-size:11px;letter-spacing:.18em}.case-slider-head button{width:52px;height:52px;border:1px solid #999;background:transparent;font-size:18px;cursor:pointer;transition:.2s}.case-slider-head button:hover{background:#050505;color:#fff}.case-slider{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:24px max(7vw,calc((100vw - 1460px)/2)) 18px 0}.case-slider::-webkit-scrollbar{display:none}.case-slide{flex:0 0:min(1080px,82vw);min-height:620px;display:grid;grid-template-columns:220px 1fr;border:1px solid #aaa;scroll-snap-align:start;background:#f7f7f4}.case-index{background:#050505;color:#fff;padding:30px;font-size:10px;letter-spacing:.16em;writing-mode:vertical-rl}.case-slide .case-detail{padding:clamp(38px,4.5vw,70px)}.case-slide .case-detail h3{max-width:780px}.case-slide .case-detail>p{max-width:760px}
@media(max-width:1100px) and (min-width:821px){.content-narrow{max-width:100%}.mission-copy{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px}.mission-copy h2{font-size:clamp(28px,2.7vw,36px)}}
@media(max-width:820px){.mission-copy{grid-template-columns:1fr}.mission-copy h2{font-size:clamp(28px,7.5vw,38px)}.mission-copy h2 span{white-space:normal}.mission-copy>div:last-child{padding-top:0}.case-slider-head{margin-top:50px}.case-slider{margin-right:-24px;padding-right:24px;gap:14px}.case-slide{flex-basis:88vw;min-height:auto;grid-template-columns:1fr}.case-index{writing-mode:horizontal-tb;padding:18px 22px}.case-slide .case-detail{padding:30px 22px}.case-slide .case-detail h3{font-size:28px}.case-columns{grid-template-columns:1fr}}

@media(min-width:821px){
  .company-page .mission-copy{grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:clamp(48px,5.5vw,88px);max-width:none;align-items:start}
  .company-page .mission-copy>div:first-child{min-width:0}
  .company-page .mission-copy .section-label{margin:0 0 18px;color:#555;font-size:11px;letter-spacing:.14em}
  .company-page .mission-copy h2{font-size:clamp(30px,3vw,46px);line-height:1.32;letter-spacing:-.04em}
  .company-page .mission-copy>div:last-child{max-width:480px;padding-top:34px;min-width:0}
  .company-page .mission-copy>div:last-child h3{font-size:clamp(17px,1.35vw,21px);line-height:1.75;margin-bottom:18px;font-weight:600}
  .company-page .mission-copy>div:last-child p{font-size:14px;line-height:2;margin-bottom:16px;color:#555}
}

@media(min-width:821px) and (max-width:1180px){
  .company-page .mission-copy{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:36px}
  .company-page .mission-copy h2{font-size:clamp(28px,2.9vw,38px)}
}

/* Readable case-study cards inspired by the original reEPI layout */
.case-slider-head{margin-top:64px}.case-slider{gap:24px;padding:24px 0 12px;align-items:stretch}.case-slide{flex:0 0:calc((100% - 48px)/3);min-width:340px;height:720px;display:flex;flex-direction:column;border:1px solid #d2d2ce;border-radius:3px;overflow:hidden;background:#fff;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease}.case-slide:hover{transform:translateY(-6px);box-shadow:0 24px 48px #00000014}.case-index{height:245px;flex:none;display:flex;align-items:flex-end;padding:24px 26px;color:#fff;font-size:10px;letter-spacing:.16em;writing-mode:horizontal-tb;background-color:#111;background-image:radial-gradient(circle at 72% 28%,#fff4 0 2px,transparent 3px),linear-gradient(135deg,#101010 0 38%,#2c2c2c 38% 39%,#151515 39% 63%,#383838 63% 64%,#0a0a0a 64%)}.case-slide:nth-child(2) .case-index{background-image:linear-gradient(30deg,transparent 48%,#fff3 49% 50%,transparent 51%),linear-gradient(150deg,#111 0 35%,#343434 35% 36%,#181818 36% 67%,#555 67% 68%,#0b0b0b 68%)}.case-slide:nth-child(3) .case-index{background-image:radial-gradient(circle at 28% 65%,transparent 0 52px,#fff3 53px 54px,transparent 55px),radial-gradient(circle at 68% 38%,transparent 0 82px,#fff2 83px 84px,transparent 85px),linear-gradient(125deg,#090909,#303030)}.case-slide:nth-child(4) .case-index{background-image:linear-gradient(90deg,transparent 0 49%,#fff3 50%,transparent 51%),linear-gradient(0deg,transparent 0 49%,#fff2 50%,transparent 51%),linear-gradient(145deg,#050505,#303030)}.case-slide .case-detail{display:flex;flex:1;flex-direction:column;padding:28px 30px 32px}.case-slide .case-detail>p:first-child{margin:0;color:#888}.case-slide .case-detail h3{font-size:clamp(20px,1.55vw,27px);line-height:1.55;margin:20px 0 16px}.case-slide .case-detail>p{font-size:12px;line-height:1.9;margin:0 0 12px}.case-slide .case-detail .case-lead{font-weight:500}.case-slide .case-columns{gap:18px;margin-top:auto;padding-top:18px;font-size:10px}.case-slide .case-columns li{padding:2px 0}.case-slider-head button{background:#fff}
@media(max-width:1100px) and (min-width:821px){.case-slide{flex-basis:calc((100% - 24px)/2);min-width:360px}}
@media(max-width:820px){.case-slider{margin-right:-24px;padding:18px 24px 8px 0}.case-slide{flex-basis:84vw;min-width:280px;height:auto;min-height:610px}.case-index{height:210px}.case-slide .case-detail{padding:25px 22px}.case-slide .case-detail h3{font-size:23px}.case-slide .case-columns{grid-template-columns:1fr;margin-top:18px}}

/* Desktop: one generous landscape case at a time */
@media(min-width:821px){.case-slider{width:calc(100% + 14vw);margin-left:-7vw;gap:28px;padding:24px 3vw 14px;scroll-padding-inline:3vw}.case-slide{flex:0 0:clamp(460px,38vw,680px);min-width:0;height:auto;min-height:650px;border-radius:14px}.case-index{height:clamp(230px,18vw,320px);padding:28px 32px;background-size:cover}.case-slide .case-detail{min-height:330px;padding:34px clamp(30px,3vw,52px) 38px}.case-slide .case-detail h3{font-size:clamp(23px,1.7vw,30px);line-height:1.5;margin:18px 0 14px}.case-slide .case-detail>p{max-width:920px;font-size:13px;line-height:1.9}.case-slide .case-columns{width:100%;max-width:920px;margin-top:22px;font-size:10px}.case-slider-head button{width:60px;height:60px}.case-slider-head button+button{margin-left:-1px}}

/* Diffuse aurora veil; the animation itself keeps every edge soft. */
#balance-canvas[data-curtain]{opacity:.92}

/* ==========================================================================
   Extended Corporate Site Components, Animations, CMS Articles & Product LPs
   ========================================================================== */

/* 3D Tilt & Card Hover Physics */
[data-tilt]{transform-style:preserve-3d;will-change:transform;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .3s ease}

/* Marquee Ticker */
.marquee-band{overflow:hidden;border-block:1px solid var(--line);background:#fff;padding:18px 0;user-select:none}
.black-section .marquee-band{border-color:#262626;background:#0a0a0a}
.marquee-track{display:flex;gap:48px;width:max-content;animation:marqueeScroll 38s linear infinite}
.marquee-band:hover .marquee-track{animation-play-state:paused}
.marquee-item{display:inline-flex;align-items:center;gap:16px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#666;white-space:nowrap}
.marquee-item b{color:var(--black);font-weight:700}
.black-section .marquee-item b{color:#fff}
@keyframes marqueeScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* Features Grid (reEPI 4 Core Strengths from reepi.net) */
.feature-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:64px}
.feature-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px 28px;display:flex;flex-direction:column;gap:18px;position:relative;overflow:hidden;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,border-color .35s ease}
.feature-card:hover{transform:translateY(-8px);box-shadow:0 24px 48px #00000012;border-color:#050505}
.feature-card .feature-num{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:#777}
.feature-card .feature-thumb{height:150px;border-radius:10px;overflow:hidden;background:#f0f0ec;display:flex;align-items:center;justify-content:center}
.feature-card .feature-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.feature-card:hover .feature-thumb img{transform:scale(1.06)}
.feature-card h3{font:600 18px/1.5 var(--jp);margin:0}
.feature-card p{font:13px/1.85 var(--jp);color:#555;margin:0}

/* Cards Grid for Services, Cases, Business Hacks, Products */
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px}
.cards-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px}
.media-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,border-color .35s ease}
.black-section .media-card{background:#0f0f0f;border-color:#2a2a2a;color:#fff}
.media-card:hover{transform:translateY(-7px);box-shadow:0 24px 54px #00000018;border-color:#050505}
.black-section .media-card:hover{border-color:var(--accent)}
.media-card-cover{aspect-ratio:16/10;background:#111;overflow:hidden;position:relative}
.media-card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.media-card:hover .media-card-cover img{transform:scale(1.06)}
.media-card-badge{position:absolute;top:14px;left:14px;background:#050505cc;backdrop-filter:blur(8px);color:#fff;padding:5px 11px;border-radius:999px;font-size:10px;letter-spacing:.12em;font-weight:600}
.media-card-body{padding:28px;display:flex;flex-direction:column;flex:1;gap:12px}
.media-card-meta{font-size:11px;letter-spacing:.12em;color:#777;display:flex;justify-content:space-between;align-items:center}
.media-card-body h3{font:600 19px/1.55 var(--jp);margin:0}
.media-card-body p{font:13px/1.85 var(--jp);color:#666;margin:0;flex:1}
.black-section .media-card-body p{color:#999}
.media-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag-chip{font:11px var(--jp);padding:4px 10px;border-radius:999px;background:#f0f0ec;color:#333;border:1px solid #e0e0da}
.black-section .tag-chip{background:#1a1a1a;color:#ccc;border-color:#333}
.media-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:14px;margin-top:8px;border-top:1px solid #eee;font-size:11px;letter-spacing:.1em;font-weight:700}
.black-section .media-card-footer{border-color:#222}

/* Filter Bar */
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.filter-btn{padding:9px 18px;border:1px solid var(--line);background:#fff;border-radius:999px;font:500 12px var(--jp);cursor:pointer;transition:.25s}
.filter-btn:hover,.filter-btn.active{background:#050505;color:#fff;border-color:#050505}

/* Breadcrumbs */
.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font:11px var(--jp);color:#888;margin-bottom:20px}
.breadcrumbs a{text-decoration:none;color:#aaa;transition:color .2s}
.breadcrumbs a:hover{color:#fff}
.breadcrumbs span{color:#555}

/* Rich CMS Article / Detail Body */
.article-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;align-items:start}
.article-main{background:#fff;border:1px solid var(--line);border-radius:16px;padding:clamp(28px,4.5vw,64px);overflow:hidden}
.article-cover{border-radius:12px;overflow:hidden;margin-bottom:36px;background:#111;max-height:460px}
.article-cover img{width:100%;height:100%;object-fit:cover}
.article-meta-bar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding-bottom:24px;margin-bottom:32px;border-bottom:1px solid var(--line);font:12px var(--jp);color:#666}
.article-prose{font:15px/2 var(--jp);color:#222}
.article-prose h2{font:700 clamp(22px,2.4vw,30px)/1.45 var(--jp);margin:52px 0 20px;padding:14px 0 14px 18px;border-left:4px solid #050505;background:linear-gradient(90deg,#f7f7f4,transparent)}
.article-prose h3{font:600 clamp(18px,1.8vw,22px)/1.5 var(--jp);margin:36px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.article-prose p{margin:0 0 20px;color:#2c2c2c}
.article-prose ul,.article-prose ol{margin:0 0 24px;padding-left:22px}
.article-prose li{margin:8px 0}
.article-prose img{border-radius:10px;border:1px solid var(--line);margin:24px 0;box-shadow:0 10px 30px #0000000a}
.article-prose pre{background:#0b0d10;color:#e6edf3;padding:22px;border-radius:10px;overflow-x:auto;font:13px/1.7 var(--mono);margin:24px 0;position:relative;border:1px solid #222}
.article-prose code{font-family:var(--mono);font-size:.92em;background:#f0f0ec;padding:2px 6px;border-radius:4px}
.article-prose pre code{background:none;padding:0;color:inherit}
.copy-code-btn{position:absolute;top:12px;right:12px;background:#ffffff1a;color:#fff;border:1px solid #ffffff30;border-radius:6px;padding:5px 10px;font:11px var(--sans);cursor:pointer;transition:.2s}
.copy-code-btn:hover{background:var(--accent);color:#050505}
.article-prose table{width:100%;border-collapse:collapse;margin:28px 0;font-size:13px;display:block;overflow-x:auto}
.article-prose th,.article-prose td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}
.article-prose th,.article-prose tr:first-child td{background:#f0f0ec;font-weight:600}
.article-sidebar{position:sticky;top:100px;display:flex;flex-direction:column;gap:24px}
.sidebar-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}
.sidebar-card h3{font:600 15px var(--jp);margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.sidebar-card p{font:12px/1.8 var(--jp);color:#666;margin:0 0 16px}
.sidebar-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.sidebar-list a{text-decoration:none;font:13px/1.55 var(--jp);color:#222;display:block;padding:8px 0;border-bottom:1px dashed #e2e2dc;transition:color .2s,padding-left .2s}
.sidebar-list a:hover{color:#000;padding-left:6px}

/* Service Detail Specifics */
.worry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:32px 0 48px}
.worry-card{background:#f7f7f4;border:1px solid var(--line);border-radius:14px;padding:24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.worry-card img{width:120px;height:120px;object-fit:contain;border:0;box-shadow:none;margin:0}
.worry-card p{font:600 14px/1.6 var(--jp);color:#111;margin:0}

/* Product LP Components (Repeat Series, AI Katuyou, FORGE, Calendar Sync) */
.lp-hero{background:radial-gradient(circle at 82% 22%,#1b2c24 0%,transparent 45%),radial-gradient(circle at 18% 80%,#192236 0%,transparent 48%),#050505;color:#fff;padding:160px 7vw 100px;position:relative;overflow:hidden}
.lp-hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;position:relative;z-index:2}
.lp-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:#d8ffbe1a;border:1px solid #d8ffbe4d;color:var(--accent);font:600 11px var(--jp);margin-bottom:20px}
.lp-hero h1{font:700 clamp(34px,4.5vw,62px)/1.28 var(--jp);margin:0 0 22px;letter-spacing:-.03em}
.lp-hero p{font:15px/1.9 var(--jp);color:#ccc;margin:0 0 32px}
.lp-cta-group{display:flex;flex-wrap:wrap;gap:14px}
.btn-primary{display:inline-flex;align-items:center;gap:12px;padding:16px 30px;background:var(--accent);color:#050505;font:700 14px var(--jp);text-decoration:none;border-radius:999px;border:0;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px #d8ffbe40}
.btn-outline{display:inline-flex;align-items:center;gap:12px;padding:16px 30px;background:transparent;color:#fff;font:600 14px var(--jp);text-decoration:none;border-radius:999px;border:1px solid #ffffff4d;transition:background .25s ease,border-color .25s ease}
.btn-outline:hover{background:#ffffff14;border-color:#fff}
.lp-hero-visual{background:#ffffff0a;border:1px solid #ffffff1f;border-radius:20px;padding:20px;backdrop-filter:blur(12px);box-shadow:0 30px 70px #0008}
.lp-hero-visual img{width:100%;border-radius:12px}

/* Function Matrix (20 features for Repeat Salon / Fitness / Cafe) */
.function-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px}
.function-item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;align-items:center;gap:14px;transition:transform .25s ease,border-color .25s ease}
.function-item:hover{transform:translateY(-3px);border-color:#050505}
.function-item img{width:44px;height:44px;object-fit:contain;flex:none}
.function-item h4{font:600 14px/1.4 var(--jp);margin:0}
.function-item p{font:11px/1.5 var(--jp);color:#666;margin:4px 0 0}

/* Pricing Table (3 Plans) */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:52px;align-items:stretch}
.pricing-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px 30px;display:flex;flex-direction:column;position:relative;transition:transform .3s ease,box-shadow .3s ease}
.pricing-card.featured{background:#050505;color:#fff;border-color:#050505;transform:translateY(-8px);box-shadow:0 28px 60px #00000024}
.pricing-ribbon{position:absolute;top:16px;right:16px;background:var(--accent);color:#050505;padding:4px 12px;border-radius:999px;font:700 10px var(--jp)}
.pricing-card h3{font:700 22px var(--jp);margin:0 0 8px}
.pricing-price{font:700 clamp(30px,3.2vw,44px) var(--sans);margin:14px 0;letter-spacing:-.03em}
.pricing-price small{font:400 13px var(--jp);color:#777}
.pricing-card.featured .pricing-price small{color:#aaa}
.pricing-features{list-style:none;padding:0;margin:20px 0 28px;flex:1;display:flex;flex-direction:column;gap:10px;font:13px var(--jp)}
.pricing-features li{display:flex;align-items:center;gap:10px}
.pricing-features li:before{content:"✓";color:#1d6b42;font-weight:700}
.pricing-card.featured .pricing-features li:before{color:var(--accent)}

/* FAQ Accordion */
.faq-list{border-top:1px solid #aaa;margin-top:48px}
.faq-item{border-bottom:1px solid #ccc;padding:24px 0}
.faq-item summary{cursor:pointer;font:600 17px/1.5 var(--jp);display:flex;justify-content:space-between;align-items:center;gap:16px;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"＋";font-size:20px;flex:none;transition:transform .25s ease}
.faq-item[open] summary:after{content:"−";transform:rotate(180deg)}
.faq-answer{padding-top:16px;font:14px/1.9 var(--jp);color:#555}

/* User's Voice / Testimonials */
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.voice-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:16px}
.voice-head{display:flex;align-items:center;gap:14px}
.voice-head img{width:60px;height:60px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.voice-head div b{display:block;font:600 14px var(--jp)}
.voice-head div span{font:11px var(--jp);color:#777}
.voice-card h4{font:600 15px/1.5 var(--jp);margin:0}
.voice-card p{font:13px/1.85 var(--jp);color:#555;margin:0}

/* Security Architecture Callout & Badge */
.security-banner{background:linear-gradient(135deg,#080c0a,#0c141d);color:#fff;border:1px solid #ffffff24;border-radius:16px;padding:36px;margin-top:48px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center}
.security-badge-inline{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;background:#eef7f0;border:1px solid #bedac4;color:#185836;font:600 11px var(--jp);margin-bottom:16px}
.security-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.security-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}
.security-card b{display:block;font:600 15px var(--jp);margin-bottom:8px}
.security-card p{font:12px/1.8 var(--jp);color:#555;margin:0}

/* Cookie Policy Table */
.policy-table{width:100%;border-collapse:collapse;margin:28px 0;font:13px/1.7 var(--jp)}
.policy-table th,.policy-table td{border:1px solid #ccc;padding:14px 16px;text-align:left;vertical-align:top}
.policy-table th{background:#eee;font-weight:600;white-space:nowrap}

/* Stats / Counter Band */
.stats-band{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid #2a2a2a;margin-top:64px}
.stat-cell{padding:32px 24px;border-right:1px solid #2a2a2a}
.stat-cell:last-child{border-right:0}
.stat-num{font:600 clamp(36px,4vw,58px)/1 var(--sans);color:var(--accent);margin-bottom:10px}
.stat-label{font:12px var(--jp);color:#999}

/* Product LP Showcases (Alternating Screen Captures & Realization Cards) */
.lp-logo-img{height:40px;width:auto;border-radius:8px;margin-right:10px;object-fit:contain}
.lp-showcase-list{display:flex;flex-direction:column;gap:56px;margin-top:64px}
.lp-showcase-row{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(24px,3.5vw,44px);box-shadow:0 16px 40px #00000008}
.black-section .lp-showcase-row{background:#0f0f0f;border-color:#262626;color:#fff}
.lp-showcase-row.reverse .lp-showcase-media{order:2}
.lp-showcase-row.reverse .lp-showcase-copy{order:1}
.lp-showcase-media{border-radius:12px;overflow:hidden;border:1px solid #e4e4de;background:#f7f7f4}
.black-section .lp-showcase-media{border-color:#2a2a2a;background:#161616}
.lp-showcase-media img{width:100%;height:auto;display:block;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.lp-showcase-row:hover .lp-showcase-media img{transform:scale(1.03)}
.lp-showcase-copy .feature-num{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:#777;display:block;margin-bottom:10px}
.lp-showcase-copy h3{font:700 clamp(22px,2.3vw,30px)/1.45 var(--jp);margin:0 0 16px}
.lp-showcase-copy p{font:14px/1.95 var(--jp);color:#555;margin:0}
.black-section .lp-showcase-copy p{color:#aaa}
.realization-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.realization-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px 26px;display:flex;flex-direction:column;gap:14px;color:#050505}
.realization-card img{width:48px;height:48px;object-fit:contain}
.realization-card h3{font:700 18px/1.45 var(--jp);margin:0}
.realization-card p{font:13px/1.85 var(--jp);color:#555;margin:0}
.func-icon-badge{width:44px;height:44px;border-radius:10px;background:#050505;color:var(--accent);display:grid;place-items:center;font:700 16px var(--mono);flex:none}

@media(max-width:1024px){
  .feature-grid-4,.cards-grid,.pricing-grid,.voice-grid,.function-grid,.worry-grid,.security-grid,.stats-band,.realization-grid{grid-template-columns:repeat(2,1fr)}
  .article-shell,.lp-hero-inner,.lp-showcase-row{grid-template-columns:1fr}
  .lp-showcase-row.reverse .lp-showcase-media,.lp-showcase-row.reverse .lp-showcase-copy{order:unset}
  .article-sidebar{position:static}
}
@media(max-width:820px){
  .feature-grid-4,.cards-grid,.cards-grid-2,.pricing-grid,.voice-grid,.function-grid,.worry-grid,.security-grid,.stats-band,.security-banner,.realization-grid{grid-template-columns:1fr}
  .stat-cell{border-right:0;border-bottom:1px solid #2a2a2a}
  .pricing-card.featured{transform:none}
  .lp-hero{padding:112px 20px 64px}
  .lp-hero-inner{grid-template-columns:1fr;gap:28px}
  .lp-hero-inner>*{min-width:0}
  .lp-badge{font-size:10px;padding:5px 12px;margin-bottom:14px;max-width:100%;white-space:normal}
  .lp-hero h1{font-size:clamp(24px,6.8vw,32px);line-height:1.35;margin:0 0 16px;overflow-wrap:anywhere}
  .lp-hero p{font-size:14px;line-height:1.85;margin:0 0 24px}
  .lp-cta-group{flex-direction:column;align-items:stretch;gap:12px}
  .lp-cta-group .btn-primary,.lp-cta-group .btn-outline{width:100%;justify-content:center;padding:15px 20px;font-size:13px;text-align:center}
  .lp-cta-group .arrow-link{margin-left:0!important;width:100%}
  .lp-hero-visual{padding:12px;border-radius:14px;animation:none}
  .lp-showcase-list{gap:28px;margin-top:36px}
  .lp-showcase-row{grid-template-columns:1fr;padding:22px 18px;gap:20px;border-radius:14px}
  .lp-showcase-row>*{min-width:0}
  .lp-showcase-media{width:100%;max-width:100%!important}
  .lp-showcase-copy h3{font-size:clamp(19px,5.4vw,24px);line-height:1.45;margin:0 0 12px;overflow-wrap:anywhere}
  .lp-showcase-copy h3 br{display:none}
  .lp-showcase-copy p{font-size:13px;line-height:1.85}
  .split-heading h2,.about-band h2{font-size:clamp(26px,7vw,36px);line-height:1.35;overflow-wrap:anywhere}
  .cta-section h2{font-size:clamp(26px,7.2vw,38px);line-height:1.32;margin:16px 0 36px;overflow-wrap:anywhere}
  .mega-link{font-size:clamp(18px,5.2vw,26px);padding-bottom:18px;gap:12px}
  .faq-item{padding:18px 0}
  .faq-item summary{font-size:15px;line-height:1.55;align-items:flex-start}
  .worry-card{padding:24px 18px!important}
  .worry-card img{width:130px!important;height:130px!important}
}

/* ==========================================================================
   Cinematic Motion, Specular Spotlights & Interactive Micro-Animations
   ========================================================================== */

/* Blur-to-crisp staggered scroll reveal */
.reveal{
  opacity:0;
  transform:translate3d(0,32px,0) scale(.985);
  filter:blur(7px);
  transition:
    opacity .85s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),
    transform .85s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),
    filter .85s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms);
  will-change:opacity,transform,filter;
}
.reveal.visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
}

/* Custom magnetic cursor follower (fine pointer only) */
.cursor-dot,.cursor-ring{
  position:fixed;
  top:0;
  left:0;
  pointer-events:none;
  z-index:9999;
  opacity:0;
  transition:opacity .3s ease,width .3s cubic-bezier(.16,1,.3,1),height .3s cubic-bezier(.16,1,.3,1),margin .3s cubic-bezier(.16,1,.3,1),background-color .3s ease,border-color .3s ease;
}
.cursor-dot{
  width:6px;
  height:6px;
  margin:-3px 0 0 -3px;
  border-radius:50%;
  background:#d8ffbe;
  box-shadow:0 0 12px #d8ffbe;
  mix-blend-mode:difference;
}
.cursor-ring{
  width:34px;
  height:34px;
  margin:-17px 0 0 -17px;
  border-radius:50%;
  border:1px solid rgba(216,255,190,.48);
  background:radial-gradient(circle,rgba(216,255,190,.08) 0%,transparent 70%);
  mix-blend-mode:difference;
}
.cursor-dot.active,.cursor-ring.active{opacity:1}
.cursor-ring.hovered{
  width:58px;
  height:58px;
  margin:-29px 0 0 -29px;
  border-color:rgba(216,255,190,.85);
  background:radial-gradient(circle,rgba(216,255,190,.18) 0%,transparent 72%);
}
@media(pointer:coarse),(max-width:820px){
  .cursor-dot,.cursor-ring{display:none!important}
}

/* Hero atmospheric shimmer & outline text glow */
#balance-canvas[data-curtain]{
  opacity:.95;
}
.hero-grid{
  animation:gridBreathe 12s ease-in-out infinite alternate;
}
@keyframes gridBreathe{
  0%{opacity:.55;transform:scale(1)}
  100%{opacity:.9;transform:scale(1.015)}
}
.hero h1 span{
  -webkit-text-stroke:1.2px rgba(255,255,255,.92);
  color:transparent;
  background:linear-gradient(110deg,rgba(196,212,202,.05) 0%,rgba(164,196,188,.22) 48%,rgba(196,212,202,.05) 100%);
  background-size:220% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  animation:heroStrokeShimmer 9s ease-in-out infinite;
  transition:color .45s ease,text-shadow .45s ease,-webkit-text-stroke-color .45s ease;
}
.hero h1:hover span{
  color:rgba(196,212,202,.2);
  -webkit-text-stroke-color:#dce8e0;
  text-shadow:0 0 38px rgba(168,196,184,.28);
}
@keyframes heroStrokeShimmer{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

/* Interactive Specular Spotlight on Cards */
.has-spotlight{
  position:relative;
  overflow:hidden;
}
.has-spotlight::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(140,248,185,.13),transparent 65%);
  opacity:0;
  transition:opacity .35s ease;
  z-index:1;
}
.black-section .has-spotlight::after{
  background:radial-gradient(460px circle at var(--mx,50%) var(--my,50%),rgba(216,255,190,.16),transparent 65%);
}
.has-spotlight:hover::after{
  opacity:1;
}

/* Concept Diagram Dynamic Balance Pulse */
.concept-diagram div{
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}
.concept-diagram div.is-pulsing{
  border-color:#050505;
  box-shadow:0 0 0 6px rgba(216,255,190,.45),0 18px 36px rgba(0,0,0,.1);
  transform:scale(1.045);
}
.concept-diagram strong{
  background:linear-gradient(90deg,#050505,#1d6b42,#050505);
  background-size:200% auto;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  animation:heroStrokeShimmer 7s linear infinite;
}

/* Kinetic Service Row Hover Bar */
.service-rows article,.service-row-link{
  position:relative;
  overflow:hidden;
}
.service-rows article::before,.service-row-link::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:linear-gradient(180deg,#d8ffbe,#4ee8d4);
  transform:scaleY(0);
  transform-origin:center;
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.service-rows article:hover::before,.service-row-link:hover::before{
  transform:scaleY(1);
}

/* Floating LP Hero Visual & CTA Mega-Link Hover Glow */
.lp-hero-visual{
  animation:floatVisual 7s ease-in-out infinite alternate;
}
@keyframes floatVisual{
  0%{transform:translateY(0)}
  100%{transform:translateY(-10px)}
}
.mega-link span:last-child{
  display:inline-block;
  transition:transform .4s cubic-bezier(.22,1,.36,1),color .3s ease;
}
.mega-link:hover span:last-child{
  transform:translate(10px,-10px) scale(1.08);
  color:#1d6b42;
}

@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;filter:none;transition:none}
  .hero-grid,.hero h1 span,.lp-hero-visual,.concept-diagram strong{animation:none}
}
