/* PadinSoft · laboratorio tecnológico personal */
:root{
  --ps-navy:#102a43;--ps-navy-2:#173b5c;--ps-blue:#1677b8;--ps-cyan:#2ab7d8;
  --ps-cyan-soft:#dff5fa;--ps-ink:#162536;--ps-muted:#60758a;--ps-line:#dce6ed;
  --ps-bg:#f5f8fa;--ps-white:#fff;--ps-success:#2d9b68;--ps-warning:#c78a28;
  --ps-header-height:76px;
}
html{scroll-padding-top:calc(var(--ps-header-height) + 24px)}
body{background:var(--ps-bg);color:var(--ps-ink);font-family:var(--cms-font-body);font-size:16px;line-height:1.62;letter-spacing:-.003em}
a{color:var(--ps-blue);text-underline-offset:.18em}a:hover{color:#105d8f}
::selection{color:var(--ps-navy);background:var(--ps-cyan-soft)}
h1,h2,h3,h4,h5,h6{color:var(--ps-navy);font-weight:750;letter-spacing:-.035em}
p{max-width:72ch}.cms-text--center p{margin-inline:auto}
.cms-section__inner{padding-inline:clamp(20px,3.5vw,48px)}
.cms-section--padding-xl>.cms-section__inner{padding-block:clamp(3rem,6vw,5.4rem)}
.cms-section--padding-lg>.cms-section__inner{padding-block:clamp(2.25rem,4.5vw,4rem)}
.cms-section--padding-md>.cms-section__inner{padding-block:clamp(1.5rem,3vw,2.4rem)}
.cms-section .cms-grid{column-gap:clamp(1rem,2.3vw,2.25rem);row-gap:clamp(1rem,2.2vw,1.85rem)}
.cms-column{gap:.9rem}

/* Header */
.ps-header{position:sticky;top:0;z-index:80;border-bottom:1px solid rgba(16,42,67,.08);background:rgba(255,255,255,.92);backdrop-filter:saturate(150%) blur(18px);box-shadow:0 8px 30px rgba(16,42,67,.04)}
.ps-header>.cms-section__inner{min-height:var(--ps-header-height);padding-block:.55rem}
.ps-header>.cms-section__inner>.cms-grid{align-items:center}
.ps-header .site-brand__logo{width:min(var(--site-brand-logo-width,240px),100%)}
.site-menu .menu{margin:0;padding:0;list-style:none}
.site-menu .menu>li{margin:0}
.site-menu--horizontal .menu{display:flex;flex-wrap:wrap}
.ps-header .site-menu--horizontal .menu{align-items:center;justify-content:center;gap:.2rem}
.ps-header .site-menu a{display:inline-flex;padding:.55rem .68rem;border-radius:.62rem;color:var(--ps-navy);font-size:.9rem;font-weight:650;text-decoration:none;white-space:nowrap}
.ps-header .site-menu a:hover,.ps-header .site-menu a[aria-current="page"]{color:var(--ps-blue);background:#edf6fb}
.ps-header-cta .cms-button{min-height:40px;padding:.55rem .82rem;font-size:.86rem;white-space:nowrap}
.ps-nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;border:1px solid var(--ps-line);border-radius:.7rem;color:var(--ps-navy);background:#fff;cursor:pointer}
.ps-nav-toggle svg{width:22px;height:22px}

/* Footer */
.ps-footer{color:rgba(255,255,255,.78);background:var(--ps-navy)}
.ps-footer h2,.ps-footer h3{color:#fff;font-size:1rem;letter-spacing:-.01em}
.ps-footer p{font-size:.9rem;color:rgba(255,255,255,.76)}.ps-footer a{color:rgba(255,255,255,.88);text-decoration:none}.ps-footer a:hover{color:#fff}
.ps-footer .site-brand__logo{width:min(var(--site-brand-logo-width,235px),100%)}
.ps-footer .site-menu .menu{display:grid;gap:.3rem}
.ps-footer .site-menu a{display:inline-block;padding:.16rem 0;font-size:.92rem}
.ps-footer-bottom{border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.64);background:var(--ps-navy)}
.ps-footer-bottom>.cms-section__inner{padding-block:.8rem}.ps-footer-bottom .cms-grid{align-items:center}
.ps-footer-bottom .site-copyright{font-size:.84rem}

/* Sections */
.ps-page-header{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#eef7fb 100%)}
.ps-page-header:after{position:absolute;inset:auto -8% -70% auto;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(42,183,216,.18),transparent 68%);content:"";pointer-events:none}
.ps-page-title{max-width:900px}.ps-page-title.cms-heading{max-width:16ch;font-size:clamp(2.35rem,4.8vw,4.35rem);line-height:1.02}
.ps-page-lead{max-width:720px;color:#40566b;font-size:clamp(1.02rem,1.6vw,1.16rem)}
.ps-section--muted{background:#edf4f7}.ps-section--white{background:#fff}.ps-section--dark{color:#d9e8f1;background:var(--ps-navy)}
.ps-section--dark h2,.ps-section--dark h3,.ps-section--dark .cms-heading{color:#fff}.ps-section--dark .cms-text{color:#c4d8e5}
.ps-section--accent{background:linear-gradient(135deg,var(--ps-navy),#154b70);color:#dbeaf3}
.ps-section--accent h2,.ps-section--accent h3{color:#fff}
.ps-section-title.cms-heading{margin-bottom:.2rem;font-size:clamp(1.85rem,3.3vw,2.85rem);line-height:1.08}
.ps-section-intro{margin-inline:auto;max-width:700px;color:var(--ps-muted);font-size:.98rem}
.ps-kicker.cms-text{color:var(--ps-blue);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}

/* Hero */
.ps-home-hero{overflow:hidden;background:linear-gradient(135deg,#fff 0%,#eef7fb 55%,#e3f3f8 100%)}
.ps-home-hero>.cms-section__inner{padding-block:clamp(3rem,6vw,5.4rem)}
.ps-home-hero .cms-hero__inner{gap:clamp(1.75rem,4vw,3.75rem)}
.ps-home-hero .cms-hero__title{max-width:16ch;font-size:clamp(2.8rem,5.2vw,4.85rem);line-height:1.01}
.ps-home-hero .cms-hero__text{max-width:620px;color:#40566b;font-size:clamp(1.02rem,1.55vw,1.16rem);line-height:1.65}
.ps-home-hero .cms-hero__media{filter:drop-shadow(0 32px 55px rgba(16,42,67,.16))}
.ps-home-hero .cms-hero__media img{border-radius:1.4rem}
.cms-hero__eyebrow,.cms-card__eyebrow,.cms-cta__eyebrow{color:var(--ps-blue);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.cms-button{min-height:42px;padding:.68rem 1rem;border-radius:.68rem;font-size:.94rem;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.cms-button:hover{transform:translateY(-2px)}
.cms-button--primary{background:linear-gradient(135deg,var(--ps-blue),#1598c2);box-shadow:0 10px 24px rgba(22,119,184,.22)}
.cms-button--primary:hover{background:linear-gradient(135deg,#105d8f,#117fa5)}
.cms-button--secondary{border-color:#b8d3e2;color:var(--ps-navy);background:rgba(255,255,255,.86)}

/* Cards */
.cms-cards{gap:clamp(.85rem,1.8vw,1.3rem)}
.cms-card{overflow:hidden;border:1px solid rgba(16,42,67,.09);border-radius:.85rem;background:#fff;box-shadow:0 8px 26px rgba(16,42,67,.055);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.cms-card:hover{transform:translateY(-3px);border-color:rgba(22,119,184,.25);box-shadow:0 16px 40px rgba(16,42,67,.10)}
.cms-card__media{background:#eaf2f6}.cms-card__media img{transition:transform .35s ease}.cms-card:hover .cms-card__media img{transform:scale(1.025)}
.cms-card__body{padding:1.05rem 1.1rem 1.15rem}.cms-card h3{font-size:1.08rem;line-height:1.25}.cms-card h3 a{color:var(--ps-navy);text-decoration:none}.cms-card p{color:var(--ps-muted);font-size:.93rem;line-height:1.55}
.cms-card__link{display:inline-flex;align-items:center;gap:.3rem;padding-top:.75rem;font-size:.9rem;font-weight:750;text-decoration:none}.cms-card__link:after{content:"→"}
.ps-area-cards .cms-card{box-shadow:none}.ps-area-cards .cms-card__body{min-height:205px}
.ps-project-cards .cms-card__media img{aspect-ratio:16/9;object-fit:cover}
.ps-note-cards .cms-card__body{min-height:215px}

/* Lists and stats */
.cms-icon-list--cards .cms-icon-list__item{border-color:rgba(16,42,67,.09);border-radius:.85rem;background:#fff;box-shadow:0 8px 24px rgba(16,42,67,.05)}
.cms-icon-list__icon{flex-basis:38px;height:38px;border-radius:10px;color:var(--ps-blue);background:#e8f6fa}
.ps-principles .cms-icon-list__item{min-height:190px;padding:1rem}.ps-principles .cms-icon-list__body strong{font-size:1rem}.ps-principles .cms-icon-list__body span{font-size:.92rem;line-height:1.55}
.cms-stats{gap:1rem}.cms-stats__item{border:1px solid rgba(255,255,255,.14);border-radius:1rem;background:rgba(255,255,255,.07)}
.ps-project-stats .cms-stats__item{border-color:rgba(16,42,67,.08);background:#fff;box-shadow:0 12px 34px rgba(16,42,67,.06)}
.ps-project-stats .cms-stats__value{color:var(--ps-blue)}

/* Editorial */
.ps-prose.cms-text{font-size:1rem;line-height:1.72}.ps-prose.cms-text p{margin-bottom:1.1rem}
.ps-project-hero{background:linear-gradient(135deg,#fff,#edf7fa)}
.ps-project-hero .cms-hero__title{font-size:clamp(2.8rem,6vw,5rem)}
.ps-project-hero .cms-hero__media img{border:1px solid var(--ps-line);border-radius:1.2rem;box-shadow:var(--cms-shadow)}
.cms-tabs{border-radius:1rem;background:#fff;box-shadow:0 10px 34px rgba(16,42,67,.06)}
.cms-accordion details{border-radius:.85rem;background:#fff}
.ps-project-note.cms-notice{border-radius:.85rem}
.ps-lab-list .cms-icon-list__item{border-bottom:1px solid var(--ps-line);padding-block:.85rem}
.ps-lab-list .cms-icon-list__item:last-child{border-bottom:0}
.ps-closing-cta.cms-cta{border:1px solid rgba(22,119,184,.14);border-radius:1.15rem;background:linear-gradient(135deg,#fff,#eaf7fb);box-shadow:0 16px 44px rgba(16,42,67,.075)}
.ps-closing-cta.cms-cta h2{font-size:clamp(2rem,4vw,3.5rem)}

/* Legal */
.ps-legal .cms-text{max-width:850px}.ps-legal .cms-text p{margin-bottom:1.25rem}

/* Visual refinement v1.0.1 */
.ps-footer>.cms-section__inner{padding-block:clamp(2.7rem,4.5vw,3.8rem)}
.ps-footer .cms-grid{align-items:start}
.ps-footer-brand .cms-text{max-width:44ch}
.ps-section--principles>.cms-section__inner{padding-block:clamp(3rem,5.5vw,4.8rem)}
.ps-section--closing>.cms-section__inner{padding-block:clamp(3rem,5.5vw,4.8rem)}
.ps-section--project-note>.cms-section__inner{padding-block:1rem}
.cms-notice{font-size:.94rem;line-height:1.6}
.ps-lab-list .cms-icon-list__body strong{font-size:1rem}
.ps-lab-list .cms-icon-list__body span{font-size:.93rem;line-height:1.55}
.ps-home-hero .cms-hero__media img{max-height:520px;object-fit:contain;background:transparent;box-shadow:none}
.ps-project-cards .cms-card__media img{aspect-ratio:16/8.5}
.ps-project-cards .cms-card__body{min-height:205px}
.ps-area-cards .cms-card__link{margin-top:auto}

/* Accessibility */
:focus-visible{outline:3px solid rgba(42,183,216,.8);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(max-width:980px){
  :root{--ps-header-height:68px}
  .ps-header>.cms-section__inner>.cms-grid{grid-template-columns:1fr auto;gap:.75rem}
  .ps-header-brand{grid-column:1!important}.ps-header-nav{grid-column:1/-1!important;order:3}.ps-header-cta{display:none}
  .ps-nav-toggle{display:inline-flex;grid-column:2;grid-row:1}
  .ps-header.ps-nav-enhanced .ps-header-nav{display:none}
  .ps-header.ps-nav-enhanced[data-nav-open="true"] .ps-header-nav{display:block}
  .ps-header .site-menu--horizontal .menu{display:grid;justify-content:stretch;padding:.6rem 0 1rem}
  .ps-header .site-menu a{display:flex;font-size:1rem}
  .ps-header .cms-column{grid-column:auto}
  .ps-home-hero .cms-hero__title{max-width:18ch;font-size:clamp(2.45rem,8.5vw,3.65rem)}
}
@media(max-width:760px){
  body{font-size:15.5px}.cms-section__inner{padding-inline:20px}
  .ps-header .site-brand__logo{max-width:215px}
  .ps-page-title.cms-heading{font-size:clamp(2.25rem,10vw,3.15rem);line-height:1.04}
  .ps-home-hero>.cms-section__inner{padding-block:2.5rem 3.25rem}
  .cms-hero__actions{align-items:stretch}.cms-hero__actions .cms-button{width:100%}
  .ps-footer-bottom .cms-column{align-items:flex-start!important}

  .ps-header>.cms-section__inner{padding-block:.45rem}
  .ps-header-brand{min-width:0}
  .ps-header .site-brand{max-width:215px}
  .ps-page-header>.cms-section__inner{padding-block:2.6rem 3rem}
  .ps-page-lead{font-size:1rem;line-height:1.65}
  .ps-section-title.cms-heading{font-size:clamp(1.85rem,8vw,2.35rem)}
  .cms-card__body{padding:1rem}
  .ps-area-cards .cms-card__body,.ps-note-cards .cms-card__body,.ps-project-cards .cms-card__body{min-height:0}
  .ps-principles .cms-icon-list__item{min-height:0}
  .ps-footer>.cms-section__inner{padding-block:2.5rem}
  .ps-footer .cms-grid{row-gap:1.5rem}
  .ps-footer .site-brand__logo{max-width:220px}
}


/* Content refinement v1.0.2 */
.ps-page-header > .cms-section__inner{padding-block:clamp(2.35rem,4.2vw,3.75rem)}
.ps-listing-grid > .cms-section__inner,
.ps-status-section > .cms-section__inner,
.ps-method-section > .cms-section__inner{padding-block:clamp(2.15rem,3.8vw,3.35rem)}
.ps-listing-grid .cms-cards{gap:clamp(.8rem,1.5vw,1.15rem)}
.ps-listing-grid .cms-card__body{min-height:0;padding:1rem 1.05rem 1.08rem}
.ps-listing-grid .cms-card h3{font-size:1.03rem}
.ps-listing-grid .cms-card p{font-size:.9rem;line-height:1.48}
.ps-listing-grid .cms-card__link{padding-top:.65rem}
.ps-status-section .ps-section-title,
.ps-method-section .ps-section-title{margin-bottom:.1rem}
.ps-project-stats{gap:.85rem}
.ps-project-stats .cms-stats__item{min-height:0;padding:.95rem 1rem;border-radius:.8rem}
.ps-project-stats .cms-stats__value{font-size:1.08rem;line-height:1.2}
.ps-project-stats .cms-stats__label{margin-top:.35rem;font-size:.88rem}
.ps-project-stats .cms-stats__description{margin-top:.3rem;font-size:.86rem;line-height:1.45}
.ps-method-section .cms-icon-list{gap:.8rem}
.ps-method-section .cms-icon-list__item{min-height:0;padding:.9rem 1rem}
.ps-method-section .cms-icon-list__body strong{font-size:.98rem}
.ps-method-section .cms-icon-list__body span{font-size:.9rem;line-height:1.48}
.ps-footer > .cms-section__inner{padding-block:clamp(2.25rem,3.8vw,3.1rem)}
.ps-footer .cms-grid{row-gap:1.1rem}
.ps-footer p{line-height:1.55}
@media(max-width:760px){
  .ps-page-header > .cms-section__inner{padding-block:2.15rem 2.45rem}
  .ps-listing-grid > .cms-section__inner,
  .ps-status-section > .cms-section__inner,
  .ps-method-section > .cms-section__inner{padding-block:2rem}
  .ps-project-stats .cms-stats__item{padding:.9rem}
  .ps-footer > .cms-section__inner{padding-block:2rem}
}
/* PadinSoft v1.1.0 · contenido editorial dinámico */
.ps-editorial-meta-section .cms-section__inner{padding-top:.15rem;padding-bottom:.15rem}
.ps-related-section .cms-related-content{max-width:100%}
.ps-navigation-section .cms-section__inner{padding-top:.35rem}
.ps-lab-query .cms-content-query__item:first-child .cms-content-query__body{padding-top:.25rem}
.ps-rss-button{margin-top:.75rem}
@media(max-width:720px){.ps-editorial-meta-section .cms-editorial-meta dl{gap:.5rem}.ps-project-query.cms-content-query--columns-4{grid-template-columns:1fr}.ps-navigation-section .cms-section__inner{padding-top:.15rem}}

/* PadinSoft v1.2.0 · industrial-tech visual evolution
   Inspired by European engineering/product sites: darker navigation, stronger
   cyan/blue contrast, generous rounded surfaces and clearer editorial rhythm. */
:root{
  --ps-navy:#061b2b;--ps-navy-2:#0a3048;--ps-blue:#087bbd;--ps-cyan:#18aee0;
  --ps-cyan-2:#39c4ea;--ps-cyan-soft:#dff5fc;--ps-ink:#101820;--ps-muted:#526574;
  --ps-line:#d7e1e8;--ps-bg:#f1f3f6;--ps-white:#fff;--ps-header-height:72px;
}
body{background:var(--ps-bg);color:var(--ps-ink);font-size:16px;line-height:1.58}
h1,h2,h3,h4,h5,h6{color:#071c2b;font-weight:760;letter-spacing:-.032em}

/* Dark engineering header */
.ps-header{border-bottom:1px solid rgba(255,255,255,.08);background:rgba(5,22,35,.96);box-shadow:0 8px 26px rgba(0,12,22,.16);backdrop-filter:saturate(130%) blur(16px)}
.ps-header>.cms-section__inner{min-height:var(--ps-header-height)}
.ps-header .site-brand{display:inline-flex;padding:.34rem .58rem;border-radius:.55rem;background:#fff}
.ps-header .site-brand__logo{width:min(var(--site-brand-logo-width,220px),100%)}
.ps-header .site-menu a{padding:.58rem .72rem;border-radius:0;color:#eef8fc;font-size:.9rem;font-weight:680;letter-spacing:.005em}
.ps-header .site-menu a:hover,.ps-header .site-menu a[aria-current="page"]{color:#fff;background:transparent;box-shadow:inset 0 -3px 0 var(--ps-cyan)}
.ps-header-cta .cms-button{border-color:rgba(255,255,255,.48);color:#fff;background:transparent;box-shadow:none}
.ps-header-cta .cms-button:hover{border-color:var(--ps-cyan);background:rgba(24,174,224,.12)}
.ps-nav-toggle{border-color:rgba(255,255,255,.24);color:#fff;background:rgba(255,255,255,.06)}

/* Hero: stronger visual hierarchy and product-site feel */
.ps-home-hero{position:relative;color:#fff;background:linear-gradient(118deg,#061b2b 0%,#0a3e62 54%,#087fbd 100%)}
.ps-home-hero:before{position:absolute;inset:0;background:radial-gradient(circle at 78% 24%,rgba(57,196,234,.26),transparent 34%),linear-gradient(90deg,rgba(4,18,29,.35),transparent 62%);content:"";pointer-events:none}
.ps-home-hero>.cms-section__inner{position:relative;padding-block:clamp(3.8rem,7vw,6.8rem)}
.ps-home-hero .cms-hero__title{max-width:15ch;color:#fff;font-size:clamp(3rem,5.7vw,5.35rem);line-height:.98;letter-spacing:-.045em}
.ps-home-hero .cms-hero__text{max-width:650px;color:#e0edf4;font-size:clamp(1.05rem,1.6vw,1.22rem);line-height:1.6}
.ps-home-hero .cms-hero__eyebrow{color:#6bd5f3}
.ps-home-hero .cms-hero__media{filter:drop-shadow(0 34px 58px rgba(0,8,16,.34))}
.ps-home-hero .cms-hero__media img{border:1px solid rgba(255,255,255,.14);border-radius:1.65rem;background:rgba(255,255,255,.06)}
.ps-home-hero .cms-button--primary{border:1px solid rgba(255,255,255,.82);color:#fff;background:rgba(5,27,43,.28);box-shadow:none}
.ps-home-hero .cms-button--primary:hover{border-color:#fff;background:rgba(255,255,255,.12)}
.ps-home-hero .cms-button--secondary{border-color:rgba(255,255,255,.28);color:#fff;background:transparent}
.ps-home-hero .cms-button--secondary:hover{border-color:var(--ps-cyan-2);background:rgba(24,174,224,.10)}

/* Section rhythm */
.ps-section--white{background:#fff}.ps-section--muted{background:#eef1f5}
.ps-section-title.cms-heading{font-size:clamp(2rem,3.5vw,3.25rem);letter-spacing:-.04em}
.ps-section-intro{color:#526574;font-size:1rem}
.ps-kicker.cms-text,.cms-card__eyebrow,.cms-cta__eyebrow{color:var(--ps-blue);font-weight:820;letter-spacing:.09em}

/* Rounded, substantial cards */
.cms-cards{gap:clamp(1rem,2vw,1.55rem)}
.cms-card{border:0;border-radius:1.35rem;box-shadow:0 8px 28px rgba(6,27,43,.075)}
.cms-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(6,27,43,.13)}
.cms-card__media{background:#e9eff3}.cms-card__media img{border-radius:0}
.cms-card__body{padding:1.25rem 1.3rem 1.4rem}
.cms-card h3{font-size:1.18rem;line-height:1.22}.cms-card p{color:#526574;font-size:.94rem}
.cms-card__link{color:#056fa9;font-weight:780}
.ps-area-cards .cms-card{border:1px solid #e3e9ed;box-shadow:none}.ps-area-cards .cms-card:hover{border-color:#b9dce9;box-shadow:0 14px 34px rgba(6,27,43,.08)}
.ps-area-cards .cms-card__body{min-height:220px}
.ps-project-cards .cms-card__media img{aspect-ratio:16/9;object-fit:cover}

/* Featured projects on a blue engineering field */
#home_projects,.ps-listing-grid.ps-section--muted{color:#fff;background:linear-gradient(112deg,#163b73 0%,#0b6da4 58%,#11a9da 100%)}
#home_projects h2,#home_projects h3,#home_projects .cms-heading,#home_projects .ps-section-title{color:#fff}
#home_projects .ps-section-intro,#home_projects>.cms-section__inner>.cms-grid>.cms-column>.cms-text{color:#ddecf5}
#home_projects .cms-card{color:var(--ps-ink);background:#fff}
#home_projects .cms-card h3{color:#071c2b}
#home_projects .cms-button{border-color:rgba(255,255,255,.7);color:#fff;background:transparent}

/* Lab cards / list */
.ps-lab-list .cms-icon-list__item{border:0;border-radius:1rem;padding:1rem 1.05rem;background:#f4f7f9}
.ps-lab-list .cms-icon-list__item:last-child{border-bottom:0}
.cms-icon-list__icon{color:#087bbd;background:#dff5fc}
.ps-principles .cms-icon-list__item{border:1px solid rgba(255,255,255,.13);border-radius:1.15rem;background:rgba(255,255,255,.06)}

/* Internal page headers echo the home identity */
.ps-page-header{background:linear-gradient(120deg,#e8f5fb 0%,#fff 62%)}
.ps-page-header:after{background:radial-gradient(circle,rgba(24,174,224,.22),transparent 68%)}
.ps-page-title.cms-heading{color:#071c2b;font-size:clamp(2.55rem,5vw,4.7rem)}

/* Footer: deliberately simpler than a commercial corporate footer */
.ps-footer{background:#02090f}.ps-footer-bottom{background:#02090f}
.ps-footer h2,.ps-footer h3{font-size:1.05rem}.ps-footer p{color:#b8c8d2}
.ps-footer a{color:#dce8ee}.ps-footer a:hover{color:#6bd5f3}

@media(max-width:980px){
 .ps-header .site-menu a:hover,.ps-header .site-menu a[aria-current="page"]{box-shadow:none;background:rgba(255,255,255,.07)}
 .ps-header .site-brand{padding:.28rem .45rem}
}
@media(max-width:760px){
 .ps-home-hero>.cms-section__inner{padding-block:3rem 3.7rem}
 .ps-home-hero .cms-hero__title{font-size:clamp(2.65rem,11vw,3.75rem)}
 .ps-home-hero .cms-hero__media img{border-radius:1.15rem}
 .cms-card{border-radius:1.05rem}
 .ps-area-cards .cms-card__body{min-height:0}
}

/* PadinSoft v1.2.1 · light-tech correction
   Keeps the Swissbit-inspired structure but restores PadinSoft's lighter,
   calmer editorial character. */
:root{
  --ps-navy:#0b2a40;--ps-navy-2:#124362;--ps-blue:#0b7fba;--ps-cyan:#20add6;
  --ps-cyan-2:#5bc8e6;--ps-cyan-soft:#e8f7fb;--ps-ink:#15222c;--ps-muted:#5c6f7c;
  --ps-line:#dce6eb;--ps-bg:#f5f7f9;--ps-white:#fff;
}
body{background:#f5f7f9;color:var(--ps-ink)}

/* Header remains technical, but lighter and without a white logo tile. */
.ps-header{background:rgba(8,31,47,.96);box-shadow:0 5px 20px rgba(4,24,38,.12)}
.ps-header .site-brand{padding:0;background:transparent;border-radius:0}
.ps-header .site-brand__logo{width:min(var(--site-brand-logo-width,220px),100%);filter:none}
.ps-header .site-menu a{color:#f2f8fb}

/* Home hero: light, open and photographic rather than a dark block. */
.ps-home-hero{color:var(--ps-ink);background:linear-gradient(120deg,#ffffff 0%,#f3f9fc 58%,#e7f5fa 100%)}
.ps-home-hero:before{background:radial-gradient(circle at 80% 25%,rgba(32,173,214,.14),transparent 33%),radial-gradient(circle at 58% 80%,rgba(11,127,186,.07),transparent 28%)}
.ps-home-hero>.cms-section__inner{padding-block:clamp(3.35rem,6vw,5.7rem)}
.ps-home-hero .cms-hero__title{color:#0b2a40;font-size:clamp(2.85rem,5.3vw,5rem)}
.ps-home-hero .cms-hero__text{color:#455d6b}
.ps-home-hero .cms-hero__eyebrow{color:var(--ps-blue)}
.ps-home-hero .cms-hero__media{filter:drop-shadow(0 24px 46px rgba(11,42,64,.15))}
.ps-home-hero .cms-hero__media img{border:1px solid rgba(11,42,64,.08);background:transparent}
.ps-home-hero .cms-button--primary{border:0;color:#fff;background:linear-gradient(135deg,#0b7fba,#20add6);box-shadow:0 10px 24px rgba(11,127,186,.20)}
.ps-home-hero .cms-button--primary:hover{background:linear-gradient(135deg,#096b9d,#1597bd)}
.ps-home-hero .cms-button--secondary{border-color:#b9d6e2;color:#0b2a40;background:#fff}
.ps-home-hero .cms-button--secondary:hover{border-color:#79bfd8;color:#075f8c;background:#f4fbfd}

/* Featured projects: keep the rhythm, remove the large dark/blue slab. */
#home_projects,.ps-listing-grid.ps-section--muted{color:var(--ps-ink);background:linear-gradient(180deg,#eef6f9 0%,#f7f9fa 100%)}
#home_projects h2,#home_projects h3,#home_projects .cms-heading,#home_projects .ps-section-title{color:#0b2a40}
#home_projects .ps-section-intro,#home_projects>.cms-section__inner>.cms-grid>.cms-column>.cms-text{color:var(--ps-muted)}
#home_projects .cms-card{color:var(--ps-ink);background:#fff}
#home_projects .cms-button{border-color:#b9d6e2;color:#0b2a40;background:#fff}

/* Cards become slightly less massive and more editorial. */
.cms-card{border:1px solid rgba(11,42,64,.07);border-radius:1.15rem;box-shadow:0 8px 24px rgba(11,42,64,.055)}
.cms-card:hover{box-shadow:0 15px 36px rgba(11,42,64,.10)}
.ps-area-cards .cms-card{background:#fff}

/* Principles no longer read as a dark corporate band. */
.ps-section--dark{color:#314a59;background:#eaf2f5}
.ps-section--dark h2,.ps-section--dark h3,.ps-section--dark .cms-heading{color:#0b2a40}
.ps-section--dark .cms-text{color:#526a77}
.ps-principles .cms-icon-list__item{border:1px solid rgba(11,42,64,.08);background:#fff;box-shadow:0 6px 18px rgba(11,42,64,.04)}
.ps-principles .cms-icon-list__body strong{color:#0b2a40}
.ps-principles .cms-icon-list__body span{color:#5c6f7c}

/* Accent blocks use pale cyan; reserve darkness mainly for nav/footer. */
.ps-section--accent{color:#314a59;background:linear-gradient(135deg,#e5f4f8,#f5fafc)}
.ps-section--accent h2,.ps-section--accent h3{color:#0b2a40}

/* Footer stays dark as visual closure, but less black. */
.ps-footer,.ps-footer-bottom{background:#071a27}

@media(max-width:980px){
 .ps-header .site-brand{padding:0;background:transparent}
}

/* PadinSoft v1.3.0 · calm modular / tado-inspired direction
   Reference principles: generous whitespace, light navigation, concise copy,
   rounded modular surfaces, soft colour fields, image-led cards and very
   restrained use of dark backgrounds. Identity and content remain PadinSoft. */
:root{
  --ps-navy:#12333d;--ps-navy-2:#194853;--ps-blue:#0a7ea4;--ps-cyan:#35b8c8;
  --ps-cyan-2:#77d7df;--ps-cyan-soft:#ddf4f2;--ps-mint:#dcefe6;--ps-sand:#f3eddc;
  --ps-ink:#101518;--ps-muted:#5d6a70;--ps-line:#dde4e0;--ps-bg:#f5f6f2;--ps-white:#fff;
  --ps-header-height:74px;
}
body{background:var(--ps-bg);color:var(--ps-ink);font-size:16px;line-height:1.58}
h1,h2,h3,h4,h5,h6{color:var(--ps-ink);font-weight:720;letter-spacing:-.045em}
.cms-section__inner{padding-inline:clamp(20px,4vw,64px)}
.cms-section--padding-xl>.cms-section__inner{padding-block:clamp(3.4rem,7vw,6.5rem)}

/* Light, quiet navigation. No logo tile, no corporate dark bar. */
.ps-header{border-bottom:1px solid rgba(16,21,24,.07);background:rgba(255,255,255,.94);box-shadow:none;backdrop-filter:saturate(150%) blur(18px)}
.ps-header>.cms-section__inner{min-height:var(--ps-header-height);padding-block:.55rem}
.ps-header .site-brand{padding:0;background:transparent}
.ps-header .site-brand__logo{width:min(var(--site-brand-logo-width,220px),100%);filter:none}
.ps-header .site-menu a{padding:.55rem .72rem;border-radius:999px;color:#253238;font-size:.9rem;font-weight:650;box-shadow:none}
.ps-header .site-menu a:hover,.ps-header .site-menu a[aria-current="page"]{color:#0a657f;background:#e9f5f3;box-shadow:none}
.ps-header-cta .cms-button{border:0;border-radius:999px;color:#fff;background:#101518;box-shadow:none}
.ps-header-cta .cms-button:hover{color:#fff;background:#0a7ea4}
.ps-nav-toggle{border-color:#d8e1de;color:#182328;background:#fff;border-radius:999px}

/* Home hero: oversized editorial type and soft green-cyan visual field. */
.ps-home-hero{position:relative;color:var(--ps-ink);background:#f5f6f2}
.ps-home-hero:before{display:none}
.ps-home-hero>.cms-section__inner{padding-block:clamp(2.8rem,5.5vw,5.25rem)}
.ps-home-hero .cms-hero__inner{gap:clamp(2rem,5vw,5rem);align-items:center}
.ps-home-hero .cms-hero__eyebrow{color:#4d6267;font-size:.73rem;font-weight:760;letter-spacing:.085em}
.ps-home-hero .cms-hero__title{max-width:12ch;color:#101518;font-size:clamp(3.1rem,6.5vw,6.25rem);font-weight:690;line-height:.93;letter-spacing:-.064em}
.ps-home-hero .cms-hero__text{max-width:590px;color:#46565b;font-size:clamp(1.08rem,1.55vw,1.28rem);line-height:1.55}
.ps-home-hero .cms-hero__media{padding:clamp(1.1rem,2vw,2rem);border-radius:clamp(1.5rem,3vw,2.75rem);background:linear-gradient(145deg,#cde9df,#c9ebef 62%,#e8f2dc);filter:none;overflow:hidden}
.ps-home-hero .cms-hero__media img{width:100%;max-height:570px;border:0;border-radius:clamp(1rem,2vw,1.8rem);background:transparent;box-shadow:none;object-fit:contain}
.cms-button,.ps-home-hero .cms-button{min-height:46px;padding:.72rem 1.15rem;border-radius:999px;font-weight:690;box-shadow:none}
.cms-button:hover{transform:none}
.ps-home-hero .cms-button--primary{border:0;color:#fff;background:#101518;box-shadow:none}
.ps-home-hero .cms-button--primary:hover{background:#0a7ea4}
.ps-home-hero .cms-button--secondary{border:1px solid #c9d4d0;color:#182328;background:#fff}
.ps-home-hero .cms-button--secondary:hover{border-color:#9bcfc8;color:#075f76;background:#f7fcfb}

/* Section typography: simpler, friendlier, more editorial. */
.ps-section--white{background:#fff}.ps-section--muted{background:#edf3ef}
.ps-section-title.cms-heading{max-width:18ch;font-size:clamp(2.25rem,4.2vw,4rem);font-weight:690;line-height:.98;letter-spacing:-.055em}
.cms-text--center+.ps-section-intro,.ps-section-intro{max-width:720px;color:#5b696e;font-size:1.02rem;line-height:1.6}
.ps-kicker.cms-text,.cms-card__eyebrow,.cms-cta__eyebrow{color:#577076;font-size:.72rem;font-weight:780;letter-spacing:.09em}

/* Interest cards: flat, coloured modules instead of corporate boxes. */
.ps-area-cards{margin-top:1.2rem}
.ps-area-cards .cms-card{min-height:260px;border:0;border-radius:clamp(1.3rem,2.3vw,2rem);box-shadow:none;overflow:hidden}
.ps-area-cards .cms-card:nth-child(4n+1){background:#dcefe6}
.ps-area-cards .cms-card:nth-child(4n+2){background:#dceff3}
.ps-area-cards .cms-card:nth-child(4n+3){background:#efe8d7}
.ps-area-cards .cms-card:nth-child(4n+4){background:#e7e5f2}
.ps-area-cards .cms-card:hover{transform:none;box-shadow:none}
.ps-area-cards .cms-card__body{min-height:260px;padding:1.45rem 1.5rem 1.6rem;display:flex;flex-direction:column}
.ps-area-cards .cms-card h3{margin-top:auto;font-size:clamp(1.55rem,2.1vw,2rem);font-weight:680;letter-spacing:-.045em}
.ps-area-cards .cms-card p{color:#435256;font-size:.94rem}
.ps-area-cards .cms-card__link{color:#172126;font-weight:690}

/* Featured projects: bright canvas, image-led product-like tiles. */
#home_projects,.ps-listing-grid.ps-section--muted{color:var(--ps-ink);background:#f5f6f2}
#home_projects h2,#home_projects h3,#home_projects .cms-heading,#home_projects .ps-section-title{color:var(--ps-ink)}
#home_projects .ps-section-intro,#home_projects>.cms-section__inner>.cms-grid>.cms-column>.cms-text{color:#5d6a70}
.ps-project-query,.ps-project-cards{margin-top:1.15rem}
.ps-project-query .cms-content-query__item,.ps-project-cards .cms-card{border:0;border-radius:clamp(1.35rem,2.5vw,2.15rem);background:#fff;box-shadow:none;overflow:hidden}
.ps-project-query .cms-content-query__item:hover,.ps-project-cards .cms-card:hover{transform:none;box-shadow:none}
.ps-project-query img,.ps-project-cards .cms-card__media img{aspect-ratio:4/3;object-fit:cover;background:#e9efec}
.ps-project-query .cms-content-query__body,.ps-project-cards .cms-card__body{padding:1.2rem 1.25rem 1.4rem}
.ps-project-query .cms-content-query__title,.ps-project-cards .cms-card h3{font-size:1.3rem;font-weight:690;letter-spacing:-.035em}
#home_projects .cms-button{border:1px solid #cbd6d2;color:#182328;background:#fff}
#home_projects .cms-button:hover{border-color:#9dcfc8;color:#075f76;background:#f6fbfa}

/* Notebook: one calm colour field with list rows resembling feature modules. */
#home_lab{background:#dceff3}
#home_lab>.cms-section__inner{padding-block:clamp(3.5rem,7vw,6.5rem)}
#home_lab .ps-section-title{max-width:12ch}
.ps-lab-list .cms-icon-list__item{margin-bottom:.7rem;border:0;border-radius:1.35rem;padding:1.05rem 1.15rem;background:rgba(255,255,255,.72)}
.ps-lab-list .cms-icon-list__item:hover{background:#fff}
.ps-lab-list .cms-icon-list__icon{border-radius:999px;color:#0a6f8e;background:#fff}
.ps-lab-query .cms-content-query__item{border-color:rgba(16,21,24,.10)}

/* Principles: large clean cards with tado-like expandable visual cue, but static. */
.ps-section--principles{background:#fff}
.ps-principles{gap:1rem;margin-top:1rem}
.ps-principles .cms-icon-list__item{position:relative;min-height:235px;border:0;border-radius:1.65rem;padding:1.25rem 1.25rem 1.4rem;background:#f0f2ee;box-shadow:none}
.ps-principles .cms-icon-list__item:nth-child(2n){background:#e9f3ef}
.ps-principles .cms-icon-list__item:after{position:absolute;top:1rem;right:1rem;display:grid;width:31px;height:31px;place-items:center;border-radius:999px;color:#fff;background:#152126;content:"+";font-size:1.15rem;font-weight:450}
.ps-principles .cms-icon-list__icon{width:42px;height:42px;border-radius:999px;color:#0a7ea4;background:#fff}
.ps-principles .cms-icon-list__body{margin-top:auto}
.ps-principles .cms-icon-list__body strong{color:#142024;font-size:1.08rem}
.ps-principles .cms-icon-list__body span{color:#59686c}

/* Closing statement: friendly feature panel, not a sales CTA. */
.ps-section--closing{background:#fff}
.ps-closing-cta.cms-cta{border:0;border-radius:clamp(1.5rem,3vw,2.7rem);background:linear-gradient(135deg,#d9eee5,#d5eef1);box-shadow:none}
.ps-closing-cta.cms-cta h2{max-width:14ch;margin-inline:auto;color:#101518;font-size:clamp(2.5rem,5vw,4.75rem);font-weight:680;line-height:.95;letter-spacing:-.06em}
.ps-closing-cta .cms-cta__text{color:#4b5c61}

/* Internal pages reuse the same quiet, rounded language. */
.ps-page-header{background:#f5f6f2}
.ps-page-header:after{display:none}
.ps-page-title.cms-heading{max-width:14ch;color:#101518;font-size:clamp(2.75rem,5.8vw,5.5rem);font-weight:680;line-height:.95;letter-spacing:-.06em}
.ps-page-lead{color:#526167}
.cms-card{border:0;border-radius:1.55rem;background:#fff;box-shadow:none}
.cms-card:hover{transform:none;box-shadow:none}
.cms-tabs,.cms-accordion details{border-radius:1.35rem;box-shadow:none}
.ps-project-hero{background:#f5f6f2}
.ps-project-hero .cms-hero__media{padding:1rem;border-radius:2rem;background:#e4efeb}
.ps-project-hero .cms-hero__media img{border:0;border-radius:1.25rem;box-shadow:none}
.ps-project-stats .cms-stats__item{border:0;border-radius:1.25rem;background:#eef2ef;box-shadow:none}

/* Footer: dark only as a deliberate endpoint. */
.ps-footer,.ps-footer-bottom{background:#111a1d}
.ps-footer>.cms-section__inner{padding-block:clamp(3rem,5vw,4.5rem)}
.ps-footer h2,.ps-footer h3{color:#fff;font-weight:650}
.ps-footer p{color:#b9c5c8}.ps-footer a{color:#e5edef}.ps-footer a:hover{color:#7ed4dd}

@media(max-width:980px){
  .ps-header .site-menu a:hover,.ps-header .site-menu a[aria-current="page"]{background:#e9f5f3}
  .ps-home-hero .cms-hero__title{max-width:15ch}
}
@media(max-width:760px){
  .ps-home-hero>.cms-section__inner{padding-block:2.35rem 3rem}
  .ps-home-hero .cms-hero__title{font-size:clamp(2.75rem,13vw,4rem);line-height:.94}
  .ps-home-hero .cms-hero__media{padding:.8rem;border-radius:1.45rem}
  .ps-section-title.cms-heading{font-size:clamp(2.15rem,10vw,3rem)}
  .ps-area-cards .cms-card,.ps-area-cards .cms-card__body{min-height:210px}
  .ps-principles .cms-icon-list__item{min-height:190px}
  .ps-closing-cta.cms-cta h2{font-size:clamp(2.35rem,11vw,3.4rem)}
}
/* v1.3.1 · fuller tado-inspired component system */
:root{--ps-radius-sm:18px;--ps-radius-md:28px;--ps-radius-lg:40px;--ps-radius-pill:999px;--ps-green:#d9efe5;--ps-aqua:#d8eef2;--ps-lilac:#e7e4f1;--ps-cream:#f1ead7}
body{font-family:Arial,"Helvetica Neue",Helvetica,"Segoe UI",sans-serif;font-weight:400;letter-spacing:-.012em}h1,h2,h3,h4,h5,h6{font-family:Arial,"Helvetica Neue",Helvetica,"Segoe UI",sans-serif;font-weight:700;letter-spacing:-.055em}
.cms-button{min-height:52px;padding:.82rem 1.45rem;border:1px solid transparent;border-radius:999px;font-size:.98rem;font-weight:700;letter-spacing:-.018em;box-shadow:none}.cms-button--primary{color:#fff;background:#111719}.cms-button--primary:hover{color:#fff;background:#087f9d}.cms-button--secondary{border-color:#cbd3d0;color:#151c1f;background:#fff}.cms-button--secondary:hover{border-color:#9ebeb8;color:#075f73;background:#f8fbfa}
.ps-header .site-menu a{padding:.6rem .62rem;border-radius:0;background:transparent!important;font-size:.92rem;font-weight:700}.ps-header .site-menu a:hover,.ps-header .site-menu a[aria-current="page"]{color:#087f9d}.ps-header-cta .cms-button{min-height:44px;padding:.65rem 1.15rem}
.ps-home-hero .cms-hero__title{font-weight:700;letter-spacing:-.072em}.ps-home-hero .cms-hero__text{font-size:clamp(1.12rem,1.65vw,1.34rem);letter-spacing:-.02em}.ps-home-hero .cms-hero__media{border-radius:var(--ps-radius-lg)}
.ps-area-cards .cms-card{position:relative;min-height:330px;border-radius:var(--ps-radius-md)}.ps-area-cards .cms-card:before{display:grid;place-items:center;width:70px;height:70px;margin:1.35rem 0 0 1.35rem;border-radius:50%;color:#16333a;background:rgba(255,255,255,.78);font-size:1.35rem;font-weight:700}.ps-area-cards .cms-card:nth-child(1):before{content:"</>";font-size:1rem}.ps-area-cards .cms-card:nth-child(2):before{content:"⌁"}.ps-area-cards .cms-card:nth-child(3):before{content:"▣"}.ps-area-cards .cms-card:nth-child(4):before{content:"⌁"}.ps-area-cards .cms-card__body{min-height:235px;padding:1.15rem 1.45rem 1.55rem}.ps-area-cards .cms-card__eyebrow{margin-top:auto}.ps-area-cards .cms-card h3{margin-top:.25rem;font-size:clamp(1.65rem,2.4vw,2.2rem)}
.ps-project-query .cms-content-query__item,.ps-project-cards .cms-card{border-radius:var(--ps-radius-md)}.ps-project-query img,.ps-project-cards .cms-card__media img{aspect-ratio:1.25/1;object-fit:cover}.ps-project-query .cms-content-query__body,.ps-project-cards .cms-card__body{padding:1.35rem 1.4rem 1.55rem}.ps-project-query .cms-content-query__title,.ps-project-cards .cms-card h3{font-size:clamp(1.35rem,1.8vw,1.7rem);line-height:1.05}
.ps-lab-list .cms-icon-list{gap:.8rem}.ps-lab-list .cms-icon-list__item{min-height:104px;margin:0;border-radius:var(--ps-radius-sm);padding:1.2rem 1.3rem;background:rgba(255,255,255,.82)}.ps-lab-list .cms-icon-list__icon{flex-basis:46px;width:46px;height:46px}.ps-lab-list .cms-icon-list__body strong{font-size:1.08rem;letter-spacing:-.025em}.ps-lab-list .cms-icon-list__body span{font-size:.96rem}
.ps-principles .cms-icon-list__item{min-height:270px;border-radius:var(--ps-radius-md);padding:1.4rem}.ps-principles .cms-icon-list__item:nth-child(1){background:var(--ps-green)}.ps-principles .cms-icon-list__item:nth-child(2){background:var(--ps-aqua)}.ps-principles .cms-icon-list__item:nth-child(3){background:var(--ps-cream)}.ps-principles .cms-icon-list__item:nth-child(4){background:var(--ps-lilac)}.ps-principles .cms-icon-list__item:after{top:1.25rem;right:1.25rem;width:38px;height:38px;font-size:1.25rem}.ps-principles .cms-icon-list__icon{width:50px;height:50px;flex-basis:50px}.ps-principles .cms-icon-list__body strong{font-size:1.25rem;line-height:1.12;letter-spacing:-.035em}.ps-principles .cms-icon-list__body span{margin-top:.5rem;font-size:.96rem;line-height:1.5}
.ps-closing-cta.cms-cta{padding:clamp(2.6rem,6vw,5.2rem);border-radius:var(--ps-radius-lg)}.ps-closing-cta.cms-cta h2{font-weight:700}.cms-tabs,.cms-accordion details,.ps-project-stats .cms-stats__item{border-radius:var(--ps-radius-sm)}.cms-accordion details{margin-bottom:.65rem;border:0;background:#f0f3ef}
@media(max-width:760px){.cms-button{min-height:48px;padding:.72rem 1.15rem}.ps-area-cards .cms-card{min-height:270px}.ps-area-cards .cms-card__body{min-height:185px}.ps-principles .cms-icon-list__item{min-height:220px}.ps-closing-cta.cms-cta{padding:2.2rem 1.25rem}}
/* PadinSoft v1.4.0 · product composition */
:root{--ps-v14-ink:#111719;--ps-v14-muted:#59686d;--ps-v14-mint:#dcefe7;--ps-v14-aqua:#d9eef2;--ps-v14-sky:#dceaf5;--ps-v14-lilac:#e9e5f1;--ps-v14-sand:#f3ead7;--ps-v14-radius:32px;--ps-v14-radius-lg:46px}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ps-v14-ink);background:#f7f8f5}h1,h2,h3,h4,h5,h6{font-family:inherit;color:var(--ps-v14-ink);font-weight:720;letter-spacing:-.052em}.ps-section-title.cms-heading{max-width:16ch;font-size:clamp(2.45rem,4.8vw,4.75rem);font-weight:720;line-height:.96;letter-spacing:-.062em}.ps-section-intro,.ps-home-projects .cms-text{color:var(--ps-v14-muted);font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.55}
.ps-header{border-bottom:0;background:rgba(255,255,255,.94);box-shadow:none;backdrop-filter:saturate(140%) blur(18px)}.ps-header>.cms-section__inner{min-height:76px}.ps-header .site-menu--horizontal .menu{gap:.55rem}.ps-header .site-menu a{padding:.58rem .28rem;color:#1a2428;font-size:.91rem;font-weight:670;letter-spacing:-.018em}.ps-header .site-menu a:hover,.ps-header .site-menu a[aria-current="page"]{color:#087b91;background:transparent!important}.ps-header-cta .cms-button{min-height:44px;padding:.62rem 1.12rem}
.cms-button{min-height:50px;padding:.78rem 1.38rem;border-radius:999px;font-size:.95rem;font-weight:700;letter-spacing:-.018em;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.cms-button:hover{transform:translateY(-1px)}.cms-button--primary{border-color:#111719;color:#fff;background:#111719}.cms-button--primary:hover{border-color:#087b91;background:#087b91}.cms-button--secondary{border-color:#c9d2cf;color:#172126;background:transparent}.cms-button--secondary:hover{border-color:#172126;color:#172126;background:#fff}.cms-button--link{min-height:auto;padding:.2rem 0;border-radius:0;color:#087b91;background:transparent}.cms-button--link:after{content:" ↗";font-size:.88em}
.ps-home-hero{padding:clamp(.75rem,1.7vw,1.4rem);background:#fff}.ps-home-hero>.cms-section__inner{overflow:hidden;padding:clamp(2.3rem,5vw,5rem);border-radius:var(--ps-v14-radius-lg);background:linear-gradient(132deg,#eef6f1 0%,#dceff0 58%,#d9e8f3 100%)}.ps-home-hero:before{display:none}.ps-home-hero .cms-hero{gap:clamp(2rem,4vw,5rem)}.ps-home-hero .cms-hero__eyebrow{color:#08778a;font-size:.73rem;font-weight:800;letter-spacing:.12em}.ps-home-hero .cms-hero__title{max-width:12.5ch;color:#111719;font-size:clamp(3.35rem,6.7vw,6.8rem);font-weight:740;line-height:.88;letter-spacing:-.078em}.ps-home-hero .cms-hero__text{max-width:590px;color:#425459;font-size:clamp(1.08rem,1.55vw,1.3rem);line-height:1.52;letter-spacing:-.022em}.ps-home-hero .cms-hero__media{padding:clamp(.7rem,1.5vw,1.2rem);border-radius:36px;background:rgba(255,255,255,.58);filter:none}.ps-home-hero .cms-hero__media img{max-height:500px;border:0;border-radius:26px;background:transparent;box-shadow:none}.ps-home-hero .cms-button--secondary{border-color:rgba(17,23,25,.23);color:#111719;background:rgba(255,255,255,.35)}
.ps-home-areas>.cms-section__inner{padding-block:clamp(4rem,8vw,7.5rem)}.ps-home-areas .ps-section-title{margin-inline:auto;text-align:center}.ps-home-areas .ps-section-intro{margin-inline:auto;text-align:center}.ps-area-cards.cms-cards--columns-4{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(.85rem,1.7vw,1.35rem);margin-top:clamp(1.6rem,3vw,2.5rem)}.ps-area-cards .cms-card{min-height:360px;border-radius:var(--ps-v14-radius);box-shadow:none}.ps-area-cards .cms-card:nth-child(1){grid-column:span 7;background:var(--ps-v14-mint)}.ps-area-cards .cms-card:nth-child(2){grid-column:span 5;background:var(--ps-v14-aqua)}.ps-area-cards .cms-card:nth-child(3){grid-column:span 5;background:var(--ps-v14-sand)}.ps-area-cards .cms-card:nth-child(4){grid-column:span 7;background:var(--ps-v14-lilac)}.ps-area-cards .cms-card:before{width:62px;height:62px;margin:1.35rem 0 0 1.35rem;color:#163139;background:rgba(255,255,255,.72);font-size:1.12rem}.ps-area-cards .cms-card__body{min-height:245px;padding:1.3rem 1.55rem 1.65rem}.ps-area-cards .cms-card__eyebrow{color:#4a5b5f;font-size:.68rem;letter-spacing:.1em}.ps-area-cards .cms-card h3{max-width:13ch;font-size:clamp(2rem,3.15vw,3.2rem);line-height:.96;letter-spacing:-.06em}.ps-area-cards .cms-card p{max-width:42ch;color:#46575b;font-size:1rem;line-height:1.48}.ps-area-cards .cms-card__link{display:inline-flex;align-items:center;gap:.45rem;color:#111719;font-size:.92rem;font-weight:720}.ps-area-cards .cms-card__link:after{display:grid;width:29px;height:29px;place-items:center;border-radius:50%;color:#fff;background:#111719;content:"→"}
.ps-home-projects{background:#f2f3ef!important}.ps-home-projects>.cms-section__inner{padding-block:clamp(4.2rem,8vw,7.2rem)}.ps-home-projects .ps-section-title{max-width:12ch}.ps-project-query.cms-content-query--columns-4{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(.85rem,1.7vw,1.35rem);margin-top:2rem}.ps-project-query .cms-content-query__item{display:flex;min-height:500px;flex-direction:column;border:0;border-radius:var(--ps-v14-radius);background:#fff;box-shadow:none}.ps-project-query .cms-content-query__item:nth-child(1){grid-column:span 7}.ps-project-query .cms-content-query__item:nth-child(2){grid-column:span 5}.ps-project-query .cms-content-query__item:nth-child(3){grid-column:span 5}.ps-project-query .cms-content-query__item:nth-child(4){grid-column:span 7}.ps-project-query .cms-content-query__media{aspect-ratio:16/10;border-radius:0;background:#e7ece8}.ps-project-query .cms-content-query__item:nth-child(2) .cms-content-query__media,.ps-project-query .cms-content-query__item:nth-child(3) .cms-content-query__media{aspect-ratio:1/1}.ps-project-query .cms-content-query__body{display:flex;flex:1;align-items:flex-start;flex-direction:column;padding:1.4rem 1.55rem 1.6rem}.ps-project-query .cms-content-query__eyebrow{color:#087b91;font-size:.68rem;letter-spacing:.105em}.ps-project-query .cms-content-query__title,.ps-project-query h3{font-size:clamp(1.65rem,2.5vw,2.6rem);line-height:.98;letter-spacing:-.055em}.ps-project-query .cms-content-query__summary{max-width:46ch;color:#55656a;font-size:.98rem;line-height:1.5}.ps-project-query .cms-content-query__link{margin-top:auto;padding-top:1rem;color:#111719;font-size:.9rem;font-weight:720}.ps-project-query .cms-content-query__link:after{margin-left:.35rem;content:"→"}.ps-home-projects .cms-button--secondary{margin-top:.65rem;border-color:#bfc9c6;background:#fff}
.ps-home-lab{background:#fff!important}.ps-home-lab>.cms-section__inner{padding-block:clamp(4.3rem,8vw,7rem)}.ps-home-lab>.cms-section__inner>.cms-grid{padding:clamp(1.2rem,2vw,2rem);border-radius:var(--ps-v14-radius-lg);background:var(--ps-v14-aqua)}.ps-home-lab .ps-kicker{color:#08768b;font-size:.72rem;font-weight:820;letter-spacing:.11em}.ps-home-lab .ps-section-title{max-width:9ch;font-size:clamp(2.8rem,5vw,5rem)}.ps-home-lab .cms-text{color:#46585d}.ps-lab-list .cms-icon-list__item{min-height:118px;border:0;border-radius:22px;padding:1.25rem 1.3rem;background:rgba(255,255,255,.76);transition:background .18s ease,transform .18s ease}.ps-lab-list .cms-icon-list__item:hover{transform:translateY(-2px);background:#fff}.ps-lab-list .cms-icon-list__icon{width:48px;height:48px;flex-basis:48px;border-radius:50%;color:#08778d;background:#fff}.ps-lab-list .cms-icon-list__body strong{font-size:1.12rem;letter-spacing:-.03em}.ps-lab-list .cms-icon-list__body span{color:#56676b;font-size:.95rem;line-height:1.48}.ps-lab-query.cms-content-query--compact{margin-top:1.4rem}.ps-lab-query .cms-content-query__item{border-color:rgba(17,23,25,.12)}
.ps-section--principles>.cms-section__inner{padding-block:clamp(4rem,8vw,7rem)}.ps-principles{gap:clamp(.8rem,1.5vw,1.2rem)}.ps-principles .cms-icon-list__item{min-height:300px;border-radius:var(--ps-v14-radius);padding:1.45rem 1.5rem 1.6rem}.ps-principles .cms-icon-list__item:after{width:42px;height:42px;color:#fff;background:#111719;font-size:1.35rem}.ps-principles .cms-icon-list__body strong{font-size:clamp(1.3rem,1.7vw,1.6rem);line-height:1.04}.ps-principles .cms-icon-list__body span{font-size:.98rem;line-height:1.5}
.ps-section--closing>.cms-section__inner{padding-block:clamp(3.4rem,7vw,6rem)}.ps-closing-cta.cms-cta{padding:clamp(3.3rem,7vw,6.2rem) clamp(1.5rem,5vw,4.5rem);border-radius:var(--ps-v14-radius-lg);background:linear-gradient(135deg,var(--ps-v14-mint),var(--ps-v14-sky))}.ps-closing-cta.cms-cta h2{max-width:11ch;font-size:clamp(3rem,6.2vw,6.3rem);line-height:.88;letter-spacing:-.075em}.ps-closing-cta .cms-cta__text{font-size:1.08rem}.ps-page-header>.cms-section__inner{padding-block:clamp(3rem,6vw,5.2rem)}.ps-page-title.cms-heading{max-width:12ch;font-size:clamp(3rem,6.2vw,6rem);line-height:.9;letter-spacing:-.07em}.cms-card,.cms-tabs,.cms-accordion details,.ps-project-stats .cms-stats__item{border-radius:24px}
@media(max-width:980px){.ps-area-cards.cms-cards--columns-4,.ps-project-query.cms-content-query--columns-4{grid-template-columns:repeat(2,minmax(0,1fr))}.ps-area-cards .cms-card:nth-child(n),.ps-project-query .cms-content-query__item:nth-child(n){grid-column:span 1}.ps-project-query .cms-content-query__item{min-height:0}.ps-project-query .cms-content-query__media,.ps-project-query .cms-content-query__item:nth-child(2) .cms-content-query__media,.ps-project-query .cms-content-query__item:nth-child(3) .cms-content-query__media{aspect-ratio:16/10}}
@media(max-width:680px){.ps-home-hero{padding:.55rem}.ps-home-hero>.cms-section__inner{padding:2.25rem 1.15rem 1.25rem;border-radius:30px}.ps-home-hero .cms-hero__title{font-size:clamp(3rem,15vw,4.6rem);line-height:.88}.ps-home-hero .cms-hero__media{border-radius:24px}.ps-area-cards.cms-cards--columns-4,.ps-project-query.cms-content-query--columns-4{grid-template-columns:1fr}.ps-area-cards .cms-card{min-height:285px;border-radius:24px}.ps-area-cards .cms-card__body{min-height:185px}.ps-area-cards .cms-card h3{font-size:2.15rem}.ps-project-query .cms-content-query__item{border-radius:24px}.ps-project-query .cms-content-query__title,.ps-project-query h3{font-size:1.85rem}.ps-home-lab>.cms-section__inner>.cms-grid{padding:1rem;border-radius:28px}.ps-principles .cms-icon-list__item{min-height:225px;border-radius:24px}.ps-closing-cta.cms-cta{border-radius:30px}}

/* PadinSoft v1.4.1 · composition refinement */
/* Tighten the visual rhythm without changing the v1.4 concept. */
.ps-home-areas>.cms-section__inner,
.ps-home-projects>.cms-section__inner,
.ps-home-lab>.cms-section__inner,
.ps-section--principles>.cms-section__inner{padding-block:clamp(3.4rem,6.5vw,5.8rem)}

/* Areas: preserve the asymmetric mosaic but remove excessive vertical emptiness. */
.ps-area-cards .cms-card{min-height:300px}
.ps-area-cards .cms-card:before{width:58px;height:58px;margin:1.2rem 0 0 1.25rem}
.ps-area-cards .cms-card:nth-child(1):before{content:"</>"}
.ps-area-cards .cms-card:nth-child(2):before{content:"⚡";font-family:"Segoe UI Symbol","Segoe UI Emoji",sans-serif}
.ps-area-cards .cms-card:nth-child(3):before{content:"▣"}
.ps-area-cards .cms-card:nth-child(4):before{content:"◎"}
.ps-area-cards .cms-card__body{min-height:205px;padding:1rem 1.45rem 1.45rem}
.ps-area-cards .cms-card h3{font-size:clamp(1.8rem,2.55vw,2.75rem);line-height:.98}
.ps-area-cards .cms-card p{margin-bottom:.8rem}

/* Projects: every cover keeps its native 16:9 composition. Narrow cards must never crop text/artwork. */
.ps-project-query .cms-content-query__item{min-height:0}
.ps-project-query .cms-content-query__media,
.ps-project-query .cms-content-query__item:nth-child(2) .cms-content-query__media,
.ps-project-query .cms-content-query__item:nth-child(3) .cms-content-query__media{display:flex;aspect-ratio:16/9;align-items:center;justify-content:center;overflow:hidden;background:#eaf0f1}
.ps-project-query .cms-content-query__media img,
.ps-project-query img,
.ps-project-cards .cms-card__media img{width:100%;height:100%;aspect-ratio:16/9!important;object-fit:contain!important;object-position:center;background:#eaf0f1;transform:none!important}
.ps-project-query .cms-content-query__body{min-height:225px;padding:1.25rem 1.45rem 1.45rem}
.ps-project-query .cms-content-query__title,.ps-project-query h3{font-size:clamp(1.5rem,2vw,2.15rem);line-height:1}
.ps-project-query .cms-content-query__summary{font-size:.96rem}

/* Laboratory: notes and activity become one coherent family of soft cards. */
.ps-home-lab>.cms-section__inner>.cms-grid{padding:clamp(1.25rem,2.4vw,2.25rem)}
.ps-lab-query.cms-content-query--compact{display:grid;gap:.75rem;margin-top:1.25rem}
.ps-lab-query .cms-content-query__item{overflow:hidden;border:0!important;border-radius:20px;background:rgba(255,255,255,.68);padding:.15rem .25rem;box-shadow:none}
.ps-lab-query .cms-content-query__item:hover{background:#fff}
.ps-lab-query .cms-content-query__body{padding:1rem 1.15rem!important}
.ps-lab-query .cms-content-query__title{font-size:1.05rem;line-height:1.2}
.ps-lab-query .cms-content-query__summary{margin-top:.3rem;color:#5a696d;font-size:.92rem;line-height:1.45}
.ps-lab-query .cms-content-query__link{display:inline-flex;margin-top:.55rem;font-size:.88rem;font-weight:700;text-decoration:none}

/* Principles: 2x2 is more readable than four narrow columns on desktop. */
.ps-principles{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(.85rem,1.5vw,1.2rem)!important;max-width:980px;margin-inline:auto}
.ps-principles .cms-icon-list__item{min-height:215px;padding:1.35rem 1.45rem 1.45rem}
.ps-principles .cms-icon-list__body strong{max-width:15ch;font-size:clamp(1.25rem,1.55vw,1.5rem)}
.ps-principles .cms-icon-list__body span{max-width:34ch;font-size:.96rem}

/* Footer: stronger contrast and a little less dead space. */
.ps-footer>.cms-section__inner{padding-block:clamp(2.4rem,4vw,3.25rem)}
.ps-footer .site-brand__logo{display:block;max-height:58px;object-fit:contain;object-position:left center}
.ps-footer-bottom>.cms-section__inner{padding-block:.7rem}

/* Closing block: keep the statement strong without over-expanding vertically. */
.ps-section--closing>.cms-section__inner{padding-block:clamp(2.8rem,5vw,4.4rem)}
.ps-closing-cta.cms-cta{padding:clamp(2.8rem,5.5vw,4.8rem) clamp(1.4rem,4.5vw,4rem)}

@media(max-width:980px){
  .ps-area-cards .cms-card{min-height:275px}
  .ps-project-query .cms-content-query__body{min-height:205px}
  .ps-principles{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:680px){
  .ps-area-cards .cms-card{min-height:245px}
  .ps-area-cards .cms-card__body{min-height:165px}
  .ps-area-cards .cms-card h3{font-size:2rem}
  .ps-project-query .cms-content-query__body{min-height:0}
  .ps-principles{grid-template-columns:1fr!important}
  .ps-principles .cms-icon-list__item{min-height:190px}
  .ps-home-lab>.cms-section__inner>.cms-grid{padding:1rem}
}
