/* v93 top page styles. Source values are unchanged. */
body.home main#content.site-main,body.home main#content.site-main>.page-content,body.home main#content.site-main .elementor-widget-html,body.home main#content.site-main .elementor-widget-container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important}
body.home main#content.site-main{padding-top:0!important}
@import url("https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;400;500;600;700&display=swap");

#backgroundParticleCanvas,#particleCanvas{position:fixed;
   inset:0;
   width:100vw;
   height:100vh;
   pointer-events:none}

#backgroundParticleCanvas{z-index:0;
   background:#fff}

#particleCanvas{z-index:2;
   background:transparent}

#heroFx{position:fixed;
   left:0;
   top:0;
   width:0;
   height:0;
   z-index:3;
   pointer-events:none}

#heroLogo{position:absolute;
   left:0;
   top:0;
   width:min(40vw,570px);
   height:auto;
   transform:translate(-50%,-50%) scale(1);
   opacity:0;
   will-change:transform,opacity;
   filter:drop-shadow(0 22px 44px rgba(12,45,90,.12))}

main{position:relative;
   z-index:4}

.section{position:relative;
   min-height:105vh;
   padding:150px clamp(28px,8vw,140px) 110px;
   display:grid;
   align-items:center}

.hero{min-height:118vh}

.hero-words{position:relative;
   z-index:3;
   display:grid;
   grid-template-columns:minmax(240px,.8fr) minmax(420px,1.2fr);
   gap:6vw;
   align-items:start;
   width:100%}

.kicker{font-size:clamp(50px,7vw,112px);
   line-height:.98;
   letter-spacing:.13em;
   margin:0;
   color:rgba(8,22,54,.96);
   font-weight:300}

h1{font-size:clamp(58px,8vw,136px);
   font-weight:300;
   line-height:.95;
   letter-spacing:.09em;
   margin:0;
   color:rgba(8,22,54,.96);
   text-align:right}

h1 span{display:block}

.lead{position:absolute;
   left:0;
   bottom:-150px;
   font-size:clamp(18px,2vw,28px);
   font-weight:800;
   line-height:1.55;
   margin:0;
   color:var(--ink)}

.scroll-label{position:absolute;
   z-index:3;
   left:clamp(28px,8vw,140px);
   bottom:72px;
   writing-mode:vertical-rl;
   color:var(--blue);
   font-size:11px;
   letter-spacing:.22em}

.scroll-label:before{content:"";
   display:inline-block;
   width:1px;
   height:64px;
   background:var(--blue);
   margin-bottom:12px;
   opacity:.55}

.section-title{align-self:start}

