@font-face{font-family:"Figtree";src:url("assets/Figtree.ttf") format("truetype");font-style:normal;font-weight:300 900;font-display:swap}
:root{--ink:#242a34;--purple:#566b94;--orange:#ee9660;--line:#dcdee2;--paper:#fafafb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #ec955f;outline-offset:6px}.skip{position:fixed;top:-100px;z-index:10;padding:16px;background:white}.skip:focus{top:10px}.header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;background:#fafafb;position:relative;z-index:2}.logo{display:inline-flex;align-items:baseline;font-family:Arial,sans-serif;font-size:37px;letter-spacing:-1.8px;font-weight:500}.logo-dot{width:7px;height:7px;background:var(--orange);border-radius:50%;margin-left:5px}nav{display:flex;align-items:center;gap:34px;font-size:14px;font-weight:600}nav>a:not(.contact):hover{color:var(--purple)}.contact{border:1px solid #c1c5cc;border-radius:30px;padding:13px 21px;display:flex;align-items:center;gap:22px}.contact:hover{background:#e9edf3}.hero{min-height:730px;height:calc(100svh - 94px);max-height:1000px;background:#1e2431;position:relative;overflow:hidden;color:white}.hero-art{position:absolute;inset:0;background-image:linear-gradient(90deg,#1e2431 0%,#1e2431ed 20%,#1e243175 53%,#1e243108 100%),url('assets/vista-ribbon.webp');background-size:cover;background-position:center}.hero-content{position:relative;z-index:1;padding:85px 8% 105px;max-width:1150px}.eyebrow{font-family:Arial,sans-serif;letter-spacing:.15em;font-size:12px;font-weight:600;margin:0 0 35px}.hero .eyebrow{color:#e5c4b4;letter-spacing:.22em}.hero h1{font-weight:500;letter-spacing:.055em;font-size:clamp(38px,4.7vw,70px);line-height:1.65;margin:0 0 27px}.mobile-break{display:none}.hero-description{font-size:16px;line-height:2;color:#e0e3e9;letter-spacing:.05em;margin:0 0 35px}.hero-link{display:inline-flex;align-items:center;gap:44px;border-bottom:1px solid #b3b9c5;padding:0 0 12px;font-size:14px}.hero-link:hover{color:#ffd2b5}.hero-bottom{position:absolute;left:8%;right:5.5%;bottom:27px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff26;padding-top:18px;font-size:12px;letter-spacing:.09em;color:#ced2d9}.hero-bottom span:last-child{font-family:Arial,sans-serif;font-size:10px;letter-spacing:.2em}.section{padding:125px 8%;scroll-margin-top:0}.concept{display:grid;grid-template-columns:1fr 1fr;gap:9%;background:#fafafb}.index{color:var(--purple);margin-right:18px}.section h2{font-size:clamp(30px,3.1vw,45px);line-height:1.7;font-weight:500;letter-spacing:.045em;margin:0}.accent{color:var(--purple)}.concept-note{margin-top:50px;padding-left:20px;border-left:2px solid var(--orange);font-size:14px;line-height:2;color:#6f737c}.concept-copy{max-width:560px;padding-top:43px;font-size:16px;line-height:2.2;color:#575b64}.concept-copy p{margin:0 0 25px}.concept-copy .lead{color:var(--ink);font-size:25px;font-weight:500;line-height:1.8;margin-bottom:27px}.issues{list-style:none;padding:17px 0;margin:0 0 26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px;line-height:2.4}.issues li{position:relative;padding-left:18px}.issues li:before{content:"";width:4px;height:4px;background:var(--purple);position:absolute;left:0;top:15px;border-radius:50%}.mission-close{color:inherit;font-weight:400}.services{background:#eeeff2;border-radius:56px 56px 0 0;padding-top:95px}.services-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:65px}.services-heading h2{font-size:clamp(28px,2.9vw,42px)}.services-heading>p{font-size:14px;line-height:2;color:#676b74;margin-bottom:8px}.service{display:grid;grid-template-columns:35px minmax(180px,32%) 1fr;gap:28px;align-items:center;padding:35px 0;border-top:1px solid #d3d7dd}.service:last-child{border-bottom:1px solid #d3d7dd}.service-number{align-self:start;padding-top:8px;color:#767d8b;font-family:Arial,sans-serif;font-size:14px}.service-image{overflow:hidden;border-radius:7px;aspect-ratio:1.88;background:#d1d5dc}.service-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}.service:hover img{transform:scale(1.025)}.service-en{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.13em;color:var(--purple);margin:0 0 13px;font-weight:600}.service h3{font-size:24px;letter-spacing:.02em;font-weight:600;margin:0 0 15px}.service-copy>p:last-child{font-size:15px;line-height:2;color:#575b64;margin:0}footer{background:#1e2431;color:white;padding:53px 8%;display:flex;align-items:center;gap:35px}footer p{font-size:13px;letter-spacing:.04em;color:#ced2d9}footer small{margin-left:auto;font-family:Arial,sans-serif;color:#b3b7c0;font-size:12px}@media(min-width:1600px){.section{padding-left:max(8%,calc((100% - 1340px)/2));padding-right:max(8%,calc((100% - 1340px)/2))}}@media(max-width:800px){.header{height:78px;padding:0 6%}.logo{font-size:32px}nav{gap:18px;font-size:13px}.contact{padding:10px 14px;gap:8px;font-size:12px}.hero{min-height:660px;height:calc(100svh - 78px)}.hero-content{padding:80px 7% 100px}.hero-art{background-position:63% center}.hero h1{font-size:42px}.section{padding:80px 7%}.concept{grid-template-columns:1fr;gap:30px}.concept-note{display:none}.concept-copy{max-width:none;padding-top:0}.services-heading{display:block;margin-bottom:35px}.services-heading>p{margin-top:24px}.service{grid-template-columns:26px 31% 1fr;gap:17px}.service h3{font-size:19px}.service-copy>p:last-child{font-size:14px}.service-en{font-size:10px}footer{flex-wrap:wrap;gap:15px 28px}footer p{margin:0}footer small{margin-left:0}}@media(max-width:540px){nav>a:not(.contact){display:none}.hero{min-height:670px;max-height:850px}.hero-content{padding-top:73px}.hero h1{font-size:clamp(32px,8.7vw,46px);line-height:1.65;letter-spacing:.03em}.mobile-break{display:block}.hero .eyebrow{font-size:10px;margin-bottom:30px}.hero-art{background-image:linear-gradient(90deg,#1e2431ed,#1e243180),url('assets/vista-ribbon.webp')}.hero-description{font-size:14px}.hero-bottom span:last-child{display:none}.hero-bottom{left:7%;font-size:11px}.section h2{font-size:30px}.concept-copy .lead{font-size:23px}.concept-copy{font-size:15px}.issues{font-size:13px}.services{border-radius:30px 30px 0 0}.service{grid-template-columns:24px 1fr;gap:18px;padding:28px 0}.service-number{grid-row:1}.service-image{grid-column:2}.service-copy{grid-column:2}.service h3{font-size:21px}.service-en{font-size:11px}.service-copy>p:last-child{font-size:15px}footer{padding:38px 7%}footer p{width:100%;font-size:12px}footer small{margin-top:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Lower sections */
.lower-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:50px}.section-caption{font-size:14px;line-height:2;color:#676b74}.news{background:#fafafb}.news-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}.news-item{border-top:1px solid var(--line);padding:28px 0 35px}.news-item time{font-family:Arial,sans-serif;font-size:13px;color:#6a6f79;letter-spacing:.06em}.news-item h3{font-size:20px;line-height:1.7;font-weight:500;margin:16px 0 12px}.news-item p{font-size:14px;line-height:2;color:#676b74;margin:0}.draft-note{font-size:12px;color:#6a6f79;margin:14px 0 0;line-height:1.8}.company{color:white;background:linear-gradient(115deg,#212837,#353b45 65%,#78513e);border-radius:45px 45px 0 0}.company .index{color:#f5b38a}.company .section-caption{color:#ced2d9}.company-image{width:100%;height:auto;max-height:355px;object-fit:cover;display:block;border-radius:12px;margin-bottom:52px}.company-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:50px}.company-name{font-size:25px;letter-spacing:.03em;padding-top:23px}.company-name p{font-family:Arial,sans-serif;font-size:13px;letter-spacing:.12em;color:#c0c5cf;margin-top:15px}.company-facts{margin:0}.company-facts>div{display:grid;grid-template-columns:90px 1fr;gap:25px;border-top:1px solid #ffffff30;padding:23px 0}.company-facts dt{font-size:14px;color:#cbd0d8;line-height:2}.company-facts dd{font-size:16px;line-height:2;margin:0}.pending-detail{font-size:13px;color:#cbd0d8}.map-link{display:table;margin-top:20px;font-size:14px;border-bottom:1px solid #9aa1ae;padding-bottom:5px}.map-link span{margin-left:18px}.contact-section{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;background:#fafafb}.contact-intro>p:not(.eyebrow){font-size:15px;line-height:2.2;color:#676b74;margin:28px 0}.contact-intro .form-notice{border-left:2px solid var(--orange);padding-left:17px;font-size:13px!important}.field{margin-bottom:25px}.field label{display:flex;align-items:center;gap:13px;font-size:15px;margin-bottom:10px}.required{font-size:11px;background:#e8ebf2;color:#55688d;border-radius:4px;padding:3px 7px}.field input,.field textarea{font:inherit;font-size:16px;color:var(--ink);background:#f0f1f4;border:1px solid #d9dce2;border-radius:6px;width:100%;padding:15px 17px;line-height:1.6}.field input:focus,.field textarea:focus{outline:2px solid var(--purple);outline-offset:2px}.field input::placeholder,.field textarea::placeholder{color:#7c818a}.field textarea{resize:vertical;min-height:150px}.consent{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;line-height:1.8;color:#6a6f79}.consent input{width:16px;height:16px;flex-shrink:0}.send-button{display:block;width:240px;max-width:100%;margin:27px auto 0;padding:16px 25px;font:inherit;font-size:15px;border:0;border-radius:30px;background:#697387;color:#fff;cursor:not-allowed}.footer-full{display:grid;grid-template-columns:1fr 1.8fr 45px;gap:35px;align-items:start;padding:65px 8% 30px}.footer-full .footer-address{font-size:12px;line-height:1.9;margin-top:23px}.footer-full .footer-mission{font-size:clamp(24px,2.6vw,39px);line-height:1.8;font-weight:400;margin:0;color:#fff}.back-top{width:42px;height:42px;border:1px solid #ffffff55;border-radius:50%;display:grid;place-items:center;font-size:22px}.back-top:hover{background:#ffffff15}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;padding-top:23px;border-top:1px solid #ffffff25;font-size:12px;color:#c3c7cf}.footer-bottom a{border-bottom:1px solid #9da3b0;padding-bottom:3px}@media(max-width:1100px){nav{gap:20px}.header{padding:0 4%}.company-layout{grid-template-columns:1fr 1.4fr;gap:30px}.contact-section{gap:6%}}@media(max-width:800px){nav{gap:15px}nav>a:not(.contact){font-size:12px}.news-grid{gap:0 30px}.company-layout{grid-template-columns:1fr;gap:20px}.company-name{padding-top:0}.contact-section{grid-template-columns:1fr;gap:25px}.contact-intro>p:not(.eyebrow){margin:18px 0}.footer-full{grid-template-columns:1fr 1.4fr 42px;gap:24px}.footer-full .footer-mission{font-size:24px}}@media(max-width:650px){nav>a:not(.contact){display:none}.lower-heading{display:block;margin-bottom:35px}.section-caption{margin-top:20px}.news-grid{grid-template-columns:1fr}.news-item{padding:24px 0}.news-item h3{font-size:19px}.company{border-radius:30px 30px 0 0}.company-image{margin-bottom:32px;min-height:155px}.company-name{font-size:23px}.company-facts>div{grid-template-columns:66px 1fr;gap:16px}.company-facts dd{font-size:14px}.footer-full{grid-template-columns:1fr 42px;padding:45px 7% 25px}.footer-full .footer-mission{grid-column:1;grid-row:2;font-size:26px;width:auto}.back-top{grid-column:2;grid-row:1}.footer-bottom{font-size:11px}.consent{justify-content:flex-start}}
/* VISTA brand motion: slow ribbon flow and a quiet typographic background. */
.motion-filters{position:absolute;pointer-events:none;overflow:hidden}.wave-art{position:absolute;inset:-12%;filter:url('#ribbon-flow');animation:ribbon-drift 12s ease-in-out infinite;transform-origin:65% 50%;will-change:transform;pointer-events:none}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1e243135,transparent 70%);pointer-events:none}.hero-bottom{z-index:1}.concept{position:relative;isolation:isolate;overflow:hidden}.concept>.section-intro,.concept>.concept-copy{position:relative;z-index:1}.brand-marquee{position:absolute;inset:auto 0 32px;height:150px;overflow:hidden;z-index:0;pointer-events:none;user-select:none;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee-track{display:flex;width:max-content;animation:brand-scroll 70s linear infinite;will-change:transform}.marquee-track span{display:block;flex-shrink:0;white-space:nowrap;padding-right:80px;font-family:Arial,sans-serif;font-size:clamp(65px,8vw,130px);line-height:1.15;font-weight:400;letter-spacing:-.035em;color:rgba(101,69,165,.065)}@keyframes ribbon-drift{0%,100%{transform:translate3d(-4%,-3%,0) scale(1.08) rotate(-3deg) skewY(-2deg)}50%{transform:translate3d(4%,4%,0) scale(1.2) rotate(4deg) skewY(3deg)}}@keyframes brand-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}.motion-paused .wave-art,.motion-paused .marquee-track{animation-play-state:paused}@media(max-width:540px){.brand-marquee{bottom:16px;height:95px}.marquee-track span{font-size:72px}.wave-art{filter:none}}@media(prefers-reduced-motion:reduce){html:not(.motion-enabled) .wave-art{filter:none}html:not(.motion-enabled) .wave-art,html:not(.motion-enabled) .marquee-track{animation-play-state:paused;will-change:auto}}

