

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: clip; }
@supports not (overflow: clip) { body { overflow-x: hidden; } }

[data-somae-root] {
  --bg:#FEF8F0; --surface:#E8DDD0; --field:#FEF8F0;
  --ink:#14241A; --ink2:#2D4A3E; --ink3:#5C7A62;
  --accent:#F74605; --action:#CF3B04; --action-h:#AC3103; --link:#CF3B04;
  --bord:#5C7A62; --critical:#9C1F17;
  --line:rgba(20,36,26,.14); --line-soft:rgba(20,36,26,.07);
  --ease:cubic-bezier(.22,1,.36,1);
  --forest:#2D4A3E; --sage:#A8C4A2; --cuivre:#D4845A; --lin:#E8DDD0; --casse:#FEF8F0;
  --gutter:clamp(20px,4vw,40px);
  --r-card:20px; --r-sm:12px; --r-pill:999px;
  --aura1:#A8C4A2; --aura1op:.5; --aura2:#D4845A; --aura2op:.24;
  background:var(--bg); color:var(--ink);
  font-family:'Helvetica','Helvetica Neue',Arial,sans-serif;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  transition:background-color .5s var(--ease), color .5s var(--ease);
  min-height:100svh; display:flex; flex-direction:column;
}

[data-somae-root][data-theme="nuit"] {
  --bg:#14241A; --surface:#2D4A3E; --field:#1E342A;
  --ink:#FEF8F0; --ink2:#E8DDD0; --ink3:#A8C4A2;
  --link:#B5C7EB; --bord:#A8C4A2; --critical:#EFB0AA;
  --line:rgba(254,248,240,.14); --line-soft:rgba(254,248,240,.09);
  --aura1:#5C7A62; --aura1op:.4; --aura2:#F74605; --aura2op:.12;
}
[data-somae-root] ::selection { background:var(--action); color:#FEF8F0; }
.hidden { display:none !important; }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.theme-toggle svg { display:inline-flex; }

.aura { position:fixed; z-index:0; border-radius:50%; pointer-events:none; filter:blur(95px); }
@keyframes breathe { 0%,100%{transform:scale(1);} 50%{transform:scale(1.07);} }

.pg-header {
  position:sticky; top:8px; z-index:50; width:100%; max-width:1120px;
  margin:0 auto; display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:24px clamp(20px,4vw,40px) 8px;
}
.pg-logo {
  display:inline-flex; align-items:baseline; font-weight:700; font-size:27px;
  line-height:1; letter-spacing:-.03em; color:var(--ink); text-decoration:none;
}
.pg-logo svg { height:1ex; width:auto; margin:0 .04em; align-self:baseline; aspect-ratio:525/517; }
.pg-nav { display:flex; flex-wrap:wrap; align-items:center; gap:clamp(12px,2vw,20px); }
.pg-back {
  font-family:'Helvetica','Helvetica Neue',Arial,sans-serif; font-size:11px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink2);
  text-decoration:none; transition:color .2s var(--ease);
}
.pg-back:hover { color:var(--ink); }
.theme-toggle {
  display:inline-flex; align-items:center; gap:8px; background:transparent;
  border:1px solid var(--line); border-radius:var(--r-pill); padding:8px 14px;
  font-family:'Helvetica','Helvetica Neue',Arial,sans-serif; font-size:11px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink2); cursor:pointer;
  transition:border-color .2s var(--ease), color .2s var(--ease);
}
.theme-toggle:hover { color:var(--ink); border-color:var(--bord); }

