/* ==========================================================================
   OmniHemEi — shared styles
   Bone ground, framed "mount" surfaces, Garamond headings over Geist text.
   Two pigments: terre verte (EdTech) and oxblood (Consultancy).
   Corners are hard by default; a soft corner is placed only where it's earned.
   ========================================================================== */

:root{
  color-scheme: light dark;

  --bg:        #F3EEDB;
  --surface:   #FAF7EC;
  --surface-2: #EEE8D2;
  --shell:     rgba(120,100,50,.05);
  --ring:      rgba(90,72,40,.16);
  --hair:      rgba(90,72,40,.16);

  --ink:   #241C17;
  --ink-2: #51453C;
  --ink-3: #685A4F;

  --edu:      #3D5C45;
  --edu-tint: #D8DCC8;
  --con:      #8A2D21;
  --con-tint: #EBD3C8;
  --on-accent:#F3EEE3;
  --err:      #A3281B;

  --night:     #2C3B30;
  --night-red: #5C1E16;
  --night-ink: #EFE8DA;
  --night-ink-2:#CFC4B2;

  --plate: #F8F4E8;
  --chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' stroke='%23685A4F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  --shadow: 0 1px 0 rgba(74,52,34,.06);
  --hi:     inset 0 1px 0 rgba(255,255,255,.35);

  --r-soft: 38px;
  --r-hard: 2px;
  --r-lg: var(--r-soft);
  --bezel: 6px;
  --tl: var(--r-hard); --tr: var(--r-hard); --br: var(--r-hard); --bl: var(--r-hard);

  --ease:     cubic-bezier(.32,.72,0,1);
  --ease-out: cubic-bezier(.22,1,.36,1);

  --font: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --serif: 'EB Garamond', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;

  --wrap: 1200px;
  --gut:  clamp(16px, 4vw, 40px);
  --sec:  clamp(80px, 11vw, 136px);
}

/* Night palette. Follows the device setting until the visitor picks a mode
   with the switch in the nav (stored as data-theme on <html>). */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:        #1A1612;
    --surface:   #221D18;
    --surface-2: #2A241E;
    --shell:     rgba(233,224,207,.03);
    --ring:      rgba(233,224,207,.13);
    --hair:      rgba(233,224,207,.12);

    --ink:   #ECE5D6;
    --ink-2: #C3B8A7;
    --ink-3: #A89C8B;

    --edu:      #9DBB9F;
    --edu-tint: rgba(157,187,159,.14);
    --con:      #DE8C78;
    --con-tint: rgba(222,140,120,.14);
    --on-accent:#1A1612;
    --err:      #F08A75;

    --night: #26332A;
    --night-red: #4A1A13;

    --shadow: 0 1px 0 rgba(0,0,0,.25);
    --hi:     inset 0 1px 0 rgba(236,229,214,.04);

    --plate: #E7E0CF;
    --chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' stroke='%23A89C8B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:        #1A1612;
  --surface:   #221D18;
  --surface-2: #2A241E;
  --shell:     rgba(233,224,207,.03);
  --ring:      rgba(233,224,207,.13);
  --hair:      rgba(233,224,207,.12);

  --ink:   #ECE5D6;
  --ink-2: #C3B8A7;
  --ink-3: #A89C8B;

  --edu:      #9DBB9F;
  --edu-tint: rgba(157,187,159,.14);
  --con:      #DE8C78;
  --con-tint: rgba(222,140,120,.14);
  --on-accent:#1A1612;
  --err:      #F08A75;

  --night: #26332A;
  --night-red: #4A1A13;

  --shadow: 0 1px 0 rgba(0,0,0,.25);
  --hi:     inset 0 1px 0 rgba(236,229,214,.04);

  --plate: #E7E0CF;
  --chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' stroke='%23A89C8B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