.section-label{display:inline-flex;
   min-width:142px;
   height:34px;
   align-items:center;
   justify-content:center;
   padding:0 24px;
   background:linear-gradient(90deg,var(--blue),#075bd4);
   color:#fff;
   font-size:12px;
   font-weight:700;
   letter-spacing:.08em;
   box-shadow:0 12px 24px rgba(10,114,232,.18);
   margin-bottom:22px}

.section-title h2{margin:0;
   color:var(--blue);
   font-size:clamp(54px,6.4vw,104px);
   line-height:1;
   font-weight:300;
   letter-spacing:.04em}

.center{align-self:center}

.message{grid-template-columns:minmax(240px,.45fr) minmax(320px,1fr);
   gap:8vw}

.vertical-copy{justify-self:end;
   writing-mode:vertical-rl;
   text-orientation:mixed;
   font-size:clamp(30px,3.2vw,48px);
   font-weight:800;
   line-height:1.72;
   letter-spacing:.08em}

.body-copy{position:absolute;
   left:clamp(28px,8vw,140px);
   bottom:70px;
   width:min(680px,70vw);
   font-size:15px;
   line-height:2.2;
   color:var(--ink)}

.about{text-align:center;
   justify-items:center}

.wide-copy{width:min(860px,80vw);
   font-size:clamp(17px,1.5vw,22px);
   line-height:2.35;
   margin-top:28vh}

.business-grid{display:grid;
   grid-template-columns:repeat(4,minmax(0,1fr));
   gap:22px;
   width:min(1280px,100%);
   margin-top:86px;
   text-align:left}

.business-grid article{padding:30px 26px;
   border-top:1px solid var(--line);
   background:rgba(255,255,255,.52);
   backdrop-filter:blur(10px)}

.business-grid span{display:block;
   color:var(--blue);
   font-size:13px;
   margin-bottom:18px}

.business-grid strong{display:block;
   font-size:24px;
   font-weight:300;
   margin-bottom:16px}

.business-grid p{margin:0;
   color:var(--muted);
   line-height:1.9;
   font-size:14px}

.parallax-showcase{position:relative;
   z-index:4;
   min-height:82vh;
   display:flex;
   align-items:center;
   overflow:hidden;
   background:#1c347c;
   color:#fff}

.parallax-copy{position:relative;
   z-index:2;
   margin-left:clamp(28px,8vw,140px)}

.parallax-copy span{display:block;
   color:var(--cyan);
   font-size:14px;
   letter-spacing:.14em;
   margin-bottom:22px}

.parallax-copy strong{font-size:clamp(38px,5vw,82px);
   line-height:1.22;
   font-weight:300}

.parallax-track{position:absolute;
   left:42%;
   top:8%;
   display:flex;
   gap:34px;
   align-items:center;
   will-change:transform}

.parallax-panel{width:300px;
   height:420px;
   border-radius:22px;
   overflow:hidden;
   box-shadow:0 34px 90px rgba(0,0,0,.34);
   opacity:.82}

.parallax-panel.is-large{width:420px;
   height:540px}

.parallax-panel.is-tall{width:250px;
   height:610px}

.parallax-panel img{width:100%;
   height:100%;
   object-fit:cover}

.works{grid-template-columns:minmax(260px,.35fr) minmax(360px,.72fr);
   gap:6vw;
   align-items:start}

.work-card{align-self:center;
   width:min(980px,100%);
   padding-top:8vh}

.scroller-head{display:flex;
   align-items:flex-end;
   justify-content:space-between;
   gap:28px;
   margin-bottom:24px}

.scroller-head p{margin:0;
   max-width:560px;
   line-height:2;
   color:var(--muted)}

.card-controls{display:flex;
   gap:12px}

.card-controls button{width:54px;
   height:54px;
   border-radius:50%;
   border:1px solid rgba(16,67,200,.35);
   background:rgba(255,255,255,.80);
   color:var(--blue);
   font-size:20px;
   cursor:pointer}

.card-scroller{display:flex;
   gap:24px;
   overflow-x:auto;
   scroll-snap-type:x mandatory;
   padding:6px 0 24px;
   cursor:default;
   scrollbar-width:none}

.card-scroller img{cursor:grab;
   touch-action:pan-y}

.card-scroller::-webkit-scrollbar{display:none}

.card-scroller.is-dragging img{cursor:grabbing}

.service-card,.site-card{scroll-snap-align:start;
   flex:0 0 390px;
   width:390px;
   background:#fff;
   border:0;
   outline:1px solid rgba(16,67,200,.13);
   box-shadow:var(--shadow);
   overflow:hidden}

.service-card img,.site-card img{display:block;
   width:390px;
   height:228px;
   max-width:none}

.service-card h3,.site-card h3{font-size:28px;
   font-weight:300;
   margin:26px 26px 12px}

.service-card p,.site-card p{margin:0 26px 24px;
   color:var(--muted);
   line-height:1.9}

.service-card a,.site-card a{display:inline-block;
   margin:0 26px 28px;
   color:var(--blue);
   font-size:12px;
   font-weight:700;
   letter-spacing:.08em}

.operated{padding-top:90px}

.workflow{align-items:start}

.steps{display:grid;
   grid-template-columns:repeat(5,minmax(190px,1fr));
   gap:20px;
   margin-top:24vh}

.steps div{border-top:1px solid var(--line);
   padding-top:28px;
   background:rgba(255,255,255,.42)}

.steps span{display:block;
   color:var(--blue);
   font-size:14px;
   margin-bottom:18px}

.steps strong{display:block;
   font-size:30px;
   font-weight:300;
   margin-bottom:18px}

.steps p{color:var(--muted);
   line-height:1.9;
   font-size:14px}

.project-copy{font-size:clamp(38px,7vw,118px);
   font-weight:300;
   letter-spacing:.07em;
   line-height:1.05;
   margin:26vh 0 0;
   max-width:1100px}

.project-lead{width:min(760px,80vw);
   font-size:16px;
   line-height:2.2;
   color:var(--muted);
   margin-top:42px}

.news{min-height:auto}

.news-list{width:min(980px,100%);
   margin-top:90px}

.news-list a{display:grid;
   grid-template-columns:150px 1fr;
   gap:28px;
   padding:28px 0;
   border-top:1px solid var(--line);
   color:var(--ink)}

.news-list a:last-child{border-bottom:1px solid var(--line)}

.news-list time{color:var(--blue);
   font-size:13px}

.contact{text-align:center;
   justify-items:center}

.contact-copy{width:min(760px,80vw);
   line-height:2.2;
   color:var(--muted);
   margin-top:60px}

.contact-button{margin-top:70px;
   width:190px;
   height:190px;
   border-radius:50%;
   background:var(--blue);
   color:#fff;
   display:inline-grid;
   place-items:center;
   text-decoration:none;
   font-size:20px;
   letter-spacing:.08em;
   box-shadow:0 24px 90px rgba(16,67,200,.22)}

.reveal{opacity:0;
   transform:translateY(34px);
   transition:opacity .8s ease,transform .8s ease}

.reveal.is-visible{opacity:1;
   transform:translateY(0)}

.delay-1{transition-delay:.12s}

.delay-2{transition-delay:.24s}

@media (max-width:980px){.section{padding:128px 24px 86px}

.hero-words,.message,.works{grid-template-columns:1fr}

.kicker,h1{font-size:56px;
     text-align:left}

.lead{position:relative;
     bottom:auto;
     margin-top:42px}

.vertical-copy{writing-mode:horizontal-tb;
     justify-self:start;
     font-size:28px}

.body-copy{position:relative;
     left:auto;
     bottom:auto;
     width:auto;
     margin-top:80px}

.business-grid,.steps{grid-template-columns:1fr;
     margin-top:80px}

.wide-copy,.project-copy,.contact-button{margin-top:130px}

.parallax-track{left:22%;
     opacity:.55}

.scroller-head{display:block}

.card-controls{margin-top:18px}

#heroLogo{width:min(68vw,360px)}}

/* v17 UI refinements */

#heroLogo{display:none!important;}

.hero{place-items:center;}

.hero-logo-stage{position:relative;
   z-index:3;
   display:grid;
   place-items:center;
   width:100%;
   min-height:48vh;
   text-align:center;
   pointer-events:none;}

.hero-logo-stage img{width:min(42vw,560px);
   max-width:78vw;
   height:auto;
   filter:drop-shadow(0 24px 58px rgba(7,46,100,.14));
   opacity:1;
   animation:heroLogoBlink 1.72s cubic-bezier(.2,.7,.2,1) both;}

@keyframes heroLogoBlink{0% {
     opacity:0;
     transform:scale(.92);
     filter:blur(7px) drop-shadow(0 24px 58px rgba(7,46,100,.08));

  }

   8% {
     opacity:1;
     transform:scale(1.015);
     filter:blur(0) drop-shadow(0 24px 58px rgba(7,46,100,.16));

  }

   14% {
     opacity:.16;
     transform:scale(.985);

  }

   22% {
     opacity:1;
     transform:scale(1.025);

  }

   29% {
     opacity:.22;
     transform:scale(.995);

  }

   38% {
     opacity:1;
     transform:scale(1.018);

  }

   48% {
     opacity:.55;

  }

   62% {
     opacity:1;
     transform:scale(1.005);

  }

   100% {
     opacity:1;
     transform:scale(1);
     filter:blur(0) drop-shadow(0 24px 58px rgba(7,46,100,.14));

  }}

.section-title h2{font-size:clamp(42px,5.25vw,84px)!important;
   font-weight:700!important;
   letter-spacing:.025em;}

.parallax-copy strong{font-size:clamp(34px,4.3vw,70px);
   font-weight:700;}

.project-copy{font-size:clamp(34px,5.8vw,96px);
   font-weight:700;}

.business-grid strong,.service-card h3,.site-card h3,.steps strong{font-weight:700;}

p,.lead,.body-copy,.wide-copy,.business-grid p,.scroller-head p,.service-card p,.site-card p,.steps p,.project-lead,.contact-copy,.news-list span{font-weight:500;}

.parallax-showcase{opacity:0;
   transform:translateY(28px);
   transition:opacity .9s ease,transform .9s ease;}

.parallax-showcase.is-visible{opacity:1;
   transform:translateY(0);}

.parallax-panel{opacity:0;
   transform:translateY(26px) scale(.96);}

.parallax-showcase.is-visible .parallax-panel{animation:panelFlickerIn 1.08s cubic-bezier(.16,.8,.22,1) both;}

.parallax-showcase.is-visible .parallax-panel:nth-child(1){animation-delay:.10s;}

.parallax-showcase.is-visible .parallax-panel:nth-child(2){animation-delay:.22s;}

.parallax-showcase.is-visible .parallax-panel:nth-child(3){animation-delay:.34s;}

.parallax-showcase.is-visible .parallax-panel:nth-child(4){animation-delay:.46s;}

.parallax-showcase.is-visible .parallax-panel:nth-child(5){animation-delay:.58s;}

.parallax-panel img{will-change:opacity,transform;}

.parallax-showcase.is-visible .parallax-panel img{animation:panelImageBlink 1.16s ease both;}

@keyframes panelFlickerIn{0% {
     opacity:0;
     filter:brightness(1.8) blur(8px);
     transform:translateY(34px) scale(.94);

  }

   10% {
     opacity:.95;
     filter:brightness(1.55) blur(0);

  }

   17% {
     opacity:.20;

  }

   28% {
     opacity:.90;

  }

   35% {
     opacity:.34;

  }

   48% {
     opacity:.88;

  }

   100% {
     opacity:.82;
     filter:brightness(1) blur(0);
     transform:translateY(0) scale(1);

  }}

@keyframes panelImageBlink{0% {
     opacity:0;
     transform:scale(1.04);

  }

   12% {
     opacity:1;

  }

   20% {
     opacity:.24;

  }

   32% {
     opacity:1;

  }

   43% {
     opacity:.58;

  }

   56% {
     opacity:1;

  }

   100% {
     opacity:1;
     transform:scale(1);

  }}

.card-scroller{scroll-snap-type:none!important;
   scroll-behavior:smooth;
   -webkit-overflow-scrolling:touch;
   padding-left:2px;
   padding-right:clamp(28px,8vw,140px);}

.service-card,.site-card{scroll-snap-align:none!important;}

.card-scroller.is-dragging{scroll-behavior:auto;
   user-select:none;}

.steps div{padding:30px 24px 26px!important;}

@media (max-width:980px){.hero-logo-stage img{width:min(70vw,420px);}

.section-title h2{font-size:clamp(34px,10vw,58px)!important}

.steps div{padding:28px 22px!important}}

@media (max-width:640px){.card-scroller{padding-right:24px}}

/* v18 requested layout refinements */

.hero{min-height:100vh!important;
   height:100vh!important;
   padding:0!important;
   display:block!important;
   position:relative;
   overflow:hidden;}

.hero-logo-stage{position:absolute!important;
   left:50%!important;
   top:50%!important;
   transform:translate(-50%,-50%)!important;
   z-index:3;
   display:grid;
   place-items:center;
   width:min(72vw,760px);
   min-height:auto!important;
   text-align:center;
   pointer-events:none;}

.hero-logo-stage img{width:min(38vw,520px)!important;
   max-width:72vw;
   height:auto;}

.hero-left-copy{position:absolute;
   z-index:3;
   left:clamp(42px,7.8vw,148px);
   top:clamp(94px,16vh,170px);
   color:rgba(8,22,54,.38);
   font-size:clamp(13px,1.15vw,18px);
   line-height:1.55;
   font-weight:700;
   letter-spacing:.045em;
   text-align:left;
   pointer-events:none;}

.hero-left-copy span:not(.letter-space){display:inline-block;
   opacity:0;
   animation:heroLetterBlink .95s cubic-bezier(.18,.72,.23,1) forwards;
   animation-delay:calc(.32s + var(--i) * .032s);}

.hero-left-copy .letter-space{display:inline-block;
   width:.42em;}

@keyframes heroLetterBlink{0% {
     opacity:0;
     filter:blur(5px);
     transform:translateY(5px);

  }

   14% {
     opacity:.85;
     filter:blur(0);

  }

   24% {
     opacity:.10;

  }

   38% {
     opacity:.78;

  }

   48% {
     opacity:.22;

  }

   64% {
     opacity:.64;

  }

   100% {
     opacity:.58;
     filter:blur(0);
     transform:translateY(0);

  }}

.scroll-label{left:auto!important;
   right:clamp(28px,6.8vw,112px)!important;
   bottom:54px!important;
   top:auto!important;
   z-index:4;}

.scroll-label:before{height:54px!important;}

.section-title h2{font-size:clamp(32px,4vw,64px)!important;
   font-weight:800!important;
   letter-spacing:.018em!important;
   line-height:1.12!important;}

.parallax-copy strong{font-size:clamp(30px,3.75vw,60px)!important;
   font-weight:800!important;}

.project-copy{font-size:clamp(28px,4.4vw,72px)!important;
   font-weight:800!important;
   letter-spacing:.045em!important;
   margin:8vh 0 0!important;
   max-width:820px!important;}

.wide-copy{margin-top:10vh!important;
   font-weight:600;}

#service,#sites{padding-top:210px!important;}

#sites{padding-top:190px!important;}

.workflow{min-height:auto!important;
   padding-bottom:80px!important;}

.steps{margin-top:9vh!important;}

.steps div{padding:30px 26px 26px!important;}

.project-with-character{display:grid!important;
   grid-template-columns:minmax(0,1fr) minmax(320px,.55fr);
   gap:clamp(22px,4vw,70px);
   align-items:center;
   min-height:88vh!important;
   padding-top:110px!important;
   padding-bottom:80px!important;
   overflow:hidden;}

.project-content{position:relative;
   z-index:2;
   min-width:0;}

.project-lead{margin-top:28px!important;
   font-weight:600;}

.project-character{position:relative;
   z-index:1;
   justify-self:end;
   align-self:end;
   width:min(44vw,520px);
   max-height:84vh;
   object-fit:contain;
   filter:drop-shadow(0 28px 58px rgba(9,61,148,.16));
   pointer-events:none;}

.news-list{margin-top:56px!important;}

.contact-copy{margin-top:38px!important;}

@media (max-width:980px){.hero-logo-stage img{width:min(64vw,420px)!important;}

.hero-left-copy{left:24px;
     top:112px;
     font-size:12px;}

.scroll-label{right:24px!important;
     bottom:38px!important;}

#service,#sites{padding-top:150px!important;}

.project-with-character{grid-template-columns:1fr;
     min-height:auto!important;
     padding-top:120px!important;}

.project-character{width:min(78vw,420px);
     justify-self:center;
     max-height:none;
     margin-top:24px;}

.project-copy{margin-top:64px!important;}}

/* v19 refinements */

.hero-logo-stage{top:50%!important;
   transform:translate(-50%,-50%)!important;}

.hero-logo-stage img{width:min(36vw,500px)!important;}

.hero-left-copy{left:clamp(38px,7vw,132px)!important;
   top:clamp(92px,13vh,148px)!important;
   color:rgba(8,22,54,.34)!important;
   font-size:clamp(10px,.80vw,12px)!important;
   line-height:1.72!important;
   font-weight:400!important;
   letter-spacing:.12em!important;
   max-width:min(42vw,640px);
   text-transform:uppercase;
   white-space:pre-line;}

.hero-left-copy span:not(.letter-space){display:inline-block;
   opacity:0;
   animation:heroLetterBlink .95s cubic-bezier(.18,.72,.23,1) forwards;
   animation-delay:calc(.22s + var(--i) * .018s);}

.hero-left-copy .letter-space{display:inline-block;
   width:.38em;}

@keyframes heroLetterBlink{0% {
     opacity:0;
     filter:blur(4px);
     transform:translateY(4px);

  }

   14% {
     opacity:.84;
     filter:blur(0);

  }

   24% {
     opacity:.10;

  }

   38% {
     opacity:.76;

  }

   50% {
     opacity:.20;

  }

   68% {
     opacity:.56;

  }

   100% {
     opacity:.52;
     filter:blur(0);
     transform:translateY(0);

  }}

.section-title .section-label{font-size:12px!important;
   letter-spacing:.18em!important;
   font-weight:700!important;}

.section-title h2{font-size:clamp(28px,3.35vw,52px)!important;
   font-weight:800!important;}

p,.lead,.body-copy,.wide-copy,.business-grid p,.scroller-head p,.service-card p,.site-card p,.steps p,.project-lead,.contact-copy,.news-list span{font-size:16px!important;
   font-weight:600!important;
   line-height:1.95!important;}

.service-card h3,.site-card h3{font-size:22px!important;
   line-height:1.25!important;
   font-weight:700!important;}

.scroller-head p{font-size:15px!important;}

#service .section-title h2,#sites .section-title h2{font-size:clamp(24px,2.8vw,42px)!important;}

#service .section-title .section-label,#sites .section-title .section-label{font-size:11px!important;}

.project-with-character{grid-template-columns:minmax(0,1fr) minmax(360px,.74fr)!important;
   gap:clamp(10px,2vw,26px)!important;
   overflow:visible!important;}

.project-content{z-index:3!important;
   position:relative!important;}

.project-copy{position:relative;
   z-index:4;
   font-size:clamp(26px,4vw,70px)!important;
   max-width:760px!important;}

.project-lead{position:relative;
   z-index:4;
   max-width:720px;}

.project-character{width:min(58vw,760px)!important;
   max-height:96vh!important;
   justify-self:end!important;
   align-self:end!important;
   margin-right:-4vw!important;
   margin-bottom:-22px!important;
   z-index:2!important;}

@media (max-width:1100px){.project-character{width:min(62vw,620px)!important;
     margin-right:-3vw!important;}}

@media (max-width:980px){.hero-left-copy{font-size:10px!important;
     line-height:1.66!important;
     max-width:70vw;
     left:24px!important;
     top:96px!important;}

.hero-logo-stage img{width:min(60vw,400px)!important;}

.section-title h2{font-size:clamp(24px,8.2vw,42px)!important;}

p,.lead,.body-copy,.wide-copy,.business-grid p,.scroller-head p,.service-card p,.site-card p,.steps p,.project-lead,.contact-copy,.news-list span{font-size:15px!important;}

.service-card h3,.site-card h3{font-size:20px!important;}

.project-with-character{grid-template-columns:1fr!important;}

.project-character{width:min(92vw,560px)!important;
     justify-self:center!important;
     margin-right:0!important;
     margin-top:-28px!important;}}

/* v20 refinements */

.hero-logo-stage img{animation:heroLogoFadeIn 1.45s ease-out both !important;}

@keyframes heroLogoFadeIn{0% {
     opacity:0;
     transform:scale(.965);
     filter:blur(6px) drop-shadow(0 20px 48px rgba(7,46,100,.06));

  }

   55% {
     opacity:.72;
     transform:scale(.992);
     filter:blur(1px) drop-shadow(0 22px 52px rgba(7,46,100,.10));

  }

   100% {
     opacity:1;
     transform:scale(1);
     filter:blur(0) drop-shadow(0 24px 58px rgba(7,46,100,.14));

  }}

.vertical-copy{font-size:clamp(30px,3.2vw,48px)!important;
   font-weight:800!important;
   line-height:1.72!important;}

#message .section-title{margin-top:4vh!important;}

#message .body-copy{bottom:100px!important;}

#service .section-title,#sites .section-title{margin-top:62px!important;}

.project-copy{font-size:clamp(34px,5vw,90px)!important;
   max-width:980px!important;}

.project-character{width:min(66vw,920px)!important;
   max-height:112vh!important;
   margin-right:-8vw!important;
   margin-bottom:-44px!important;}

@media (max-width:1100px){.project-character{width:min(70vw,700px)!important;
     margin-right:-5vw!important;}}

@media (max-width:980px){#message .section-title{margin-top:0!important;}

#message .body-copy{bottom:auto!important;
     margin-top:42px!important;}

#service .section-title,#sites .section-title{margin-top:36px!important;}

.project-copy{font-size:clamp(30px,7.2vw,58px)!important;}

.project-character{width:min(96vw,620px)!important;
     margin-right:0!important;
     margin-bottom:-28px!important;}}

/* v21 refinements */

.hero-logo-stage img{animation: heroLogoFadeInSlow 3.25s cubic-bezier(.18,.72,.2,1) both !important;}

@keyframes heroLogoFadeInSlow{0% {
     opacity:0;
     transform:scale(.955);
     filter:blur(8px) drop-shadow(0 12px 34px rgba(7,46,100,.04));

  }

   22% {
     opacity:0;
     transform:scale(.965);
     filter:blur(6px) drop-shadow(0 16px 40px rgba(7,46,100,.05));

  }

   55% {
     opacity:.28;
     transform:scale(.985);
     filter:blur(2px) drop-shadow(0 20px 48px rgba(7,46,100,.08));

  }

   82% {
     opacity:.72;
     transform:scale(.997);
     filter:blur(.5px) drop-shadow(0 22px 54px rgba(7,46,100,.11));

  }

   100% {
     opacity:1;
     transform:scale(1);
     filter:blur(0) drop-shadow(0 24px 58px rgba(7,46,100,.14));

  }}

#message .body-copy{bottom:160px !important;}

#service .section-title,#sites .section-title{margin-top:110px !important;}

.project-copy{font-size:clamp(44px,6vw,108px) !important;
   line-height:.92 !important;
   letter-spacing:.02em !important;
   max-width:1180px !important;
   white-space:nowrap;}

.project-character{width:min(76vw,1080px) !important;
   max-height:118vh !important;
   margin-right:-14vw !important;
   margin-bottom:-54px !important;
   transform:translateX(-8vw);}

.project-with-character{gap:clamp(6px,1.5vw,18px) !important;}

.project-content{max-width:none !important;}

@media (max-width:1280px){.project-copy{font-size:clamp(40px,5.4vw,92px) !important;
     max-width:1040px !important;}

.project-character{width:min(74vw,920px) !important;
     margin-right:-10vw !important;
     transform:translateX(-5vw);}}

@media (max-width:980px){#message .body-copy{bottom:auto !important;
     margin-top:28px !important;}

#service .section-title,#sites .section-title{margin-top:48px !important;}

.project-copy{white-space:normal;
     font-size:clamp(34px,8vw,64px) !important;
     line-height:.96 !important;
     max-width:100% !important;}

.project-character{width:min(108vw,720px) !important;
     transform:none;
     margin-right:0 !important;
     margin-bottom:-30px !important;}}

/* v22 project layout refinements */

.project-with-character{overflow: visible !important;
   align-items: end !important;
   padding-bottom: 24px !important;}

.project-content{position: relative;
   z-index: 4 !important;
   padding-bottom: 6vh;}

.project-copy{font-size: clamp(36px, 5.1vw, 88px) !important;
   line-height: .90 !important;
   letter-spacing: .015em !important;
   white-space: nowrap !important;
   max-width: 1200px !important;}

.project-copy br{display: block;
   content: "";
   margin-top: .08em;}

.project-character{position: relative;
   z-index: 2 !important;
   width: min(82vw, 1180px) !important;
   max-height: 128vh !important;
   justify-self: end !important;
   align-self: end !important;
   margin-right: -10vw !important;
   margin-bottom: -220px !important;
   transform: translateX(-18vw) !important;}

#news{position: relative;
   z-index: 1;}

