/* Afriflow studio site. The studio speaks in one sans (Jost) on a quiet sage-grey ground with an
   indigo accent; each app keeps its own palette inside its "room". Light and dark follow the system. */
@font-face{font-family:Jost;src:url('/assets/fonts/jost-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Jost;src:url('/assets/fonts/jost-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Jost;src:url('/assets/fonts/jost-latin-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}

:root{
  --paper:#EFF0EA;--raised:#F7F8F3;--ink:#15171C;--muted:#585D66;--line:#D9DBD3;--accent:#26338F;
  --shadow:0 1px 2px rgba(21,23,28,.06),0 12px 32px -12px rgba(21,23,28,.18);
  --font:Jost,'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif;--gutter:32px;--max:1200px;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{--paper:#111318;--raised:#191C22;--ink:#EDEEE8;--muted:#A2A7B1;--line:#2A2E36;--accent:#9AA6FF;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 18px 40px -14px rgba(0,0,0,.7)}
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--font);overflow-wrap:break-word}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-weight:500;margin:0;line-height:1.05;letter-spacing:-.03em;text-wrap:balance}
p{margin:0}
.wrap{width:min(var(--max),100% - 2*var(--gutter));margin-inline:auto}
.skip{position:absolute;left:16px;top:-80px;z-index:10;background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:999px;text-decoration:none}
.skip:focus{top:12px}

/* Header */
.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:80px}
.wordmark{display:inline-flex;align-items:center;gap:10px;min-height:48px;font-weight:500;font-size:24px;letter-spacing:-.02em;text-decoration:none}
.mark{position:relative;width:26px;height:26px;border-radius:50%;background:var(--accent);flex:none}
.mark::after{content:'';position:absolute;width:9px;height:9px;border-radius:50%;background:var(--paper);right:5px;top:5px}
.site-nav{display:flex;gap:4px}
.site-nav a{display:inline-flex;align-items:center;min-height:48px;padding:0 14px;border-radius:999px;text-decoration:none;font-size:16px;font-weight:500}
.site-nav a:hover{background:var(--raised)}

/* Hero: headline and the focal object, two app objects on one plinth */
.hero{display:grid;grid-template-columns:1.4fr .6fr;align-items:center;gap:40px;padding:48px 0 96px}
.hero h1{font-size:clamp(46px,6.6vw,100px);letter-spacing:-.045em;line-height:.98}
.hero h1 em{font-style:italic;font-weight:400;color:var(--accent)}
.hero .lede{margin:32px 0 40px;max-width:36ch;font-size:clamp(19px,1.6vw,22px);color:var(--muted);line-height:1.5}
.button{display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 28px;border-radius:999px;background:var(--ink);color:var(--paper);font:500 17px/1 var(--font);text-decoration:none;white-space:nowrap;transition:transform 120ms ease}
.button:active{transform:scale(.97)}
.button.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px currentColor}