:root[data-theme="light"]{ color-scheme: light; }

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:104px; }
body{
  font-family:var(--font);
  font-size:17px;
  line-height:1.6;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
body.menu-open{ overflow:hidden; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
ul, ol{ list-style:none; }
:focus-visible{ outline:2px solid var(--edu); outline-offset:3px; border-radius:var(--r-hard); }
[data-division="consultancy"] :focus-visible{ outline-color:var(--con); }
::selection{ background:var(--edu); color:var(--on-accent); }

.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }
.sec{ padding-block:var(--sec); }
.sec + .sec{ padding-top:0; }
.visually-hidden{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; left:12px; top:-60px; z-index:60; padding:10px 16px; border-radius:var(--r-hard); background:var(--ink); color:var(--bg); transition:top .4s var(--ease); }
.skip:focus{ top:12px; }

/* ---------- type ---------- */
.display{
  font-size:clamp(44px, 6.2vw, 84px);
  font-family:var(--serif);
  line-height:1;
  letter-spacing:-.018em;
  font-weight:500;
  text-wrap:balance;
}
.h2{
  font-size:clamp(34px, 4.4vw, 56px);
  font-family:var(--serif);
  line-height:1.04;
  letter-spacing:-.014em;
  font-weight:500;
  text-wrap:balance;
}
.h3{
  font-family:var(--serif);
  font-size:clamp(24px, 2.3vw, 30px);
  line-height:1.15;
  letter-spacing:-.008em;
  font-weight:500;
  text-wrap:balance;
}
.lead{
  font-size:clamp(18px, 1.55vw, 20px);
  line-height:1.55;
  color:var(--ink-2);
  max-width:54ch;
  text-wrap:pretty;
}
.body{ font-size:15.5px; line-height:1.6; color:var(--ink-2); text-wrap:pretty; }
.small{ font-size:14px; color:var(--ink-3); }

/* ---------- eyebrow pill ---------- */
.pill{
  display:inline-flex; align-items:center; gap:9px;
  padding:6px 13px 6px 10px;
  border-radius:var(--r-hard);
  background:var(--surface);
  box-shadow:0 0 0 1px var(--ring), var(--hi);
  font-size:13.5px; font-weight:500; color:var(--ink-2);
  line-height:1.3;
}
.pill-dot{ width:7px; height:7px; border-radius:50%; background:var(--ink-3); flex:none; }
.pill--edu .pill-dot{ background:var(--edu); }
.pill--con .pill-dot{ background:var(--con); }

a.pill{ padding-right:5px; transition:box-shadow .5s var(--ease), transform .5s var(--ease); }
a.pill:hover{ box-shadow:0 0 0 1px color-mix(in srgb, var(--edu) 45%, transparent), var(--hi); }
a.pill:active{ transform:scale(.985); }
.pill-chip{
  display:inline-flex; align-items:center; gap:4px;
  padding:3px 10px; border-radius:var(--r-hard);
  background:var(--edu-tint); color:var(--edu); font-weight:500;
}
.pill-chip svg{ width:12px; height:12px; transition:transform .5s var(--ease); }
a.pill:hover .pill-chip svg{ transform:translate(2px,-1px); }

/* ---------- buttons (pill + nested icon) ---------- */
.btn{
  --btn-bg: var(--ink);
  --btn-fg: var(--bg);
  display:inline-flex; align-items:center; gap:14px;
  min-height:52px;
  padding:6px 6px 6px 24px;
  border-radius:var(--r-hard);
  background:var(--btn-bg); color:var(--btn-fg);
  font-size:15.5px; font-weight:500; letter-spacing:-.01em; line-height:1.2;
  box-shadow:var(--shadow);
  transition:transform .5s var(--ease), background-color .45s var(--ease), box-shadow .45s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.btn:active{ transform:scale(.98); }
.btn-ico{
  flex:none; width:40px; height:40px; border-radius:var(--r-hard) var(--r-hard) var(--r-hard) 20px;
  display:grid; place-items:center;
  background:color-mix(in srgb, var(--btn-fg) 14%, transparent);
  transition:transform .55s var(--ease);
}
.btn-ico svg{ width:16px; height:16px; }
.btn:hover .btn-ico{ transform:translate(3px,-1px) scale(1.06); }
.btn:hover .btn-ico--down{ transform:translateY(2px) scale(1.06); }

.btn--edu{ --btn-bg:var(--edu); --btn-fg:var(--on-accent); }
.btn--con{ --btn-bg:var(--con); --btn-fg:var(--on-accent); }
.btn--ghost{ --btn-bg:var(--surface); --btn-fg:var(--ink); box-shadow:0 0 0 1px var(--ring), var(--hi); }
.btn--ghost .btn-ico{ background:var(--surface-2); box-shadow:0 0 0 1px var(--ring); }
.btn--light{ --btn-bg:var(--night-ink); --btn-fg:#241C17; box-shadow:none; }
.btn--night-ghost{ --btn-bg:transparent; --btn-fg:var(--night-ink); box-shadow:inset 0 0 0 1px rgba(239,232,218,.35); }
.btn--sm{ min-height:44px; padding:4px 4px 4px 18px; font-size:14.5px; gap:10px; box-shadow:none; }
.btn--sm .btn-ico{ width:36px; height:36px; border-bottom-left-radius:18px; }
.btn--sm.btn--ghost{ box-shadow:0 0 0 1px var(--ring); }
.btn--block{ width:100%; justify-content:space-between; }
.btn[disabled]{ opacity:.6; cursor:progress; }

.actions{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }

.link{
  display:inline-flex; align-items:center; gap:6px;
  font-weight:500; color:var(--ink);
  text-decoration:underline; text-decoration-color:var(--hair);
  text-underline-offset:5px; text-decoration-thickness:1.5px;
  transition:text-decoration-color .4s var(--ease), color .4s var(--ease);
}
.link svg{ width:14px; height:14px; transition:transform .5s var(--ease); }
.link:hover{ text-decoration-color:currentColor; }
.link:hover svg{ transform:translate(2px,-1px); }

/* ---------- double-bezel surfaces ---------- */
.bezel{
  padding:var(--bezel);
  border-radius:var(--tl) var(--tr) var(--br) var(--bl);
  background:var(--shell);
  box-shadow:0 0 0 1px var(--ring);
  min-width:0;
}
.core{
  position:relative;
  height:100%;
  border-radius:max(0px, calc(var(--tl) - var(--bezel))) max(0px, calc(var(--tr) - var(--bezel))) max(0px, calc(var(--br) - var(--bezel))) max(0px, calc(var(--bl) - var(--bezel)));
  background:var(--surface);
  box-shadow:var(--hi), var(--shadow);
}
.core--night{
  background:var(--night);
  color:var(--night-ink);
  box-shadow:none;
}
.core--night .h2, .core--night .h3{ font-weight:400; }
.core--night .body, .core--night .lead{ color:var(--night-ink-2); }

.mark{
  flex:none; width:50px; height:50px; border-radius:var(--r-hard);
  display:grid; place-items:center;
  background:var(--surface-2); color:var(--ink);
  box-shadow:inset 0 0 0 1px var(--ring);
}
.mark svg{ width:28px; height:28px; }
.mark--edu{ background:var(--edu-tint); color:var(--edu); box-shadow:none; }
.mark--con{ background:var(--con-tint); color:var(--con); box-shadow:none; }

/* soft corners, placed on purpose */
.hero .bezel{ --tl:var(--r-soft); }
.division{ --tl:var(--r-soft); }
.division + .division{ --tl:var(--r-hard); --tr:var(--r-soft); }
.service--feature{ --tl:var(--r-soft); }
.form-card{ --tr:var(--r-soft); }
.diploma .bezel{ --tr:var(--r-soft); }
.band .bezel{ --tl:var(--r-soft); --br:var(--r-soft); }
.band .core--night{ background:var(--night-red); }

/* avatar with initials fallback (image removes itself on error) */
.avatar{
  position:relative; flex:none; overflow:hidden;
  display:grid; place-items:center;
  background:var(--surface-2); color:var(--ink-2);
  box-shadow:inset 0 0 0 1px var(--ring);
  font-weight:600; letter-spacing:-.02em;
}
.avatar::before{ content:attr(data-initials); }
.avatar img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.avatar--logo img{ object-fit:contain; background:#FAF7EC; padding:5px; }

/* ---------- navigation ---------- */
.nav-wrap{
  position:fixed; top:14px; left:0; right:0; z-index:40;
  display:flex; justify-content:center;
  padding-inline:12px;
  pointer-events:none;
}
.nav{
  pointer-events:auto;
  display:flex; align-items:center; gap:4px;
  padding:6px;
  border-radius:var(--r-hard);
  background:color-mix(in srgb, var(--surface) 88%, transparent);
  -webkit-backdrop-filter:saturate(1.6) blur(18px);
  backdrop-filter:saturate(1.6) blur(18px);
  box-shadow:0 0 0 1px var(--ring);
  transition:box-shadow .6s var(--ease), background-color .6s var(--ease);
}
.nav-wrap.is-scrolled .nav{
  background:color-mix(in srgb, var(--surface) 86%, transparent);
  box-shadow:0 0 0 1px var(--ring), 0 12px 28px -22px rgba(74,52,34,.35);
}
.nav-brand{
  display:flex; align-items:center; gap:10px;
  padding:3px 16px 3px 3px; margin-right:6px;
  font-family:var(--serif); font-weight:500; font-size:20px; letter-spacing:0;
  border-radius:var(--r-hard);
}
.nav-brand .avatar{ width:36px; height:36px; border-radius:50%; font-size:14px; }
.nav-links{ display:flex; gap:2px; }
.nav-links a{
  display:block; padding:9px 15px; border-radius:var(--r-hard);
  font-size:14.5px; font-weight:500; color:var(--ink-2);
  transition:background-color .4s var(--ease), color .4s var(--ease);
}
.nav-links a:hover{ color:var(--ink); background:color-mix(in srgb, var(--ink) 6%, transparent); }
.nav-links a[aria-current="page"]{ color:var(--ink); background:color-mix(in srgb, var(--ink) 8%, transparent); }
.nav-cta{
  margin-left:8px;
  display:inline-flex; align-items:center; min-height:42px; padding:0 18px;
  border-radius:var(--r-hard) 16px var(--r-hard) var(--r-hard); background:var(--con); color:var(--on-accent);
  font-size:14.5px; font-weight:500;
  transition:transform .5s var(--ease);
}
.nav-cta:active{ transform:scale(.97); }

.nav-burger{ display:none; position:relative; width:44px; height:44px; border-radius:var(--r-hard); }
.nav-burger span{
  position:absolute; left:13px; right:13px; top:50%;
  height:1.5px; margin-top:-.75px; border-radius:2px;
  background:var(--ink);
  transition:transform .6s var(--ease);
}
.nav-burger span:nth-child(1){ transform:translateY(-4px); }
.nav-burger span:nth-child(2){ transform:translateY(4px); }
.nav-burger[aria-expanded="true"] span:nth-child(1){ transform:rotate(45deg); }
.nav-burger[aria-expanded="true"] span:nth-child(2){ transform:rotate(-45deg); }

.menu{
  position:fixed; inset:0; z-index:30;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:110px var(--gut) 40px;
  background:color-mix(in srgb, var(--bg) 84%, transparent);
  -webkit-backdrop-filter:blur(28px) saturate(1.4);
  backdrop-filter:blur(28px) saturate(1.4);
  opacity:0; visibility:hidden;
  transition:opacity .5s var(--ease), visibility 0s .5s;
}
.menu.is-open{ opacity:1; visibility:visible; transition:opacity .5s var(--ease); }
.menu li{ overflow:hidden; }
.menu-link{
  display:block; padding:4px 0;
  font-family:var(--serif); font-size:clamp(40px, 11vw, 64px); font-weight:500; letter-spacing:-.012em; line-height:1.1;
  transform:translateY(105%); opacity:0;
  transition:transform .8s var(--ease), opacity .8s var(--ease);
  transition-delay:calc(var(--i, 0) * 55ms + 60ms);
}
.menu-link[aria-current="page"]{ color:var(--ink-3); }
.menu.is-open .menu-link{ transform:none; opacity:1; }
.menu-foot{
  margin-top:36px; padding-top:20px; border-top:1px solid var(--hair);
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:15px; color:var(--ink-2);
  opacity:0; transition:opacity .8s var(--ease) .3s;
}
.menu.is-open .menu-foot{ opacity:1; }

@media (max-width:880px){
  .nav{ width:100%; max-width:560px; justify-content:space-between; }
  .nav-links, .nav-cta{ display:none; }
  .nav-burger{ display:block; }
}
@media (min-width:881px){ .menu{ display:none; } }

/* ---------- night-mode switch ---------- */
.theme-switch{
  display:none; place-items:center;
  width:56px; height:44px; margin-left:6px;
  border-radius:var(--r-hard);
  -webkit-tap-highlight-color:transparent;
}
.js .theme-switch{ display:inline-grid; }
.theme-switch-track{
  position:relative; width:48px; height:28px;
  border-radius:var(--r-hard);
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--ring);
  transition:background-color .45s var(--ease), box-shadow .45s var(--ease);
}
.theme-switch:hover .theme-switch-track{ box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 30%, transparent); }
.theme-switch-knob{
  position:absolute; top:3px; left:3px;
  width:22px; height:22px;
  border-radius:var(--r-hard) var(--r-hard) var(--r-hard) 11px;
  display:grid; place-items:center;
  background:var(--surface); color:var(--ink-2);
  box-shadow:0 0 0 1px var(--ring), 0 1px 2px rgba(36,28,23,.12);
  transition:transform .55s var(--ease), background-color .45s var(--ease), color .45s var(--ease);
}
.theme-switch-knob svg{ grid-area:1 / 1; width:13px; height:13px; transition:opacity .35s var(--ease), transform .55s var(--ease); }
.theme-switch .ico-night{ opacity:0; transform:rotate(-50deg) scale(.6); }
.theme-switch[aria-checked="true"] .theme-switch-track{ background:color-mix(in srgb, var(--edu) 28%, var(--surface-2)); }
.theme-switch[aria-checked="true"] .theme-switch-knob{ transform:translateX(20px); background:var(--edu); color:var(--on-accent); box-shadow:none; }
.theme-switch[aria-checked="true"] .ico-day{ opacity:0; transform:rotate(50deg) scale(.6); }
.theme-switch[aria-checked="true"] .ico-night{ opacity:1; transform:none; }
@media (max-width:880px){ .theme-switch{ margin-left:auto; } }

::view-transition-old(root), ::view-transition-new(root){ animation-duration:.42s; animation-timing-function:var(--ease-out); }

/* ---------- hero (home) ---------- */
.hero{ padding-top:clamp(124px, 15vw, 172px); padding-bottom:clamp(8px, 2vw, 24px); }
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 5fr) minmax(0, 6fr);
  gap:clamp(40px, 5vw, 72px);
  align-items:center;
}
.hero .display{ margin-top:26px; font-size:clamp(42px, 5.3vw, 76px); }
.hero .lead{ margin-top:24px; }
.hero .actions{ margin-top:36px; }
@media (max-width:980px){ .hero-grid{ grid-template-columns:1fr; } }

