@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Sora:wght@400;500;600;700&display=swap');

:root{
  --red:#cf202b;
  --red-deep:#a91520;
  --ink:#171716;
  --paper:#f5f1ea;
  --paper-2:#ebe5dc;
  --white:#fffdf9;
  --muted:#6f6a63;
  --line:rgba(23,23,22,.15);
  --shadow:0 20px 70px rgba(32,22,18,.14);
  --display:'Sora', Arial, sans-serif;
  --sans:'Manrope', Arial, sans-serif;
  --base:16px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:var(--base)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.55;overflow-x:hidden}
body.is-locked{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit}
img{display:block;max-width:100%}
::selection{background:var(--red);color:white}

body.high-contrast{--paper:#fff;--paper-2:#efefef;--ink:#000;--muted:#323232;--line:rgba(0,0,0,.35)}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}

.container{width:min(1280px,calc(100% - 64px));margin-inline:auto}
.eyebrow{font-size:.7rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700;color:var(--red)}
.display{font-family:var(--display);font-weight:400;letter-spacing:-.045em;line-height:.92}
.muted{color:var(--muted)}
.section{padding:120px 0;position:relative}
.section-tight{padding:82px 0}
.rule{height:1px;background:var(--line)}

/* exact official mark is loaded from current Onward site; text lockup stays crisp */
.brand{display:inline-flex;align-items:center;gap:10px;position:relative;z-index:5}
.brand-mark{width:42px;height:42px;object-fit:contain;flex:none}
.brand-word{display:flex;flex-direction:column;line-height:.9}
.brand-word strong{font-family:var(--display);font-size:1.05rem;letter-spacing:.08em;font-weight:700}
.brand-word strong b{color:var(--red)}
.brand-word small{font-size:.45rem;letter-spacing:.21em;text-transform:uppercase;margin-top:5px}

.site-header{position:fixed;z-index:70;inset:0 0 auto 0;padding:20px 0;transition:background .35s ease,padding .35s ease,border-color .35s ease;color:var(--ink)}
.site-header .nav-row{display:flex;align-items:center;justify-content:space-between;gap:20px}
.site-header.is-scrolled{background:rgba(245,241,234,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);padding:13px 0}
.header-actions{display:flex;align-items:center;gap:12px}
.pill-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 20px;border:1px solid rgba(23,23,22,.24);border-radius:99px;font-size:.77rem;font-weight:700;letter-spacing:.03em;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease}
.pill-link:hover{background:var(--ink);color:var(--white);border-color:var(--ink)}
.menu-btn{height:52px;min-width:112px;border-radius:99px;border:0;background:var(--ink);color:var(--white);display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:0 19px;cursor:pointer;font-weight:700;font-size:.78rem}
.menu-icon{width:17px;height:12px;position:relative}.menu-icon::before,.menu-icon::after{content:"";position:absolute;left:0;width:100%;height:1px;background:currentColor}.menu-icon::before{top:2px}.menu-icon::after{bottom:2px}

/* First-load brand scene */
.intro-loader{position:fixed;z-index:999;inset:0;background:var(--red);display:grid;place-items:center;overflow:hidden;transition:opacity .55s ease,visibility .55s ease}
.intro-loader.is-gone{opacity:0;visibility:hidden;pointer-events:none}
.loader-grid{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;opacity:.23}
.loader-grid i{border:1px solid rgba(255,255,255,.28);transform:scale(.35);animation:loaderQuadrant 1.3s cubic-bezier(.7,0,.15,1) forwards}
.loader-grid i:nth-child(1){transform-origin:100% 100%}.loader-grid i:nth-child(2){transform-origin:0 100%;animation-delay:.07s}.loader-grid i:nth-child(3){transform-origin:100% 0;animation-delay:.14s}.loader-grid i:nth-child(4){transform-origin:0 0;animation-delay:.21s}
.loader-core{display:grid;place-items:center;color:white;position:relative;z-index:2;text-align:center}
.loader-core .brand-mark{width:88px;height:88px;filter:brightness(0) invert(1);animation:loaderMark 1.6s cubic-bezier(.2,.8,.2,1) both}
.loader-name{font-family:var(--display);font-size:clamp(2.1rem,5vw,5rem);letter-spacing:.12em;margin-top:14px;clip-path:inset(0 100% 0 0);animation:loaderType 1.25s .36s cubic-bezier(.2,.8,.2,1) forwards}
.loader-note{font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;margin-top:9px;opacity:0;animation:fadeIn .7s 1s forwards}
.loader-rings{position:absolute;width:240px;height:240px;border:1px solid rgba(255,255,255,.45);border-radius:50%;animation:ringExpand 1.6s cubic-bezier(.2,.8,.2,1) both}.loader-rings::before{content:"";position:absolute;inset:28px;border:1px solid rgba(255,255,255,.35);border-radius:50%}
@keyframes loaderQuadrant{to{transform:scale(1)}}
@keyframes loaderMark{0%{opacity:0;transform:rotate(-55deg) scale(.4)}55%{opacity:1}100%{transform:rotate(0) scale(1)}}
@keyframes loaderType{to{clip-path:inset(0 0 0 0)}}
@keyframes ringExpand{0%{transform:scale(.35);opacity:0}60%{opacity:1}100%{transform:scale(1.7);opacity:0}}
@keyframes fadeIn{to{opacity:1}}

.page-wipe{position:fixed;z-index:990;inset:0;pointer-events:none;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;visibility:hidden}
.page-wipe.is-active{visibility:visible;pointer-events:auto}
.page-wipe span{background:var(--red);transform:scale(0);transition:transform .48s cubic-bezier(.7,0,.15,1)}
.page-wipe span:nth-child(1){transform-origin:0 0;border-bottom-right-radius:100%}.page-wipe span:nth-child(2){transform-origin:100% 0;border-bottom-left-radius:100%}.page-wipe span:nth-child(3){transform-origin:0 100%;border-top-right-radius:100%}.page-wipe span:nth-child(4){transform-origin:100% 100%;border-top-left-radius:100%}
.page-wipe.is-active span{transform:scale(1.52)}
.page-wipe .wipe-logo{position:absolute;left:50%;top:50%;width:66px;height:66px;transform:translate(-50%,-50%) scale(.5) rotate(-35deg);opacity:0;filter:brightness(0) invert(1);transition:.28s .22s ease}
.page-wipe.is-active .wipe-logo{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}

/* Full-screen menu */
.menu-panel{position:fixed;z-index:100;inset:0;background:var(--ink);color:var(--white);visibility:hidden;opacity:0;transition:opacity .35s ease,visibility .35s ease;overflow:auto}
.menu-panel.is-open{visibility:visible;opacity:1}
.menu-top{height:92px;display:flex;align-items:center;justify-content:space-between}
.menu-panel .brand{color:white}.menu-panel .brand-mark{filter:brightness(0) invert(1)}
.menu-close{width:52px;height:52px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:transparent;color:white;cursor:pointer;position:relative}.menu-close::before,.menu-close::after{content:"";position:absolute;left:15px;top:25px;width:20px;height:1px;background:white}.menu-close::before{transform:rotate(45deg)}.menu-close::after{transform:rotate(-45deg)}
.menu-stage{min-height:calc(100vh - 92px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:80px;align-items:center;padding:60px 0 80px}
.menu-links{display:flex;flex-direction:column}
.menu-link{display:grid;grid-template-columns:52px 1fr 42px;align-items:center;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.14);transform:translateY(28px);opacity:0;transition:opacity .35s ease,transform .35s ease,color .25s ease}
.menu-panel.is-open .menu-link{transform:none;opacity:1}.menu-panel.is-open .menu-link:nth-child(2){transition-delay:.05s}.menu-panel.is-open .menu-link:nth-child(3){transition-delay:.1s}.menu-panel.is-open .menu-link:nth-child(4){transition-delay:.15s}.menu-panel.is-open .menu-link:nth-child(5){transition-delay:.2s}
.menu-link:hover{color:#ff6b73}.menu-link em{font-style:normal;font-size:.7rem;opacity:.5}.menu-link strong{font-family:var(--display);font-size:clamp(2.4rem,4.6vw,5.1rem);font-weight:400;letter-spacing:-.04em}.menu-link svg{width:22px;transition:transform .25s ease}.menu-link:hover svg{transform:translate(7px,-7px)}
.menu-visual{position:relative;min-height:530px}.menu-photo{position:absolute;inset:0;border-radius:28px;overflow:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .55s cubic-bezier(.2,.8,.2,1)}.menu-panel.is-open .menu-photo{clip-path:inset(0 0 0 0)}.menu-photo img{width:100%;height:100%;object-fit:cover}.menu-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.58),transparent 60%)}.menu-visual-copy{position:absolute;z-index:2;left:30px;right:30px;bottom:30px}.menu-visual-copy p{max-width:31ch;color:rgba(255,255,255,.72)}

