/* ============================================================
   ROARI — DIAMOND, OBSIDIAN PALETTE
   Identity boards and company profile. Near-black ground, ivory
   rounded tiles, gold for the chosen tile. The mark's rotated
   square is the layout unit: 45° tiles and diamond bullets.
   ============================================================ */

/* Tokens: css/tokens.css */

/* ---------- Primitives ---------- */
.roari .dia{flex:none;width:var(--dia,8px);height:var(--dia,8px);background:var(--gold);transform:rotate(45deg)}
.roari .dia--6{--dia:6px}
.roari .dia--10{--dia:10px}

/* Decorative rotated squares sit behind their container's content. */
.roari .shape{position:absolute;z-index:-1;transform:rotate(45deg)}
.roari .shape--ring{border:1px solid var(--ring)}

.roari .h{font-weight:800;line-height:1.02;letter-spacing:-.03em;text-wrap:pretty}
.roari .h--30{font-size:30px}
.roari .h--34{font-size:34px}
.roari .h--40{font-size:40px;line-height:1}
.roari .h--50{font-size:50px;line-height:.98}

.roari .kicker{font-size:12px;font-weight:700;color:var(--gold-text)}
.roari .kicker--sm{font-size:11px}
.roari .on-dark .kicker{color:var(--gold)}
.roari .on-gold .kicker{color:inherit}