.video{
  position:relative; aspect-ratio:16/9; overflow:hidden;
  border-radius:max(0px, calc(var(--tl) - var(--bezel))) max(0px, calc(var(--tr) - var(--bezel))) max(0px, calc(var(--br) - var(--bezel))) max(0px, calc(var(--bl) - var(--bezel)));
  background:#241C17;
  box-shadow:var(--shadow);
}
.video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-facade{ position:absolute; inset:0; width:100%; text-align:left; color:#fff; overflow:hidden; }
.video-facade img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.video-facade::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(36,20,14,0) 38%, rgba(36,20,14,.78) 100%); }
.video-facade:hover img{ transform:scale(1.035); }
.video-meta{
  position:absolute; left:0; right:0; bottom:0; z-index:1;
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  padding:clamp(16px, 2.6vw, 28px);
}
.video-kicker{ font-size:13px; color:rgba(255,255,255,.78); }
.video-title{ margin-top:4px; font-family:var(--serif); font-size:clamp(20px, 2.2vw, 27px); font-weight:400; letter-spacing:-.005em; line-height:1.22; max-width:24ch; }
.play{
  flex:none; width:clamp(52px, 5.5vw, 66px); aspect-ratio:1; border-radius:50%;
  display:grid; place-items:center;
  background:#F1ECE1; color:#8A2D21;
  box-shadow:0 12px 30px -10px rgba(0,0,0,.55);
  transition:transform .6s var(--ease);
}
.play svg{ width:20px; height:20px; margin-left:3px; }
.video-facade:hover .play{ transform:scale(1.07); }
.video-caption{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 14px 6px; font-size:14px; color:var(--ink-3); }
.video-caption a{ color:var(--ink-2); font-weight:500; }
.video-caption a:hover{ color:var(--ink); }