/* Hero */
.hero{min-height:100vh;padding:126px 0 44px;display:flex;align-items:stretch;position:relative;overflow:hidden}
.hero .container{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:center}
.hero-copy{position:relative;z-index:3;padding:60px 0}
.hero-title{font-family:var(--display);font-size:clamp(4.8rem,8.6vw,9rem);font-weight:400;letter-spacing:-.065em;line-height:.78;margin:0;max-width:7.7ch}
.hero-title .accent{color:var(--red);font-style:italic}
.hero-cta{margin-top:42px}
.cta-main{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:0 25px;border-radius:99px;background:var(--red);color:white;border:0;font-weight:700;font-size:.82rem;cursor:pointer;box-shadow:0 13px 30px rgba(207,32,43,.2);transition:background .25s ease,transform .25s ease}.cta-main:hover{background:var(--red-deep)}
.cta-main svg{width:18px;height:18px}
.hero-media{height:calc(100vh - 182px);min-height:560px;position:relative;align-self:center;transform-style:preserve-3d;perspective:1000px}
.hero-photo{position:absolute;inset:0 0 0 8%;border-radius:32px;overflow:hidden;background:#b8b2a9;box-shadow:var(--shadow);transform:rotate(.9deg);transition:transform .25s ease-out}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.06);transition:transform .6s ease}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,transparent 55%,rgba(25,18,16,.14))}
.hero-media:hover .hero-photo img{transform:scale(1.02)}
.logo-orbit{position:absolute;width:168px;aspect-ratio:1;border:1px solid rgba(207,32,43,.45);border-radius:50%;left:-26px;top:13%;z-index:4;animation:orbit 13s linear infinite;pointer-events:none}.logo-orbit::before,.logo-orbit::after{content:"";position:absolute;background:var(--red);opacity:.85}.logo-orbit::before{width:1px;height:132%;left:50%;top:-16%}.logo-orbit::after{height:1px;width:132%;top:50%;left:-16%}.orbit-chip{position:absolute;right:-12px;top:72px;width:29px;height:29px;background:var(--red);border-radius:50% 50% 5% 50%}.orbit-chip:nth-child(2){left:-10px;right:auto;top:auto;bottom:57px;transform:rotate(180deg)}
.hero-stamp{position:absolute;right:-34px;bottom:7%;z-index:4;width:158px;height:158px;background:var(--ink);color:white;border-radius:50%;display:grid;place-items:center;text-align:center;padding:22px;transform:rotate(7deg);box-shadow:0 18px 45px rgba(0,0,0,.22)}.hero-stamp span{font-family:var(--display);font-size:1.35rem;line-height:.95}.hero-stamp small{font-size:.52rem;letter-spacing:.12em;text-transform:uppercase;opacity:.62}
@keyframes orbit{to{transform:rotate(360deg)}}

/* Content modules */
.intro-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px;align-items:start}
.intro-copy h2{font-family:var(--display);font-size:clamp(3.2rem,6vw,6.5rem);line-height:.9;letter-spacing:-.05em;font-weight:400;margin:0;max-width:10ch}
.intro-copy p{font-size:1.13rem;max-width:55ch;color:var(--muted);margin:28px 0 0}
.service-stack{margin-top:75px;border-top:1px solid var(--line)}
.service-row{display:grid;grid-template-columns:78px 1fr 1fr 46px;gap:24px;align-items:center;padding:25px 4px;border-bottom:1px solid var(--line);transition:padding .3s ease,background .3s ease}.service-row:hover{background:rgba(255,255,255,.46);padding-left:16px;padding-right:16px}.service-num{font-size:.66rem;letter-spacing:.15em;color:var(--muted)}.service-row h3{font-family:var(--display);font-weight:400;font-size:2rem;margin:0}.service-row p{margin:0;color:var(--muted);font-size:.9rem;max-width:44ch}.service-row svg{width:21px}

.paths{background:var(--ink);color:white;overflow:hidden}
.paths .section-head{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:60px}.paths h2{font-family:var(--display);font-weight:400;font-size:clamp(3.2rem,6vw,6.5rem);line-height:.9;letter-spacing:-.05em;margin:0}.paths .section-head p{color:rgba(255,255,255,.6);max-width:53ch;margin-left:auto}
.path-panels{display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.17);border-radius:28px;overflow:hidden;min-height:480px}
.path-panel{position:relative;padding:44px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-width:0;transition:flex .55s cubic-bezier(.2,.8,.2,1),background .35s ease}.path-panel:first-child{border-right:1px solid rgba(255,255,255,.17)}.path-panel:hover{background:#211f1d}.path-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:#ff7c83}.path-panel h3{font-family:var(--display);font-size:clamp(3rem,5vw,5.4rem);font-weight:400;line-height:.85;letter-spacing:-.05em;margin:0;max-width:7ch}.path-bottom{display:flex;align-items:end;justify-content:space-between;gap:30px}.path-bottom p{max-width:33ch;color:rgba(255,255,255,.6);font-size:.9rem;margin:0}.round-arrow{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.3);flex:none;transition:background .25s ease,color .25s ease}.path-panel:hover .round-arrow{background:var(--red);border-color:var(--red)}
.path-graphic{position:absolute;width:220px;height:220px;right:-68px;top:50%;border:1px solid rgba(255,255,255,.16);border-radius:50%;transform:translateY(-50%)}.path-graphic::before,.path-graphic::after{content:"";position:absolute;background:rgba(255,255,255,.15)}.path-graphic::before{width:1px;height:140%;left:50%;top:-20%}.path-graphic::after{height:1px;width:140%;left:-20%;top:50%}.path-graphic b{position:absolute;width:42px;height:42px;background:var(--red);border-radius:50% 50% 0 50%;right:27px;top:26px;transform:rotate(22deg)}

.impact{position:relative;overflow:hidden}.impact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}.impact-art{position:relative;min-height:600px}.impact-photo{position:absolute;inset:0 16% 7% 0;border-radius:25px;overflow:hidden}.impact-photo img{width:100%;height:100%;object-fit:cover}.impact-card{position:absolute;right:0;bottom:0;background:var(--red);color:white;width:min(300px,56%);padding:34px;border-radius:22px;box-shadow:var(--shadow)}.impact-card strong{display:block;font-family:var(--display);font-weight:400;font-size:4.2rem;line-height:.8;letter-spacing:-.05em}.impact-card span{display:block;font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;margin-top:12px}.impact-copy h2{font-family:var(--display);font-size:clamp(3.4rem,6vw,6.4rem);line-height:.88;letter-spacing:-.055em;font-weight:400;margin:0}.impact-copy>p{font-size:1.08rem;color:var(--muted);max-width:52ch;margin:28px 0 40px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.metric{padding:20px 12px 20px 0}.metric+.metric{border-left:1px solid var(--line);padding-left:18px}.metric strong{font-family:var(--display);font-size:2.25rem;font-weight:400;letter-spacing:-.04em}.metric span{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:block}

.opportunity{background:var(--red);color:white}.opportunity-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:center}.opportunity h2{font-family:var(--display);font-weight:400;font-size:clamp(3.3rem,6.2vw,6.8rem);line-height:.84;letter-spacing:-.05em;margin:0}.opportunity-copy{border-left:1px solid rgba(255,255,255,.4);padding-left:42px}.opportunity-copy p{margin:0 0 25px;max-width:42ch;color:rgba(255,255,255,.83)}.opportunity .pill-link{border-color:rgba(255,255,255,.5);color:white}.opportunity .pill-link:hover{background:white;color:var(--red)}

.quote-band{padding:100px 0;overflow:hidden}.quote-band blockquote{font-family:var(--display);font-weight:400;font-size:clamp(3.6rem,7.3vw,8rem);line-height:.82;letter-spacing:-.055em;margin:0;max-width:12ch}.quote-band blockquote span{color:var(--red);font-style:italic}