@media (max-width: 1280px){.project-copy{font-size: clamp(34px, 4.9vw, 74px) !important;}

.project-character{width: min(82vw, 980px) !important;
     margin-right: -8vw !important;
     margin-bottom: -180px !important;
     transform: translateX(-14vw) !important;}}

@media (max-width: 980px){.project-copy{white-space: normal !important;
     font-size: clamp(30px, 7.6vw, 56px) !important;
     line-height: .94 !important;}

.project-character{width: min(114vw, 760px) !important;
     margin-right: 0 !important;
     margin-bottom: -76px !important;
     transform: translateX(-8vw) !important;}}

/* v24 minimal requested edits only */

.orchestration-copy{position: relative;
   z-index: 4;
   font-size: clamp(34px, 3.8vw, 64px) !important;
   font-weight: 800 !important;
   line-height: .90 !important;
   letter-spacing: .015em !important;
   margin: 8vh 0 0 !important;
   max-width: 1200px !important;
   white-space: nowrap !important;}

.service-card,.site-card,.business-grid article,.steps div{border-radius: 10px !important;}

.project-character{margin-right: -15vw !important;
   margin-bottom: -400px !important;}

/* v25 parallax motion refinements */

.project-character{--project-character-scroll-y: 0px;
  transform: translateX(-18vw) translateY(var(--project-character-scroll-y)) !important;
  will-change: transform;}