.partners{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px 32px;
  margin-top:clamp(56px, 7vw, 88px); padding-top:28px;
  border-top:1px solid var(--hair);
}
.partner{ display:flex; align-items:center; gap:12px; font-size:15px; font-weight:500; color:var(--ink); }
.partner .avatar{ width:42px; height:42px; border-radius:var(--r-hard); font-size:13px; }

/* ---------- section head ---------- */
.sec-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:20px 64px; align-items:end;
  margin-bottom:clamp(40px, 5vw, 64px);
}
.sec-head .pill{ margin-bottom:22px; }
.sec-head .lead + .link, .sec-head .lead + .actions{ margin-top:18px; }
@media (max-width:880px){ .sec-head{ grid-template-columns:1fr; } }

/* ---------- 12-col bento ---------- */
.bento{ display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); gap:18px; }
.span-4{ grid-column:span 4; } .span-5{ grid-column:span 5; }
.span-6{ grid-column:span 6; } .span-7{ grid-column:span 7; }
.span-12{ grid-column:1 / -1; }
@media (max-width:1000px){
  .span-4, .span-5, .span-7{ grid-column:span 6; }
}
@media (max-width:720px){ .bento > *{ grid-column:1 / -1 !important; } }

/* Every card in an even grid is the same size. While a course syllabus is
   open, rows size independently so only that row grows. */
.bento--even{ grid-auto-rows:1fr; }
.bento--even:has(.syllabus[open]){ grid-auto-rows:auto; }
@media (max-width:720px){ .bento--even{ grid-auto-rows:auto; } }