.roari .copy{font-size:12.5px;line-height:1.7;color:var(--body)}
.roari .ph{background:repeating-linear-gradient(135deg,#E6DFD0 0 2px,transparent 2px 14px);border:1px solid var(--card-border);border-radius:20px}
.roari .ph--dark{background:repeating-linear-gradient(135deg,rgba(212,175,90,.25) 0 2px,transparent 2px 14px);border-color:rgba(212,175,90,.4);color:var(--gold)}

.roari .on-card{background:var(--card);border:1px solid var(--card-border)}
.roari .on-dark{background:var(--ink);color:var(--ivory)}
.roari .on-gold{background:var(--gold);color:var(--ink)}

/* ---------- Profile: page chrome ---------- */
.roari .page--light{background:var(--ivory);color:var(--ink)}
.roari .page--dark{background:var(--ink);color:var(--ivory);isolation:isolate}
.roari .page--body{padding:56px;display:flex;flex-direction:column;gap:20px}
.roari .page--airy{gap:24px}

.roari .head{display:flex;justify-content:space-between;align-items:center}
.roari .head__title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}
.roari .head__pg{font-size:12px;color:var(--muted-light);font-weight:600}
.roari .page--dark .head__pg{color:var(--muted-dark)}

.roari .intro{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end}
.roari .split{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1;min-height:0}
.roari .split--wide{grid-template-columns:1.3fr 1fr}
.roari .split--2-1{grid-template-columns:2fr 1fr}

/* ---------- 01 Cover ---------- */
.roari .cover__block{right:-220px;top:-220px;width:620px;height:620px;background:var(--ink-2);border-radius:72px}
.roari .cover__ring{right:120px;top:120px;width:300px;height:300px;border:1px solid rgba(212,175,90,.45);border-radius:40px}
.roari .cover__corner{left:-180px;bottom:-260px;width:520px;height:520px;background:var(--gold);border-radius:64px}
.roari .cover__mark{position:absolute;right:170px;top:170px;width:200px}
.roari .cover__brand{position:absolute;left:56px;top:56px;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700}
.roari .cover__copy{position:absolute;left:56px;top:520px;display:flex;flex-direction:column;gap:20px;width:520px}
.roari .cover__pill{align-self:flex-start;padding:8px 16px;border-radius:999px;border:1px solid var(--gold);color:var(--gold);font-size:12px;font-weight:600}
.roari .cover__title{font-size:62px;font-weight:800;line-height:.98;letter-spacing:-.03em;text-wrap:pretty}
.roari .cover__sub{font-size:16px;line-height:1.5;color:var(--muted-dark);max-width:400px}
.roari .cover__url{position:absolute;right:56px;bottom:56px;font-size:13px;font-weight:600;color:var(--ivory)}

/* ---------- 02 Contents + letter ---------- */
.roari .contents{gap:28px}
.roari .toc{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.roari .toc__tile{border-radius:18px;padding:22px;height:120px;display:flex;flex-direction:column;justify-content:space-between}
.roari .toc__tile--mark{flex-direction:row;align-items:center;justify-content:center}
.roari .toc__tile--mark img{width:64px}
.roari .toc__ref{font-size:12px;font-weight:700}
.roari .on-dark .toc__ref{color:var(--gold)}
.roari .on-card .toc__ref{color:var(--gold-text)}
.roari .toc__name{font-size:18px;font-weight:700}

.roari .letter{flex:1;min-height:0;border-radius:24px;padding:40px;display:grid;grid-template-columns:180px 1fr;gap:36px}
.roari .letter__aside{display:flex;flex-direction:column;gap:14px}
.roari .ph--portrait{width:180px;height:222px;border-radius:18px;font-size:10px}
.roari .letter__name{font-size:16px;font-weight:700}
.roari .letter__role{font-size:12px;color:var(--muted-light);margin-top:-10px}
.roari .letter__main{display:flex;flex-direction:column;gap:18px}
.roari .letter__title{font-size:26px;font-weight:700;line-height:1.15;letter-spacing:-.02em;text-wrap:pretty}
.roari .letter__body{font-size:13px;line-height:1.7;color:var(--body);display:flex;flex-direction:column;gap:12px}
.roari .ph--signature{margin-top:auto;width:152px;height:50px;border-radius:12px;font-size:10px}

/* ---------- 03 Who we are ---------- */
.roari .about{display:grid;grid-template-columns:1fr 1fr;gap:14px;flex:1;min-height:0}
.roari .about__col{display:flex;flex-direction:column;gap:14px}
.roari .about__col>.ph{flex:1}
.roari .tile{border-radius:20px;padding:26px;flex:1}
.roari .tile--values{flex:1.2}
.roari .tile__text{font-size:13px;line-height:1.7;color:var(--body);margin-top:10px}
.roari .values{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-top:12px;font-size:13px;font-weight:600}
.roari .values li{display:flex;gap:8px;align-items:center}
.roari .stats{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.roari .stat{border-radius:20px;padding:22px}
.roari .stat__value{font-size:32px;font-weight:800;line-height:1}
.roari .stat__label{font-size:12px;font-weight:600;margin-top:6px}
.roari .on-card .stat__value{color:var(--gold-text)}
.roari .on-card .stat__label{color:var(--body)}

/* ---------- 04 History ---------- */
.roari .history__ring{right:-200px;bottom:-200px;width:520px;height:520px;border-color:rgba(212,175,90,.3);border-radius:64px}
.roari .milestones{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:14px}
.roari .milestones .ph{padding:16px}
.roari .milestone{background:var(--ink-2);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:10px}
.roari .milestone__year{font-size:26px;font-weight:800;color:var(--gold);line-height:1}
.roari .milestone__title{font-size:14px;font-weight:700;line-height:1.3}
.roari .milestone__text{font-size:12px;line-height:1.6;color:var(--muted-dark)}
.roari .milestone.on-gold{background:var(--gold)}
.roari .milestone.on-gold .milestone__year{color:inherit}
.roari .milestone.on-gold .milestone__text{color:var(--body)}
.roari .pullquote{display:flex;gap:14px;align-items:center;background:rgba(242,237,227,.06);border-radius:20px;padding:20px 24px}
.roari .pullquote p{font-size:15px;font-weight:600;line-height:1.4;text-wrap:pretty}

/* ---------- 05 What we do ---------- */
.roari .lede{font-size:13px;line-height:1.7;color:var(--body);max-width:520px}
.roari .diamonds-wrap{flex:1;min-height:0;position:relative}
.roari .diamonds{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg);display:grid;grid-template-columns:200px 200px;gap:18px}
.roari .diamond{width:200px;height:200px;border-radius:28px;display:flex;align-items:center;justify-content:center}
.roari .diamond__in{transform:rotate(-45deg);text-align:center;width:170px}
.roari .diamond__ref{font-size:11px;font-weight:700;color:var(--gold)}
.roari .diamond__name{font-size:19px;font-weight:800;margin-top:4px}
.roari .diamond__text{font-size:11px;margin-top:6px;line-height:1.4;color:var(--muted-dark)}
.roari .diamond--mid{background:var(--ink-2);color:var(--ivory)}
.roari .diamond.on-gold .diamond__ref{color:inherit}
.roari .diamond.on-gold .diamond__text{color:var(--body)}
.roari .diamond.on-card .diamond__ref{color:var(--gold-text)}
.roari .diamond.on-card .diamond__text{color:var(--muted-light)}

/* ---------- 06 Cyber security ---------- */
.roari .banner{border-radius:24px;padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:32px;position:relative;overflow:hidden;isolation:isolate}
.roari .banner__ring{right:-80px;top:-80px;width:220px;height:220px;border-radius:32px}
.roari .banner p{font-size:12.5px;line-height:1.7;color:var(--muted-dark)}
.roari .services{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.roari .service{border-radius:18px;padding:18px}
.roari .service__name{font-size:14px;font-weight:700}
.roari .service__text{font-size:11.5px;color:var(--body);line-height:1.6;margin-top:6px}
.roari .case{border-radius:20px;padding:26px;display:flex;flex-direction:column;gap:10px}
.roari .case__title{font-size:18px;font-weight:800;line-height:1.2}
.roari .case__text{font-size:12px;line-height:1.6;color:var(--body)}
.roari .case__metrics{margin-top:auto;display:flex;gap:24px}
.roari .case__value{font-size:24px;font-weight:800}
.roari .case__label{font-size:11px;font-weight:600}

/* ---------- 07 Web development ---------- */
.roari .pills{display:flex;flex-wrap:wrap;gap:8px}
.roari .pill{padding:9px 16px;border-radius:999px;background:var(--ink);color:var(--ivory);font-size:12.5px;font-weight:600}
.roari .pill--outline{background:none;border:1px solid var(--ink);color:inherit}
.roari .shots{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1.6fr 1fr;gap:12px}
.roari .shots .ph:first-child{grid-column:1/3}
.roari .feature{border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:6px}
.roari .feature__title{font-size:15px;font-weight:800;line-height:1.2}
.roari .feature__text{font-size:11.5px;line-height:1.5;color:var(--body)}

/* ---------- 08 Consulting ---------- */
.roari .copy-2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.roari .tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.roari .svc{border-radius:18px;padding:20px;min-height:170px;display:flex;flex-direction:column}
.roari .svc__name{font-size:14px;font-weight:700;margin-top:auto}
.roari .svc__text{font-size:11px;color:var(--muted-dark);line-height:1.5;margin-top:4px}
.roari .engagements{display:flex;flex-direction:column;gap:12px}
.roari .engagement{border-radius:20px;padding:22px;flex:1}
.roari .engagement__title{font-size:15px;font-weight:700;margin-top:6px;line-height:1.3}
.roari .engagement__text{font-size:11.5px;color:var(--body);line-height:1.6;margin-top:6px}

/* ---------- 09 Training ---------- */
.roari .programmes{border-radius:20px;overflow:hidden}
.roari .programmes__row{display:grid;grid-template-columns:1fr 150px 110px;gap:16px;padding:14px 22px;border-top:1px solid #EBE5D8;font-size:12.5px}
.roari .programmes__row--head{padding:12px 22px;border-top:0;background:var(--ink);color:var(--gold);font-size:11px;font-weight:700}
.roari .programmes__name{font-weight:700}
.roari .programmes__desc{font-size:11px;color:var(--muted-light)}
.roari .programmes__meta{color:var(--body)}
.roari .tally{border-radius:20px;padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.roari .tally__value{font-size:48px;font-weight:800;line-height:1}
.roari .tally__text{font-size:12px;font-weight:600;line-height:1.5}

/* ---------- 10 Markets & leadership ---------- */
.roari .markets{display:grid;grid-template-columns:1fr 220px;gap:12px;height:380px}
.roari .markets>.ph{border-radius:24px}
.roari .markets__list{display:flex;flex-direction:column;gap:8px}
.roari .market{border-radius:16px;padding:14px 18px;flex:1}
.roari .market__name{font-size:13px;font-weight:700}
.roari .market__note{font-size:11px;color:var(--muted-light)}
.roari .market.on-dark .market__note{color:var(--muted-dark)}
.roari .logos{display:flex;gap:8px}
.roari .ph--logo{flex:1;height:46px;border-radius:12px;font-size:10px;background:none}
.roari .leader{flex:1;min-height:0;border-radius:24px;padding:32px;display:grid;grid-template-columns:170px 1fr;gap:28px;position:relative;overflow:hidden;isolation:isolate}
.roari .leader__ring{right:-70px;bottom:-70px;width:200px;height:200px;border-radius:28px}
.roari .leader .ph{border-radius:18px;font-size:10px}
.roari .leader__bio{display:flex;flex-direction:column;gap:8px}
.roari .leader__name{font-size:24px;font-weight:800;letter-spacing:-.02em}
.roari .leader__role{font-size:12px;color:var(--muted-dark)}
.roari .leader__text{font-size:12px;line-height:1.65;color:var(--muted-dark);margin-top:6px;text-wrap:pretty}

/* ---------- 11 Contact ---------- */
.roari .contact{padding:56px;display:flex;flex-direction:column}
.roari .contact a{color:inherit}
.roari .contact__corner{left:-260px;bottom:-300px;width:640px;height:640px;background:var(--gold);border-radius:80px}
.roari .contact__block{right:-160px;top:-160px;width:420px;height:420px;background:var(--ink-2);border-radius:56px}
.roari .contact .h{margin-top:80px}
.roari .contact__list{margin-top:40px;display:flex;flex-direction:column;gap:12px;max-width:440px}
.roari .contact__row{background:rgba(242,237,227,.07);border-radius:18px;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.roari .contact__row dt{font-size:12px;font-weight:700;color:var(--gold)}
.roari .contact__row dd{font-size:14px;font-weight:600}
.roari .contact__row--top{align-items:flex-start}
.roari .contact__row--top dd{text-align:right;line-height:1.5}
.roari .signoff{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end}
.roari .signoff__brand{display:flex;align-items:center;gap:14px;color:var(--ink)}
.roari .signoff__brand img{width:64px}
.roari .signoff__name{font-size:16px;font-weight:800}
.roari .signoff__tag{font-size:11px;font-weight:600;margin-top:2px}
.roari .qr{width:90px;height:90px;border-radius:18px;background:var(--ink);border:1px solid rgba(212,175,90,.5);display:flex;align-items:center;justify-content:center;font-family:monospace;font-size:10px;color:var(--gold);text-align:center}

/* ============================================================
   Identity board
   ============================================================ */
.roari.board{background:var(--ink);color:var(--ivory)}
.roari .board__head{border-bottom:1px solid var(--ring)}
.roari .board__tag{background:var(--gold);color:var(--ink)}
.roari .board__tag:hover{color:var(--ink)}
.roari .board__name{font-weight:700}
.roari .board__desc,.roari .board__meta,.roari .board__caption{color:var(--muted-dark)}
.roari .board__meta a{color:var(--gold)}

.roari .hero{position:relative;height:560px;background:var(--ink);border-radius:24px;overflow:hidden;border:1px solid rgba(212,175,90,.25)}
.roari .hero__nav{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:22px 40px}
.roari .hero__brand{display:flex;align-items:center;gap:12px}
.roari .hero__brand img{width:36px}
.roari .hero__brand span{font-size:16px;font-weight:700}
.roari .hero__links{display:flex;gap:8px;font-size:13px;font-weight:600}
.roari .hero__links span{padding:8px 14px;border-radius:999px}
.roari .hero__links .is-current{background:var(--ink-2)}
.roari .hero__links .is-accent{border:1px solid var(--gold);color:var(--gold)}
.roari .hero__copy{position:absolute;left:40px;top:120px;width:600px;display:flex;flex-direction:column;gap:20px}
.roari .hero__eyebrow{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--gold);font-weight:600}
.roari .hero__title{font-size:62px;font-weight:800;line-height:1;letter-spacing:-.025em;text-wrap:pretty}
.roari .hero__lede{font-size:19px;color:var(--muted-dark);line-height:1.5;text-wrap:pretty}
.roari .hero__actions{display:flex;gap:12px}
.roari .btn{padding:14px 26px;border-radius:999px;font-size:14px}
.roari .btn--primary{background:var(--gold);color:var(--ink);font-weight:700}
.roari .btn--secondary{border:1px solid rgba(242,237,227,.4);font-weight:600}
.roari .hero__tiles{position:absolute;right:120px;top:150px;display:grid;grid-template-columns:150px 150px;gap:14px;transform:rotate(45deg)}
.roari .hero__tile{width:150px;height:150px;border-radius:18px;display:flex;align-items:center;justify-content:center}
.roari .hero__tile span{transform:rotate(-45deg);font-size:14px;font-weight:700;text-align:center}
.roari .hero__tile--mid{background:var(--ink-2)}
.roari .hero__tile--gold{background:var(--gold);color:var(--ink)}
.roari .hero__tile--outline{border:1px solid var(--gold)}

.roari .card{width:350px;height:200px;border-radius:16px}
.roari .card--front{background:var(--ink-2);padding:22px;position:relative;overflow:hidden;isolation:isolate}
.roari .card__ring{right:-50px;top:-50px;width:160px;height:160px;border-color:rgba(212,175,90,.4);border-radius:20px}
.roari .card__name{font-size:19px;font-weight:700}
.roari .card__role{font-size:12px;color:var(--gold);font-weight:600;margin-top:2px}
.roari .card__contact{position:absolute;bottom:22px;left:22px;font-size:11px;color:var(--muted-dark);line-height:1.7}
.roari .card__mark{position:absolute;right:20px;bottom:18px;width:46px}
.roari .card--back{background:var(--gold);display:flex;align-items:center;justify-content:center;gap:14px;color:var(--ink)}
.roari .card--back img{width:60px;filter:brightness(.25) sepia(1) hue-rotate(190deg) saturate(.5)}
.roari .card--back span{font-size:20px;font-weight:800}

.roari .mini-cover{width:350px;height:412px;background:var(--ivory);color:var(--ink);border-radius:16px;padding:28px;display:flex;flex-direction:column;position:relative;overflow:hidden;isolation:isolate}
.roari .mini-cover__corner{right:-90px;bottom:-90px;width:240px;height:240px;background:var(--gold);border-radius:32px}
.roari .mini-cover img{width:48px}
.roari .mini-cover__kicker{font-size:12px;font-weight:600;color:var(--gold-text);margin-top:40px}
.roari .mini-cover__title{font-size:36px;font-weight:800;line-height:1;letter-spacing:-.02em;margin-top:8px}
.roari .mini-cover__text{font-size:13px;line-height:1.6;margin-top:16px;color:var(--body);max-width:220px;text-wrap:pretty}

.roari .social{width:400px;height:400px;background:var(--ink-2);border-radius:24px;padding:32px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;isolation:isolate}
.roari .social__ring{left:50%;top:50%;width:300px;height:300px;border-color:rgba(212,175,90,.3);border-radius:40px;transform:translate(-50%,-50%) rotate(45deg)}
.roari .social__kicker{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--gold)}
.roari .social__title{font-size:40px;font-weight:800;line-height:1;letter-spacing:-.02em;text-wrap:pretty}
.roari .social__foot{display:flex;justify-content:space-between;align-items:center}
.roari .social__foot span{font-size:13px;font-weight:600}
.roari .social__foot img{width:44px}

.roari .signature{width:460px;height:120px;background:#fff;color:var(--ink);padding:16px;display:flex;gap:16px;align-items:center;font-family:Urbanist,Arial,sans-serif}
.roari .signature__badge{flex:none;width:72px;height:72px;background:var(--ink);border-radius:14px;display:flex;align-items:center;justify-content:center}
.roari .signature__badge img{width:48px}
.roari .signature__text{font-size:12px;line-height:1.6}
.roari .signature__name{font-weight:700;font-size:15px}
.roari .signature__role{color:var(--gold-text);font-weight:600}
.roari .signature__contact{color:var(--body)}

.roari .slide{width:460px;height:259px;background:var(--ink);border-radius:14px;border:1px solid rgba(212,175,90,.3);padding:28px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;isolation:isolate}
.roari .slide__block{right:-70px;top:-70px;width:200px;height:200px;background:var(--ink-2);border-radius:28px}
.roari .slide__kicker{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:600;color:var(--gold)}
.roari .slide__title{font-size:30px;font-weight:800;line-height:1;letter-spacing:-.02em}
.roari .slide__foot{display:flex;justify-content:space-between;align-items:flex-end}
.roari .slide__foot span{font-size:9px;color:var(--muted-dark)}
.roari .slide__foot img{width:30px}