.pg-main {
  position:relative; z-index:1; width:100%; max-width:820px;
  margin:0 auto; padding:clamp(28px,5vw,56px) clamp(20px,4vw,40px) clamp(48px,7vw,80px);
  flex:1 0 auto;
}
.pg-eyebrow {
  margin:0; font-family:'Helvetica','Helvetica Neue',Arial,sans-serif;
  font-size:11.5px; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink2); display:inline-flex; align-items:center; gap:10px;
}
.pg-eyebrow .ping { width:7px; height:7px; border-radius:50%; background:var(--accent); }
.pg-main h1 {
  margin:16px 0 0; font-family:'Cal Sans','Helvetica Neue',Helvetica,Arial,sans-serif;
  font-weight:400; font-size:clamp(34px,5vw,56px); line-height:1.06;
  letter-spacing:-.018em; color:var(--ink); text-wrap:balance;
}
.pg-main h1 em {
  font-style:normal; font-family:'Shadows Into Light','Segoe Script',cursive;
  color:var(--accent);
}
.pg-lead {
  margin:18px 0 0; max-width:60ch; font-size:clamp(15px,1.4vw,17.5px);
  line-height:1.7; color:var(--ink2); text-wrap:pretty;
}
.pg-updated {
  margin:10px 0 0; font-size:13px; color:var(--ink3);
}
.pg-body { margin-top:clamp(28px,4vw,44px); }
.pg-body h2 {
  margin:38px 0 0; font-family:'Cal Sans','Helvetica Neue',Helvetica,Arial,sans-serif;
  font-weight:400; font-size:clamp(21px,2.6vw,27px); line-height:1.18;
  letter-spacing:-.01em; color:var(--ink); scroll-margin-top:88px;
}
.pg-body h3 {
  margin:26px 0 0; font-family:'Cal Sans','Helvetica Neue',Helvetica,Arial,sans-serif;
  font-weight:400; font-size:18px; color:var(--ink);
}
.pg-body p { margin:14px 0 0; max-width:68ch; font-size:15.5px; line-height:1.7; color:var(--ink2); text-wrap:pretty; }
.pg-body ul, .pg-body ol { margin:14px 0 0; padding-left:22px; max-width:68ch; display:flex; flex-direction:column; gap:9px; }
.pg-body li { font-size:15.5px; line-height:1.65; color:var(--ink2); }
.pg-body strong { font-weight:700; color:var(--ink); }
.pg-body a { color:var(--link); text-decoration:underline; text-underline-offset:2px; }
.pg-body a:hover { color:var(--action-h); }
.pg-body code {
  font-family:'Helvetica','Helvetica Neue',Arial,monospace; font-size:.92em;
  background:var(--surface); padding:1px 6px; border-radius:6px; color:var(--ink);
}
.pg-body hr { margin:36px 0 0; border:0; border-top:1px solid var(--line); }
.pg-body .lead-block { margin-top:6px; }

.callout {
  margin:22px 0 0; padding:18px 20px; border-radius:var(--r-card);
  background:var(--surface); border:1px solid var(--line-soft);
}
.callout p:first-child { margin-top:0; }
.callout--critical { background:color-mix(in srgb, var(--critical) 9%, transparent); }
.callout__label {
  display:inline-flex; align-items:center; gap:8px; font-weight:700;
  color:var(--ink); font-size:14.5px;
}
.pg-note {
  margin-top:26px; font-size:13px; line-height:1.6; color:var(--ink3);
  border-left:2px solid var(--line); padding-left:14px; max-width:68ch;
}

.pg-cta {
  display:inline-flex; align-items:center; gap:8px; background:var(--action);
  color:var(--casse); border-radius:var(--r-pill); padding:13px 22px;
  font-size:15px; font-weight:600; line-height:1; text-decoration:none;
  box-shadow:0 14px 30px -14px var(--action); transition:background .2s var(--ease);
}
.pg-cta:hover { background:var(--action-h); }
.pg-mail {
  color:var(--link); text-decoration:underline; text-underline-offset:2px; font-weight:600;
}

.pg-footer {
  position:relative; z-index:1; margin-top:auto; border-top:1px solid var(--line);
  padding:20px clamp(20px,4vw,40px); flex-shrink:0;
}
.pg-footer__inner {
  max-width:1120px; margin:0 auto; display:flex; flex-wrap:wrap; align-items:center;
  justify-content:space-between; gap:14px;
  font-family:'Helvetica','Helvetica Neue',Arial,sans-serif; font-size:10.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink3);
}
.pg-footer__brand { display:inline-flex; flex-direction:column; gap:5px; }
.pg-footer__brand .base { letter-spacing:.1em; color:var(--ink2); }
.pg-footer__nav { display:flex; flex-wrap:wrap; gap:18px; }
.pg-footer__nav a { color:var(--ink3); text-decoration:none; transition:color .2s var(--ease); }
.pg-footer__nav a:hover { color:var(--ink); }
.pg-footer__nav a[aria-current="page"] { color:var(--ink); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .aura { animation:none !important; }
  [data-somae-root] { transition:none; }
}