/* ---------- division cards (home) ---------- */
.division .core{ display:flex; flex-direction:column; padding:clamp(28px, 3.4vw, 44px); }
.division-top{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.division-for{ font-size:14px; color:var(--ink-3); text-align:right; max-width:22ch; line-height:1.4; }
.division .h2{ margin-top:32px; font-size:clamp(32px, 3.4vw, 46px); }
.division .body{ margin-top:12px; max-width:44ch; }
.offer-list{ margin-top:28px; border-top:1px solid var(--hair); }
.offer-list li{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:14px 0; border-bottom:1px solid var(--hair);
  font-size:15.5px; font-weight:500;
}
.offer-list li span:last-child{ font-size:14px; font-weight:400; color:var(--ink-3); text-align:right; }
.division .btn{ margin-top:32px; align-self:flex-start; }
@media (max-width:460px){
  .division-top{ flex-direction:column; align-items:flex-start; gap:14px; }
  .division-for{ text-align:left; max-width:none; }
  .division .h2{ margin-top:18px; }
  .offer-list li{ flex-direction:column; gap:2px; }
  .offer-list li span:last-child{ text-align:left; }
}

/* ---------- team ---------- */
.person .core{ display:flex; gap:22px; align-items:flex-start; padding:24px; }
.person .avatar{ width:92px; height:118px; border-radius:46px 46px var(--r-hard) var(--r-hard); font-size:26px; font-family:var(--serif); font-weight:400; }
.person-name{ font-family:var(--serif); font-size:24px; font-weight:500; letter-spacing:-.005em; line-height:1.2; }
.person-role{ margin-top:2px; font-size:14px; font-weight:500; color:var(--ink-3); }
.person-bio{ margin-top:10px; font-size:15px; line-height:1.55; color:var(--ink-2); text-wrap:pretty; }
@media (max-width:480px){
  .person .core{ gap:16px; padding:20px; }
  .person .avatar{ width:64px; height:84px; border-radius:32px 32px var(--r-hard) var(--r-hard); font-size:20px; }
}

/* ---------- contact band ---------- */
.band .core{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:32px 56px; align-items:end;
  padding:clamp(32px, 5.5vw, 72px);
  overflow:hidden;
}
.band .h2{ color:var(--night-ink); }
.band .lead{ margin-top:18px; }
.band-side{ display:flex; flex-direction:column; gap:18px; align-items:flex-start; }
.band-side .small{ color:var(--night-ink-2); }
@media (max-width:880px){ .band .core{ grid-template-columns:1fr; } }

/* ---------- footer ---------- */
.footer{ padding-bottom:28px; }
.footer .wrap{ padding-top:clamp(48px, 6vw, 72px); }
main > .sec:last-child{ padding-bottom:clamp(56px, 7vw, 88px); }
.footer-grid{
  display:grid; grid-template-columns:1.5fr repeat(3, 1fr);
  gap:36px; padding-bottom:48px;
}
.footer-brand{ display:flex; align-items:center; gap:10px; font-family:var(--serif); font-size:22px; font-weight:500; letter-spacing:0; }
.footer-brand .avatar{ width:34px; height:34px; border-radius:50%; font-size:13px; }
.footer-about{ margin-top:14px; font-size:14.5px; color:var(--ink-2); max-width:34ch; line-height:1.55; }
.footer-title{ font-size:14px; font-weight:500; color:var(--ink-3); margin-bottom:14px; }
.footer-links{ display:flex; flex-direction:column; gap:10px; }
.footer-links a{ font-size:15px; color:var(--ink); transition:color .4s var(--ease); }
.footer-links a:hover{ color:var(--con); }
.footer-base{
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding-top:22px; border-top:1px solid var(--hair);
  font-size:13.5px; color:var(--ink-3);
}
.footer-base-links{ display:flex; flex-wrap:wrap; gap:10px 24px; }
.footer-base a{ color:var(--ink-2); text-decoration:underline; text-decoration-color:var(--hair); text-underline-offset:4px; transition:color .4s var(--ease), text-decoration-color .4s var(--ease); }
.footer-base a:hover{ color:var(--ink); text-decoration-color:currentColor; }
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; } .footer-grid > :first-child{ grid-column:1 / -1; } }

/* ---------- page head (division pages) ---------- */
.page-head{ padding-top:clamp(124px, 15vw, 168px); padding-bottom:clamp(8px, 2vw, 24px); }
.page-head-grid{
  display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr);
  gap:clamp(40px, 5vw, 72px); align-items:end;
}
.page-head .display{ margin-top:26px; font-size:clamp(42px, 5.6vw, 76px); }
.page-head .lead{ margin-top:24px; }
.page-head .actions{ margin-top:36px; }
@media (max-width:980px){ .page-head-grid{ grid-template-columns:1fr; } }

.side-card .core{ padding:26px; }
.side-card-title{ font-size:14px; font-weight:500; color:var(--ink-3); }
.side-list{ margin-top:14px; }
.side-list li{ display:flex; gap:14px; align-items:center; padding:12px 0; border-top:1px solid var(--hair); }
.side-list li:first-child{ border-top:0; padding-top:4px; }
.side-list .avatar{ width:48px; height:48px; border-radius:var(--r-hard); font-size:15px; }
.side-list strong{ display:block; font-size:15.5px; font-weight:600; letter-spacing:-.01em; line-height:1.3; }
.side-list span.small{ display:block; line-height:1.45; margin-top:2px; }