/* inner pages */
.page-hero{padding:180px 0 92px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.page-hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:end}.page-hero h1{font-family:var(--display);font-size:clamp(4.3rem,8vw,8rem);font-weight:400;line-height:.82;letter-spacing:-.06em;margin:0}.page-hero p{max-width:48ch;color:var(--muted);font-size:1.05rem;margin:0}.page-orbit{position:absolute;width:360px;height:360px;border:1px solid rgba(207,32,43,.18);border-radius:50%;right:-125px;top:26px}.page-orbit::before,.page-orbit::after{content:"";position:absolute;background:rgba(207,32,43,.18)}.page-orbit::before{height:140%;width:1px;left:50%;top:-20%}.page-orbit::after{width:140%;height:1px;top:50%;left:-20%}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.info-card{min-height:310px;border:1px solid var(--line);border-radius:22px;padding:26px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(255,255,255,.18);transition:transform .3s ease,background .3s ease,box-shadow .3s ease}.info-card:hover{transform:translateY(-7px);background:rgba(255,255,255,.72);box-shadow:0 18px 45px rgba(29,21,18,.08)}.info-card .icon{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center}.info-card .icon svg{width:20px}.info-card h3{font-family:var(--display);font-size:2rem;font-weight:400;margin:0 0 9px}.info-card p{font-size:.89rem;color:var(--muted);margin:0}.info-card small{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.split-media{border-radius:25px;overflow:hidden;min-height:560px;background:#c8c0b8}.split-media img{width:100%;height:100%;object-fit:cover}.split-copy h2{font-family:var(--display);font-size:clamp(3.1rem,5.8vw,5.9rem);font-weight:400;line-height:.9;letter-spacing:-.05em;margin:0}.split-copy p{color:var(--muted);max-width:53ch}.bullet-list{margin:34px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.bullet-list li{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}.bullet-list i{width:24px;height:24px;flex:none;border-radius:50%;background:var(--red);color:white;display:grid;place-items:center;font-style:normal;font-size:.68rem;margin-top:1px}

/* grant checker */
.checker-shell{display:grid;grid-template-columns:.78fr 1.22fr;gap:70px;align-items:start}.checker-note{position:sticky;top:125px}.checker-note h2{font-family:var(--display);font-weight:400;font-size:clamp(3.2rem,5vw,5.5rem);line-height:.89;letter-spacing:-.05em;margin:0}.checker-note p{color:var(--muted);max-width:41ch}.checker{background:var(--white);border-radius:26px;box-shadow:var(--shadow);overflow:hidden}.checker-top{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line)}.checker-progress{height:5px;background:var(--paper-2);flex:1;max-width:220px;border-radius:99px;overflow:hidden}.checker-progress i{display:block;height:100%;width:25%;background:var(--red);transition:width .35s ease}.checker-step{padding:42px 34px 34px}.checker-step h3{font-family:var(--display);font-size:2.6rem;font-weight:400;line-height:.98;margin:0 0 30px;max-width:14ch}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{border:1px solid var(--line);border-radius:16px;padding:18px;background:transparent;cursor:pointer;text-align:left;font-weight:700;transition:.2s ease}.choice:hover,.choice.is-selected{border-color:var(--red);background:rgba(207,32,43,.06);color:var(--red)}.checker-actions{display:flex;justify-content:space-between;align-items:center;margin-top:30px}.text-btn{border:0;background:transparent;cursor:pointer;color:var(--muted);font-size:.77rem;font-weight:700}.checker-next{border:0;border-radius:99px;min-height:48px;padding:0 22px;background:var(--ink);color:white;cursor:pointer;font-size:.78rem;font-weight:700}.checker-next[disabled]{opacity:.35;cursor:not-allowed}.checker-result{display:none;padding:42px 34px}.checker-result.is-visible{display:block}.result-mark{width:65px;height:65px;border-radius:50%;display:grid;place-items:center;background:var(--red);color:white;margin-bottom:25px}.checker-result h3{font-family:var(--display);font-size:2.7rem;line-height:.95;font-weight:400;margin:0}.checker-result p{color:var(--muted);max-width:52ch}
.cycle-card{background:var(--ink);color:white;border-radius:26px;padding:42px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}.cycle-card strong{font-family:var(--display);font-weight:400;font-size:2.9rem;line-height:1}.cycle-card span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.55);margin-top:7px}.cycle-card p{margin:0;color:rgba(255,255,255,.65);font-size:.9rem}

/* about */
.values-list{border-top:1px solid var(--line)}.value-row{display:grid;grid-template-columns:70px 1fr 1fr;gap:35px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}.value-row em{font-style:normal;color:var(--red);font-size:.7rem;letter-spacing:.14em}.value-row h3{font-family:var(--display);font-size:2.3rem;font-weight:400;line-height:1;margin:0}.value-row p{margin:0;color:var(--muted);max-width:48ch}
.team-image{border-radius:25px;overflow:hidden;min-height:650px}.team-image img{width:100%;height:100%;object-fit:cover}

/* contact */
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:85px}.contact-data h2{font-family:var(--display);font-size:clamp(3.5rem,6vw,6.2rem);line-height:.88;letter-spacing:-.05em;font-weight:400;margin:0}.contact-list{margin-top:45px;border-top:1px solid var(--line)}.contact-line{padding:18px 0;border-bottom:1px solid var(--line)}.contact-line span{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.contact-line a,.contact-line strong{font-size:1rem}.contact-form{background:var(--white);padding:34px;border-radius:25px;box-shadow:var(--shadow)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{margin-bottom:15px}.field label{font-size:.68rem;font-weight:700;display:block;margin-bottom:7px}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:12px;background:#fffdf9;padding:14px 14px;outline:none;transition:border-color .2s ease}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--red)}.field textarea{min-height:135px;resize:vertical}.form-status{font-size:.76rem;color:var(--muted);margin-top:12px}

/* Footer */
.footer{background:var(--ink);color:white;padding:90px 0 28px}.footer-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:60px;align-items:end;padding-bottom:80px;border-bottom:1px solid rgba(255,255,255,.15)}.footer-hero h2{font-family:var(--display);font-size:clamp(4rem,8.5vw,9rem);font-weight:400;line-height:.78;letter-spacing:-.06em;margin:0;max-width:7.5ch}.footer-side p{color:rgba(255,255,255,.62);max-width:37ch}.footer-side .cta-main{margin-top:18px}.footer-grid{display:grid;grid-template-columns:1.1fr .8fr .8fr .9fr;gap:40px;padding:45px 0}.footer-col h4{font-size:.63rem;text-transform:uppercase;letter-spacing:.15em;color:rgba(255,255,255,.42);margin:0 0 15px}.footer-col a,.footer-col p{display:block;font-size:.83rem;color:rgba(255,255,255,.78);margin:8px 0}.footer-bottom{padding-top:20px;border-top:1px solid rgba(255,255,255,.13);display:flex;justify-content:space-between;gap:20px;font-size:.65rem;color:rgba(255,255,255,.45)}

/* Accessibility */
.a11y-wrap{position:fixed;right:20px;bottom:20px;z-index:80}.a11y-btn{width:52px;height:52px;border:0;border-radius:50%;background:var(--red);color:white;box-shadow:0 14px 34px rgba(0,0,0,.18);display:grid;place-items:center;cursor:pointer}.a11y-btn svg{width:22px}.a11y-panel{position:absolute;right:0;bottom:62px;width:250px;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow);opacity:0;transform:translateY(8px) scale(.97);pointer-events:none;transition:.22s ease}.a11y-wrap.is-open .a11y-panel{opacity:1;transform:none;pointer-events:auto}.a11y-head{display:flex;justify-content:space-between;align-items:center;padding:3px 3px 11px;border-bottom:1px solid var(--line);font-weight:700;font-size:.77rem}.a11y-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 3px;border-bottom:1px solid var(--line);font-size:.72rem}.a11y-row:last-child{border-bottom:0}.a11y-controls{display:flex;gap:5px}.a11y-controls button,.a11y-toggle{height:30px;min-width:30px;border:1px solid var(--line);background:transparent;border-radius:8px;cursor:pointer}.a11y-toggle{padding:0 8px;font-size:.64rem;font-weight:700}.a11y-toggle[aria-pressed="true"]{background:var(--ink);color:white}

/* motion helpers */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1)}.reveal.is-in{opacity:1;transform:none}
.mask-reveal{clip-path:inset(0 0 100% 0);transition:clip-path 1s cubic-bezier(.2,.8,.2,1)}.mask-reveal.is-in{clip-path:inset(0 0 0 0)}

