/* TOP only. Each section is independent for WordPress template integration. */
/* Centered statement over a blue-tinted photograph of our community. */
.about-intro{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(160deg,#2459ab,#204f9c);color:#fff;padding-block:100px 108px}
.about-intro-backdrop{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.about-intro-backdrop img{width:100%;height:100%;object-fit:cover;object-position:center 58%;opacity:.18;filter:saturate(.25);animation:about-scene-drift 24s ease-in-out infinite alternate}
.about-intro-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#2459ab14,#204f9c45 65%,#204f9ca6)}
.about-intro-layout{display:block;text-align:center;max-width:960px}
.about-intro-heading .eyebrow{justify-content:center;color:#fff;font-size:13px;letter-spacing:.16em}
.about-intro-heading .eyebrow:before{display:none}
.about-intro-label{font-size:14px;letter-spacing:.13em;margin-top:10px!important;color:#e7effc}
.about-intro-heading h2{font-size:clamp(34px,4.1vw,54px);margin-top:27px;letter-spacing:.045em;line-height:1.5;font-weight:700}
.about-intro-copy{max-width:740px;margin:38px auto 0}
.about-intro-copy>p{font-size:17px;font-weight:500;line-height:2.2;color:#fff;margin-top:20px}
.about-intro-copy .button{margin-top:38px;min-width:242px;min-height:58px;border-radius:40px;border-color:#ffffff8c;background:#ffffff13;color:#fff!important}
.about-intro-copy .button:hover{background:#fff;color:var(--blue-dark)!important}
.about-intro .ribbon-flow{opacity:.2}
.about-intro .ribbon-thread,.about-intro .ribbon-current{stroke:#d5e6ff}
@keyframes about-scene-drift{from{transform:scale(1.03) translateY(0)}to{transform:scale(1.075) translateY(-8px)}}
@media(max-width:800px){.about-intro{padding-block:82px 90px}.about-intro-copy{max-width:630px}}
@media(max-width:650px){.about-intro{padding-block:66px 72px}.about-intro-heading h2{font-size:clamp(28px,7.4vw,36px);letter-spacing:.025em;margin-top:24px}.about-intro-copy{margin-top:28px}.about-intro-copy>p{font-size:16px;line-height:2.1;margin-top:18px}.about-intro-copy .button{margin-top:30px;min-width:230px}.about-intro-backdrop img{object-position:52% center;opacity:.14}}
@media(prefers-reduced-motion:reduce){.about-intro-backdrop img{animation:none;transform:none}}
.numbers .numbers-period{margin-top:22px;font-size:12px;line-height:1.8;text-align:right;color:#f2f7ff}
@media(max-width:650px){.numbers .numbers-period{text-align:left}}
/* FV ribbons continue down the page, behind every content layer. */
.has-ribbon{position:relative;isolation:isolate}
.has-ribbon>.wrap{position:relative;z-index:1}
.ribbon-flow{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:hidden;pointer-events:none;fill:none;contain:strict}
.hero>.ribbon-flow{z-index:-1}
.ribbon-thread{stroke:#6a9ee9;stroke-width:1;opacity:.16}
.ribbon-current{stroke:#4b88dd;stroke-width:1.65;stroke-linecap:round;stroke-dasharray:76 484;stroke-dashoffset:calc(var(--strand) * 13px);opacity:.42;animation:ribbon-down 6s linear infinite;animation-delay:calc(var(--strand) * -.14s)}
.ribbon-current:nth-child(8n){stroke:#b8d7ff;stroke-width:3;opacity:.6}
.hero .ribbon-thread{opacity:.2}
.hero .ribbon-current{opacity:.6}
.numbers .ribbon-thread,.journal .ribbon-thread{stroke:#c4e2ff;opacity:.12}
.numbers .ribbon-current,.journal .ribbon-current{stroke:#d4ecff;opacity:.42}
.service-grid{position:relative;background:#fff}
.hero-art{animation:hero-ribbon-breathe 12s ease-in-out infinite;transform-origin:85% 60%}
.ribbon-hidden .ribbon-current{animation-play-state:paused}
@keyframes ribbon-down{to{stroke-dashoffset:calc(var(--strand) * 13px - 560px)}}
@keyframes hero-ribbon-breathe{0%,100%{transform:translateY(-5px) scale(1.015)}50%{transform:translateY(7px) scale(1.025)}}
@media(prefers-reduced-motion:reduce){.ribbon-current{animation:none!important;opacity:.16}.hero-art{animation:none!important;transform:none}}
.future-building img{object-position:center top!important}
.people-grid .team-photo,.people-grid .representative{height:350px}.representative-photo img{object-position:71% center!important}
@media(max-width:800px){.people-grid .team-photo{height:auto;min-height:0}.people-grid .representative{height:320px}.representative-photo img{object-position:78% center!important}}
@media(max-width:650px){.people-grid .representative{height:280px}.representative-photo img{object-position:69% center!important}}
.hero-people{position:absolute;right:2.8%;top:23%;width:43%;max-width:600px;z-index:-1;animation:hero-float 7s ease-in-out infinite;filter:drop-shadow(0 20px 35px #1643671f)}
@keyframes hero-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media(max-width:1000px){.hero-people{width:46%;right:-1%;top:31%}}
@media(max-width:650px){.hero-people{width:70%;right:-19%;top:230px;opacity:1}}
.service-art{position:absolute;right:16px;top:10px;width:100px;height:100px!important;object-fit:contain;opacity:.94}.service-card .card-number{display:block;padding-right:90px;min-height:46px}.service-card h3{position:relative}.service-card:hover .service-art{transform:translateY(-3px);transition:transform .3s}
.numbers{color:#fff;background:linear-gradient(115deg,#2459ab,#2c68c7 75%,#3270c3);padding-block:48px}.numbers-layout{display:grid;grid-template-columns:1fr 1fr 1.45fr;gap:44px;align-items:center}.numbers .eyebrow{color:#f2f7ff}.numbers h2{font-size:30px;margin-top:14px}.number-item{border-left:1px solid #ffffff4a;padding-left:35px}.number-item>p:first-child{font-size:15px}.number-note{display:block;font-size:13px}.number-value{display:flex;gap:12px;align-items:baseline}.number-value strong{font:500 clamp(54px,6.5vw,92px)/1.25 'Outfit',sans-serif;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.number-value>span{font-size:17px}.people-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:28px}.team-photo{position:relative;overflow:hidden;border-radius:8px}.team-photo img{width:100%;height:100%;object-fit:cover;object-position:center 58%}.team-photo:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#10273b8a);pointer-events:none}.team-photo figcaption{position:absolute;bottom:24px;left:26px;color:white;font-weight:500;z-index:1;letter-spacing:.1em}.representative{display:grid;grid-template-columns:42% 58%;background:#f1efec;border-radius:8px;overflow:hidden;min-height:330px}.representative-photo{overflow:hidden}.representative-photo img{width:100%;height:100%;object-fit:cover;object-position:78% center}.representative-body{align-self:center;padding:28px 22px}.representative-body .eyebrow{font-size:12px}.representative-body .eyebrow:before{width:15px}.representative-body h3{font-size:23px;margin-top:20px}.representative-body>p:not(.eyebrow){font-size:13px;color:var(--muted);margin-top:23px}.representative-body strong{font-size:20px;color:var(--ink);display:block;font-weight:500;letter-spacing:.1em}.representative-body .text-link{font-size:13px}.core-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:48px}.core-grid article{padding:6px 22px 6px 0;border-right:1px solid var(--line)}.core-grid article:last-child{border:0}.core-grid .eyebrow{font-size:12px}.core-grid .eyebrow:before{display:none}.core-grid h3{font-size:21px;margin-top:16px}.company-gateway{display:flex;justify-content:space-between;gap:24px;align-items:center;border-top:1px solid var(--line);margin-top:38px;padding-top:30px}.company-gateway p{font-size:16px;font-weight:500}.company-gateway p span{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:6px}.news{background:#f6f8fc}.news-layout{display:grid;grid-template-columns:1fr 2.35fr;gap:50px}.news h2{font-size:36px;margin-top:14px}.news-row{display:block;padding:22px 0;border-bottom:1px solid #d4e1f3}.news-row:first-child{padding-top:0}.news-row>div{display:flex;gap:18px;align-items:center;font-size:12px;color:var(--muted)}.news-row time{font:400 14px 'Outfit',sans-serif;letter-spacing:.06em}.news-row>div>span{background:#fff;border:1px solid var(--line);border-radius:2px;padding:1px 10px}.news-row h3{font-family:inherit;font-size:16px;font-weight:500;margin-top:12px}.news-row:hover h3{color:var(--blue)}.journal{background:#2b65b8;color:#fff;padding-block:55px}.journal-layout{display:grid;grid-template-columns:1fr 1.35fr;gap:65px;align-items:center}.journal .eyebrow{color:#eef5ff}.journal h2{font-size:26px;margin-top:15px}.journal .text-link{color:#fff!important}.journal-article{border-left:1px solid #ffffff4a;padding-left:45px}.journal-article time{font:400 14px 'Outfit',sans-serif;color:#eef5ff}.journal-article h3{font-family:inherit;font-weight:500;font-size:18px;margin-top:14px;line-height:1.9}.journal-article span{display:inline-block;font-size:13px;margin-top:15px;border-bottom:1px solid #ffffff90}.journal-article:hover span{border-bottom-color:white}.recruit-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:center}.recruit h2{font:500 clamp(64px,7vw,92px)/1.1 'Outfit',sans-serif;letter-spacing:-.04em;color:var(--blue);margin-top:15px}.recruit h3{font-size:24px;margin-top:18px}.recruit p:not(.eyebrow){font-size:15px;margin-top:18px;color:var(--muted);line-height:2}.recruit .button{margin-top:28px}.recruit-photo{border-radius:8px;overflow:hidden;aspect-ratio:1.4}.recruit-photo img{width:100%;height:100%;object-fit:cover;object-position:center 52%}.future{height:730px;position:relative;overflow:hidden;background:#e8f3fc;isolation:isolate}.future-sky{position:absolute;inset:0;background:radial-gradient(ellipse at 10% 70%,#fff 0,#f1f8fddd 35%,#d3e8f9 76%);z-index:-3}.future-body{position:relative;z-index:4;padding-top:145px;pointer-events:none}.future-body h2{font-size:clamp(30px,3.3vw,46px);margin-top:20px}.future-mission{font-size:24px;margin:17px 0 24px!important;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:500}.future-body>p:last-of-type{color:#435c70;font-size:16px;line-height:2.15}.future-building{position:absolute;right:0;bottom:0;height:114%;width:51%;z-index:-1;mask-image:linear-gradient(90deg,transparent 0%,#000 25%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 25%)}.future-building img{height:100%;width:100%;object-fit:cover;object-position:center 63%}.future-caption{position:absolute;bottom:22px;right:30px;font-size:12px;background:#ffffffe3;color:#32506b;padding:4px 11px;z-index:4;border-radius:2px}.replay{pointer-events:auto;display:inline-block;margin-top:30px;border:0;border-bottom:1px solid #7298b7;color:#355d7a;padding:3px 0;background:none;font-size:13px!important}.future-connections{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.future-connections i{position:absolute;left:-15%;top:48%;width:120%;height:150px;border:1px solid #3c8bd54d;border-radius:50%;transform:rotate(-17deg);box-shadow:inset 0 3px 8px #fff9,0 2px 12px #308acf1c}.future-connections i:nth-child(2){top:62%;transform:rotate(-23deg);border-width:3px;border-color:#cde6fba3}.future-connections i:nth-child(3){top:73%;transform:rotate(-8deg);border-color:#589ad94d}.js-motion .future:not(.is-built) .future-building{opacity:0;transform:translateY(120px);filter:blur(12px)}.js-motion .future.is-built .future-building{animation:building-emerge 3.8s cubic-bezier(.18,.65,.22,1) both}.js-motion .future.is-built .future-connections{animation:connections-assemble 4s ease-in-out both}.js-motion .future:not(.is-built) .future-connections{opacity:.5}.motion-paused .future-building{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}.motion-paused .future-connections{opacity:.3!important;animation:none!important}.contact{text-align:center;position:relative;background:#fff}.contact .eyebrow{justify-content:center}.contact h2{font:500 clamp(50px,6vw,78px)/1.2 'Outfit',sans-serif;letter-spacing:-.035em;margin-top:15px}.contact p:not(.eyebrow){margin-top:20px;color:var(--muted);font-size:16px}.contact .button{margin-top:28px;min-width:250px}
@keyframes building-emerge{0%{opacity:0;transform:translateY(120px);filter:blur(12px)}30%{opacity:.3}100%{opacity:1;transform:none;filter:none}}
@keyframes connections-assemble{0%{opacity:.1;transform:translate(-10%,80px) scale(1.12)}45%{opacity:.95}100%{opacity:.25;transform:translate(15%,-15px) scale(.8)}}
@media(max-width:1150px){.people-grid{grid-template-columns:1fr 1fr}.representative{grid-template-columns:40% 60%}.representative-body{padding:22px 17px}.representative-body h3{font-size:20px}.numbers-layout{gap:25px}.number-item{padding-left:25px}.recruit-layout{gap:50px}}
@media(max-width:800px){.people-grid{grid-template-columns:1fr}.team-photo{aspect-ratio:1.75}.team-photo img{object-position:50% 64%}.representative{grid-template-columns:40% 60%;min-height:320px}.representative-body{padding:30px}.representative-body h3{font-size:26px}.core-grid{gap:20px}.core-grid h3{font-size:18px}.numbers-layout{grid-template-columns:1fr 1fr}.numbers-layout>div:first-child{grid-column:1/-1}.numbers h2 br{display:none}.number-item{padding-left:22px}.news-layout{grid-template-columns:1fr}.journal-layout{grid-template-columns:1fr;gap:30px}.journal-article{padding:22px 0 0;border-left:0;border-top:1px solid #ffffff4a}.recruit-layout{gap:35px}.future{height:850px}.future-body{padding-top:60px}.future-building{height:70%;width:80%;mask-image:linear-gradient(180deg,transparent 0%,#000 23%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 23%)}.future-building img{object-position:50% 60%}.future-body>p:last-of-type{font-size:15px}.future-connections{top:20%}}
@media(max-width:650px){.service-art{top:4px;right:12px;width:94px;height:94px!important}.service-card .card-number{min-height:31px}.numbers{padding-block:38px}.numbers-layout{gap:25px 15px}.numbers h2{font-size:25px}.number-item{padding-left:15px}.number-item>p:first-child{font-size:13px}.number-value strong{font-size:clamp(42px,11vw,65px)}.number-value{gap:6px}.number-value>span{font-size:14px}.number-note{font-size:11px}.team-photo{aspect-ratio:1.4}.team-photo figcaption{font-size:14px;left:20px;bottom:18px}.representative{min-height:280px}.representative-body{padding:22px 17px}.representative-body h3{font-size:20px}.representative-body strong{font-size:19px}.core-grid{grid-template-columns:1fr;gap:20px;margin-top:35px}.core-grid article{display:grid;grid-template-columns:135px 1fr;gap:12px;border:0;border-bottom:1px solid var(--line);padding:0 0 20px}.core-grid h3{margin:0;font-size:18px}.core-grid .eyebrow{display:block;line-height:1.6;font-size:11px;padding-top:3px}.company-gateway{align-items:flex-start;flex-direction:column;margin-top:10px}.company-gateway .button{width:100%}.news-layout{gap:28px}.news h2{font-size:30px}.news-row h3{font-size:15px}.journal h2{font-size:23px}.journal-article h3{font-size:16px}.recruit-layout{grid-template-columns:1fr}.recruit h2{font-size:70px}.recruit h3{font-size:22px}.recruit-photo{aspect-ratio:1.55}.future{height:880px}.future-body h2{font-size:29px}.future-mission{font-size:23px;margin:14px 0 15px!important}.future-body{padding-top:50px}.future-building{width:100%;height:65%}.future-building img{object-position:center 63%}.future-caption{bottom:14px;right:14px;font-size:11px}.replay{margin-top:20px}.contact h2{font-size:54px}.contact p:not(.eyebrow){font-size:15px}}
.hero{position:relative;min-height:760px;padding:164px 0 36px;overflow:hidden;border-bottom:1px solid var(--line);isolation:isolate}.hero-art{position:absolute;inset:0;z-index:-2;background:#fff url('../images/hero-connections.jpg') center right/cover no-repeat}.hero:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fffffff2 0%,#ffffffc7 39%,#ffffff59 62%,#ffffff00 82%)}.hero-body{position:relative}.hero-established{font:500 12px 'Outfit',sans-serif;letter-spacing:.16em;color:#687583;margin-top:16px!important}.hero-kicker{font:700 clamp(20px,2.2vw,30px)/1.4 'Outfit',sans-serif;letter-spacing:.13em;color:#3575d1;margin-top:32px!important}.hero h1{font-size:clamp(32px,4.2vw,58px);font-weight:900;letter-spacing:.02em;margin-top:16px;line-height:1.35}.hero h1 span{background:linear-gradient(transparent 75%,#eaf2ff 75%,#eaf2ff 94%,transparent 94%);padding-right:15px}.hero-support{font-size:18px;font-weight:500;margin-top:32px!important;line-height:1.9;max-width:600px}.hero-lede{font-size:16px;line-height:1.9;margin-top:9px!important;max-width:560px;color:#53616e}.hero .actions{margin-top:30px}.hero-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:54px}.scroll-link{display:flex;align-items:center;gap:12px;font:500 12px 'Outfit',sans-serif;letter-spacing:.14em;color:var(--blue)!important}.scroll-track{width:1px;height:35px;background:#9cbdd8;position:relative;overflow:hidden}.scroll-track:after{content:'';position:absolute;left:0;top:0;width:1px;height:14px;background:#275fad;animation:scroll-cue 2s ease-in-out infinite}@keyframes scroll-cue{from{transform:translateY(-14px)}to{transform:translateY(40px)}}.services{background:#fff}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{position:relative;display:block;padding:28px 28px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:240px;transition:background .3s}.service-card:hover{background:#f0f7fc}.card-number{font:500 12px 'Outfit',sans-serif;color:var(--blue);letter-spacing:.1em}.service-card h3{font-size:23px;font-weight:700;margin:25px 0 12px;letter-spacing:.015em}.service-card p{font-size:14px;font-weight:600;min-height:27px}.service-summary{display:block;font-size:13px;color:var(--muted);margin-top:9px}
@media(min-width:1600px){.hero{min-height:850px;padding-top:200px}.hero h1{font-size:62px}}
@media(max-width:1000px){.hero{padding-top:140px;min-height:740px}.hero h1{font-size:45px}.hero-art{background-position:63% center}.hero:before{background:linear-gradient(90deg,#fffffff5,#ffffffb5 52%,#ffffff10)}.hero-support{font-size:17px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.hero{padding-top:122px;min-height:auto;padding-bottom:25px}.hero-art{top:225px;height:520px;background-size:auto 100%;background-position:64% center;opacity:1}.hero:before{background:none}.hero h1{font-size:clamp(29px,7.5vw,42px)}.hero-kicker{font-size:17px;letter-spacing:.1em;margin-top:28px!important}.hero-support{font-size:16px;margin-top:26px!important;max-width:300px}.hero-lede{max-width:290px;font-size:15px}.hero .actions{margin-top:26px}.hero .button{font-size:13px;padding:12px 16px}.hero-bottom{margin-top:58px;gap:15px}.motion-toggle{font-size:11px!important}.service-grid{grid-template-columns:1fr}.service-card{padding:25px 22px;min-height:0}.service-card h3{margin-top:16px;font-size:24px}}

/* Service-specific imagery: public product screens, community, and labeled photos. */
.services .service-card{padding:22px 22px 26px;min-height:0}
.services .service-media{margin:0 0 18px}
.services .service-media-frame{height:158px;overflow:hidden;border-radius:5px;background:#f0f5fd;border:1px solid #e3edfa}
.services .service-media img{display:block;width:100%;height:100%;object-fit:contain;padding:10px}
.services .service-media--photo img{padding:0;object-fit:cover}
.services .service-media--brand .service-media-frame{background:#fff}
.services .service-media--brand img{padding:0}
.services .service-media figcaption{margin-top:8px;font-size:12px;color:#526777;line-height:1.6}
.services .service-card .card-number{padding:0;min-height:0;font-size:12px}
.services .service-card h3{font-size:22px;margin:12px 0 10px}
.services .service-card p{min-height:0}
.services .service-summary{font-size:13px}
@media(max-width:650px){.services .service-card{padding:22px}.services .service-media-frame{height:164px}.services .service-card h3{font-size:23px}.services .service-media{margin-bottom:16px}}

/* Service cards use the pale corporate blue palette. */
.services .service-grid{background:#f0f5fd;border-color:#d4e1f3}
.services .service-card{isolation:isolate;overflow:hidden;background:#f0f5fd;color:#253f65;border-color:#d4e1f3;transition:background .25s}
.services .service-card:hover{background:#e5edfa}
.services .service-card:focus-visible{outline:3px solid #2b64b5;outline-offset:-5px}
.services .service-card h3,.services .service-card p{color:#253f65}
.services .service-media figcaption,.services .service-summary{color:#52616b}
.services .service-card .card-number{color:#466795}
.services .service-card .service-media-frame{background:#fff;border-color:#dbe5f3}
.services .service-card .service-media--brand .service-media-frame{background:#fff}

/* Ueno: local aspirations with a conceptual illustration of the neighborhood. */
.ueno-message{display:grid;grid-template-columns:1fr 1.12fr;gap:25px;align-items:center;margin-top:42px;padding:40px;background:#edf4ff;border-left:3px solid #5087d2;border-radius:0 8px 8px 0}
.ueno-message .eyebrow{font-size:12px;letter-spacing:.17em}
.ueno-message h3{margin-top:15px;font-size:clamp(25px,2.5vw,32px);color:#2b64b5}
.ueno-location{margin-top:14px!important;font-size:13px;color:#4c678c;letter-spacing:.06em}
.ueno-copy{margin-top:24px}
.ueno-copy p{font-size:15px;line-height:2;color:#3d5365}
.ueno-copy p:first-child{font-size:17px;line-height:1.8;font-weight:600;color:#253f65;margin-bottom:12px}
.ueno-content .button{margin-top:26px;min-width:220px}
.ueno-visual{margin:0;min-width:0;position:relative;isolation:isolate;transform-origin:50% 65%;animation:ueno-city-float 10s ease-in-out infinite;animation-play-state:paused}
.ueno-visual img{display:block;width:100%;height:auto;position:relative;z-index:1}
.ueno-visual:before{content:'';position:absolute;inset:23% 6% 2%;z-index:0;pointer-events:none;background:radial-gradient(ellipse at center,#a7cefa55,transparent 68%);animation:ueno-city-glow 10s ease-in-out infinite;animation-play-state:paused}
.ueno-visual:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(110deg,transparent 38%,#ffffff14 44%,#ffffff80 50%,#ffffff14 56%,transparent 62%) 150% 0/300% 100% no-repeat;mask:url('../images/ueno-fv-cg.png?v=2') center/contain no-repeat;-webkit-mask:url('../images/ueno-fv-cg.png?v=2') center/contain no-repeat;mix-blend-mode:screen;animation:ueno-city-light 11s ease-in-out infinite;animation-play-state:paused}
.ueno-visual.is-animating,.ueno-visual.is-animating:before,.ueno-visual.is-animating:after{animation-play-state:running}
.motion-paused .ueno-visual:before,.motion-paused .ueno-visual:after{animation-play-state:paused!important}
@keyframes ueno-city-float{0%,100%{transform:translateY(3px) rotate(-.35deg) scale(1)}50%{transform:translateY(-9px) rotate(.35deg) scale(1.015)}}
@keyframes ueno-city-glow{0%,100%{opacity:.35;transform:scale(.94)}50%{opacity:.8;transform:scale(1.04)}}
@keyframes ueno-city-light{0%,15%{background-position:150% 0;opacity:0}25%{opacity:.35}55%{opacity:.35}70%,100%{background-position:-50% 0;opacity:0}}
@media(max-width:650px){.ueno-visual{animation-name:ueno-city-float-mobile}@keyframes ueno-city-float-mobile{0%,100%{transform:translateY(2px)}50%{transform:translateY(-6px)}}}
@media(prefers-reduced-motion:reduce){.ueno-visual,.ueno-visual:before,.ueno-visual:after{animation:none!important;transform:none!important}.ueno-visual:before,.ueno-visual:after{display:none}}
@media(max-width:800px){.ueno-message{gap:16px;padding:30px;grid-template-columns:1.1fr 1fr}.ueno-copy p:first-child{font-size:16px}}
@media(max-width:650px){.ueno-message{grid-template-columns:1fr;gap:22px;margin-top:30px;padding:28px 24px}.ueno-message h3{font-size:27px}.ueno-copy p{font-size:15px}.ueno-content .button{width:100%}.ueno-visual{grid-row:2}}

/* Keep the main chalkboard message visible across viewport sizes. */
.people-grid .team-photo img{object-position:center top}

/* Related services share one community card; each link stays independent. */
.services .service-media--logo .service-media-frame{background:#fff;display:flex;align-items:center;justify-content:center}
.services .service-media--logo img{width:100%;height:100%;object-fit:contain;padding:16px}
.services .service-card--mirai{display:flex;flex-direction:column}
.services .service-main-link{display:block}
.services .service-main-link:focus-visible{outline-offset:4px}
.services .mirai-related{position:relative;display:block;margin-top:24px;padding:18px;background:#fff;border:1px solid #d4e1f3;border-radius:8px;transition:background .2s,border-color .2s}
.services .mirai-related:before{content:'';position:absolute;width:1px;height:24px;background:#9bb5db;left:24px;top:-25px}
.services .mirai-related:hover{background:#f8fbff;border-color:var(--blue)}
.services .mirai-related-label{display:block;color:#526777;font-size:10px;letter-spacing:.03em}
.services .mirai-related h4{display:flex;align-items:center;gap:6px;margin:9px 0 10px;font:700 18px/1.5 'Zen Kaku Gothic New',sans-serif;color:#253f65}
.services .mirai-plus-badge{background:var(--blue);color:white;border-radius:3px;padding:2px 7px;font:600 11px/1.5 Outfit,sans-serif;letter-spacing:.06em}
.services .mirai-related-arrow{margin-left:auto;flex:0 0 30px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #b8cceb;border-radius:50%;background:#fff;color:var(--blue);font:500 17px/1 sans-serif}
.services .mirai-related-description{display:block;font-size:12px;line-height:1.9;color:var(--muted)}

/* Keep mobile artwork at full color; add contrast around text only. */
@media(max-width:650px){
  .hero .hero-body>p,.hero h1,.hero .scroll-link,.hero .motion-toggle{
    text-shadow:0 0 2px #fff,0 0 5px #fff,0 0 10px #fff,0 0 16px #ffffffe6;
  }
}