/* ---------- course cards (EdTech) ---------- */
.course .core{ display:flex; flex-direction:column; padding:28px; container-type:inline-size; }
.course-top{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
.level{
  display:inline-flex; align-items:center; gap:9px;
  padding:5px 12px 5px 10px; border-radius:var(--r-hard);
  background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--ring);
  font-size:13.5px; font-weight:500; color:var(--ink-2);
}
.level-bars{ display:inline-flex; align-items:flex-end; gap:2px; height:12px; }
.level-bars i{ width:3px; border-radius:0; background:color-mix(in srgb, var(--ink) 18%, transparent); }
.level-bars i:nth-child(1){ height:5px; } .level-bars i:nth-child(2){ height:8.5px; } .level-bars i:nth-child(3){ height:12px; }
.level[data-level="1"] i:nth-child(-n+1),
.level[data-level="2"] i:nth-child(-n+2),
.level[data-level="3"] i:nth-child(-n+3){ background:var(--edu); }
.course .h3{ margin-top:24px; }
.course--guide .core{ background:var(--edu-tint); box-shadow:none; }
.course--guide .mark{ background:var(--surface); }
.course--guide .course-foot{ padding-top:24px; }
.course .body{ margin-top:10px; flex-grow:1; }

.syllabus{ margin-top:22px; border-top:1px solid var(--hair); }
.syllabus summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; gap:10px;
  min-height:52px; padding:10px 0;
  font-size:15px; font-weight:500;
  border-radius:var(--r-hard);
}
.syllabus summary::-webkit-details-marker{ display:none; }
.syllabus-count{ margin-left:auto; font-size:14px; font-weight:400; color:var(--ink-3); }
.chev{
  flex:none; width:28px; height:28px; border-radius:var(--r-hard);
  display:grid; place-items:center;
  background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--ring);
  transition:transform .55s var(--ease), background-color .4s var(--ease);
}
.chev svg{ width:12px; height:12px; }
.syllabus summary:hover .chev{ background:var(--edu-tint); }
.syllabus[open] .chev{ transform:rotate(180deg); }
.syllabus ul{ padding:2px 0 6px; column-gap:28px; }
.syllabus[open] ul{ animation:unfold .6s var(--ease-out); }
.syllabus li{
  position:relative; break-inside:avoid;
  padding:7px 0 7px 18px;
  font-size:14.5px; line-height:1.45; color:var(--ink-2);
}
.syllabus li::before{
  content:""; position:absolute; left:2px; top:15px;
  width:5px; height:5px; border-radius:0; transform:rotate(45deg);
  background:color-mix(in srgb, var(--con) 70%, transparent);
}
@container (min-width:540px){ .syllabus ul{ columns:2; } }
@keyframes unfold{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

.course-foot{ margin-top:auto; padding-top:18px; display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; }
.course-foot .link{ font-size:14.5px; }
.course-top .link{ font-size:14px; }

/* ---------- diploma ---------- */
.diploma .core{
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:36px 64px; padding:clamp(32px, 5vw, 64px);
}
.diploma .h2{ color:var(--night-ink); margin-top:22px; }
.diploma .lead{ margin-top:18px; }
.diploma .actions{ margin-top:32px; }
.pill--night{ background:transparent; box-shadow:inset 0 0 0 1px rgba(239,232,218,.28); color:var(--night-ink-2); }
.pill--night .pill-dot{ background:#D98A74; }
.facts{ align-self:end; border-top:1px solid rgba(239,232,218,.2); }
.facts div{ display:grid; grid-template-columns:110px 1fr; gap:16px; padding:15px 0; border-bottom:1px solid rgba(239,232,218,.2); font-size:15px; }
.facts dt{ color:var(--night-ink-2); }
.facts dd{ color:var(--night-ink); }
@media (max-width:880px){ .diploma .core{ grid-template-columns:1fr; } }

/* ---------- split (webinar / enquiry) ---------- */
.split{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr); gap:clamp(40px, 6vw, 88px); align-items:start; }
.split .pill + .h2{ margin-top:22px; }
.split .h2 + .lead{ margin-top:20px; }
@media (max-width:940px){ .split{ grid-template-columns:1fr; } }

.points{ margin-top:32px; }
.points li{ display:flex; gap:14px; align-items:center; padding:14px 0; border-top:1px solid var(--hair); font-size:15.5px; }
.points li:last-child{ border-bottom:1px solid var(--hair); }
.points .mark{ width:38px; height:38px; border-radius:var(--r-hard); }
.points .mark svg{ width:22px; height:22px; }

/* ---------- forms ---------- */
.form-card .core{ padding:clamp(24px, 3.4vw, 40px); }
.form-card .h3{ margin-bottom:24px; }
.form-card .h3:has(+ .small){ margin-bottom:6px; }
.form-card .h3 + .small{ margin-bottom:26px; }
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; min-width:0; }
.field label{ font-size:14.5px; font-weight:500; }
.field .opt{ font-weight:400; color:var(--ink-3); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
@media (max-width:480px){ .field-row{ grid-template-columns:1fr; } }
.input{
  width:100%; min-height:50px;
  padding:12px 16px;
  border:0; border-radius:var(--r-hard);
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px var(--ring);
  font-size:16px; line-height:1.4;
  transition:box-shadow .4s var(--ease), background-color .4s var(--ease);
}
.input::placeholder{ color:color-mix(in srgb, var(--ink-3) 80%, transparent); }
.input:hover{ box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 20%, transparent); }
.input:focus{
  outline:none; background:var(--surface);
  box-shadow:inset 0 0 0 1.5px var(--edu), 0 0 0 4px color-mix(in srgb, var(--edu) 16%, transparent);
}
.form--con .input:focus{ box-shadow:inset 0 0 0 1.5px var(--con), 0 0 0 4px color-mix(in srgb, var(--con) 16%, transparent); }
textarea.input{ min-height:128px; resize:vertical; }
select.input{
  appearance:none; -webkit-appearance:none; padding-right:44px; cursor:pointer;
  background-image:var(--chev);
  background-repeat:no-repeat; background-position:right 16px center;
}
.field-error{ display:none; font-size:13.5px; color:var(--err); }
.field.has-error .field-error{ display:block; }
.field.has-error .input{ box-shadow:inset 0 0 0 1.5px var(--err); }
.form-status{ margin-top:14px; font-size:14.5px; color:var(--err); }
.form-status:empty{ display:none; }
.form-note{ margin-top:18px; font-size:13.5px; line-height:1.55; color:var(--ink-3); }
.form-note a{ color:var(--ink-2); text-decoration:underline; text-decoration-color:var(--hair); text-underline-offset:3px; white-space:nowrap; }
.form-note a:hover{ color:var(--ink); text-decoration-color:currentColor; }
.form-card form .btn{ margin-top:8px; }