@media (max-width:1100px){
  .container{width:min(100% - 42px,1100px)}
  .hero .container{grid-template-columns:.9fr 1.1fr;gap:36px}.hero-title{font-size:clamp(4.1rem,8.7vw,7rem)}.hero-media{min-height:520px}
  .intro-grid,.impact-grid,.checker-shell,.contact-grid{gap:55px}
  .menu-stage{gap:45px}.menu-visual{min-height:460px}
}
@media (max-width:900px){
  .section{padding:92px 0}.site-header .pill-link{display:none}
  .hero{min-height:auto;padding-top:118px}.hero .container{grid-template-columns:1fr;gap:28px}.hero-copy{padding:34px 0 6px}.hero-title{font-size:clamp(4.5rem,14vw,7.5rem);max-width:9ch}.hero-cta{margin-top:30px}.hero-media{height:62vw;min-height:440px}.hero-photo{inset:0 5% 0 0}.logo-orbit{left:auto;right:0;top:-25px}.hero-stamp{bottom:-22px}
  .intro-grid{grid-template-columns:1fr;gap:35px}.intro-copy h2{max-width:13ch}.service-row{grid-template-columns:58px 1fr 46px}.service-row p{display:none}
  .paths .section-head,.impact-grid,.opportunity-wrap,.page-hero-grid,.split,.checker-shell,.contact-grid,.footer-hero{grid-template-columns:1fr}.paths .section-head{gap:25px}.path-panels{min-height:420px}.impact-art{min-height:560px}.opportunity-wrap{gap:34px}.opportunity-copy{border-left:0;border-top:1px solid rgba(255,255,255,.4);padding:28px 0 0}.page-hero-grid{gap:28px}.split{gap:45px}.checker-note{position:static}.card-grid{grid-template-columns:1fr 1fr}.cycle-card{grid-template-columns:1fr 1fr}.cycle-card>div:last-child{grid-column:1/-1}.contact-grid{gap:42px}.footer-hero{gap:36px}.footer-grid{grid-template-columns:1fr 1fr}.menu-stage{grid-template-columns:1fr}.menu-visual{display:none}
}
@media (max-width:620px){
  .container{width:calc(100% - 28px)}
  .site-header{padding:13px 0}.brand-mark{width:35px;height:35px}.brand-word strong{font-size:.9rem}.menu-btn{height:46px;min-width:92px;padding:0 15px}.menu-btn span{font-size:.7rem}
  .hero{padding:96px 0 22px}.hero-copy{padding-top:26px}.hero-title{font-size:clamp(4.05rem,18vw,5.9rem);line-height:.81}.hero-media{height:112vw;min-height:440px;max-height:620px}.hero-photo{inset:0 0 0 0;border-radius:23px}.logo-orbit{width:125px;right:-35px;top:-22px}
  .section{padding:76px 0}.section-tight{padding:58px 0}.intro-copy h2,.paths h2,.impact-copy h2,.opportunity h2{font-size:clamp(3.2rem,15vw,4.6rem)}.intro-copy p{font-size:1rem}.service-stack{margin-top:48px}.service-row{grid-template-columns:42px 1fr 30px;gap:12px;padding:19px 0}.service-row h3{font-size:1.68rem}
  .path-panels{grid-template-columns:1fr;min-height:0}.path-panel{min-height:350px;padding:28px}.path-panel:first-child{border-right:0;border-bottom:1px solid rgba(255,255,255,.17)}.path-panel h3{font-size:3.5rem}.path-bottom{align-items:flex-end}.path-bottom p{font-size:.78rem;max-width:25ch}
  .impact-art{min-height:480px}.impact-photo{inset:0 8% 9% 0}.impact-card{padding:24px;width:59%}.impact-card strong{font-size:3.25rem}.metrics{grid-template-columns:1fr}.metric+.metric{border-left:0;border-top:1px solid var(--line);padding-left:0}.opportunity-wrap{gap:28px}.quote-band{padding:70px 0}.quote-band blockquote{font-size:clamp(3.6rem,17vw,5.2rem)}
  .page-hero{padding:132px 0 68px}.page-hero h1{font-size:clamp(4rem,18vw,5.7rem)}.card-grid{grid-template-columns:1fr}.info-card{min-height:270px}.split-media{min-height:460px}.cycle-card{grid-template-columns:1fr;gap:26px}.cycle-card>div:last-child{grid-column:auto}.checker-step,.checker-result{padding:30px 20px}.choice-grid{grid-template-columns:1fr}.checker-top{padding:18px 20px}.checker-progress{max-width:130px}.value-row{grid-template-columns:42px 1fr;gap:18px}.value-row p{grid-column:2}.team-image{min-height:480px}.form-row{grid-template-columns:1fr}.contact-form{padding:22px}.footer{padding-top:68px}.footer-hero{padding-bottom:58px}.footer-hero h2{font-size:clamp(4.2rem,18vw,6rem)}.footer-grid{grid-template-columns:1fr 1fr;gap:28px}.footer-bottom{flex-direction:column}.a11y-wrap{right:12px;bottom:12px}.a11y-panel{width:min(250px,calc(100vw - 24px))}
  .menu-top{height:76px}.menu-stage{padding:35px 0 60px;min-height:calc(100vh - 76px)}.menu-link{grid-template-columns:37px 1fr 30px;padding:16px 0}.menu-link strong{font-size:clamp(2.5rem,13vw,3.7rem)}
}

/* =========================================================
   2026 refinement pass: image-led sections, brand motion,
   symmetric transitions, dark/light accessibility theme
   ========================================================= */