.footer-full{position:relative;isolation:isolate;overflow:hidden;min-height:350px}.footer-art{background:linear-gradient(90deg,#1e2431e8,#1e243190 60%,#1e243155),url('assets/vista-ribbon.webp') center/cover no-repeat;z-index:-1;animation-delay:-3s}.footer-full> :not(.footer-art){position:relative;z-index:1}.footer-full .footer-bottom{align-items:center;flex-wrap:wrap}.footer-full .footer-bottom a{margin-left:auto}.footer-full .footer-address,.footer-full .footer-bottom{color:#e8ebf1}.motion-paused .wave-art{filter:none}@media(max-width:650px){.footer-full{min-height:400px}}

/* High-resolution ribbon: animate its thickness independently from the backdrop. */
.hero-art.wave-art,.footer-art.wave-art{inset:0;animation:none;transform:none;filter:none;will-change:auto;background:linear-gradient(115deg,#1e2431 12%,#252c39 65%,#634032)}
.ribbon-image{position:absolute;left:-12%;top:-10%;width:130%;height:120%;max-width:none;object-fit:contain;filter:url('#ribbon-flow');transform-origin:65% 50%;animation:ribbon-breathe 14s cubic-bezier(.45,0,.55,1) infinite;will-change:transform;pointer-events:none}
.hero-art:after,.footer-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1e2431df,#1e243166 52%,#1e243105);pointer-events:none}
.footer-art .ribbon-image{left:-5%;width:115%;height:180%;top:-40%;animation-delay:-4s}
.footer-art:after{background:linear-gradient(90deg,#1e2431d9,#1e243166 65%,#1e243130)}
@keyframes ribbon-breathe{0%,100%{transform:translate3d(-2%,-1%,0) rotate(-4deg) scaleX(1.04) scaleY(.82)}32%{transform:translate3d(2%,2%,0) rotate(1deg) scaleX(1.1) scaleY(.22)}65%{transform:translate3d(0,-2%,0) rotate(4deg) scaleX(1.02) scaleY(.95)}}
.motion-paused .ribbon-image{animation-play-state:paused;filter:none}
@media(max-width:650px){.ribbon-image{width:180%;left:-35%;object-fit:cover;filter:none}.footer-art .ribbon-image{width:170%;left:-30%;height:160%;top:-30%;object-fit:contain}}
@media(prefers-reduced-motion:reduce){.ribbon-image{animation:none;filter:none;will-change:auto;transform:scaleY(.55)}}
/* Ethereal light and a more restrained copy hierarchy. */
.hero-content{display:flex;flex-direction:column;justify-content:center;min-height:calc(100% - 75px);padding-top:70px;padding-bottom:90px}.hero h1{margin-bottom:0}.hero-bottom{justify-content:flex-end}
#concept-title{background:linear-gradient(115deg,#566b94 5%,#6e80a4 45%,#bc6739 95%);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.concept .marquee-top{top:12px;bottom:auto}.concept .marquee-top .marquee-track{animation-direction:reverse;animation-duration:85s}.concept .marquee-bottom{bottom:15px}.concept .brand-marquee{height:120px}.concept .marquee-track span{font-size:clamp(65px,7vw,115px);color:rgba(101,69,165,.06)}
.services-heading{margin-bottom:32px}.services .services-heading #services-title{font-family:Arial,sans-serif;font-size:12px;font-weight:600;line-height:1.4;letter-spacing:.15em;margin:0}
.ribbon-image{mix-blend-mode:screen;opacity:.88;filter:url('#ribbon-flow') blur(.6px);animation-name:light-breathe;animation-duration:18s}
@keyframes light-breathe{0%,100%{transform:translate3d(-2%,-1%,0) rotate(-3deg) scaleX(1.04) scaleY(.78);opacity:.82}35%{transform:translate3d(2%,2%,0) rotate(1deg) scaleX(1.1) scaleY(.28);opacity:.62}68%{transform:translate3d(0,-2%,0) rotate(3deg) scaleX(1.02) scaleY(.92);opacity:.9}}
@media(max-width:650px){.concept{padding-top:110px;padding-bottom:110px}.concept .brand-marquee{height:75px}.concept .marquee-track span{font-size:65px}.hero-content{padding-top:60px;padding-bottom:100px}.hero-art .ribbon-image{object-fit:contain}.ribbon-image{filter:none}}
@media(prefers-reduced-motion:reduce){.ribbon-image{animation:none;opacity:.8;filter:none}}
/* Light travels left to right while retaining the soft breathing motion. */
.light-current{position:absolute;inset:0;animation:light-current-right 30s linear infinite;will-change:transform,opacity}.light-current-next{animation-delay:-15s}.footer-art .light-current{animation-delay:-7s}.footer-art .light-current-next{animation-delay:-22s}
@keyframes light-current-right{0%{transform:translate3d(-55%,0,0);opacity:0}20%{opacity:.8}50%{opacity:1}80%{opacity:.8}100%{transform:translate3d(55%,0,0);opacity:0}}
.motion-paused .light-current{animation-play-state:paused}
/* A white standalone wordmark and two floating navigation capsules. */
.header{position:absolute;inset:0 0 auto;height:115px;background:transparent;padding:25px 4%;align-items:flex-start;z-index:20;pointer-events:none}.header>.logo{pointer-events:auto;color:#fff;font-size:44px;line-height:1.25;letter-spacing:-1.8px;text-shadow:0 1px 20px #1e243133}
.floating-nav{position:fixed;top:24px;right:4%;display:flex;gap:20px;align-items:center;pointer-events:auto;color:#4f6287;font-size:15px;font-weight:600}
.nav-capsule{display:flex;align-items:center;gap:30px;background:rgba(242,235,231,.88);border:1px solid rgba(255,255,255,.92);border-radius:999px;padding:19px 29px;box-shadow:0 3px 18px #1e24310a;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.nav-capsule a{display:block;white-space:nowrap;padding:3px 0;transition:color .2s}.nav-capsule a:hover{color:#6d84b0}.floating-nav .contact{display:flex;align-items:center;gap:14px;background:rgba(255,253,250,.97);border:1px solid #ffffff;border-radius:999px;padding:20px 25px;color:#4f6287;box-shadow:0 4px 13px #1e24311f;font-size:15px;white-space:nowrap}.floating-nav .contact span{display:grid;place-items:center;background:#566b94;color:#fff;border-radius:50%;width:21px;height:21px;font-size:14px}.floating-nav .contact:hover{background:#fff}
.hero{height:100svh;min-height:730px}.hero-content{min-height:100%;padding-top:140px;padding-bottom:100px}.hero .hero-content h1{margin:0}.skip{z-index:30}
@media(max-width:1100px){.floating-nav{gap:12px}.nav-capsule{gap:21px;padding:17px 23px}.floating-nav .contact{padding:18px 21px}.header>.logo{font-size:39px}}
@media(max-width:800px){.floating-nav{right:3%;gap:10px}.nav-capsule{gap:16px;padding:16px 18px}.nav-capsule a{font-size:13px}.floating-nav .contact{font-size:13px;padding:17px 16px;gap:8px}.header{padding:27px 3%}.header>.logo{font-size:34px}.hero{min-height:690px}}
@media(max-width:650px){html{scroll-padding-top:155px}.header{padding:22px 6%}.header>.logo{font-size:36px}.floating-nav{left:5%;right:5%;top:16px;display:grid;grid-template-columns:1fr auto;gap:13px;pointer-events:none}.floating-nav .nav-capsule{grid-column:1/-1;grid-row:2;justify-content:space-evenly;gap:10px;padding:13px 13px;pointer-events:auto}.floating-nav .nav-capsule a{display:block;font-size:12px}.floating-nav .contact{grid-column:2;grid-row:1;display:flex;padding:12px 17px;font-size:12px;pointer-events:auto}.floating-nav .contact span{width:18px;height:18px;font-size:12px}.hero{height:100svh;min-height:680px}.hero-content{padding-top:175px;padding-bottom:95px}}
@media(prefers-reduced-motion:reduce){.light-current{animation:none;transform:none;opacity:1;will-change:auto}.light-current-next{display:none}}
/* Match VISTA's brighter purple-to-orange brand backdrop. */
.hero,.hero-art.wave-art{background:linear-gradient(90deg,#283141 0%,#464d5a 26%,#a46c52 52%,#c88348 76%,#d59353 100%)}
.hero-art:after{background:linear-gradient(90deg,rgba(17,27,46,.15),rgba(17,27,46,.03) 43%,transparent 60%)}.hero:after{background:none}.hero h1{text-shadow:0 2px 20px rgba(17,27,46,.13)}
.company-facts .founder-names{display:flex;flex-wrap:wrap;gap:4px 24px}.founder-names span{white-space:nowrap}
.logo{font-family:'Figtree',Arial,sans-serif;font-weight:400;letter-spacing:0}.header>.logo{font-family:'Figtree',Arial,sans-serif;font-weight:400;letter-spacing:0}
/* Independent light filaments, rendered at device resolution. */
.hero,.hero-art.wave-art{background:linear-gradient(135deg,#252c3a 0%,#343a45 30%,#785044 62%,#ab713f 100%)}
.footer-art.wave-art{background:linear-gradient(135deg,#252c3a 0%,#343a45 35%,#95623d 100%)}
.hero-art:after,.footer-art:after{background:linear-gradient(110deg,rgba(17,27,46,.18),transparent 55%)}
.light-field{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;opacity:.96}.wave-fallback{position:absolute;width:130%;height:100%;left:-15%;top:0;object-fit:contain;opacity:.62;pointer-events:none}.wave-rendered .wave-fallback{display:none}.wave-rendered .light-field{display:block}.wave-unavailable .light-field{display:none}
.mission-close{font-weight:400;color:inherit}
/* Entrance choreography: light first, then two softly arriving title lines. */
.hero .light-field,.hero .wave-fallback{animation:hero-light-arrive 1.8s cubic-bezier(.2,.7,.2,1) both}
.hero-title-line{display:block;animation:hero-copy-arrive 1.45s cubic-bezier(.16,1,.3,1) both;animation-delay:.3s}.hero-title-line:nth-child(2){animation-delay:.48s}.hero-bottom{animation:hero-copy-arrive 1.2s ease both;animation-delay:.9s}
@keyframes hero-light-arrive{from{opacity:0}to{opacity:.96}}
@keyframes hero-copy-arrive{from{opacity:0;transform:translateY(22px);filter:blur(7px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.reveal-ready .reveal-item{opacity:0;transform:translateY(22px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-ready .reveal-item.is-visible{opacity:1;transform:translateY(0)}
.reveal-ready .service-image{transform:translateY(28px)}.reveal-ready .service-image.is-visible{transform:translateY(0)}
.header>.logo{position:fixed;left:4%;top:24px;z-index:25;line-height:1.1;color:#fff;text-shadow:0 1px 4px #252c3a99,0 3px 18px #252c3a66}
.nav-capsule{padding:12px 26px}.floating-nav .contact{padding:14px 24px}.floating-nav{top:21px}
.menu-toggle{display:none}.mobile-menu{display:none}
@media(max-width:1100px){.nav-capsule{padding:12px 22px}.floating-nav .contact{padding:14px 20px}}
@media(max-width:800px){.nav-capsule{padding:11px 17px}.floating-nav .contact{padding:13px 16px}.header>.logo{left:3%}}
@media(max-width:650px){
 html{scroll-padding-top:92px}.header>.logo{left:6%;top:22px;font-size:36px}.header .floating-nav{display:none!important}
 .menu-toggle{display:flex;position:fixed;right:6%;top:17px;width:46px;height:46px;border:1px solid #ffffffbb;border-radius:50%;background:#faf7f2ed;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);align-items:center;justify-content:center;flex-direction:column;gap:6px;pointer-events:auto;cursor:pointer;box-shadow:0 3px 16px #252c3a1a}
 .menu-toggle span{display:block;width:19px;height:1.5px;background:#566b94;transition:transform .25s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.75px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
 .mobile-menu[open]{display:block;position:fixed;margin:0;left:5%;right:auto;top:82px;width:90%;max-width:none;max-height:calc(100dvh - 105px);padding:22px 25px 28px;background:#faf8f5f7;color:#425375;border:1px solid #ffffff;border-radius:25px;box-shadow:0 20px 80px #1e243140;overflow:auto;animation:menu-arrive .3s cubic-bezier(.16,1,.3,1) both}
 .mobile-menu::backdrop{background:#1e243155;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
 .mobile-menu-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font:12px Arial,sans-serif;letter-spacing:.18em;color:#747d90}
 .menu-close{font:30px Arial,sans-serif;color:#566b94;border:0;background:transparent;width:42px;height:42px;cursor:pointer}
 .mobile-menu nav{display:flex;flex-direction:column;align-items:stretch;gap:0;font-size:17px;font-weight:500}
 .mobile-menu nav>a{display:flex!important;justify-content:space-between;align-items:center;font-size:17px!important;padding:20px 0;border-bottom:1px solid #d9dce3}.mobile-menu nav>a:last-child{border-bottom:0;padding-bottom:8px}.mobile-menu nav>a span{font:12px Arial,sans-serif;color:#8b96aa}
 .menu-toggle:focus-visible,.menu-close:focus-visible{outline:3px solid #cf996f;outline-offset:4px}.hero-content{padding-top:110px;padding-bottom:90px}
}
@keyframes menu-arrive{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero .light-field,.hero .wave-fallback,.hero-title-line,.hero-bottom,.mobile-menu[open]{animation:none;filter:none}.reveal-ready .reveal-item{opacity:1;transform:none;transition:none}}
/* Quiet typography and a slower, softer arrival. */
.issues{border:0;padding:0;margin-top:0;margin-bottom:26px}.issues li{padding-left:0}.issues li:before{content:none;display:none}
.hero .light-field,.hero .wave-fallback{animation-duration:2.8s}
.hero-title-line{animation-name:hero-soft-arrive;animation-duration:2.3s;animation-timing-function:cubic-bezier(.25,.1,.25,1);animation-delay:.45s}.hero-title-line:nth-child(2){animation-delay:.75s}.hero-bottom{animation-name:hero-soft-arrive;animation-duration:2s;animation-delay:1.2s}
@keyframes hero-soft-arrive{from{opacity:0;transform:translateY(7px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.reveal-ready .reveal-item{opacity:0;transform:translateY(8px);filter:blur(3px);transition:opacity 1.7s ease-in-out,transform 2s cubic-bezier(.25,.1,.25,1),filter 1.9s ease-in-out;transition-delay:var(--reveal-delay,0ms)}
.reveal-ready .reveal-item.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}.reveal-ready .service-image{transform:translateY(8px)}.reveal-ready .service-image.is-visible{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.hero .light-field,.hero .wave-fallback,.hero-title-line,.hero-bottom{animation:none;filter:none}.reveal-ready .reveal-item{opacity:1;transform:none;filter:none;transition:none}}
/* Consistent concept copy, one-second section reveals, compact footer. */
.concept-copy .issues{font-size:inherit;line-height:inherit}.concept-copy .issues li{font-size:inherit;line-height:inherit}
.hero .light-field,.hero .wave-fallback,.hero-title-line,.hero-bottom{animation-duration:2s}
.reveal-ready .reveal-item{transition-duration:1s,1s,1s;transition-delay:0ms}
.footer-full{min-height:0;padding-bottom:45px}
@media(max-width:650px){.footer-full{min-height:0;padding-bottom:35px}}
@media(prefers-reduced-motion:reduce){.reveal-ready .reveal-item{transition:none}}
/* Ver1.1: Dawn first view, gently lifted shadows, original flow and particles. */
.hero .dawn-art{position:absolute;inset:0;background:radial-gradient(ellipse at 76% 70%,#d08c70 0,#354760 37%,#111b2e 75%)}
.hero .dawn-art:after{background:linear-gradient(90deg,rgba(4,11,26,.25),transparent 70%)}
.dawn-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;animation:dawn-arrive 2s ease both}#dawn-particles{mix-blend-mode:screen}
@keyframes dawn-arrive{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.dawn-canvas{animation:none}}

/* Ver1.1 refinement: low hero title and matching Dawn footer. */
.hero .hero-content{justify-content:center;padding-top:140px;padding-bottom:100px}
.dawn-art{position:absolute;inset:0;background:radial-gradient(ellipse at 76% 70%,#d08c70 0,#354760 37%,#111b2e 75%)}
.footer-art.dawn-art{inset:0;transform:none;filter:none;animation:none}
.footer-art.dawn-art:after{background:linear-gradient(90deg,rgba(4,11,26,.25),transparent 70%)}
.dawn-particles{mix-blend-mode:screen}
.footer-full{grid-template-columns:minmax(130px,1fr) auto 45px;align-items:center}
.footer-full .footer-mission{white-space:nowrap;font-size:clamp(18px,2.1vw,34px);letter-spacing:0;grid-column:auto;grid-row:auto}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:800px){.footer-full{grid-template-columns:1fr 42px}.footer-full .footer-mission{grid-column:1/-1;grid-row:2;font-size:clamp(12px,3.5vw,26px)}.footer-full .back-top{grid-column:2;grid-row:1}}
@media(max-width:650px){.hero .hero-content{padding-top:110px;padding-bottom:90px}}

/* Dawn identity and quiet hero navigation. */
:root{--purple:#24364f;--ink:#202d40}
.logo,.header>.logo{font-family:Arial,sans-serif;font-weight:500;letter-spacing:.26em;font-size:27px}
.header>.logo{left:6%;top:40px;text-shadow:none}
.hero-subtitle{font-family:'Figtree',Arial,sans-serif;font-size:clamp(12px,1vw,14px);font-weight:400;letter-spacing:.08em;line-height:1.8;color:#abb5c2;margin:24px 0 0;animation:hero-soft-arrive 2s ease .95s both}
.header .floating-nav,.header .menu-toggle{transition:opacity .5s ease,visibility .5s ease}
.header:not(.past-hero) .floating-nav,.header:not(.past-hero) .menu-toggle{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:650px){.header>.logo{top:25px;font-size:25px}.hero-subtitle{max-width:32em;letter-spacing:.04em;margin-top:20px}}
@media(prefers-reduced-motion:reduce){.hero-subtitle{animation:none}.header .floating-nav,.header .menu-toggle{transition:none}}

/* Final content and service link refinement. */
.footer-full{grid-template-columns:max-content minmax(0,1fr) 45px;column-gap:40px;align-items:start}
.footer-full .footer-mission{justify-self:start;text-align:left}
.service-page-button{display:inline-flex;align-items:center;gap:28px;margin-top:22px;padding:12px 22px;border:1px solid #24364f;border-radius:30px;color:#24364f;font-size:14px;line-height:1.5;transition:background .2s,color .2s}
.service-page-button:hover{background:#24364f;color:white}
@media(max-width:800px){.footer-full{grid-template-columns:1fr 42px;column-gap:24px}.footer-full .footer-mission{grid-column:1/-1;grid-row:2}}