@media (max-width: 1280px){.project-character{transform: translateX(-14vw) translateY(var(--project-character-scroll-y)) !important;}}

@media (max-width: 980px){.project-character{transform: translateX(-8vw) translateY(var(--project-character-scroll-y)) !important;}}

/* v26 stronger and smoother scroll motion */

.parallax-track,.parallax-panel,.project-character{will-change: transform;
  backface-visibility: hidden;
  transform-style: preserve-3d;}

/* v27 parallax start timing + project character base position */

.project-character{--project-character-scroll-y: 0px;
  transform: translateX(-18vw) translateY(var(--project-character-scroll-y)) !important;
  will-change: transform;
  backface-visibility: hidden;
  transform-style: preserve-3d;
  opacity: 1 !important;}

.project-character.reveal,.project-character.delay-2{opacity: 1 !important;
  transition: none !important;
  transition-delay: 0s !important;}

.parallax-track,.parallax-panel{will-change: transform;
  backface-visibility: hidden;
  transform-style: preserve-3d;}

@media (max-width: 1280px){.project-character{transform: translateX(-14vw) translateY(var(--project-character-scroll-y)) !important;}}

@media (max-width: 980px){.project-character{transform: translateX(-8vw) translateY(var(--project-character-scroll-y)) !important;}}

