/* ============================================================
   Résumé templates — scoped looks layered on the shared engine.
   Each block restyles header, accents, section headings & skills
   for one template id. Content structure is identical everywhere,
   so any section order renders correctly.
   ============================================================ */

/* ===================== SPECTRUM — colored rail ===================== */
.tpl-spectrum .rcols.arch-sidebar .rside {
  background: linear-gradient(165deg, var(--pa), color-mix(in oklab, var(--pa2) 70%, var(--pa)));
}
.tpl-spectrum .rcols.arch-sidebar .rside::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(120% 60% at 100% 0%, rgba(255,255,255,0.18), transparent 60%);
}
.tpl-spectrum .rside > * { position: relative; }
.tpl-spectrum .rid-side .rphoto-id { border-radius: 18px; border: 1.5px solid rgba(255,255,255,0.42); }
.tpl-spectrum .rmain .rsec-t { display: flex; align-items: center; gap: 9px; }
.tpl-spectrum .rmain .rsec-t::before { content: ""; width: 14px; height: 2px; border-radius: 2px; background: var(--pa); }

/* ===================== AURORA — gradient banner ===================== */
.tpl-aurora .rhead { background: linear-gradient(115deg, var(--pa), var(--pa2)); color: #fff; padding: 46px 50px 34px; position: relative; overflow: hidden; }
.tpl-aurora .rhead::before { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 130% at 100% 0%, rgba(255,255,255,0.22), transparent 55%); }
.tpl-aurora .rid-top { position: relative; }
.tpl-aurora .rid-top .rname { font-size: 42px; }
.tpl-aurora .rid-top .rtitle { color: #fff; opacity: 0.95; }
.tpl-aurora .rid-top .rcontact { color: rgba(255,255,255,0.92); }
.tpl-aurora .rsec-t { padding-bottom: 8px; border-bottom: 1.5px solid color-mix(in oklab, var(--pa) 22%, #eef3f2); }

/* ===================== EMBER — warm editorial ===================== */
.paper.tpl-ember { background: #fffdf8; color: #2a201a; }
.tpl-ember .rhead { padding: 44px 52px 0; }
.tpl-ember .rid-top { padding-bottom: 18px; border-bottom: 2.5px solid var(--pa); }
.tpl-ember .rid-top .rname { font-family: var(--font-display); font-size: 50px; line-height: 0.92; color: #211710; }
.tpl-ember .rid-top .rname-2 { color: var(--pa); }
.tpl-ember .rid-top .rtitle { font-family: var(--font-serif); font-style: italic; font-size: 21px; font-weight: 400; color: #936341; }
.tpl-ember .rsec-t { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.2em; font-weight: 700; }
.tpl-ember .rsum { font-family: var(--font-serif); font-size: 21px; line-height: 1.4; color: #392a20; }
.tpl-ember .r-bullets li::before { background: var(--pa2); }
.tpl-ember .rtags span { background: #f4e8da; color: #211710; border-color: #ece0d2; }

/* ===================== MONO — Swiss label grid ===================== */
.paper.tpl-mono { color: #15151a; }
.tpl-mono .rhead { padding: 54px 56px 0; }
.tpl-mono .rid-top { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 24px; border-bottom: 1px solid #15151a; padding-bottom: 22px; }
.tpl-mono .rid-top .rid-txt { display: contents; }
.tpl-mono .rid-top .rname { font-family: var(--font-ui); font-size: 30px; letter-spacing: -0.02em; }
.tpl-mono .rid-top .rtitle { color: #5a5a62; font-weight: 600; font-size: 13.5px; }
.tpl-mono .rid-top .rcontact { flex-direction: column; align-items: flex-end; gap: 4px; margin-top: 0; text-align: right; }
.tpl-mono .rbody { padding: 0 56px 50px; gap: 0; }
.tpl-mono .rsec { display: grid; grid-template-columns: 104px 1fr; gap: 26px; padding: 20px 0; border-top: 1px solid #e6e6ea; }
.tpl-mono .rsec:first-child { border-top: none; }
.tpl-mono .rsec-t { color: #15151a; padding-top: 2px; }
.tpl-mono .r-bullets li::before { background: #15151a; border-radius: 50%; transform: none; width: 4px; height: 4px; }
.tpl-mono .rskill-list { columns: 2; column-gap: 24px; }
.tpl-mono .rskill-list span { display: block; }
.tpl-mono .rskill-list span:not(:last-child)::after { content: ""; }
.tpl-mono .rskill-list span::before { content: "— "; color: #b8b8c0; }

/* ===================== PRISM — color blocks ===================== */
.paper.tpl-prism { background: #f6f4ef; }
.tpl-prism .rhead { padding: 32px 32px 0; }
.tpl-prism .rid-top { background: #18181d; color: #fff; border-radius: 22px; padding: 32px 34px; position: relative; overflow: hidden; }
.tpl-prism .rid-top::after { content: ""; position: absolute; right: -40px; bottom: -50px; width: 160px; height: 160px; border-radius: 38px; background: var(--pa); transform: rotate(22deg); }
.tpl-prism .rid-top::before { content: ""; position: absolute; right: 60px; top: -40px; width: 90px; height: 90px; border-radius: 50%; background: var(--pa2); opacity: 0.85; }
.tpl-prism .rid-top > * { position: relative; z-index: 1; }
.tpl-prism .rid-top .rname { font-size: 34px; }
.tpl-prism .rid-top .rtitle { color: var(--pa2); }
.tpl-prism .rid-top .rcontact { color: rgba(255,255,255,0.92); }
.tpl-prism .rcols.arch-stack { padding-top: 16px; }
.tpl-prism .rmain > .rsec, .tpl-prism .rside > .rsec { background: #fff; border: 1.5px solid #ececf0; border-radius: 18px; padding: 22px 24px; }
.tpl-prism .rtags span { background: color-mix(in oklab, var(--pa) 12%, #fff); }

/* ===================== ATLAS — white rail + photo + bars ===================== */
.paper.tpl-atlas { background: #f6f5f2; color: #1c1c20; }
.tpl-atlas .rid-side { align-items: center; text-align: center; }
.tpl-atlas .rid-side .rphoto-id { width: 132px; height: 132px; border-radius: 50%; border: 4px solid #fff; box-shadow: 0 0 0 5px var(--pa); font-size: 40px; }
.tpl-atlas .rid-side .rname { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.04em; font-size: 25px; }
.tpl-atlas .rid-side .rtitle { color: var(--pa); font-weight: 700; }
.tpl-atlas .rid-side .rcontact { align-items: flex-start; text-align: left; }
.tpl-atlas .rcols.arch-sidebar .rside .rsec-t { border-bottom: 2px solid var(--pa); padding-bottom: 7px; display: inline-block; }
.tpl-atlas .rmain .rsec-t { display: flex; align-items: center; gap: 10px; }
.tpl-atlas .rmain .rsec-t::after { content: ""; flex: 1; height: 1px; background: #dcdcd9; }

/* ===================== ONYX — premium dark + rings ===================== */
.paper.tpl-onyx { background: #161b29; color: #e6e8f2; }
.tpl-onyx .rhead { padding: 42px 44px 0; }
.tpl-onyx .rid-top { flex-direction: row; align-items: center; gap: 22px; }
.tpl-onyx .rid-top .rphoto-id { width: 92px; height: 92px; border-radius: 20px; border: 1.5px solid rgba(255,255,255,0.16); }
.tpl-onyx .rid-top .rname { color: #fff; font-size: 32px; }
.tpl-onyx .rid-top .rtitle { color: var(--pa2); }
.tpl-onyx .rid-top .rcontact { color: #aeb3c7; }
.tpl-onyx .rcols.arch-stack { padding: 24px 44px 46px; }
.tpl-onyx .rjob-r, .tpl-onyx .redu-h b, .tpl-onyx .rnamed-i b, .tpl-onyx .rproj b, .tpl-onyx .rlang-n { color: #fff; }
.tpl-onyx .rsum, .tpl-onyx .r-bullets, .tpl-onyx .rproj, .tpl-onyx .rpub { color: #b9bdcc; }
.tpl-onyx .rjob-w, .tpl-onyx .redu-w { color: #7f8499; }
.tpl-onyx .redu-d, .tpl-onyx .rnamed-m, .tpl-onyx .rlang-l { color: #aeb3c7; }
.tpl-onyx .rside > .rsec { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 16px; padding: 18px 20px; }
.tpl-onyx .sring-bg { stroke: rgba(255,255,255,0.12); }
.tpl-onyx .rtags span { background: rgba(255,255,255,0.06); color: #cfd3e6; border-color: rgba(255,255,255,0.12); }

/* ===================== QUILL — magazine serif + drop cap ===================== */
.paper.tpl-quill { background: #fbf9f5; color: #2a2422; }
.tpl-quill .rhead { padding: 50px 56px 0; }
.tpl-quill .rid-top { align-items: center; text-align: center; padding-bottom: 22px; border-bottom: 1px solid #e4ddd2; }
.tpl-quill .rid-top .rname { font-family: var(--font-serif); font-weight: 600; font-size: 50px; line-height: 0.98; letter-spacing: 0.005em; color: #211b18; }
.tpl-quill .rid-top .rtitle { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: 19px; color: var(--pa); }
.tpl-quill .rid-top .rcontact { justify-content: center; }
.tpl-quill .rsec-t { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.2em; padding-bottom: 8px; border-bottom: 1px solid #e4ddd2; }
.tpl-quill .rsum { font-family: var(--font-serif); font-size: 21px; line-height: 1.45; color: #392f29; }
.tpl-quill .rmain > .rsec:first-child .rsum::first-letter { font-family: var(--font-serif); font-size: 60px; line-height: 0.8; float: left; margin: 6px 12px 0 0; color: var(--pa); }
.tpl-quill .rjob-r { font-family: var(--font-serif); font-weight: 600; font-size: 18px; }
.tpl-quill .r-bullets li::before { background: var(--pa2); }
.tpl-quill .rtags span { background: #f1e9dc; color: #463b34; border-color: #e4d8c6; }

/* ===================== WOLFE — investment banking standard ===================== */
.paper.tpl-wolfe { color: #14233f; font-family: var(--font-serif), Georgia, serif; }
.tpl-wolfe .rhead { padding: 48px 60px 0; }
.tpl-wolfe .rid-top { align-items: center; text-align: center; }
.tpl-wolfe .rid-top .rname { font-family: var(--font-serif); font-weight: 600; font-size: 34px; letter-spacing: 0.06em; text-transform: uppercase; color: #111418; }
.tpl-wolfe .rid-top .rtitle { font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #44505f; margin-top: 6px; }
.tpl-wolfe .rid-top .rcontact { justify-content: center; font-family: var(--font-ui); gap: 4px 14px; font-size: 11.5px; }
.tpl-wolfe .rid-top .rcontact-i svg { display: none; }
.tpl-wolfe .rid-top .rcontact-i:not(:last-child)::after { content: "•"; margin-left: 14px; color: #b6bcc6; }
.tpl-wolfe .rbody, .tpl-wolfe .rcols.arch-stack { padding-top: 14px; }
.tpl-wolfe .rid-top { padding-bottom: 12px; border-bottom: 1.5px solid #14233f; }
.tpl-wolfe .rsec-t { font-family: var(--font-ui); font-size: 11.5px; letter-spacing: 0.14em; color: #14233f; border-bottom: 0.75px solid #b6bcc6; padding-bottom: 4px; margin-bottom: 9px; }
.tpl-wolfe .rjob-r, .tpl-wolfe .redu-h b { font-family: var(--font-ui); font-size: 13.5px; }
.tpl-wolfe .rjob-c { font-family: var(--font-ui); color: #14233f; font-style: italic; font-weight: 600; }
.tpl-wolfe .rjob-w, .tpl-wolfe .redu-w { font-family: var(--font-ui); color: #44505f; }
.tpl-wolfe .r-bullets { font-family: var(--font-ui); color: #2a3240; }
.tpl-wolfe .r-bullets li::before { background: #44505f; border-radius: 50%; transform: none; width: 4px; height: 4px; }
.tpl-wolfe .rsum { font-family: var(--font-ui); }
.tpl-wolfe .rskill-list { font-family: var(--font-ui); }

/* ===================== LEDGER — corporate finance / accounting ===================== */
.paper.tpl-ledger { color: #1c2a25; }
.tpl-ledger .rhead { padding: 46px 52px 0; border-top: 5px solid var(--pa); }
.tpl-ledger .rid-top .rname { font-size: 31px; }
.tpl-ledger .rid-top .rtitle { color: var(--pa); }
.tpl-ledger .rcols.arch-stack { grid-template-columns: 1.7fr 1fr; }
.tpl-ledger .rsec-t { color: var(--pa); border-bottom: 1.5px solid color-mix(in oklab, var(--pa) 22%, #e6ece9); padding-bottom: 7px; }
.tpl-ledger .rside { background: #f4f7f5; border-radius: 12px; padding: 22px 22px; align-self: start; }
.tpl-ledger .rjob-c { color: var(--pa); }

/* ===================== BEACON — management consulting ===================== */
.paper.tpl-beacon { color: #14222b; }
.tpl-beacon .rhead { padding: 48px 56px 0; }
.tpl-beacon .rid-top { align-items: center; text-align: center; }
.tpl-beacon .rid-top .rname { font-size: 33px; letter-spacing: -0.01em; }
.tpl-beacon .rid-top .rtitle { color: var(--pa); font-size: 12.5px; letter-spacing: 0.14em; text-transform: uppercase; }
.tpl-beacon .rid-top .rcontact { justify-content: center; }
.tpl-beacon .rid-top { padding-bottom: 18px; border-bottom: 2px solid var(--pa); }
.tpl-beacon .rsec-t { color: var(--pa); display: flex; align-items: center; gap: 10px; }
.tpl-beacon .rsec-t::after { content: ""; flex: 1; height: 1px; background: #d7e0e5; }
.tpl-beacon .r-bullets li::before { background: var(--pa); }

/* ===================== SUMMIT — executive ===================== */
.paper.tpl-summit { background: #faf9f6; color: #23231f; }
.tpl-summit .rhead { padding: 50px 54px 0; }
.tpl-summit .rid-top .rname { font-family: var(--font-serif); font-weight: 600; font-size: 44px; line-height: 1; color: #1c1c1a; }
.tpl-summit .rid-top .rtitle { color: var(--pa2); font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; }
.tpl-summit .rid-top { padding-bottom: 20px; border-bottom: 1px solid #e3e0d8; }
.tpl-summit .rsec-t { color: #1c1c1a; letter-spacing: 0.18em; }
.tpl-summit .rsec-t::before { content: ""; display: inline-block; width: 18px; height: 2px; background: var(--pa2); margin-right: 9px; vertical-align: middle; }
.tpl-summit .rjob-c { color: var(--pa2); }
.tpl-summit .r-bullets li::before { background: var(--pa2); }

/* ===================== BOLT — sales (bold band + bars) ===================== */
.paper.tpl-bolt { color: #14161a; }
.tpl-bolt .rhead { background: linear-gradient(120deg, var(--pa), var(--pa2)); color: #fff; padding: 44px 50px 30px; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 26px)); }
.tpl-bolt .rid-top .rname { font-family: var(--font-display); font-size: 44px; text-transform: uppercase; line-height: 0.95; }
.tpl-bolt .rid-top .rtitle { color: #fff; opacity: 0.95; }
.tpl-bolt .rid-top .rcontact { color: rgba(255,255,255,0.95); }
.tpl-bolt .rcols.arch-stack { padding-top: 20px; }
.tpl-bolt .rsec-t { display: flex; align-items: center; gap: 9px; }
.tpl-bolt .rsec-t::before { content: ""; width: 16px; height: 3px; border-radius: 2px; background: var(--pa2); }
.tpl-bolt .rjob-r { font-size: 15px; }

/* ===================== COBALT — FAANG / ATS-safe ===================== */
.paper.tpl-cobalt { color: #0f172a; }
.tpl-cobalt .rhead { padding: 46px 56px 0; }
.tpl-cobalt .rid-top .rname { font-family: var(--font-ui); font-size: 30px; font-weight: 800; }
.tpl-cobalt .rid-top .rtitle { color: var(--pa); font-weight: 700; }
.tpl-cobalt .rid-top .rcontact { gap: 6px 16px; }
.tpl-cobalt .rid-top { padding-bottom: 14px; border-bottom: 1.5px solid #e2e8f0; }
.tpl-cobalt .rsec-t { color: var(--pa); letter-spacing: 0.1em; }
.tpl-cobalt .r-bullets li::before { background: var(--pa); border-radius: 50%; transform: none; width: 4px; height: 4px; }
.tpl-cobalt .rskill-list { color: #1e293b; line-height: 1.9; }

/* ===================== TERMINAL — mono developer ===================== */
.paper.tpl-terminal { background: #f5f8f5; color: #1a241d; font-family: var(--font-mono), monospace; }
.tpl-terminal .rhead { padding: 36px 44px 0; }
.tpl-terminal .rid-top { background: #0f1b14; color: #d7f5e6; border-radius: 12px; padding: 26px 28px; }
.tpl-terminal .rid-top .rname { font-family: var(--font-mono); font-weight: 700; font-size: 28px; color: #fff; }
.tpl-terminal .rid-top .rtitle { color: var(--pa2); font-weight: 400; }
.tpl-terminal .rid-top .rcontact { color: #9fc7b3; }
.tpl-terminal .rid-top .rcontact-i svg { color: #5fd6a0; }
.tpl-terminal .rcols.arch-stack { padding-top: 20px; }
.tpl-terminal .rsec-t { color: var(--pa); }
.tpl-terminal .rsec-t::before { content: "# "; }
.tpl-terminal .rsum, .tpl-terminal .r-bullets { font-family: var(--font-ui); }
.tpl-terminal .rjob { padding-left: 14px; border-left: 2px solid #dde6df; }
.tpl-terminal .rjob-c::before { content: "@ "; color: var(--pa); }
.tpl-terminal .r-bullets li::before { background: var(--pa); border-radius: 0; transform: none; width: 6px; height: 2px; top: 0.7em; }
.tpl-terminal .rtags span { background: #e2efe7; color: #16271d; border-color: #cfe3d7; border-radius: 5px; }

/* ===================== FORGE — engineering (light rail + bars) ===================== */
.paper.tpl-forge { background: #f5f5f3; color: #20242a; }
.tpl-forge .rcols.arch-sidebar .rside { background: #20242a; color: #e7e8ea; border-right: none; }
.tpl-forge .rid-side .rname { color: #fff; font-family: var(--font-display); }
.tpl-forge .rid-side .rtitle { color: var(--pa); }
.tpl-forge .rcols.arch-sidebar .rside .rsec-t { color: var(--pa); opacity: 1; }
.tpl-forge .rcols.arch-sidebar .rside .rtags span { background: rgba(255,255,255,0.08); color: #e7e8ea; border-color: rgba(255,255,255,0.14); }
.tpl-forge .rcols.arch-sidebar .rside .sbar-h { color: #fff; }
.tpl-forge .rcols.arch-sidebar .rside .sbar-track { background: rgba(255,255,255,0.16); }
.tpl-forge .rcols.arch-sidebar .rside .sbar-fill { background: var(--pa); }
.tpl-forge .rcols.arch-sidebar .rside .rnamed-i b, .tpl-forge .rcols.arch-sidebar .rside .rlang-n { color: #fff; }
.tpl-forge .rcols.arch-sidebar .rside .rnamed-m, .tpl-forge .rcols.arch-sidebar .rside .rlang-l, .tpl-forge .rcols.arch-sidebar .rside .redu-d { color: #a9adb5; }
.tpl-forge .rcols.arch-sidebar .rside .redu-h b { color: #fff; }
.tpl-forge .rmain .rsec-t { color: var(--pa); border-bottom: 2px solid color-mix(in oklab, var(--pa) 30%, #e4e4e0); padding-bottom: 6px; }

/* ===================== VERTEX — electric band ===================== */
.tpl-vertex .rhead { background: linear-gradient(120deg, var(--pa), var(--pa2)); color: #fff; padding: 48px 50px 40px; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 32px)); position: relative; overflow: hidden; }
.tpl-vertex .rhead::before { content: ""; position: absolute; right: -60px; top: -80px; width: 240px; height: 240px; border-radius: 40px; background: rgba(255,255,255,0.12); transform: rotate(34deg); }
.tpl-vertex .rid-top { position: relative; }
.tpl-vertex .rid-top .rname { font-family: var(--font-display); font-size: 46px; text-transform: uppercase; line-height: 0.95; }
.tpl-vertex .rid-top .rtitle { color: #fff; opacity: 0.95; }
.tpl-vertex .rid-top .rcontact { color: rgba(255,255,255,0.95); }
.tpl-vertex .rcols.arch-stack { padding-top: 22px; }
.tpl-vertex .rsec-t { display: flex; align-items: center; gap: 9px; }
.tpl-vertex .rsec-t::before { content: ""; width: 16px; height: 3px; border-radius: 2px; background: var(--pa2); }

/* ===================== SCHOLAR — academic CV ===================== */
.paper.tpl-scholar { background: #fbf9f6; color: #241f22; }
.tpl-scholar .rhead { padding: 50px 58px 0; }
.tpl-scholar .rid-top { align-items: center; text-align: center; padding-bottom: 16px; border-bottom: 1px solid #e6ddd6; }
.tpl-scholar .rid-top .rname { font-family: var(--font-serif); font-weight: 600; font-size: 40px; color: #1f1a1d; }
.tpl-scholar .rid-top .rtitle { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: 17px; color: var(--pa); }
.tpl-scholar .rid-top .rcontact { justify-content: center; }
.tpl-scholar .rsec-t { font-family: var(--font-serif); font-weight: 600; font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--pa); border-bottom: 1px solid #e6ddd6; padding-bottom: 5px; }
.tpl-scholar .rjob-r, .tpl-scholar .redu-h b { font-size: 14px; }
.tpl-scholar .rpubs { gap: 9px; }
.tpl-scholar .rpub { padding-left: 22px; text-indent: -22px; }

/* ===================== STATUTE — legal ===================== */
.paper.tpl-statute { background: #fbfaf7; color: #1c2030; }
.tpl-statute .rhead { padding: 50px 58px 0; }
.tpl-statute .rid-top { align-items: center; text-align: center; }
.tpl-statute .rid-top .rname { font-family: var(--font-serif); font-weight: 600; font-size: 36px; letter-spacing: 0.02em; color: #181c28; }
.tpl-statute .rid-top .rtitle { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--pa2); }
.tpl-statute .rid-top .rcontact { justify-content: center; }
.tpl-statute .rid-top { padding-bottom: 14px; border-bottom: 2px solid var(--pa); }
.tpl-statute .rid-top::after { content: ""; display: block; width: 40px; height: 1px; background: var(--pa2); margin: 10px auto 0; }
.tpl-statute .rsec-t { color: var(--pa); text-align: center; letter-spacing: 0.2em; }
.tpl-statute .r-bullets li::before { background: var(--pa2); border-radius: 50%; transform: none; width: 4px; height: 4px; }

/* ===================== VITALS — healthcare ===================== */
.paper.tpl-vitals { color: #15282b; }
.tpl-vitals .rhead { background: linear-gradient(150deg, color-mix(in oklab, var(--pa) 12%, #fff), #fff); padding: 44px 52px 22px; border-bottom: 3px solid var(--pa); }
.tpl-vitals .rid-top .rname { font-size: 32px; color: var(--pa); }
.tpl-vitals .rid-top .rtitle { color: #2a4a4d; font-weight: 700; }
.tpl-vitals .rcols.arch-stack { padding-top: 22px; }
.tpl-vitals .rsec-t { color: var(--pa); }
.tpl-vitals .rside > .rsec { background: color-mix(in oklab, var(--pa) 7%, #fff); border-radius: 12px; padding: 18px 20px; }
.tpl-vitals .rtags span { background: color-mix(in oklab, var(--pa) 12%, #fff); }
.tpl-vitals .r-bullets li::before { background: var(--pa); border-radius: 50%; transform: none; width: 4px; height: 4px; }

/* ===================== FEDERAL — government ===================== */
.paper.tpl-federal { color: #14213a; }
.tpl-federal .rhead { padding: 44px 56px 0; }
.tpl-federal .rid-top { border-bottom: 3px double var(--pa); padding-bottom: 14px; }
.tpl-federal .rid-top .rname { font-size: 30px; color: var(--pa); }
.tpl-federal .rid-top .rtitle { color: var(--pa2); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; font-size: 12px; }
.tpl-federal .rsec-t { color: var(--pa); background: color-mix(in oklab, var(--pa) 8%, #fff); padding: 5px 10px; border-left: 3px solid var(--pa); letter-spacing: 0.1em; }
.tpl-federal .r-bullets li::before { background: var(--pa2); border-radius: 50%; transform: none; width: 4px; height: 4px; }

/* ===================== CANVAS — marketing ===================== */
.paper.tpl-canvas { background: #fff7fb; color: #2a1a26; }
.tpl-canvas .rhead { padding: 46px 52px 0; }
.tpl-canvas .rid-top .rname { font-family: var(--font-display); font-size: 42px; background: linear-gradient(100deg, var(--pa), var(--pa2)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.tpl-canvas .rid-top .rtitle { color: var(--pa); }
.tpl-canvas .rid-top { padding-bottom: 16px; border-bottom: 2px dashed color-mix(in oklab, var(--pa) 30%, #f0d8e6); }
.tpl-canvas .rsec-t { color: var(--pa); }
.tpl-canvas .rtags.pills span { background: linear-gradient(100deg, color-mix(in oklab, var(--pa) 14%, #fff), color-mix(in oklab, var(--pa2) 14%, #fff)); color: #2a1a26; border-color: color-mix(in oklab, var(--pa) 22%, #fff); }
.tpl-canvas .r-bullets li::before { background: var(--pa2); }

/* ===================== PIXEL — UX / product design ===================== */
.paper.tpl-pixel { color: #181826; }
.tpl-pixel .rhead { padding: 46px 54px 0; }
.tpl-pixel .rid-top .rname { font-size: 36px; }
.tpl-pixel .rid-top .rtitle { color: var(--pa); }
.tpl-pixel .rid-top { padding-bottom: 16px; }
.tpl-pixel .rsec-t { color: var(--pa); display: inline-flex; align-items: center; gap: 8px; }
.tpl-pixel .rsec-t::before { content: ""; width: 7px; height: 7px; border-radius: 2px; background: var(--pa2); }
.tpl-pixel .rmain > .rsec, .tpl-pixel .rside > .rsec { background: #fafafb; border: 1px solid #eeeef3; border-radius: 14px; padding: 18px 20px; }
.tpl-pixel .rtags span { border-radius: 8px; }

/* ===================== CONNECT — BPO / customer support ===================== */
.tpl-connect .rcols.arch-sidebar .rside { background: linear-gradient(170deg, var(--pa), var(--pa2)); }
.tpl-connect .rid-side { align-items: center; text-align: center; }
.tpl-connect .rid-side .rphoto-id { width: 96px; height: 96px; border-radius: 50%; border: 3px solid rgba(255,255,255,0.5); }
.tpl-connect .rid-side .rcontact { align-items: flex-start; text-align: left; }
.tpl-connect .rmain .rsec-t { color: var(--pa); }
.tpl-connect .rmain .rjob-c { color: var(--pa); }

/* ===================== GLOBE — international / Europass ===================== */
.tpl-globe .rcols.arch-sidebar { grid-template-columns: 268px 1fr; }
.tpl-globe .rcols.arch-sidebar .rside { background: var(--pa); }
.tpl-globe .rid-side .rphoto-id { width: 92px; height: 92px; border-radius: 10px; }
.tpl-globe .rmain .rsec-t { color: var(--pa); border-bottom: 1.5px solid color-mix(in oklab, var(--pa) 20%, #e6edf5); padding-bottom: 6px; }
.tpl-globe .rlang { padding: 3px 0; border-bottom: 1px dashed rgba(255,255,255,0.18); }

/* ===================== SLATE — traditional centered ===================== */
.paper.tpl-slate { color: #1a1a1f; }
.tpl-slate .rhead { padding: 52px 60px 0; }
.tpl-slate .rid-top { align-items: center; text-align: center; }
.tpl-slate .rid-top .rname { font-family: var(--font-serif); font-weight: 600; font-size: 38px; color: #14141a; }
.tpl-slate .rid-top .rtitle { font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--pa); }
.tpl-slate .rid-top .rcontact { justify-content: center; }
.tpl-slate .rid-top .rcontact-i svg { display: none; }
.tpl-slate .rid-top .rcontact-i:not(:last-child)::after { content: "•"; margin-left: 16px; color: #c2c2cc; }
.tpl-slate .rid-top { padding-bottom: 16px; border-bottom: 2px solid var(--pa); }
.tpl-slate .rsec-t { color: #14141a; border-bottom: 1px solid #dcdce2; padding-bottom: 7px; }
.tpl-slate .rjob-c { color: var(--pa); font-style: italic; }
.tpl-slate .r-bullets li::before { background: var(--pa); border-radius: 50%; transform: none; width: 4px; height: 4px; }

/* ===================== MERIDIAN — scale showcase (colored rail + dots) ===================== */
.tpl-meridian .rcols.arch-sidebar { grid-template-columns: 268px 1fr; }
.tpl-meridian .rcols.arch-sidebar .rside { background: linear-gradient(168deg, var(--pa), color-mix(in oklab, var(--pa2) 78%, var(--pa))); }
.tpl-meridian .rcols.arch-sidebar .rside::before { content: ""; position: absolute; inset: 0; background: radial-gradient(130% 55% at 0% 0%, rgba(255,255,255,0.16), transparent 60%); }
.tpl-meridian .rside > * { position: relative; }
.tpl-meridian .rid-side { align-items: center; text-align: center; }
.tpl-meridian .rid-side .rphoto-id { width: 112px; height: 112px; border-radius: 50%; border: 3px solid rgba(255,255,255,0.5); font-size: 36px; }
.tpl-meridian .rid-side .rname { font-family: var(--font-display); font-size: 26px; }
.tpl-meridian .rid-side .rcontact { align-items: flex-start; text-align: left; }
.tpl-meridian .rmain .rsec-t { display: flex; align-items: center; gap: 9px; }
.tpl-meridian .rmain .rsec-t::before { content: ""; width: 16px; height: 2px; border-radius: 2px; background: var(--pa); }
.tpl-meridian .rmain .rjob-r { font-size: 15px; }

/* ===================== QUARTZ — Swiss minimal + segments ===================== */
.paper.tpl-quartz { color: #1a1a1d; }
.tpl-quartz .rhead { padding: 54px 56px 0; }
.tpl-quartz .rid-top { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 28px; border-bottom: 2px solid #1a1a1d; padding-bottom: 20px; }
.tpl-quartz .rid-top .rid-txt { display: contents; }
.tpl-quartz .rid-top .rname { font-family: var(--font-ui); font-weight: 800; font-size: 32px; letter-spacing: -0.025em; }
.tpl-quartz .rid-top .rname-2 { color: #8a8a94; }
.tpl-quartz .rid-top .rtitle { color: #4a4a52; font-weight: 600; font-size: 13px; margin-top: 6px; }
.tpl-quartz .rid-top .rcontact { flex-direction: column; align-items: flex-end; gap: 4px; margin-top: 0; text-align: right; }
.tpl-quartz .rsec-t { color: #1a1a1d; letter-spacing: 0.18em; }
.tpl-quartz .rcols.arch-stack { grid-template-columns: 1.7fr 1fr; }
.tpl-quartz .r-bullets li::before { background: #1a1a1d; border-radius: 50%; transform: none; width: 4px; height: 4px; }
.tpl-quartz .sseg i { border-radius: 1px; height: 5px; width: 15px; }
.tpl-quartz .srow-n { font-weight: 600; }

/* ===================== HELIX — tech band + signal bars ===================== */
.paper.tpl-helix { background: #f7f7fb; color: #15151f; }
.tpl-helix .rhead { background: linear-gradient(120deg, var(--pa), var(--pa2)); color: #fff; padding: 42px 50px 30px; }
.tpl-helix .rid-top .rname { font-family: var(--font-display); font-size: 40px; line-height: 0.98; }
.tpl-helix .rid-top .rtitle { font-family: var(--font-mono); font-size: 13px; font-weight: 400; color: #fff; opacity: 0.95; }
.tpl-helix .rid-top .rtitle::before { content: "› "; }
.tpl-helix .rid-top .rcontact { color: rgba(255,255,255,0.95); }
.tpl-helix .rcols.arch-stack { padding-top: 20px; }
.tpl-helix .rsec-t { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; color: var(--pa); }
.tpl-helix .rjob-c { color: var(--pa); }
.tpl-helix .r-bullets li::before { border-radius: 0; transform: none; width: 6px; height: 2px; top: 0.7em; }
.tpl-helix .rside > .rsec { background: #fff; border: 1px solid #ececf2; border-radius: 14px; padding: 18px 20px; }
.tpl-helix .ssig { height: 19px; }

/* ===================== MARIGOLD — warm bold band + segments ===================== */
.paper.tpl-marigold { background: #fffaf2; color: #2a1f12; }
.tpl-marigold .rhead { background: linear-gradient(118deg, var(--pa), var(--pa2)); color: #fff; padding: 46px 52px 32px; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 24px)); position: relative; overflow: hidden; }
.tpl-marigold .rhead::before { content: ""; position: absolute; right: -50px; top: -70px; width: 200px; height: 200px; border-radius: 50%; background: rgba(255,255,255,0.14); }
.tpl-marigold .rid-top { position: relative; }
.tpl-marigold .rid-top .rname { font-family: var(--font-display); font-size: 46px; line-height: 0.95; }
.tpl-marigold .rid-top .rtitle { color: #fff; opacity: 0.96; }
.tpl-marigold .rid-top .rcontact { color: rgba(255,255,255,0.96); }
.tpl-marigold .rcols.arch-stack { padding-top: 18px; }
.tpl-marigold .rsec-t { color: color-mix(in oklab, var(--pa2) 80%, #1a1a1a); display: flex; align-items: center; gap: 9px; }
.tpl-marigold .rsec-t::before { content: ""; width: 16px; height: 3px; border-radius: 2px; background: var(--pa); }
.tpl-marigold .rjob-c { color: color-mix(in oklab, var(--pa2) 75%, #1a1a1a); }
.tpl-marigold .r-bullets li::before { background: var(--pa); }
.tpl-marigold .sseg i { height: 7px; }

/* ===================== VERITAS — compact professional + dots ===================== */
.paper.tpl-veritas { color: #102a30; }
.tpl-veritas .rhead { padding: 44px 52px 0; border-top: 4px solid var(--pa); }
.tpl-veritas .rid-top .rname { font-size: 31px; }
.tpl-veritas .rid-top .rtitle { color: var(--pa); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; }
.tpl-veritas .rid-top { padding-bottom: 14px; border-bottom: 1px solid #d9e3e5; }
.tpl-veritas .rcols.arch-stack { grid-template-columns: 1.65fr 1fr; padding-top: 18px; }
.tpl-veritas .rsec-t { color: var(--pa); border-bottom: 1.5px solid color-mix(in oklab, var(--pa) 20%, #e2ebec); padding-bottom: 6px; }
.tpl-veritas .rjob-c { color: var(--pa); }
.tpl-veritas .r-bullets li::before { background: var(--pa); border-radius: 50%; transform: none; width: 4px; height: 4px; }
.tpl-veritas .sdots i { width: 8px; height: 8px; }

/* ===================== CASCADE — timeline experience + dots ===================== */
.paper.tpl-cascade { background: #f8fafd; color: #14182a; }
.tpl-cascade .rhead { padding: 46px 54px 0; }
.tpl-cascade .rid-top .rname { font-family: var(--font-display); font-size: 40px; }
.tpl-cascade .rid-top .rname-2 { color: var(--pa); }
.tpl-cascade .rid-top .rtitle { color: var(--pa); }
.tpl-cascade .rid-top { padding-bottom: 16px; border-bottom: 1px solid #e2e8f2; }
.tpl-cascade .rcols.arch-stack { padding-top: 18px; }
.tpl-cascade .rsec-t { color: var(--pa); }
.tpl-cascade .rmain .rsec-experience .rjobs { position: relative; padding-left: 22px; }
.tpl-cascade .rmain .rsec-experience .rjobs::before { content: ""; position: absolute; left: 4px; top: 7px; bottom: 7px; width: 2px; background: linear-gradient(var(--pa), color-mix(in oklab, var(--pa2) 70%, var(--pa))); }
.tpl-cascade .rmain .rsec-experience .rjob { position: relative; }
.tpl-cascade .rmain .rsec-experience .rjob::before { content: ""; position: absolute; left: -22px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--pa); border: 2px solid #f8fafd; box-shadow: 0 0 0 2px color-mix(in oklab, var(--pa) 35%, #f8fafd); }
.tpl-cascade .rside > .rsec { background: #fff; border: 1px solid #e6ecf5; border-radius: 14px; padding: 18px 20px; }
.tpl-cascade .r-bullets li::before { background: var(--pa2); }