:root{--surface:#fffdf9;--surface-strong:#ffffff;--soft-red:rgba(207,32,43,.08)}
body.theme-dark{
  --paper:#111110;--paper-2:#1b1917;--white:#181715;--surface:#181715;--surface-strong:#211f1d;
  --ink:#f5f1ea;--muted:#b7b0a7;--line:rgba(255,255,255,.16);--shadow:0 24px 80px rgba(0,0,0,.34)
}
body.theme-dark .site-header.is-scrolled{background:rgba(17,17,16,.9)}
body.theme-dark .contact-form,body.theme-dark .checker{background:#181715}
body.theme-dark .field input,body.theme-dark .field textarea,body.theme-dark .field select{background:#111110;color:#f5f1ea}
body.theme-dark .pill-link{border-color:rgba(255,255,255,.26)}
body.theme-dark .service-row:hover{background:rgba(255,255,255,.055)}
body.theme-dark .info-card{background:rgba(255,255,255,.025)}
body.theme-dark .info-card:hover{background:#211f1d;box-shadow:0 20px 55px rgba(0,0,0,.25)}
body.theme-dark .a11y-panel{background:#1b1917}
body.theme-dark .a11y-controls button,body.theme-dark .a11y-toggle,body.theme-dark .theme-switch button{color:#f5f1ea}
body.theme-dark .page-hero-visual::after,body.theme-dark .community-gallery figure::after{mix-blend-mode:screen;opacity:.09}

/* pre-paint page arrival cover: prevents the destination from flashing before the transition opens */
html.has-page-enter{background:var(--red)}
html.has-page-enter .site-header,html.has-page-enter main,html.has-page-enter .footer,html.has-page-enter .a11y-wrap{visibility:hidden}
html.has-page-enter .page-wipe{visibility:visible;pointer-events:auto}
html.has-page-enter .page-wipe>span{transform:scale(1.55)}
html.has-page-enter .page-wipe .wipe-logo,html.has-page-enter .page-wipe .wipe-word,html.has-page-enter .page-wipe .wipe-cross{opacity:1}

/* more elaborate first-load scene built from the same four-quadrant language as navigation */
.intro-loader{background:var(--ink);transition:opacity .55s ease,visibility .55s ease}
.loader-transition{position:absolute;inset:-2px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.loader-transition i{background:var(--red);transform:scale(0);animation:introPanel 2.85s cubic-bezier(.78,0,.14,1) both}
.loader-transition i:nth-child(1){transform-origin:0 0;border-bottom-right-radius:100%}
.loader-transition i:nth-child(2){transform-origin:100% 0;border-bottom-left-radius:100%;animation-delay:.05s}
.loader-transition i:nth-child(3){transform-origin:0 100%;border-top-right-radius:100%;animation-delay:.1s}
.loader-transition i:nth-child(4){transform-origin:100% 100%;border-top-left-radius:100%;animation-delay:.15s}
.loader-axis{position:absolute;left:50%;top:50%;width:min(46vw,520px);aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.5);border-radius:50%;z-index:2;opacity:0;animation:axisScene 1.75s .45s cubic-bezier(.2,.8,.2,1) both}
.loader-axis span,.loader-axis b{position:absolute;background:rgba(255,255,255,.62)}
.loader-axis span:first-child{width:1px;height:140%;left:50%;top:-20%}.loader-axis span:nth-child(2){height:1px;width:140%;top:50%;left:-20%}
.loader-axis b:nth-child(3),.loader-axis b:nth-child(4){width:34px;height:34px;background:white;border-radius:50% 50% 4px 50%}
.loader-axis b:nth-child(3){right:-17px;top:calc(50% - 17px);transform:rotate(45deg)}.loader-axis b:nth-child(4){left:-17px;top:calc(50% - 17px);transform:rotate(225deg)}
.loader-core{z-index:4;animation:loaderCoreScene 2.7s cubic-bezier(.2,.8,.2,1) both}
.loader-core .brand-mark{width:90px;height:90px;filter:brightness(0) invert(1);animation:loaderMark 1.25s .28s cubic-bezier(.2,.8,.2,1) both}
.loader-name{font-family:var(--display);font-size:clamp(2.9rem,7vw,6.5rem);letter-spacing:.045em;margin-top:12px;clip-path:inset(0 100% 0 0);animation:loaderType .9s .62s cubic-bezier(.2,.8,.2,1) forwards}
.loader-note{font-size:.58rem;letter-spacing:.31em;margin-top:8px;animation:fadeIn .55s .92s forwards}
.loader-rings{z-index:3;width:min(27vw,300px);height:min(27vw,300px);animation:ringExpand 1.2s .4s cubic-bezier(.2,.8,.2,1) both}
.loader-track{position:absolute;left:50%;bottom:8vh;width:min(280px,56vw);height:2px;background:rgba(255,255,255,.22);transform:translateX(-50%);z-index:4;overflow:hidden}.loader-track span{display:block;height:100%;width:100%;background:white;transform:translateX(-100%);animation:loaderTrack 1.45s .52s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes introPanel{0%{transform:scale(0)}30%,67%{transform:scale(1.55)}100%{transform:scale(0)}}
@keyframes loaderCoreScene{0%,12%{opacity:0;transform:scale(.92)}30%,67%{opacity:1;transform:none}83%,100%{opacity:0;transform:scale(1.04)}}
@keyframes axisScene{0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(-35deg)}35%,68%{opacity:.9;transform:translate(-50%,-50%) scale(1) rotate(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3) rotate(18deg)}}
@keyframes loaderTrack{to{transform:none}}

/* full page transition: close with the same mark language, then open identically on destination */
.page-wipe{background:transparent;overflow:hidden;z-index:995}
.page-wipe>span{background:var(--red);transform:scale(0);transition:transform .66s cubic-bezier(.78,0,.12,1)}
.page-wipe>span:nth-child(1){transform-origin:0 0;border-bottom-right-radius:100%}.page-wipe>span:nth-child(2){transform-origin:100% 0;border-bottom-left-radius:100%}.page-wipe>span:nth-child(3){transform-origin:0 100%;border-top-right-radius:100%}.page-wipe>span:nth-child(4){transform-origin:100% 100%;border-top-left-radius:100%}
.page-wipe.is-leaving{visibility:visible;pointer-events:auto}.page-wipe.is-leaving>span{transform:scale(1.55)}
.page-wipe.is-arriving{visibility:visible;pointer-events:auto}.page-wipe.is-arriving>span{transform:scale(0)}
.page-wipe .wipe-logo{width:72px;height:72px;z-index:4;opacity:0;transform:translate(-50%,-50%) scale(.62) rotate(-40deg);transition:opacity .25s .2s ease,transform .42s .16s cubic-bezier(.2,.8,.2,1)}
.page-wipe .wipe-word{position:absolute;left:50%;top:calc(50% + 62px);transform:translate(-50%,10px);z-index:4;color:white;font-family:var(--display);font-size:1.8rem;letter-spacing:.08em;opacity:0;transition:.3s .23s ease}
.page-wipe .wipe-cross{position:absolute;left:50%;top:50%;width:210px;height:210px;border:1px solid rgba(255,255,255,.48);border-radius:50%;transform:translate(-50%,-50%) scale(.55) rotate(-30deg);opacity:0;z-index:3;transition:.45s .15s cubic-bezier(.2,.8,.2,1)}
.page-wipe .wipe-cross i,.page-wipe .wipe-cross b{position:absolute;background:rgba(255,255,255,.58)}
.page-wipe .wipe-cross i:first-child{width:1px;height:138%;left:50%;top:-19%}.page-wipe .wipe-cross i:nth-child(2){height:1px;width:138%;left:-19%;top:50%}
.page-wipe .wipe-cross b:nth-child(3),.page-wipe .wipe-cross b:nth-child(4){width:24px;height:24px;background:white;border-radius:50% 50% 4px 50%}.page-wipe .wipe-cross b:nth-child(3){right:-12px;top:93px;transform:rotate(45deg)}.page-wipe .wipe-cross b:nth-child(4){left:-12px;top:93px;transform:rotate(225deg)}
.page-wipe.is-leaving .wipe-logo,.page-wipe.is-leaving .wipe-word,.page-wipe.is-leaving .wipe-cross,.page-wipe.is-arriving .wipe-logo,.page-wipe.is-arriving .wipe-word,.page-wipe.is-arriving .wipe-cross{opacity:1}
.page-wipe.is-leaving .wipe-logo,.page-wipe.is-arriving .wipe-logo{transform:translate(-50%,-50%) scale(1) rotate(0)}
.page-wipe.is-leaving .wipe-word,.page-wipe.is-arriving .wipe-word{transform:translate(-50%,0)}
.page-wipe.is-leaving .wipe-cross,.page-wipe.is-arriving .wipe-cross{transform:translate(-50%,-50%) scale(1) rotate(0)}
.page-wipe.is-arriving .wipe-logo,.page-wipe.is-arriving .wipe-word,.page-wipe.is-arriving .wipe-cross{transition-delay:0s}

/* mature but active hero composition */
.hero .container{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:72px}
.hero-copy{padding:54px 0}
.hero-title{font-size:clamp(4.5rem,7.25vw,7.35rem);line-height:.84;letter-spacing:-.055em;max-width:9.1ch;text-wrap:balance}
.hero-media{min-height:590px;isolation:isolate}
.hero-photo{inset:3% 0 3% 2%;border-radius:36px 36px 90px 36px;transform:rotate(.6deg) translate3d(var(--hero-x,0),var(--hero-y,0),0) rotateX(var(--hero-rx,0deg)) rotateY(var(--hero-ry,0deg));transition:transform .28s ease-out,border-radius .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s ease;will-change:transform}
.hero-photo img{transform:scale(1.075) translate3d(var(--image-x,0),var(--image-y,0),0);transition:transform .5s cubic-bezier(.2,.8,.2,1);filter:saturate(.92) contrast(1.03)}
.hero-media:hover .hero-photo{border-radius:90px 36px 36px 36px;box-shadow:0 32px 90px rgba(32,22,18,.2)}
.hero-media:hover .hero-photo img{transform:scale(1.025) translate3d(var(--image-x,0),var(--image-y,0),0)}
.hero-frame{position:absolute;inset:0;z-index:5;pointer-events:none}.hero-frame span{position:absolute;width:34px;height:34px;border-color:var(--red);opacity:.9}.hero-frame span:nth-child(1){left:-4px;top:9%;border-left:1px solid;border-top:1px solid}.hero-frame span:nth-child(2){right:-4px;top:9%;border-right:1px solid;border-top:1px solid}.hero-frame span:nth-child(3){left:-4px;bottom:8%;border-left:1px solid;border-bottom:1px solid}.hero-frame span:nth-child(4){right:-4px;bottom:8%;border-right:1px solid;border-bottom:1px solid}
.hero-caption{position:absolute;left:24px;bottom:26px;z-index:6;display:flex;gap:12px;align-items:center;padding:9px 13px;background:rgba(17,17,16,.72);color:white;border-radius:99px;backdrop-filter:blur(12px);pointer-events:none}.hero-caption b{font-size:.5rem;letter-spacing:.14em;font-weight:600}.hero-caption b+ b::before{content:"";width:3px;height:3px;background:var(--red);display:inline-block;border-radius:50%;margin-right:12px;vertical-align:middle}
.logo-orbit{width:184px;height:184px;left:-48px;top:9%;background:rgba(245,241,234,.34);backdrop-filter:blur(6px);animation:orbit 16s linear infinite}.logo-orbit::before,.logo-orbit::after{opacity:.72}.orbit-chip{box-shadow:0 0 0 7px rgba(207,32,43,.08)}

/* reusable fragmented brand accents */
.brand-spark{position:absolute;width:86px;height:86px;right:clamp(14px,4vw,64px);top:42px;border:1px solid rgba(207,32,43,.18);border-radius:50%;pointer-events:none;opacity:.72;animation:sparkTurn 22s linear infinite}.brand-spark span{position:absolute;background:rgba(207,32,43,.23)}.brand-spark span:first-child{width:1px;height:130%;left:50%;top:-15%}.brand-spark span:nth-child(2){height:1px;width:130%;left:-15%;top:50%}.brand-spark i{position:absolute;width:12px;height:12px;background:var(--red);border-radius:50% 50% 2px 50%}.brand-spark i:nth-of-type(1){right:-6px;top:37px}.brand-spark i:nth-of-type(2){left:-6px;top:37px;transform:rotate(180deg)}
@keyframes sparkTurn{to{transform:rotate(360deg)}}
.section:nth-of-type(even)>.brand-spark{right:auto;left:clamp(14px,4vw,64px);animation-direction:reverse}

/* home page community imagery and interactive service previews */
.community-gallery{position:relative;height:clamp(420px,47vw,650px);margin-top:78px;margin-bottom:42px;overflow:visible}
.community-gallery figure{position:absolute;margin:0;overflow:hidden;background:var(--paper-2);box-shadow:var(--shadow);transition:transform .5s cubic-bezier(.2,.8,.2,1),border-radius .45s ease}
.community-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1);filter:saturate(.9)}
.community-gallery figure:hover img{transform:scale(1.045)}.community-gallery figure:hover{transform:translateY(-7px)}
.gallery-main{left:0;top:0;width:64%;height:82%;border-radius:30px 30px 90px 30px}.gallery-main figcaption{position:absolute;left:22px;bottom:20px;background:rgba(17,17,16,.75);color:white;padding:9px 13px;border-radius:99px;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(8px)}
.gallery-small{width:29%;height:43%;right:0;border-radius:24px}.gallery-small-a{top:5%}.gallery-small-b{bottom:0;right:7%;border-radius:70px 24px 24px 24px}
.gallery-mark{position:absolute;width:154px;height:154px;right:21%;top:38%;border:1px solid var(--red);border-radius:50%;z-index:5;pointer-events:none;animation:orbit 18s linear infinite}.gallery-mark span{position:absolute;background:var(--red);opacity:.55}.gallery-mark span:first-child{width:1px;height:130%;left:50%;top:-15%}.gallery-mark span:nth-child(2){height:1px;width:130%;left:-15%;top:50%}.gallery-mark i{position:absolute;right:-11px;top:65px;width:22px;height:22px;background:var(--red);border-radius:50% 50% 3px 50%;box-shadow:0 0 0 7px rgba(245,241,234,.7)}
.service-stack{position:relative}.service-row{position:relative;z-index:2}.service-row h3,.service-row p,.service-row svg{transition:transform .3s ease,color .3s ease}.service-row:hover h3{color:var(--red);transform:translateX(8px)}.service-row:hover p{transform:translateX(5px)}.service-row:hover svg{transform:translate(5px,-5px)}
.service-preview{position:fixed;z-index:60;width:300px;height:205px;left:0;top:0;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.9) rotate(-2deg);transition:opacity .18s ease,transform .22s ease}.service-preview.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}.service-preview-inner{height:100%;border-radius:24px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.24);border:6px solid var(--paper);position:relative}.service-preview img{width:100%;height:100%;object-fit:cover}.service-preview-mark{position:absolute;right:12px;bottom:12px;width:48px;height:48px;border:1px solid rgba(255,255,255,.65);border-radius:50%}.service-preview-mark span{position:absolute;background:white}.service-preview-mark span:first-child{width:1px;height:130%;left:50%;top:-15%}.service-preview-mark span:last-child{height:1px;width:130%;left:-15%;top:50%}

/* panel images only reveal on intent, so text remains primary */
.path-image{position:absolute;inset:0;opacity:0;transform:scale(1.06);transition:opacity .45s ease,transform .75s cubic-bezier(.2,.8,.2,1);z-index:0}.path-image::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(17,17,16,.92) 15%,rgba(17,17,16,.65) 65%,rgba(17,17,16,.45))}.path-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}.path-panel:hover .path-image{opacity:.78;transform:scale(1)}.path-panel>*:not(.path-image){position:relative;z-index:2}.path-panel:hover .path-graphic{transform:translateY(-50%) rotate(11deg) scale(1.08)}.path-graphic{transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.impact-grid{position:relative}.impact-mini{position:absolute;right:2%;bottom:-78px;width:220px;background:var(--surface-strong);padding:10px;border-radius:18px;box-shadow:var(--shadow);transform:rotate(3deg);z-index:4}.impact-mini img{height:126px;width:100%;object-fit:cover;border-radius:12px}.impact-mini span{display:block;font-size:.62rem;line-height:1.35;padding:9px 4px 3px;color:var(--muted)}

/* inner page hero now has photography, not just text */
.page-hero{padding-bottom:74px}.page-hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(260px,.54fr) minmax(300px,.72fr);gap:44px;align-items:end}.page-hero-grid>p{padding-bottom:14px}.page-hero-visual{height:360px;border-radius:30px 30px 80px 30px;overflow:hidden;position:relative;background:var(--paper-2);box-shadow:var(--shadow);transform:rotate(.8deg)}.page-hero-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.86);transition:transform .75s cubic-bezier(.2,.8,.2,1)}.page-hero-visual:hover img{transform:scale(1.04)}.page-hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,transparent 55%,rgba(17,17,16,.18))}.page-hero-mark{position:absolute;z-index:3;width:126px;height:126px;border:1px solid rgba(255,255,255,.7);border-radius:50%;right:-30px;top:-30px;animation:orbit 18s linear infinite}.page-hero-mark span{position:absolute;background:rgba(255,255,255,.75)}.page-hero-mark span:first-child{width:1px;height:140%;left:50%;top:-20%}.page-hero-mark span:nth-child(2){height:1px;width:140%;top:50%;left:-20%}.page-hero-mark i{position:absolute;width:18px;height:18px;background:var(--red);border-radius:50% 50% 3px 50%;top:53px}.page-hero-mark i:nth-of-type(1){right:-9px}.page-hero-mark i:nth-of-type(2){left:-9px;transform:rotate(180deg)}
.page-orbit{animation:orbit 34s linear infinite}