/* v28 motion tuning */

.project-character{transform: translateX(-18vw) translateY(calc(var(--project-character-scroll-y) + 72px)) !important;}

@media (max-width: 1280px){.project-character{transform: translateX(-14vw) translateY(calc(var(--project-character-scroll-y) + 58px)) !important;}}

@media (max-width: 980px){.project-character{transform: translateX(-8vw) translateY(calc(var(--project-character-scroll-y) + 42px)) !important;}}

/* v29 adjustments */

.parallax-track{left: 56%;}

.project-character{transform: translateX(-18vw) translateY(calc(var(--project-character-scroll-y) + 170px)) !important;}

@media (max-width: 1280px){.project-character{transform: translateX(-14vw) translateY(calc(var(--project-character-scroll-y) + 130px)) !important;}}

@media (max-width: 980px){.project-character{transform: translateX(-8vw) translateY(calc(var(--project-character-scroll-y) + 92px)) !important;}}

/* v31 service/site title copy and carousel controls */

#service .section-title,#sites .section-title{align-self:center;}

#service .section-title-copy,#sites .section-title-copy{margin:22px 0 0;
  max-width:620px;
  color:var(--muted);
  font-size:15px !important;
  line-height:1.95 !important;
  font-weight:600 !important;
  letter-spacing:.02em;}

#service .work-card .card-controls,#sites .work-card .card-controls{justify-content:flex-end;
  margin-top:18px;}

#service .work-card .card-scroller,#sites .work-card .card-scroller{padding-bottom:10px;}

@media (max-width:980px){#service .section-title-copy,#sites .section-title-copy{max-width:100%;
    margin-top:18px;
    font-size:14px !important;}

#service .work-card .card-controls,#sites .work-card .card-controls{justify-content:flex-start;
    margin-top:16px;}}

/* v32 title alignment only */

#service .section-title,#sites .section-title{align-self:start !important;}

#service .section-title-copy,#sites .section-title-copy{margin-top:34px !important;}

@media (max-width:980px){#service .section-title-copy,#sites .section-title-copy{margin-top:26px !important;}}

/* v33 section View More buttons */

.section-view-more{margin-top:36px;
  width:150px;
  height:150px;
  border-radius:50%;
  background:var(--blue);
  color:#fff;
  display:inline-grid;
  place-items:center;
  text-decoration:none;
  font-size:16px;
  font-weight:700;
  letter-spacing:.08em;
  box-shadow:0 22px 70px rgba(16,67,200,.20);
  transition:transform .55s cubic-bezier(.16,.84,.22,1), box-shadow .55s ease, filter .55s ease;
  will-change:transform,box-shadow,filter;}

.section-view-more:hover,.contact-button:hover{transform:translateY(-12px) scale(1.035);
  filter:brightness(1.08);
  box-shadow:0 34px 95px rgba(16,67,200,.34), 0 0 34px rgba(18,200,244,.26);}

.contact-button{transition:transform .55s cubic-bezier(.16,.84,.22,1), box-shadow .55s ease, filter .55s ease;
  will-change:transform,box-shadow,filter;}

@media (max-width:980px){.section-view-more{width:132px;
    height:132px;
    margin-top:28px;
    font-size:14px;}}

/* v35 View More button position/text weight fix */

#service .section-view-more,#sites .section-view-more,#news .section-view-more{display:grid !important;
  margin:36px auto 0 !important;
  font-weight:500 !important;}

@media (max-width:980px){#service .section-view-more,#sites .section-view-more,#news .section-view-more{margin:28px auto 0 !important;
    font-weight:500 !important;}}

/* v36 View More text font tuning */

#service .section-view-more,#sites .section-view-more,#news .section-view-more{font-family: rajdhani, sans-serif !important;
  font-weight:400 !important;}

/* v37 View More font visible tuning */

#service .section-view-more,#sites .section-view-more,#news .section-view-more{font-family:"Rajdhani", rajdhani, sans-serif !important;
  font-weight:300 !important;
  letter-spacing:.075em !important;}

/* v38 alphabet font unification */

button,input,textarea,select{font-family:"Rajdhani",rajdhani,"Segoe UI","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif !important;}

/* v39 typography refinements */

#message .orchestration-copy{font-size:clamp(46px,5.4vw,92px) !important;
  line-height:.88 !important;}

.project-copy{font-size:clamp(50px,6.6vw,118px) !important;
  line-height:.88 !important;}

.section-label,.section-title .section-label,.parallax-copy span{font-weight:500 !important;}

.business-grid strong,.steps strong{font-family:"Rajdhani",rajdhani,sans-serif !important;
  font-weight:400 !important;}

.news-list time{font-size:16px !important;
  font-weight:800 !important;
  letter-spacing:.04em !important;}

.business-grid span,.steps span{font-size:17px !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;}

@media (max-width:980px){#message .orchestration-copy{font-size:clamp(36px,10vw,64px) !important;}

.project-copy{font-size:clamp(40px,10.5vw,76px) !important;}

.business-grid span,.steps span{font-size:16px !important;}}

/* v40 card typography refinements only */

.business-grid strong,.steps strong{font-weight:500 !important;}

.business-grid span,.steps span{font-size:20px !important;
  font-weight:700 !important;}

@media (max-width:980px){.business-grid span,.steps span{font-size:18px !important;}}

/* v41 card/title typography refinements */

.section-title h2{font-weight:600 !important;}

.business-grid span,.steps span{font-size:26px !important;
  font-weight:600 !important;}

.business-grid strong,.steps strong{color:var(--ink) !important;
  font-size:28px !important;
  font-weight:500 !important;}

.business-grid article,.steps div{border-top:3px solid var(--blue) !important;}

/* v42 card underline and paragraph weight fix */