.diorama{position:relative;aspect-ratio:1/1;width:100%;max-width:520px;justify-self:end;perspective:900px}
.diorama .floor{position:absolute;left:4%;right:4%;bottom:10%;height:22%;border-radius:50%;background:radial-gradient(closest-side,rgba(38,51,143,.16),rgba(38,51,143,0))}
.diorama .scene{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--rx,8deg)) rotateY(var(--ry,-10deg));transition:transform 600ms cubic-bezier(.2,.7,.2,1)}
.stage-room{position:absolute;inset:4% 4% 10%;border-radius:32px;overflow:hidden;background:#F2E8D8;transform:translateZ(30px);box-shadow:var(--shadow),0 40px 60px -30px rgba(21,23,28,.45)}
.stage-room video{display:block;width:100%;height:100%;object-fit:cover}
.diorama .caption{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:14px;color:var(--muted)}

/* The apps: one room each, in the app's own palette */
.section{padding:96px 0}
.section-title{font-size:clamp(36px,5vw,64px);max-width:16ch}
.section-intro{margin-top:16px;color:var(--muted);max-width:52ch}
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px}
.rooms.single{grid-template-columns:1fr}
.rooms.single .room{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;align-items:start}
.rooms.single .room > *{grid-column:1}
.rooms.single .room ul{grid-column:2;grid-row:1 / span 5;align-self:center;font-size:19px}
.room{position:relative;display:flex;flex-direction:column;gap:20px;padding:40px;border-radius:32px;overflow:hidden;box-shadow:var(--shadow)}
.room .app-icon{width:96px;height:96px;border-radius:22px;box-shadow:0 10px 24px -10px rgba(0,0,0,.35)}
.room h3{font-size:clamp(34px,3.6vw,48px)}
.room .pitch{font-size:20px;line-height:1.45}
.room ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.room li{padding-left:22px;position:relative}
.room li::before{content:'';position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.55}
.room .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:8px}
.chip{align-self:flex-start;justify-self:start;display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;font-size:14px;font-weight:500}
.chip::before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor}
.room.oncely{background:#FAF7F2;color:#211F1C}
.room.oncely .muted{color:#6E6960}
.room.oncely .chip{background:#E6EFE9;color:#2F6B4F}
.room.oncely .button{background:#2F6B4F;color:#FFFDF8}
.room.oncely .button.ghost{background:transparent;color:#211F1C}
.room.cadence{background:#FFF9F4;color:#3A2A24}
.room.cadence .muted{color:#6E5B52}
.room.cadence .chip{background:#FDE7DA;color:#3A2A24}
.room.cadence .button{background:#3A2A24;color:#FFF9F4}
.room.cadence .button.ghost{background:transparent;color:#3A2A24}
.room :focus-visible{outline-color:currentColor}

/* Principles */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:1px solid var(--line)}
.principle{padding:32px 32px 8px 0}
.principle + .principle{padding-left:32px;border-left:1px solid var(--line)}
.principle .num{font-size:15px;color:var(--accent);font-weight:500}
.principle h3{font-size:28px;margin:12px 0}
.principle p{color:var(--muted);font-size:17px}

/* Footer */
.site-footer{margin-top:64px;padding:48px 0 40px;border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px}
.footer-grid h2{font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted);margin-bottom:8px}
.footer-grid ul{list-style:none;margin:0;padding:0}
.footer-grid li a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.footer-grid li a:hover{text-decoration:underline}
.footer-note{margin-top:12px;color:var(--muted);font-size:16px;max-width:34ch}
.legal{margin-top:40px;color:var(--muted);font-size:14px}

/* Simple pages (404) */
.plain{min-height:60vh;display:grid;align-content:center;gap:20px;max-width:640px}
.plain h1{font-size:clamp(40px,6vw,72px)}
.plain p{color:var(--muted)}

@media (hover:hover) and (pointer:fine){ .room{transition:transform 240ms ease} .room:hover{transform:translateY(-4px)} }
@media (max-width:900px){
  .hero,.rooms,.rooms.single .room{grid-template-columns:1fr}
  .rooms.single .room ul{grid-column:1;grid-row:auto}
  .diorama{justify-self:center;max-width:420px}
  .principles{grid-template-columns:1fr}
  .principle,.principle + .principle{padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid > :first-child{grid-column:1/-1}
}
@media (max-width:600px){
  :root{--gutter:16px}
  body{font-size:17px}
  .site-header{min-height:72px}
  .site-nav a{padding:0 10px;font-size:15px}
  .hero{padding:24px 0 48px;gap:8px}
  .diorama{max-width:300px;aspect-ratio:5/4}
  .hero .lede{margin:24px 0 28px}
  .section{padding:64px 0}
  .room{padding:28px 22px;border-radius:26px}
  .room .actions .button{flex:1 1 auto;justify-content:center}
  .footer-grid{grid-template-columns:1fr}
}
@media (max-width:600px){ .site-nav .hide-xs{display:none} }
@media (max-width:360px){ .button{padding:0 20px} }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  .room:hover{transform:none}
}