/* image movement shared across inner pages */
[data-float-image]{transform:translate3d(var(--float-x,0),var(--float-y,0),0);transition:transform .3s ease-out;will-change:transform}
.split-media{position:relative;box-shadow:var(--shadow)}.split-media::after,.team-image::after,.contact-photo::after{content:"";position:absolute;inset:auto 0 0 0;height:35%;background:linear-gradient(to top,rgba(17,17,16,.18),transparent);pointer-events:none}

/* about */
.values-list{position:relative}.value-row{transition:padding .32s ease,background .32s ease}.value-row:hover{padding-left:14px;padding-right:14px;background:var(--soft-red)}.value-row h3{transition:color .25s ease,transform .25s ease}.value-row:hover h3{color:var(--red);transform:translateX(4px)}
.values-gallery{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:55px;position:relative}.values-gallery figure{height:340px;margin:0;border-radius:24px;overflow:hidden;background:var(--paper-2)}.values-gallery figure:nth-child(2){margin-top:76px}.values-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.values-gallery figure:hover img{transform:scale(1.045)}.values-gallery-copy{position:absolute;right:2%;top:8%;display:grid;gap:5px;background:var(--red);color:white;padding:18px;border-radius:18px;transform:rotate(4deg);box-shadow:var(--shadow)}.values-gallery-copy span{font-size:.52rem;letter-spacing:.16em;font-weight:700}

/* grants */
.cycle-card{grid-template-columns:repeat(3,1fr);overflow:hidden;position:relative}.cycle-card>div:not(.cycle-photo){position:relative;z-index:2}.cycle-photo{grid-column:1/-1;height:340px;margin:10px -42px -42px;overflow:hidden;position:relative}.cycle-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:transform .7s cubic-bezier(.2,.8,.2,1)}.cycle-card:hover .cycle-photo img{transform:scale(1.035)}.cycle-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(23,23,22,.05),rgba(23,23,22,.42))}.cycle-photo-mark{position:absolute;right:42px;top:35px;width:110px;height:110px;border:1px solid rgba(255,255,255,.7);border-radius:50%;z-index:2}.cycle-photo-mark::before,.cycle-photo-mark::after{content:"";position:absolute;background:rgba(255,255,255,.72)}.cycle-photo-mark::before{height:140%;width:1px;left:50%;top:-20%}.cycle-photo-mark::after{width:140%;height:1px;left:-20%;top:50%}
.checker-shell{grid-template-columns:.67fr 1fr .52fr;gap:34px}.checker-photo{min-height:520px;border-radius:26px;overflow:hidden;position:sticky;top:125px;background:var(--paper-2);box-shadow:var(--shadow)}.checker-photo img{width:100%;height:100%;object-fit:cover}.choice:hover{transform:translateY(-2px)}