.success{ padding:12px 0; animation:unfold .7s var(--ease-out); }
.success .mark{ margin-bottom:22px; }
.success .mark svg{ width:24px; height:24px; }
.success .body{ margin-top:10px; }
.success:focus{ outline:none; }

/* ---------- services (consultancy) ---------- */
.service .core{ display:flex; flex-direction:column; padding:28px; }
.service .h3{ margin-top:26px; }
.service .body{ margin-top:10px; }
.tags{ margin-top:auto; padding-top:22px; display:flex; flex-wrap:wrap; gap:8px; }
.tags li{ padding:5px 12px; border-radius:var(--r-hard); font-size:13.5px; color:var(--ink-2); background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--ring); }

.service-foot{ margin-top:auto; padding-top:22px; }

.steps{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:18px; }
@media (max-width:1000px){ .steps{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } }
.step .core{ padding:26px; }
.step-num{
  width:34px; height:34px; border-radius:var(--r-hard);
  display:grid; place-items:center;
  background:var(--con-tint); color:var(--con);
  font-family:var(--serif); font-size:19px; font-weight:500; font-variant-numeric:oldstyle-nums;
}
.step .h3{ margin-top:36px; font-size:24px; }
.step .body{ margin-top:8px; }

.who{ margin-top:32px; }
.who li{ padding:12px 0; border-top:1px solid var(--hair); font-size:15.5px; }
.who li:last-child{ border-bottom:1px solid var(--hair); }
.direct{ margin-top:28px; font-size:15.5px; color:var(--ink-2); }

/* ---------- faculty (EdTech) ---------- */
.faculty .core{ display:flex; flex-direction:column; padding:clamp(24px, 3vw, 36px); }
.faculty-head{ display:flex; gap:22px; align-items:flex-end; }
.faculty .avatar{ width:92px; height:118px; border-radius:46px 46px var(--r-hard) var(--r-hard); font-size:26px; font-family:var(--serif); font-weight:400; }
.faculty-name{ font-family:var(--serif); font-size:clamp(26px, 2.5vw, 32px); line-height:1.1; font-weight:500; letter-spacing:-.008em; text-wrap:balance; }
.faculty-role{ margin-top:8px; display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; font-size:14px; font-weight:500; color:var(--ink-3); }
.degree{ padding:3px 9px; border-radius:var(--r-hard); background:var(--edu); color:var(--on-accent); font-size:12.5px; font-weight:600; letter-spacing:.02em; line-height:1.4; }
.creds{ margin-top:28px; border-top:1px solid var(--hair); }
.creds div{ display:grid; grid-template-columns:minmax(0, 10.5rem) minmax(0, 1fr); gap:4px 22px; padding:16px 0; border-bottom:1px solid var(--hair); }
.creds dt{ font-family:var(--serif); font-size:21px; line-height:1.2; font-weight:500; color:var(--ink); }
.creds dd{ padding-top:2px; font-size:15px; line-height:1.5; color:var(--ink-2); text-wrap:pretty; }
@media (max-width:520px){
  .faculty-head{ gap:16px; }
  .faculty .avatar{ width:68px; height:88px; border-radius:34px 34px var(--r-hard) var(--r-hard); font-size:20px; }
  .creds div{ grid-template-columns:1fr; }
}

/* ---------- research (consultancy) ---------- */
.research-lede{ display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); gap:18px; }
@media (max-width:980px){ .research-lede{ grid-template-columns:1fr; } }
.figure-card{ --tl:var(--r-soft); margin:0; }
.figure-card .core{ --pad:clamp(10px, 1.4vw, 16px); display:flex; flex-direction:column; padding:var(--pad); }
/* The diagram is drawn on white; it sits on a paper plate in both modes. */
.plate{
  flex:1; display:grid; place-items:center;
  padding:clamp(10px, 2vw, 24px);
  background:var(--plate);
  border-radius:max(2px, calc(var(--r-soft) - var(--bezel) - var(--pad))) var(--r-hard) var(--r-hard) var(--r-hard);
  box-shadow:inset 0 0 0 1px rgba(90,72,40,.08);
}
.plate img{ width:100%; max-width:682px; height:auto; mix-blend-mode:multiply; }
.figure-card figcaption{ padding:14px 8px 4px; font-size:14px; line-height:1.5; color:var(--ink-3); text-wrap:pretty; }

.why .core{ display:flex; flex-direction:column; padding:clamp(24px, 3vw, 36px); }
.why-stat{ font-family:var(--serif); font-size:clamp(50px, 5.2vw, 70px); line-height:.95; letter-spacing:-.02em; font-weight:500; color:var(--con); }
.why-stat-label{ margin-top:12px; font-size:16.5px; line-height:1.45; color:var(--ink); max-width:28ch; text-wrap:pretty; }
.why-source{ margin-top:6px; font-size:13px; color:var(--ink-3); }
.why-list{ margin-top:auto; padding-top:28px; }
.why-list div{ padding:13px 0; border-top:1px solid var(--hair); }
.why-list dt{ font-size:14.5px; font-weight:600; color:var(--ink); }
.why-list dd{ margin-top:3px; font-size:15px; line-height:1.5; color:var(--ink-2); text-wrap:pretty; }