.business-grid article,.steps div{border-top:0 !important;
  border-bottom:3px solid var(--blue) !important;}

.business-grid p,.steps p{font-weight:400 !important;}

/* v45 project overlay cards */

.delay-3{transition-delay: .36s;}

.project-float-card{position: absolute;
  z-index: 3;
  opacity: 0;
  transform: translateY(42px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.22,1,.36,1);
  pointer-events: none;}

.project-float-card.is-visible{opacity: 1;
  transform: translateY(0);}

.project-float-card__inner{transform: translate3d(0, calc(var(--project-character-scroll-y, 0px) * .82), 0);
  will-change: transform;}

.project-float-card img{display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 18px 42px rgba(7, 24, 60, .18);}

.project-float-card--hokusai{right: clamp(36px, 8vw, 126px);
  top: clamp(208px, 30vh, 286px);
  width: min(22vw, 300px);}

.project-float-card--movira{right: clamp(250px, 24vw, 420px);
  top: clamp(334px, 45vh, 420px);
  width: min(18vw, 250px);}

.project-float-card--movira .project-float-card__inner{transform: translate3d(0, calc(var(--project-character-scroll-y, 0px) * .96), 0);}

@media (max-width: 1280px){.project-float-card--hokusai{right: 42px;
    top: 248px;
    width: min(26vw, 270px);}

.project-float-card--movira{right: 220px;
    top: 384px;
    width: min(21vw, 220px);}}

@media (max-width: 980px){.project-float-card{position: relative;
    justify-self: end;
    margin-top: -28px;}

.project-float-card--hokusai,.project-float-card--movira{top: auto;
    right: auto;
    width: min(62vw, 290px);}

.project-float-card--hokusai{grid-column: 1;
    margin-left: auto;
    margin-right: 10px;}

.project-float-card--movira{grid-column: 1;
    width: min(54vw, 230px);
    margin-left: auto;
    margin-right: 72px;
    margin-top: -40px;}}

/* v46 project overlay card position/size adjustment */

.project-float-card--hokusai{right: clamp(44px, 8vw, 118px) !important;
  top: clamp(360px, 49vh, 468px) !important;
  width: 300px !important;}

.project-float-card--movira{right: clamp(300px, 24vw, 430px) !important;
  top: clamp(432px, 58vh, 548px) !important;
  width: 300px !important;}

@media (max-width: 1280px){.project-float-card--hokusai{right: 40px !important;
    top: 392px !important;
    width: 300px !important;}

.project-float-card--movira{right: 248px !important;
    top: 470px !important;
    width: 300px !important;}}

@media (max-width: 980px){.project-float-card--hokusai,.project-float-card--movira{width: 300px !important;
    max-width: calc(100vw - 56px);}

.project-float-card--hokusai{margin-top: -6px !important;
    margin-right: 8px !important;}

.project-float-card--movira{margin-right: 52px !important;
    margin-top: -18px !important;}}

/* v47 project overlay cards: lower placement, more left, wider gap */

.project-float-card--hokusai{right: clamp(96px, 12vw, 168px) !important;
  top: clamp(468px, 60vh, 592px) !important;
  width: 300px !important;}

.project-float-card--movira{right: clamp(420px, 31vw, 560px) !important;
  top: clamp(520px, 67vh, 654px) !important;
  width: 300px !important;}

@media (max-width: 1280px){.project-float-card--hokusai{right: 92px !important;
    top: 500px !important;
    width: 300px !important;}

.project-float-card--movira{right: 390px !important;
    top: 560px !important;
    width: 300px !important;}}

@media (max-width: 980px){.project-float-card--hokusai,.project-float-card--movira{width: 300px !important;
    max-width: calc(100vw - 56px);}

.project-float-card--hokusai{margin-top: 22px !important;
    margin-right: 12px !important;}

.project-float-card--movira{margin-right: 108px !important;
    margin-top: 4px !important;}}

/* v48 project overlay cards: move both cards further down */

.project-float-card--hokusai{top: clamp(548px, 69vh, 688px) !important;}

.project-float-card--movira{top: clamp(604px, 76vh, 752px) !important;}

@media (max-width: 1280px){.project-float-card--hokusai{top: 586px !important;}

.project-float-card--movira{top: 648px !important;}}

@media (max-width: 980px){.project-float-card--hokusai{margin-top: 48px !important;}

.project-float-card--movira{margin-top: 26px !important;}}

/* v49 project overlay cards: move whole 2-card group further down and left */

.project-float-card--hokusai{right: clamp(168px, 15vw, 248px) !important;
  top: clamp(620px, 78vh, 760px) !important;}

.project-float-card--movira{right: clamp(588px, 41vw, 760px) !important;
  top: clamp(676px, 85vh, 824px) !important;}

@media (max-width: 1280px){.project-float-card--hokusai{right: 156px !important;
    top: 656px !important;}

.project-float-card--movira{right: 476px !important;
    top: 716px !important;}}

@media (max-width: 980px){.project-float-card--hokusai{margin-right: 36px !important;
    margin-top: 84px !important;}

.project-float-card--movira{margin-right: 138px !important;
    margin-top: 58px !important;}}

/* v50 project overlay cards: move whole group up, move left card right */

.project-float-card--hokusai{top: clamp(540px, 68vh, 680px) !important;}

.project-float-card--movira{right: clamp(468px, 33vw, 640px) !important;
  top: clamp(596px, 75vh, 744px) !important;}

@media (max-width: 1280px){.project-float-card--hokusai{top: 576px !important;}

.project-float-card--movira{right: 356px !important;
    top: 636px !important;}}

@media (max-width: 980px){.project-float-card--hokusai{margin-top: 4px !important;}

.project-float-card--movira{margin-right: 18px !important;
    margin-top: -22px !important;}}

/* v51 move left overlay card 50px left and 60px down */

.project-float-card--movira{right: calc(clamp(468px, 33vw, 640px) + 50px) !important;
  top: calc(clamp(596px, 75vh, 744px) + 60px) !important;}

@media (max-width: 1280px){.project-float-card--movira{right: 406px !important;
    top: 696px !important;}}

@media (max-width: 980px){.project-float-card--movira{margin-right: 68px !important;
    margin-top: 38px !important;}}

/* v52 move left overlay card 20px right */

.project-float-card--movira{right: calc(clamp(468px, 33vw, 640px) + 30px) !important;}

@media (max-width: 1280px){.project-float-card--movira{right: 386px !important;}}

@media (max-width: 980px){.project-float-card--movira{margin-right: 48px !important;}}

/* v65 smartphone responsive consolidation */

@media (max-width: 980px){body.is-menu-open .nav{transform:translateY(0);
    opacity:1;
    visibility:visible;}

body.is-menu-open .menu-button span:first-child{transform:translateY(4px) rotate(45deg);}

body.is-menu-open .menu-button span:last-child{transform:translateY(-4px) rotate(-45deg);}

.section{min-height:auto !important;
    padding:92px 24px 72px !important;
    display:block !important;}

.hero{min-height:100svh !important;
    height:100svh !important;
    padding:64px 24px 24px !important;
    overflow:hidden !important;}

.hero-logo-stage{top:30% !important;
    left:50% !important;
    width:100% !important;}

.hero-logo-stage img{width:190px !important;
    max-width:66vw !important;}

.hero-left-copy{left:24px !important;
    right:24px !important;
    top:auto !important;
    bottom:110px !important;
    width:auto !important;
    font-size:9px !important;
    line-height:1.7 !important;
    letter-spacing:.035em !important;
    color:rgba(8,22,54,.34) !important;
    white-space:normal !important;
    overflow-wrap:anywhere;}

.scroll-label{right:20px !important;
    left:auto !important;
    bottom:34px !important;}

#message .body-copy{position:static !important;
    width:100% !important;
    margin-top:28px !important;
    transform:translateY(-40px);}