/* giving cards now contain restrained photographic reveals */
.info-card{position:relative;overflow:hidden;padding-top:135px}.info-card-media{position:absolute;inset:0 0 auto 0;height:112px;overflow:hidden;background:var(--paper-2)}.info-card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(17,17,16,.18),transparent)}.info-card-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.75);transform:scale(1.03);transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .5s ease}.info-card:hover .info-card-media img{transform:scale(1.09);filter:saturate(1)}.info-card .icon{background:var(--surface-strong);position:absolute;top:88px;left:25px;z-index:2;box-shadow:0 8px 24px rgba(0,0,0,.08)}

/* contact gets a real visual anchor rather than two text columns only */
.contact-grid{grid-template-columns:.64fr .62fr 1.12fr;gap:28px;align-items:stretch}.contact-photo{border-radius:26px 70px 26px 26px;overflow:hidden;min-height:610px;position:relative;background:var(--paper-2);box-shadow:var(--shadow)}.contact-photo img{width:100%;height:100%;object-fit:cover}.contact-photo-tag{position:absolute;z-index:3;left:20px;bottom:18px;background:rgba(17,17,16,.74);color:white;border-radius:99px;padding:9px 13px;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(8px)}

/* richer micro-interaction throughout */
.pill-link,.cta-main,.menu-btn,.round-arrow,.a11y-btn{position:relative;overflow:hidden}.pill-link::after,.cta-main::after,.menu-btn::after{content:"";position:absolute;inset:-2px;transform:translateX(-120%) skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transition:transform .55s ease;pointer-events:none}.pill-link:hover::after,.cta-main:hover::after,.menu-btn:hover::after{transform:translateX(120%) skewX(-18deg)}
.menu-link strong{transition:transform .3s ease,color .3s ease}.menu-link:hover strong{transform:translateX(12px)}

/* always-visible theme switch inside the accessibility menu */
.theme-switch{display:flex;gap:5px}.theme-switch button{border:1px solid var(--line);background:transparent;border-radius:8px;min-height:32px;padding:0 8px;display:inline-flex;gap:5px;align-items:center;font-size:.6rem;font-weight:700;cursor:pointer}.theme-switch button svg{width:14px;height:14px}.theme-switch button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}

@media (max-width:1180px){
  .page-hero-grid{grid-template-columns:1fr .72fr;align-items:end}.page-hero-grid>p{grid-column:1}.page-hero-visual{grid-column:2;grid-row:1/3;height:420px}
  .checker-shell{grid-template-columns:.72fr 1.28fr}.checker-photo{grid-column:1/-1;position:relative;top:auto;min-height:380px;height:380px}
  .contact-grid{grid-template-columns:.72fr 1fr}.contact-photo{min-height:420px}.contact-form{grid-column:1/-1}
}
@media (max-width:900px){
  .hero .container{grid-template-columns:1fr;gap:34px}.hero-title{font-size:clamp(4.2rem,13.4vw,7rem);max-width:11ch;line-height:.84}.hero-media{height:68vw;min-height:500px}.hero-photo{inset:0 4% 0 0}.hero-caption{left:14px;bottom:16px}.service-preview{display:none}
  .community-gallery{height:560px;margin-top:58px}.gallery-main{width:76%;height:68%}.gallery-small{width:36%;height:35%}.gallery-small-a{top:3%;right:0}.gallery-small-b{bottom:0;right:12%}.gallery-mark{right:28%;top:48%}
  .impact-mini{position:relative;right:auto;bottom:auto;width:min(300px,70%);margin:-82px 0 0 auto;transform:rotate(2deg)}
  .page-hero-grid{grid-template-columns:1fr;gap:28px}.page-hero-grid>p,.page-hero-visual{grid-column:auto;grid-row:auto}.page-hero-visual{height:55vw;min-height:370px}.page-hero p{max-width:60ch}
  .checker-shell,.contact-grid{grid-template-columns:1fr}.checker-photo,.contact-photo{min-height:430px;height:auto;position:relative;top:auto}.contact-form{grid-column:auto}
  .values-gallery{grid-template-columns:1fr 1fr}.values-gallery figure{height:300px}.values-gallery-copy{right:4%}
}
@media (max-width:620px){
  .brand-spark{width:56px;height:56px;top:26px;opacity:.48}.brand-spark i{width:9px;height:9px}.brand-spark i:nth-of-type(1){right:-5px;top:23px}.brand-spark i:nth-of-type(2){left:-5px;top:23px}
  .intro-loader .loader-axis{width:62vw}.loader-core .brand-mark{width:70px;height:70px}.loader-name{font-size:3.2rem}.loader-note{font-size:.48rem;letter-spacing:.2em}.loader-track{bottom:9vh}
  .page-wipe .wipe-cross{width:160px;height:160px}.page-wipe .wipe-logo{width:58px;height:58px}.page-wipe .wipe-word{font-size:1.45rem;top:calc(50% + 50px)}
  .hero{padding-top:92px}.hero-copy{padding:20px 0 3px}.hero-title{font-size:clamp(3.75rem,16.4vw,5.35rem);line-height:.86;max-width:10.7ch;letter-spacing:-.05em}.hero-cta{margin-top:28px}.hero-media{height:111vw;min-height:430px;max-height:590px}.hero-photo{inset:0;border-radius:26px 26px 65px 26px}.hero-media:hover .hero-photo{border-radius:65px 26px 26px 26px}.logo-orbit{width:118px;height:118px;left:auto;right:-32px;top:-24px}.hero-frame span{width:24px;height:24px}.hero-caption{max-width:calc(100% - 28px);overflow:hidden;gap:8px}.hero-caption b{font-size:.43rem}.hero-caption b+ b::before{margin-right:8px}
  .community-gallery{height:480px;margin-top:44px;margin-bottom:24px}.gallery-main{width:84%;height:64%;border-radius:24px 24px 62px 24px}.gallery-small{width:42%;height:31%;border-radius:18px}.gallery-small-a{top:2%}.gallery-small-b{right:9%;bottom:0}.gallery-mark{width:106px;height:106px;right:27%;top:50%}.gallery-mark i{width:16px;height:16px;right:-8px;top:44px}
  .impact-mini{width:68%;margin-top:-58px}.impact-mini img{height:92px}
  .page-hero{padding-top:118px}.page-hero h1{font-size:clamp(3.6rem,15.2vw,5.2rem);line-height:.86}.page-hero-visual{height:88vw;min-height:330px;border-radius:24px 24px 62px 24px}.page-hero-mark{width:96px;height:96px}.page-hero-mark i{top:39px}
  .values-gallery{grid-template-columns:1fr;gap:14px}.values-gallery figure{height:280px}.values-gallery figure:nth-child(2){margin-top:0}.values-gallery-copy{right:10px;top:10px;padding:12px}.cycle-card{padding:30px}.cycle-photo{height:250px;margin:6px -30px -30px}.cycle-photo-mark{width:80px;height:80px;right:24px;top:24px}.checker-photo{min-height:300px;height:330px}.info-card{min-height:330px;padding-top:132px}.contact-photo{min-height:390px;border-radius:24px 58px 24px 24px}.theme-switch button span{display:none}.theme-switch button{width:34px;justify-content:center;padding:0}
}


/* === Final live-site refinement: photo-rich composition + exact reverse page transitions === */
.brand-word strong,.loader-name{font-family:var(--display)}
.hero-title,.intro-copy h2,.paths h2,.path-panel h3,.impact-copy h2,.opportunity h2,.quote-band blockquote,.page-hero h1,.split h2,.checker-copy h2,.contact-copy h2,.footer-hero h2,.menu-link strong{font-family:var(--display);font-style:normal}
.hero-title{font-size:clamp(3.95rem,6.35vw,6.85rem);line-height:.94;letter-spacing:-.052em;max-width:12.8ch;text-wrap:balance;font-weight:500}
.hero-title .accent{font-style:normal;font-weight:600;display:inline;color:var(--red)}
.intro-copy h2,.paths h2,.impact-copy h2,.opportunity h2,.quote-band blockquote,.page-hero h1,.footer-hero h2{line-height:.96;letter-spacing:-.045em}
.path-panel h3{line-height:.94;letter-spacing:-.045em;font-weight:500}

/* Keep photography present even before scroll-triggered motion so the live site never reads as empty. */
.mask-reveal{clip-path:none!important;opacity:1;transform:translateY(0);overflow:hidden}
.mask-reveal img{transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .45s ease}
.mask-reveal:not(.is-in) img{transform:scale(1.035)}
.mask-reveal.is-in img{transform:scale(1)}