.papers{ margin-top:18px; }
.paper .core{ display:flex; flex-direction:column; padding:28px; }
.paper-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.paper-num{ font-family:var(--serif); font-size:64px; line-height:.72; font-weight:400; letter-spacing:.02em; color:var(--con); }
.status{
  display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
  padding:4px 10px; border-radius:var(--r-hard);
  background:var(--con-tint); color:var(--con);
  font-size:13px; font-weight:500; line-height:1.4;
}
.status::before{ content:""; width:7px; height:7px; border-radius:50%; box-shadow:inset 0 0 0 1.5px currentColor; }
.paper-title{ margin-top:30px; font-family:var(--serif); font-size:clamp(22px, 1.9vw, 25px); line-height:1.2; font-weight:500; letter-spacing:-.005em; text-wrap:balance; }
.paper-series{ display:block; margin-bottom:8px; font-family:var(--font); font-size:13.5px; line-height:1.4; font-weight:500; letter-spacing:0; color:var(--ink-3); }
.paper-authors{ margin-top:14px; font-size:14px; line-height:1.5; color:var(--ink-2); }
.paper-cohort{ margin-top:2px; font-size:14px; line-height:1.5; color:var(--ink-3); }
.paper-find{ margin-top:auto; padding-top:22px; }
.paper-find-label{ padding-top:16px; border-top:1px solid var(--hair); font-size:14px; font-weight:600; color:var(--ink); }
.paper-find .body{ margin-top:6px; }

.research-note{
  margin-top:28px; padding-top:22px; border-top:1px solid var(--hair);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 32px;
}
.research-note p{ max-width:64ch; font-size:15.5px; line-height:1.55; color:var(--ink-2); text-wrap:pretty; }

/* ---------- partnership (consultancy) ---------- */
.alliance{ --bl:var(--r-soft); }
.alliance .core{
  display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);
  gap:32px 64px; align-items:start;
  padding:clamp(28px, 5vw, 64px);
}
.alliance .pill{ box-shadow:0 0 0 1px var(--ring); }
.alliance .h2{ margin-top:22px; }
.alliance .body{ margin-top:16px; font-size:16.5px; max-width:52ch; }
.alliance .tags{ margin-top:0; padding-top:24px; }
.alliance .actions{ margin-top:30px; }
.facts--day{ border-top-color:var(--hair); }
.facts--day div{ border-bottom-color:var(--hair); }
.facts--day dt{ color:var(--ink-3); }
.facts--day dd{ color:var(--ink); }
@media (max-width:880px){ .alliance .core{ grid-template-columns:1fr; } }

/* ---------- privacy policy ---------- */
.policy-head .lead{ margin-top:24px; }
.policy-head .small{ margin-top:14px; }
.policy{ display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 8fr); gap:clamp(32px, 6vw, 88px); align-items:start; }
.policy-toc{ position:sticky; top:112px; }
.policy-toc p{ font-size:14px; font-weight:500; color:var(--ink-3); margin-bottom:10px; }
.policy-toc ol{ counter-reset:toc; border-top:1px solid var(--hair); }
.policy-toc li{ counter-increment:toc; border-bottom:1px solid var(--hair); }
.policy-toc a{ display:flex; gap:12px; padding:10px 0; font-size:15px; color:var(--ink-2); transition:color .4s var(--ease); }
.policy-toc a::before{ content:counter(toc); min-width:1.4em; font-family:var(--serif); font-size:17px; line-height:1.35; color:var(--ink-3); }
.policy-toc a:hover{ color:var(--ink); }
.prose{ max-width:68ch; counter-reset:sec; }
.prose h2{
  counter-increment:sec;
  display:flex; gap:14px; align-items:baseline;
  margin-top:56px; scroll-margin-top:112px;
  font-family:var(--serif); font-size:clamp(26px, 2.4vw, 32px); line-height:1.15; font-weight:500; letter-spacing:-.008em;
}
.prose h2::before{ content:counter(sec); font-size:.7em; color:var(--con); min-width:1.1em; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ margin-top:26px; font-size:16.5px; font-weight:600; color:var(--ink); }
.prose p, .prose li{ font-size:16.5px; line-height:1.68; color:var(--ink-2); text-wrap:pretty; }
.prose h2 + p, .prose h3 + p, .prose h2 + ul, .prose h3 + ul{ margin-top:12px; }
.prose p + p, .prose ul + p, .prose p + ul{ margin-top:14px; }
.prose li{ position:relative; padding-left:20px; margin-top:8px; }
.prose li::before{
  content:""; position:absolute; left:3px; top:.72em;
  width:5px; height:5px; transform:rotate(45deg);
  background:color-mix(in srgb, var(--con) 70%, transparent);
}
.prose strong{ font-weight:600; color:var(--ink); }
.prose a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--hair); text-underline-offset:4px; text-decoration-thickness:1.5px; }
.prose a:hover{ text-decoration-color:currentColor; }
@media (max-width:880px){
  .policy{ grid-template-columns:1fr; }
  .policy-toc{ position:static; }
}

/* ---------- reveal ---------- */
.js .reveal{
  opacity:0; transform:translateY(26px); filter:blur(6px);
  transition:opacity 1s var(--ease-out), transform 1s var(--ease-out), filter 1s var(--ease-out);
  transition-delay:var(--d, 0ms);
}
.js .reveal.is-in{ opacity:1; transform:none; filter:none; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; transition-delay:0ms !important; }
  .js .reveal{ opacity:1; transform:none; filter:none; }
}