.message,.about,.works,.workflow,.project,.news,.contact{grid-template-columns:1fr !important;
    gap:0 !important;}

.vertical-copy{writing-mode:horizontal-tb !important;
    justify-self:start !important;
    margin:30px 0 0 !important;
    font-size:30px !important;
    line-height:1.65 !important;
    letter-spacing:.04em !important;}

.section-title,.section-title.center{text-align:left !important;
    align-self:auto !important;
    justify-self:auto !important;}

.section-title h2{font-size:clamp(32px,10vw,44px) !important;
    line-height:1.2 !important;}

.section-title-copy,.wide-copy,.project-lead,.contact-copy{width:100% !important;
    margin-top:28px !important;
    line-height:1.9 !important;}

#business,#service,#sites,#workflow,#contact{padding-top:72px !important;}

#business .section-title{transform:translateY(-80px);}

#business .wide-copy{margin-top:-48px !important;}

#service .section-title{transform:translateY(-50px);}

#sites .section-title{transform:translateY(-100px);}

#workflow .section-title{transform:translateY(-68px);}

#contact .section-title{transform:translateY(-68px);}

.business-grid,.steps{grid-template-columns:1fr !important;
    gap:20px !important;
    width:100% !important;
    margin-top:38px !important;}

.business-grid article,.steps div{padding:22px 0 0 !important;
    background:transparent !important;
    backdrop-filter:none !important;}

.parallax-showcase{min-height:620px !important;
    padding:72px 0 64px !important;
    align-items:flex-start !important;}

.parallax-copy{position:relative !important;
    left:auto !important;
    top:auto !important;
    z-index:5;
    padding:0 24px;}

.parallax-copy strong{font-size:clamp(34px,10vw,48px) !important;
    line-height:1.25 !important;}

.parallax-track{position:absolute !important;
    left:0 !important;
    top:210px !important;
    width:max-content !important;
    min-width:900px;
    gap:18px !important;
    padding:0 24px !important;}

.parallax-panel,.parallax-panel.is-large,.parallax-panel.is-tall{flex:0 0 220px !important;
    width:220px !important;
    height:300px !important;}

.work-card{width:100% !important;
    max-width:100% !important;
    padding-top:0 !important;
    margin-top:-70px !important;
    overflow:visible !important;}

#service .work-card,#sites .work-card{transform:translateY(-50px);}

.card-scroller{width:calc(100vw - 24px) !important;
    margin-left:0 !important;
    padding:6px 24px 28px 0 !important;
    gap:16px !important;
    scroll-padding-left:0;
    scroll-padding-right:24px;}

.service-card,.site-card{flex:0 0 min(84vw,390px) !important;
    width:min(84vw,390px) !important;}

.service-card img,.site-card img{width:100% !important;
    height:auto !important;
    aspect-ratio:390/228;}

.card-controls{justify-content:flex-end;
    padding-right:0;
    margin-top:4px;}

.steps{margin-top:-24px !important;}

.project{min-height:auto !important;
    padding-bottom:86px !important;
    overflow:hidden;}

.project-content{position:relative;
    z-index:4;}

.project-copy{margin:44px 0 0 !important;
    font-size:42px !important;}

.project-character{position:relative !important;
    display:block !important;
    width:86vw !important;
    max-width:360px !important;
    height:auto !important;
    margin:52px auto 0 !important;
    transform:none !important;
    right:auto !important;
    left:auto !important;
    bottom:auto !important;}

.project-float-card{position:relative !important;
    top:auto !important;
    right:auto !important;
    left:auto !important;
    width:min(64vw,250px) !important;
    max-width:none !important;
    margin:0 !important;
    transform:none !important;
    opacity:1 !important;}

.project-float-card__inner{transform:none !important;}

.project-float-card--hokusai{margin:-360px 14px 0 auto !important;
    z-index:6;}

.project-float-card--movira{margin:28px auto 0 12px !important;
    z-index:6;}

.news-list{width:100% !important;
    margin-top:34px !important;}

.news-list a{display:block !important;
    padding:22px 0 !important;
    text-align:left !important;}

.news-list time{display:block;
    margin-bottom:10px;}

.contact-copy{margin-top:-30px !important;}

.contact-button{width:140px !important;
    height:140px !important;
    margin-top:34px !important;}}

/* v66 smartphone spacing and project visual refinements */

@media (max-width: 980px){.section-title,.section-title.center,.section-label,.section-title h2{text-align:left !important;
    justify-content:flex-start !important;
    justify-self:start !important;
    align-self:auto !important;}

.section-title h2,#service .section-title h2,#sites .section-title h2{font-size:34px !important;
    line-height:1.25 !important;}

.section-title-copy,.wide-copy,.project-lead,.contact-copy{margin-top:80px !important;}

#service,#sites{padding:130px 24px 28px 0 !important;}

#service .section-title,#sites .section-title{transform:none !important;
    padding-left:24px !important;}

#service .work-card,#sites .work-card{margin-top:0 !important;
    transform:none !important;}

#service .card-scroller,#sites .card-scroller{padding:130px 24px 28px 0 !important;}

.project-character{margin-top:20px !important;}

.project-float-card--hokusai{margin:-390px 14px 0 auto !important;}

.project-float-card--movira{margin:8px auto 0 12px !important;}}

/* v67 smartphone position refinements */

@media (max-width: 980px){.hero-left-copy{bottom:58px !important;}

.parallax-copy strong{font-size:clamp(30px,8.8vw,42px) !important;}

#service .work-card,#sites .work-card{transform:translateY(-30px) !important;}

.project-character{margin-top:-8px !important;}

.project-float-card{width:min(56vw,220px) !important;}

.project-float-card--hokusai{margin:-408px 16px 0 auto !important;}

.project-float-card--movira{margin:34px auto 0 10px !important;}

.contact-copy{margin-top:-58px !important;}}

/* v68 smartphone refinements */

@media (max-width: 980px){#message .body-copy{margin-top:42px !important;
    transform:none !important;}

#business .wide-copy{text-align:left !important;
    margin-left:0 !important;
    margin-right:0 !important;}

.project-character{margin-top:-28px !important;}

.project-float-card{width:min(50vw,196px) !important;}

.project-float-card--hokusai{margin:-438px 14px 0 auto !important;}

.project-float-card--movira{margin:42px auto 0 10px !important;}

#contact{padding-top:130px !important;}

.contact-copy{margin-top:34px !important;
    text-align:left !important;}}

/* v69 smartphone alignment refinements */

@media (max-width: 980px){.hero-logo-stage{top:50% !important;
    transform:translate(-50%,-50%) !important;}

.parallax-showcase{display:flex !important;
    align-items:center !important;}

.parallax-copy{position:relative !important;
    top:auto !important;
    transform:none !important;
    width:100% !important;}

#business,#service,#sites,#workflow,#contact{padding-top:130px !important;}

#business .section-title,#service .section-title,#sites .section-title,#workflow .section-title,#contact .section-title{transform:none !important;
    margin-top:0 !important;}