/* Hero: mature image treatment, not a static rectangle. */
.hero .container{grid-template-columns:minmax(0,.95fr) minmax(440px,1.05fr);gap:58px}
.hero-media{min-height:610px}
.hero-photo{inset:2% 0 2% 0;border-radius:28px 28px 86px 28px;overflow:hidden}
.hero-photo img{object-position:center 42%;filter:saturate(.9) contrast(1.04)}
.hero-photo::before{content:"";position:absolute;z-index:2;inset:18px;border:1px solid rgba(255,255,255,.56);border-radius:18px 18px 68px 18px;pointer-events:none}
.hero-media:hover .hero-photo{border-radius:86px 28px 28px 28px;transform:rotate(-.45deg) translate3d(var(--hero-x,0),var(--hero-y,0),0) rotateX(var(--hero-rx,0deg)) rotateY(var(--hero-ry,0deg))}

/* Put a real Onward image into the intro column that previously read as empty space. */
.intro-grid{grid-template-columns:.72fr 1.28fr;gap:70px}
.intro-grid>div:first-child{display:flex;flex-direction:column;gap:30px}
.intro-peek{margin:0;width:100%;height:260px;border-radius:22px 58px 22px 22px;overflow:hidden;box-shadow:var(--shadow);position:relative}
.intro-peek img{width:100%;height:100%;object-fit:cover;object-position:center}
.intro-peek::after{content:"";position:absolute;inset:0;background:linear-gradient(150deg,transparent 58%,rgba(17,17,16,.18))}

/* All intent panels visibly contain photography; hover intensifies it rather than revealing it from nothing. */
.path-image{opacity:.34;transform:scale(1.015)}
.path-image::after{background:linear-gradient(110deg,rgba(17,17,16,.92) 10%,rgba(17,17,16,.7) 58%,rgba(17,17,16,.48))}
.path-panel:hover .path-image{opacity:.82;transform:scale(1)}

/* Red callout bands get a proper photographic anchor. */
.opportunity-wrap{grid-template-columns:minmax(0,1.15fr) minmax(270px,.72fr) minmax(250px,.62fr);gap:44px}
.opportunity-copy{padding-left:32px}
.opportunity-media{margin:0;height:260px;border-radius:22px 56px 22px 22px;position:relative;overflow:hidden;box-shadow:0 20px 45px rgba(80,0,0,.22)}
.opportunity-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.04)}
.opportunity-media::after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(207,32,43,.08),rgba(17,17,16,.24))}
.opportunity-media-mark{position:absolute;z-index:2;width:84px;height:84px;border:1px solid rgba(255,255,255,.65);border-radius:50%;right:-19px;top:-18px;animation:orbit 15s linear infinite}
.opportunity-media-mark::before,.opportunity-media-mark::after{content:"";position:absolute;background:rgba(255,255,255,.7)}
.opportunity-media-mark::before{width:1px;height:140%;left:50%;top:-20%}.opportunity-media-mark::after{height:1px;width:140%;top:50%;left:-20%}

/* Quote section uses the open side for photography instead of negative space. */
.quote-band .container{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.62fr);gap:72px;align-items:center}
.quote-band blockquote{max-width:11ch}
.quote-photo{margin:0;height:390px;border-radius:28px 28px 80px 28px;overflow:hidden;position:relative;box-shadow:var(--shadow)}
.quote-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.78)}
.quote-photo figcaption{position:absolute;z-index:3;left:16px;bottom:16px;background:rgba(17,17,16,.72);color:white;padding:9px 13px;border-radius:99px;font-size:.61rem;letter-spacing:.08em;backdrop-filter:blur(8px)}

/* Exact reverse transition: the close is literally the opening animation played backwards. */
.page-wipe>span{transition:none!important;transform:scale(0)}
@keyframes onwardWipe{from{transform:scale(0)}to{transform:scale(1.58)}}
@keyframes onwardMark{from{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(-42deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}
@keyframes onwardCross{from{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(-34deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}
@keyframes onwardWord{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
.page-wipe.is-leaving{visibility:visible;pointer-events:auto}
.page-wipe.is-leaving>span{animation:onwardWipe .82s cubic-bezier(.76,0,.24,1) both}
.page-wipe.is-leaving .wipe-logo{animation:onwardMark .54s .18s cubic-bezier(.2,.8,.2,1) both}
.page-wipe.is-leaving .wipe-cross{animation:onwardCross .62s .12s cubic-bezier(.2,.8,.2,1) both}
.page-wipe.is-leaving .wipe-word{animation:onwardWord .42s .28s ease both}
html.has-page-enter .page-wipe>span{transform:scale(1.58)}
html.has-page-enter .page-wipe .wipe-logo{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}
html.has-page-enter .page-wipe .wipe-cross{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}
html.has-page-enter .page-wipe .wipe-word{opacity:1;transform:translate(-50%,0)}
.page-wipe.is-arriving{visibility:visible;pointer-events:auto}
.page-wipe.is-arriving>span{animation:onwardWipe .82s cubic-bezier(.76,0,.24,1) reverse both}
.page-wipe.is-arriving .wipe-logo{animation:onwardMark .54s .18s cubic-bezier(.2,.8,.2,1) reverse both}
.page-wipe.is-arriving .wipe-cross{animation:onwardCross .62s .12s cubic-bezier(.2,.8,.2,1) reverse both}
.page-wipe.is-arriving .wipe-word{animation:onwardWord .42s .28s ease reverse both}

/* same page-wipe geometry, expanded for the first load */
.loader-transition i{animation-name:introPanelExact;animation-duration:3.05s;animation-timing-function:cubic-bezier(.76,0,.24,1)}
@keyframes introPanelExact{0%{transform:scale(0)}26%,70%{transform:scale(1.58)}100%{transform:scale(0)}}

@media (max-width:1100px){
  .hero .container{grid-template-columns:1fr;gap:34px}.hero-title{max-width:15ch}.hero-media{height:64vw;min-height:520px}
  .opportunity-wrap{grid-template-columns:1fr 1fr;gap:28px}.opportunity h2{grid-column:1/-1}.opportunity-copy{border-left:0;padding-left:0}.opportunity-media{height:300px}
  .quote-band .container{grid-template-columns:1fr .72fr;gap:40px}.quote-photo{height:330px}
}
@media (max-width:760px){
  .hero-title{font-size:clamp(3.15rem,13.3vw,5rem);line-height:.97;max-width:12ch;letter-spacing:-.048em}
  .hero-media{height:104vw;min-height:420px}.hero-photo{inset:0;border-radius:24px 24px 60px 24px}.hero-photo::before{inset:12px;border-radius:16px 16px 46px 16px}
  .intro-grid{grid-template-columns:1fr;gap:30px}.intro-peek{height:240px}
  .opportunity-wrap,.quote-band .container{grid-template-columns:1fr}.opportunity h2{grid-column:auto}.opportunity-media{height:250px;order:2}.opportunity-copy{order:3;border-top:1px solid rgba(255,255,255,.35);padding-top:22px}.quote-photo{height:300px}
  .path-image{opacity:.46}.path-panel:hover .path-image{opacity:.62}
}
@media (max-width:430px){
  .hero-title{font-size:clamp(3rem,14vw,4.25rem);max-width:11.5ch}.hero-media{min-height:400px;height:108vw}
  .intro-peek{height:210px}.opportunity-media{height:220px}.quote-photo{height:250px}
}

/* Exact reversible navigation timeline. The close is the opening animation played backward. */
@keyframes onwardWipeExact{
  0%{transform:scale(0)}
  100%{transform:scale(1.58)}
}
@keyframes onwardCrossExact{
  0%,10%{opacity:0;transform:translate(-50%,-50%) scale(.48) rotate(-34deg)}
  64%,100%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}
}
@keyframes onwardMarkExact{
  0%,18%{opacity:0;transform:translate(-50%,-50%) scale(.56) rotate(-42deg)}
  72%,100%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}
}
@keyframes onwardWordExact{
  0%,34%{opacity:0;transform:translate(-50%,12px)}
  78%,100%{opacity:1;transform:translate(-50%,0)}
}
.page-wipe.is-leaving>span,.page-wipe.is-arriving>span{animation:onwardWipeExact .82s cubic-bezier(.76,0,.24,1) both}
.page-wipe.is-leaving .wipe-cross,.page-wipe.is-arriving .wipe-cross{animation:onwardCrossExact .82s cubic-bezier(.2,.8,.2,1) both}
.page-wipe.is-leaving .wipe-logo,.page-wipe.is-arriving .wipe-logo{animation:onwardMarkExact .82s cubic-bezier(.2,.8,.2,1) both}
.page-wipe.is-leaving .wipe-word,.page-wipe.is-arriving .wipe-word{animation:onwardWordExact .82s ease both}
.page-wipe.is-arriving>span,.page-wipe.is-arriving .wipe-cross,.page-wipe.is-arriving .wipe-logo,.page-wipe.is-arriving .wipe-word{animation-direction:reverse}