#service .card-scroller,#sites .card-scroller{width:100vw !important;
    margin-left:-24px !important;
    padding-left:30px !important;
    padding-right:30px !important;
    scroll-padding-left:30px !important;
    scroll-padding-right:30px !important;}

.project-float-card--movira{margin-top:32px !important;}}

/* v70 smartphone spacing refinements */

@media (max-width: 980px){#business .wide-copy{margin-top:28px !important;}

#news{padding-bottom:0 !important;}

#contact{padding-top:80px !important;}

#workflow .steps{margin-top:56px !important;}

.parallax-showcase{min-height:460px !important;
    height:auto !important;
    padding:64px 0 !important;
    margin-top:72px !important;
    margin-bottom:72px !important;}}

/* v71 smartphone alignment refinements */

@media (max-width: 980px){.parallax-track{top:50% !important;
    margin-top:-150px !important;}

.parallax-panel img{object-position:center center !important;}

#service .card-scroller,#sites .card-scroller{margin-left:-24px !important;
    padding-left:24px !important;
    padding-right:24px !important;
    scroll-padding-left:24px !important;
    scroll-padding-right:24px !important;}

#service .card-controls,#sites .card-controls{padding-left:0 !important;
    padding-right:0 !important;
    margin-left:0 !important;}

#business .section-title,#service .section-title,#sites .section-title,#workflow .section-title,#project .section-title,#news .section-title{transform:translateY(-20px) !important;}

#contact{padding-top:100px !important;
    padding-bottom:106px !important;}

#contact .section-title{transform:translateY(20px) !important;}}

/* v72 smartphone spacing corrections */

@media (max-width: 980px){/* Move section headings up reliably without transform conflicts */

#business .section-title,#service .section-title,#sites .section-title,#workflow .section-title,#project .section-title,#news .section-title{transform:none !important;
    position:relative !important;
    top:-20px !important;}

/* Bring the first workflow item 20px closer to its heading */

#workflow .steps{margin-top:36px !important;}

/* Align cards and carousel controls with the 24px title inset */

#service .card-scroller,#sites .card-scroller{width:100vw !important;
    margin-left:0 !important;
    padding-left:24px !important;
    padding-right:24px !important;
    scroll-padding-left:24px !important;
    scroll-padding-right:24px !important;}

#service .card-controls,#sites .card-controls{box-sizing:border-box !important;
    width:100% !important;
    margin-left:0 !important;
    padding-left:24px !important;
    padding-right:24px !important;}}

/* v73 smartphone project-card size and motion refinements */

@media (max-width: 980px){.project-float-card{width:min(44vw,172px) !important;}

.project-float-card__inner{transform:translate3d(0, calc(var(--project-character-scroll-y, 0px) * .18), 0) !important;
    will-change:transform;
    transition:transform .18s linear !important;}

.project-float-card--hokusai{margin-right:18px !important;}

.project-float-card--movira{margin-left:14px !important;}}

/* v74 smartphone girl character motion */

@media (max-width: 980px){.project-character{transform: translate3d(0, calc(var(--project-character-scroll-y, 0px) * .34), 0) !important;
    will-change: transform;
    transition: transform .18s linear !important;}}

/* v75 smartphone project visual position refinements */

@media (max-width: 980px){.project-character{margin-top: -8px !important;}

.project-float-card--hokusai{margin: -452px 14px 0 auto !important;}

.project-float-card--movira{margin: 24px auto 0 10px !important;}}

/* v83 unified footer typography */
/* Prevent theme link hover overrides on v93 controls. */
body.home #top .card-controls button:hover,body.home #top .card-controls button:focus-visible{background:rgba(255,255,255,.80)!important;color:var(--blue)!important;-webkit-text-fill-color:var(--blue)!important;border-color:rgba(16,67,200,.35)!important}
body.home #top .section-view-more,body.home #top .section-view-more:hover,body.home #top .section-view-more:visited,body.home #top .contact-button,body.home #top .contact-button:hover,body.home #top .contact-button:visited{color:#fff!important;-webkit-text-fill-color:#fff!important;text-decoration:none!important}
/* =========================================================
   MOBILE HERO LOGO — iOS SAFARI FILTER FIX
========================================================= */
@media (max-width: 980px) {
  .hero-logo-stage img {
    animation: heroLogoFadeInSlowMobile 3.25s cubic-bezier(.18,.72,.2,1) both !important;
    filter: none !important;
    -webkit-filter: none !important;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }
}

@keyframes heroLogoFadeInSlowMobile {
  0% {
    opacity: 0;
    transform: scale(.955);
  }

  22% {
    opacity: 0;
    transform: scale(.965);
  }

  55% {
    opacity: .28;
    transform: scale(.985);
  }

  82% {
    opacity: .72;
    transform: scale(.997);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}
/* =========================================================
   NEWS LIST + VIEW MORE LAYOUT FIX
========================================================= */

#news {
  display: grid !important;
  grid-template-columns: minmax(0, 980px) minmax(190px, 1fr) !important;
  column-gap: clamp(48px, 6vw, 96px) !important;
  align-items: start !important;
}

#news .section-title {
  display: contents !important;
  opacity: 1 !important;
  transform: none !important;
}

#news .section-title > .section-label {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: start !important;
}

#news .section-title > h2 {
  grid-column: 1 !important;
  grid-row: 2 !important;
  justify-self: start !important;
}

#news .news-list {
  grid-column: 1 !important;
  grid-row: 3 !important;
  width: min(980px, 100%) !important;
}

#news .section-title > .section-view-more {
  grid-column: 2 !important;
  grid-row: 3 !important;
  align-self: center !important;
  justify-self: center !important;
  margin: 0 !important;
}

#news .section-title > .section-label,
#news .section-title > h2,
#news .section-title > .section-view-more {
  opacity: 1 !important;
  transform: none !important;
}

@media (max-width: 980px) {
  #news {
    grid-template-columns: 1fr !important;
    column-gap: 0 !important;
  }

  #news .section-title > .section-label {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  #news .section-title > h2 {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }

  #news .news-list {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }

  #news .section-title > .section-view-more {
    grid-column: 1 !important;
    grid-row: 4 !important;
    margin: 34px auto 0 !important;
  }
}
/* =========================================================
   NEWS ROW MARKUP
   日付はテキスト、タイトルのみリンク
========================================================= */

#news .news-list .nexus-news-item {
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) !important;
  gap: 28px !important;
  align-items: start !important;
  padding: 28px 0 !important;
  border-top: 1px solid var(--line) !important;
}

#news .news-list .nexus-news-item:last-child {
  border-bottom: 1px solid var(--line) !important;
}

#news .news-list .nexus-news-item time {
  position: relative !important;
  top: 2px !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  text-decoration: none !important;
}

#news .news-list .nexus-news-title {
  display: block !important;
  width: fit-content !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--ink) !important;
  grid-template-columns: none !important;
  gap: 0 !important;
}

@media (max-width: 980px) {
  #news .news-list .nexus-news-item {
    display: block !important;
    padding: 22px 0 !important;
  }

  #news .news-list .nexus-news-item time {
    top: 0 !important;
    margin-bottom: 10px !important;
  }
}
