@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/PlusJakartaSans-400-800-normal.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:italic;font-weight:400 800;font-display:swap;src:url(/fonts/PlusJakartaSans-400-800-italic.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:700 900;font-display:swap;src:url(/fonts/PlayfairDisplay-700-900-italic.woff2) format('woff2')}
@layer legacy{



:root{--ink:#0B1230;--blue:#1F4FE0;--cobalt:#1D44D8;--red:#DC1F27;--lime:#D6E236;--navy:#0D1A44;--sun:#FFD84D;--bg:#F7F7F5;--muted:#474D63;--line:#D9DBE1;--card:#fff;--r:18px;
 --sans:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--script:'Playfair Display',Georgia,serif}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-padding-top:20px}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:clip;font-size:18px;line-height:1.55}
img{display:block;max-width:100%}
a{color:inherit}
ul,ol{list-style:none}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:99}
.skip:focus{left:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(1328px,100% - 40px);margin:0 auto;position:relative}
.script{font-family:var(--script);font-style:italic;font-weight:800;color:var(--blue);letter-spacing:-0.01em}
svg.i{width:1em;height:1em;flex:none}

/* ===== HEADER ===== */
.top{position:relative;z-index:20}
.nav{height:92px;display:flex;align-items:center;gap:8px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;margin-left:18px;margin-right:auto}
.brand svg{width:50px;height:50px;color:var(--ink);--crack:var(--bg)}
.brand b{font-size:28px;font-weight:600;letter-spacing:-0.015em;white-space:nowrap}
.links{display:flex;align-items:center;gap:6px;font-size:18.5px;font-weight:500;margin-right:14px}
.links summary svg{width:12px;height:12px}.links>a,.links summary{display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:999px;text-decoration:none;cursor:pointer;list-style:none;white-space:nowrap}
.links summary::-webkit-details-marker{display:none}
.links>a:hover,.links summary:hover{background:#ECEDF1}
.links a[aria-current=page]{color:var(--blue);font-weight:700}
.dd{position:relative}
.dd .menu{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border-radius:16px;box-shadow:0 18px 50px rgba(15,20,60,.16);padding:10px;min-width:300px;z-index:30}
.dd .menu a{display:block;padding:10px 14px;border-radius:10px;text-decoration:none;font-size:16.5px;font-weight:600}
.dd .menu a small{display:block;font-weight:500;color:var(--muted);font-size:14px}
.dd .menu a:hover{background:#F0F2FA}
.dd .menu hr{border:0;border-top:1px solid var(--line);margin:6px 8px}
.lang .menu{left:auto;right:0;min-width:240px}
.lang .menu li{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;font-size:16px;font-weight:600}
.lang .menu li span{font-size:13px;font-weight:600;color:var(--muted)}
.lang .menu li.on{color:var(--blue)}
.lang summary{font-size:16px;font-weight:600;color:#30364C;padding:10px 12px;border-radius:999px;display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;white-space:nowrap;margin-right:8px}.lang summary::-webkit-details-marker{display:none}.lang summary:hover{background:#ECEDF1}.lang summary svg{width:18px;height:18px}.lang summary svg:last-child{width:12px;height:12px}
.search{display:flex;align-items:center;gap:8px;height:46px;width:184px;padding:0 16px;border:1px solid var(--line);background:#fff;border-radius:999px;margin-right:16px}
.search svg{width:18px;height:18px;color:#4B5168}
.search input{border:0;outline:0;background:transparent;width:100%;font-size:16px}
.search input::placeholder{color:#5B6178}
.search:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.pill{display:inline-flex;align-items:center;gap:10px;background:var(--red);color:#fff;font-weight:700;font-size:17.5px;height:52px;padding:0 26px;border-radius:999px;text-decoration:none;white-space:nowrap;box-shadow:0 10px 22px rgba(220,31,39,.28)}
.pill svg{width:20px;height:20px}
.pill:hover{background:#C41820}
.burger{display:none}

/* ===== HERO ===== */
.hero{position:relative;min-height:520px;padding-top:0}
.h1{font-weight:800;letter-spacing:-0.04em;line-height:.98;margin-left:57px;position:relative;z-index:2}
.h1 .l{display:block;font-size:clamp(46px,6.6vw,95px)}
.h1 .script{display:block;font-size:clamp(96px,13vw,188px);line-height:.84;margin:-4px 0 0 -8px;letter-spacing:-0.02em}
.pc{margin-left:-0.07em}
.start{margin:14px 0 0 57px;max-width:700px;position:relative;z-index:2}
.start h2{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:700;letter-spacing:-0.01em}
.start h2 svg{width:22px;height:22px;color:var(--blue)}
.chips{display:flex;flex-wrap:wrap;gap:12px 10px;margin-top:18px;max-width:680px}
.chips a{display:inline-flex;align-items:center;gap:12px;height:50px;padding:0 20px;background:#fff;border:1px solid #E1E3E8;border-radius:999px;text-decoration:none;font-size:16.5px;font-weight:600;box-shadow:0 2px 8px rgba(20,25,60,.04)}
.chips a:hover{border-color:var(--blue);color:var(--blue)}
.chips i{width:10px;height:10px;border-radius:50%;flex:none}
.art{position:absolute;right:112px;top:8px;width:446px;height:432px;z-index:1}
.art .clip{position:relative;z-index:2;width:100%;height:100%;clip-path:url(#blobHero);filter:drop-shadow(0 26px 34px rgba(20,25,60,.22))}
.art .clip img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.glass{position:absolute;z-index:1;right:-74px;top:36px;width:372px;height:auto;filter:drop-shadow(0 0 18px rgba(80,110,255,.55)) drop-shadow(0 0 30px rgba(255,90,170,.35))}
.credit{font-size:13.5px;color:var(--muted);font-weight:500}
.art .credit{position:absolute;left:0;top:calc(100% + 12px);width:100%}
.art .credit a{color:inherit}

/* ===== TILES (locked card row) ===== */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:14px;position:relative;z-index:3}
.tile{position:relative;display:block;height:236px;border-radius:var(--r);overflow:hidden;text-decoration:none;color:#fff;isolation:isolate}
.tile h3{font-size:31px;font-weight:800;letter-spacing:-0.03em;line-height:1.05;max-width:62%}
.tile p{font-size:16px;line-height:1.55;margin-top:12px;font-weight:500;max-width:52%}
.tile .tx{position:relative;z-index:2;padding:26px 24px}
.tile picture,.tile>img{position:absolute;z-index:0;top:0;right:0;height:100%;width:62%}
.tile picture img{width:100%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 46%);mask-image:linear-gradient(90deg,transparent 0,#000 46%)}
.t-cobalt{background:var(--cobalt)}.t-red{background:var(--red)}.t-navy{background:var(--navy)}
.t-lime{background:var(--lime);color:var(--ink)}
.t-lime picture{width:44%;height:74%;top:auto;bottom:0;right:22px;border-radius:999px 999px 0 0;overflow:hidden}
.t-lime picture img{-webkit-mask-image:none;mask-image:none;object-position:50% 30%}
.tile:hover h3{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px}

/* ===== SECTIONS ===== */
.sec{padding:120px 0 0}
.sec:last-of-type{padding-bottom:120px}
.h2{font-size:clamp(42px,5.4vw,78px);font-weight:800;letter-spacing:-0.045em;line-height:1}
.h2 .script{font-size:1.1em}
.lede{font-size:19px;line-height:1.55;color:var(--muted);font-weight:500;margin-top:20px;max-width:640px}
.more{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--blue);text-decoration:none}
.more svg{width:20px;height:20px}
.more:hover{text-decoration:underline}

/* library cards */
.lib{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px}
.lc{background:var(--card);border:1px solid #E4E6EB;border-radius:var(--r);padding:26px 24px 24px;display:flex;flex-direction:column}
.lc .ic{width:54px;height:54px;border-radius:12px;display:grid;place-items:center;color:#fff}
.lc .ic svg{width:26px;height:26px}
.lc h3{font-size:22px;font-weight:700;letter-spacing:-0.02em;margin-top:26px}
.lc h3 a{text-decoration:none}
.lc h3 a:hover{color:var(--blue)}
.lc p{font-size:15.5px;line-height:1.55;color:var(--muted);margin-top:8px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.tags a{font-size:13.5px;font-weight:600;background:#F0F1F4;border-radius:999px;padding:6px 12px;text-decoration:none;color:#2A3048}
.tags a:hover{background:#E2E7FB;color:var(--blue)}
.lc.browse{background:var(--cobalt);color:#fff;border:0;justify-content:space-between;text-decoration:none}
.lc.browse h3{margin-top:22px;font-size:23px}
.lc.browse p{color:#E3E9FF}
.lc.browse .go{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:18px;margin-top:24px}
.lc.browse .go span{width:52px;height:52px;border-radius:50%;background:var(--lime);color:var(--ink);display:grid;place-items:center}
.lc.browse:hover h3{text-decoration:underline}

/* today */
.dateline{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;margin-top:18px;color:#2C3148}
.dateline i{width:11px;height:11px;border-radius:50%;background:#1E9B4F}
.today{display:grid;grid-template-columns:1.18fr 1fr 1fr;grid-template-rows:auto auto;gap:16px;margin-top:40px}
.tc{border-radius:var(--r);padding:26px 30px}
.tc .k{font-size:14.5px;font-weight:700}
.tc h3{font-size:30px;font-weight:800;letter-spacing:-0.03em;line-height:1.12;margin-top:10px}
.tc p{font-size:16.5px;line-height:1.55;margin-top:10px}
.tc a.lk{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:700;font-size:16.5px;text-decoration:none}
.tc a.lk:hover{text-decoration:underline}
.tc a.lk svg{width:17px;height:17px}
.tc.big{grid-row:span 2;background:var(--cobalt);color:#fff}
.tc.big h3{font-size:clamp(30px,3vw,42px)}
.tc.big .k{color:#E3E9FF}.tc.big p{color:#E3E9FF}
.rows{margin-top:20px;display:grid;gap:10px}
.rows a{display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,.13);border-radius:10px;padding:14px 16px;font-weight:600;font-size:16px;text-decoration:none}
.rows a span:last-child{font-weight:500;color:#E3E9FF}
.rows a:hover{background:rgba(255,255,255,.22)}
.tc.white{background:#fff;border:1px solid #E4E6EB}.tc.white .k{color:var(--blue)}.tc.white p{color:var(--muted)}.tc.white a.lk{color:var(--blue)}
.tc.redc{background:var(--red);color:#fff}.tc.redc p{color:#FFFFFF}
.tc.limec{background:var(--lime)}
.tc.limec .pray{font-family:var(--script);font-style:italic;font-weight:800;font-size:25px;line-height:1.28;margin-top:12px}
.tc.navyc{background:var(--navy);color:#fff}.tc.navyc p{color:#D3DAF2}
.season{display:inline-block;width:34px;height:4px;border-radius:2px;vertical-align:middle;margin-right:8px}

/* common ground */
.cg{display:grid;grid-template-columns:480px 1fr;gap:80px;align-items:start}
.cg .art2{position:relative;margin-top:40px}
.cg .art2 .clip{position:relative;z-index:2;clip-path:url(#blobCG);aspect-ratio:480/530}
.cg .art2 .clip img{width:100%;height:100%;object-fit:cover;object-position:55% 50%}
.cg .art2 .glass2{position:absolute;z-index:1;left:250px;top:-30px;width:240px;filter:drop-shadow(0 0 16px rgba(80,110,255,.55))}
.cg .credit{margin-top:12px}
.shared{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px}
.sc{border-radius:14px;padding:22px 24px}
.sc b{display:block;font-size:22px;font-weight:700;letter-spacing:-0.02em}
.sc q{display:block;font-size:16px;line-height:1.5;margin-top:8px}
.sc cite{display:block;font-style:normal;font-size:13.5px;font-weight:700;margin-top:8px}
.sc.c1{background:var(--cobalt);color:#fff}.sc.c2{background:var(--navy);color:#fff}.sc.c3{background:var(--red);color:#fff}.sc.c4{background:var(--lime)}

/* ===== FOOTER ===== */
footer.ft{background:var(--navy);color:#fff;margin-top:120px;padding:90px 0 40px}
.fgrid{display:grid;grid-template-columns:1fr 620px;gap:80px;align-items:start}
.fbrand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:22px;text-decoration:none}
.fbrand svg{width:40px;height:40px;color:#fff;--crack:var(--navy)}
.flinks{display:flex;flex-wrap:wrap;gap:12px 34px;margin-top:30px;font-size:17px;color:#C9D0EA}
.flinks a{text-decoration:none}.flinks a:hover{text-decoration:underline;color:#fff}
.ftag{font-size:clamp(34px,3.4vw,46px);font-weight:800;letter-spacing:-0.035em;line-height:1.08;margin-top:44px}
.ftag .script{color:var(--lime)}
.note{background:#fff;color:var(--ink);border-radius:22px;padding:34px 36px}
.note h2{display:flex;align-items:center;gap:14px;font-size:24px;font-weight:800;letter-spacing:-0.02em}
.note h2 span{width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center}
.note h2 svg{width:22px;height:22px}
.note p{font-size:17px;line-height:1.65;color:#2D3248;margin-top:16px}
.note p.fine{font-size:15px;color:var(--muted);margin-top:12px}
.btns{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px;margin-top:22px}
.sec-l{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:16.5px;text-decoration:none;border-bottom:2px solid #B6C400;padding-bottom:2px}
.sec-l svg{width:16px;height:16px}
.fsmall{display:flex;flex-wrap:wrap;gap:12px 30px;justify-content:space-between;margin-top:70px;padding-top:28px;border-top:1px solid rgba(255,255,255,.16);font-size:14.5px;color:#AEB7DA}
.fsmall a{color:inherit}

/* ===== INNER PAGES ===== */
.phead{padding:40px 0 10px}
.crumbs{font-size:15px;font-weight:600;color:var(--muted)}
.crumbs a{color:var(--blue);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.ptitle{font-size:clamp(44px,6vw,88px);font-weight:800;letter-spacing:-0.045em;line-height:1;margin-top:18px;max-width:1000px}
.ptitle .script{font-size:1.1em}
.prose{max-width:760px}
.prose h2{font-size:clamp(28px,3vw,38px);font-weight:800;letter-spacing:-0.03em;line-height:1.12;margin-top:56px}
.prose h3{font-size:22px;font-weight:800;letter-spacing:-0.02em;margin-top:34px}
.prose p{margin-top:18px;font-size:19px;line-height:1.65}
.prose p.lead{font-size:23px;line-height:1.5;font-weight:500;color:#23293F;margin-top:0}
.prose ul.dots{margin-top:16px;display:grid;gap:12px}
.prose ul.dots li{position:relative;padding-left:26px;font-size:19px;line-height:1.6}
.prose ul.dots li::before{content:'';position:absolute;left:4px;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--blue)}
.prose a{color:var(--blue);text-underline-offset:3px}
.cite{display:inline-block;font-size:13px;font-weight:700;color:var(--blue);background:#E9EDFC;border-radius:6px;padding:1px 7px;margin:0 2px;text-decoration:none!important;white-space:nowrap;vertical-align:2px;line-height:1.6}
a.cite:hover{background:#D6DEFB}
span.cite{color:#2B3A8A}
blockquote.bq{margin-top:28px;padding:26px 30px;border-radius:16px;background:#fff;border:1px solid #E4E6EB}
blockquote.bq p{margin:0;font-size:21px;line-height:1.55;font-weight:500}
blockquote.bq footer{margin-top:10px;font-size:14.5px;font-weight:700;color:var(--muted)}
blockquote.bq footer a{color:var(--blue)}
blockquote.cq{border:0;background:var(--cobalt);color:#fff}
blockquote.cq p{font-family:var(--script);font-style:italic;font-weight:700;font-size:25px;line-height:1.35}
blockquote.cq footer{color:#E3E9FF}
blockquote.cq footer a{color:#fff}
.heard{display:grid;grid-template-columns:1fr 1fr;margin-top:30px;border-radius:16px;overflow:hidden}
.heard>div{padding:26px 28px}
.heard .h{background:#ECEDF1}
.heard .t{background:var(--navy);color:#fff}
.heard .t .cite{background:rgba(255,255,255,.16);color:#fff}
.heard b{display:block;font-size:14.5px;font-weight:700;margin-bottom:8px}
.heard p{margin:0!important;font-size:18px}
.notmean{margin-top:30px;padding:24px 28px;border-radius:16px;background:#FFF;border-left:6px solid var(--red)}
.notmean b{font-size:17px}
.reflect{margin-top:48px;padding:30px;border-radius:18px;background:var(--lime)}
.reflect b{font-size:15px}
.reflect p{font-size:22px;font-weight:700;letter-spacing:-0.01em;line-height:1.4;margin-top:8px!important}
.srcs{margin-top:56px;padding-top:26px;border-top:2px solid var(--ink)}
.srcs h2{font-size:22px;margin-top:0!important}
.srcs ul{margin-top:12px;display:grid;gap:6px;font-size:15.5px}
.srcs p{font-size:14px;color:var(--muted);margin-top:16px!important;line-height:1.55}
.pnav{display:flex;flex-wrap:wrap;gap:14px;margin-top:44px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:10px;height:54px;padding:0 26px;border-radius:999px;background:var(--blue);color:#fff;font-weight:700;font-size:17.5px;text-decoration:none}
.btn:hover{background:#1840BD}
.btn svg{width:20px;height:20px}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--blue);color:var(--blue)}
.tools{display:flex;gap:18px;margin-top:20px;font-size:15px;font-weight:600}
.tools a,.tools button{color:var(--muted);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* journey band (desktop + phone.png look) */
.band{background:linear-gradient(160deg,#1A3BD6 0%,#2348E4 38%,#6A55DE 62%,#D8679E 86%,#F2A1B4 100%);color:#fff;position:relative;overflow:hidden}
.band .wrap{display:grid;grid-template-columns:1fr 520px;gap:60px;align-items:center;padding:56px 0 64px}
.band .glassb{position:absolute;right:-90px;top:60px;width:320px;opacity:.38}
.yj{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 18px 0 8px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);font-weight:700;font-size:16px;text-decoration:none}
.yj span{width:32px;height:32px;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center}
.yj svg{width:18px;height:18px}
.band h1{font-size:clamp(48px,6vw,86px);font-weight:800;letter-spacing:-0.04em;line-height:1;margin-top:22px}
.band h1 em{display:block;font-family:var(--script);font-style:italic;font-weight:800;color:var(--sun);letter-spacing:-0.01em;font-size:1.08em;line-height:1.05}
.band .sub{font-size:19px;color:#EEF1FF;margin-top:14px;font-weight:500;max-width:560px}
.stepper{position:relative;margin-top:28px;max-width:600px}
.stepper ol{display:flex;justify-content:space-between;position:relative}
.stepper ol::before{content:'';position:absolute;left:15px;right:15px;top:15px;height:3px;background:rgba(255,255,255,.3)}
.stepper .bar{position:absolute;left:15px;top:15px;height:3px;background:var(--sun)}
.stepper li{position:relative;display:flex;flex-direction:column;align-items:center;width:44px}
.stepper li a,.stepper li>span{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:#fff}
.stepper i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#2A47D8;border:2px solid rgba(255,255,255,.55);font-style:normal;font-size:13px;font-weight:700}
.stepper i svg{width:15px;height:15px}
.stepper .ok i{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.stepper .now i{background:#fff;border:3px solid var(--sun);color:var(--blue)}
.stepper small{margin-top:7px;font-size:12.5px;font-weight:600;white-space:nowrap;color:#EEF1FF}
.stepper .now small{font-weight:800;color:#fff}
.stepper .soon i{opacity:.75}
.jart{position:relative}
.jart .clip{clip-path:url(#blobStep);aspect-ratio:346/272}
.jart img{width:100%;height:100%;object-fit:cover;object-position:52% 40%}
.jcard{display:flex;align-items:center;gap:14px;background:#fff;color:var(--ink);border-radius:18px;padding:18px 20px;margin-top:-26px;position:relative;z-index:2;text-decoration:none;box-shadow:0 12px 30px rgba(20,20,70,.18)}
.jcard .k{font-size:14px;font-weight:700;color:var(--blue)}
.jcard b{display:block;font-size:23px;font-weight:800;letter-spacing:-0.02em;margin-top:2px}
.jcard small{display:block;font-size:15.5px;color:var(--muted);margin-top:2px}
.jcard .go{margin-left:auto;width:52px;height:52px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;flex:none}
.jcard .go svg{width:22px;height:22px}
.band .credit{color:#F3F4FF;margin-top:12px}
.band .credit a{color:#fff}

/* step list (journey landing) */
.slist{margin-top:30px;border-top:1px solid var(--line);max-width:860px}
.slist li{border-bottom:1px solid var(--line)}
.slist li>a,.slist li>div{display:flex;align-items:center;gap:20px;padding:20px 4px;text-decoration:none}
.slist .num{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:16px;background:var(--blue);color:#fff;flex:none}
.slist li>div .num{background:#E4E6EC;color:#3D4258}
.slist b{font-size:21px;font-weight:700;letter-spacing:-0.015em}
.slist small{display:block;font-size:15px;color:var(--muted);font-weight:500}
.slist .st{margin-left:auto;font-size:14.5px;font-weight:700;color:var(--blue);display:flex;align-items:center;gap:8px;white-space:nowrap}
.slist .st svg{width:20px;height:20px}
.slist li>div .st{color:#5B6178}
.slist li>a:hover b{color:var(--blue)}

/* journey rows (hub) */
.jrows{margin-top:36px;border-top:1px solid var(--line)}
.jrows a{display:grid;grid-template-columns:24px 1fr auto;gap:22px;align-items:center;padding:28px 6px;border-bottom:1px solid var(--line);text-decoration:none}
.jrows i{width:14px;height:14px;border-radius:50%}
.jrows b{font-size:clamp(24px,2.6vw,34px);font-weight:800;letter-spacing:-0.03em}
.jrows small{display:block;font-size:17px;color:var(--muted);font-weight:500;margin-top:4px}
.jrows svg{width:28px;height:28px;color:var(--blue)}
.jrows a:hover b{color:var(--blue)}

/* endpoint band */
.endp{margin-top:70px;background:var(--navy);color:#fff;border-radius:24px;padding:44px}
.endp h2{font-size:clamp(28px,3vw,40px);font-weight:800;letter-spacing:-0.03em;margin:0!important}
.endp p{color:#D3DAF2;margin-top:10px!important}
.endp .opts{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.endp .opts a{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 22px;border-radius:999px;background:#fff;color:var(--ink);font-weight:700;text-decoration:none;font-size:16.5px}
.endp .opts a:hover{background:var(--lime)}
.endp .opts svg{width:18px;height:18px}

/* library hub */
.lsec{display:grid;grid-template-columns:320px 1fr;gap:50px;padding:46px 0;border-top:1px solid var(--line)}
.lsec h2{font-size:32px;font-weight:800;letter-spacing:-0.03em;line-height:1.1}
.lsec .ic{width:54px;height:54px;border-radius:12px;display:grid;place-items:center;color:#fff;margin-bottom:18px}
.lsec .ic svg{width:26px;height:26px}
.lsec p{color:var(--muted);font-size:18px;line-height:1.6}
.lsec ul{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px 30px}
.lsec li{font-size:17px}
.lsec li a{color:var(--blue);font-weight:600;text-underline-offset:3px}
.lsec li span{color:var(--muted)}
.status{display:inline-block;font-size:13px;font-weight:700;border-radius:999px;padding:3px 10px;background:#ECEDF1;color:#3D4258;margin-left:6px;vertical-align:2px}
.status.live{background:#DDF5E6;color:#0E6A35}

/* forms */
.form{display:grid;gap:18px;margin-top:28px;max-width:720px}
.form label{font-weight:700;font-size:16px;display:grid;gap:8px}
.form input,.form textarea,.form select{border:1px solid #C9CCD5;border-radius:12px;padding:14px 16px;font-size:17px;background:#fff;width:100%}
.form textarea{min-height:140px;resize:vertical}
.form .hint{font-weight:500;color:var(--muted);font-size:14.5px}
.result{margin-top:16px}
.sres{margin-top:26px;display:grid;gap:4px;max-width:860px}
.sres a{display:block;padding:18px 4px;border-bottom:1px solid var(--line);text-decoration:none}
.sres b{font-size:20px}.sres small{display:block;color:var(--muted);font-size:15.5px}
.sres a:hover b{color:var(--blue)}

/* mobile tab bar */
.tabs{display:none}

/* ===== RESPONSIVE ===== */
@media (max-width:1240px){
 .links{gap:0}.links>a,.links summary{padding:10px 11px}.search{width:150px}
 .art{right:40px}
 .lib{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1080px){
 .links,.search,.lang-d{display:none}
 .burger{display:block;position:relative}
 .burger summary{list-style:none;cursor:pointer;width:48px;height:48px;display:grid;place-items:center;border-radius:12px}
 .burger summary::-webkit-details-marker{display:none}
 .burger summary svg{width:28px;height:28px}
 .burger .menu{position:absolute;right:0;top:56px;width:min(92vw,360px);background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(15,20,60,.2);padding:14px;z-index:40}
 .burger .menu a{display:block;padding:12px 14px;border-radius:10px;text-decoration:none;font-weight:600;font-size:17px}
 .burger .menu a:hover{background:#F0F2FA}
 .burger .menu form{display:flex;gap:8px;padding:8px}
 .burger .menu input{flex:1;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font-size:16px}
 .burger .menu .langs{padding:10px 14px;font-size:14.5px;color:var(--muted);border-top:1px solid var(--line);margin-top:8px}
 .nav .pill{height:46px;padding:0 18px;font-size:16px;margin-right:4px}
 .hero{min-height:0}
 .h1,.start{margin-left:0}
 .art{position:relative;right:auto;top:auto;width:min(446px,100%);height:auto;aspect-ratio:446/432;margin:46px auto 40px}
 .glass{right:-40px;width:300px}
 .tiles{grid-template-columns:1fr 1fr}
 .today{grid-template-columns:1fr 1fr}.tc.big{grid-column:span 2;grid-row:auto}
 .cg{grid-template-columns:1fr;gap:20px}.cg .art2{max-width:480px}
 .fgrid{grid-template-columns:1fr;gap:50px}
 .band .wrap{grid-template-columns:1fr;gap:34px}
 .lsec{grid-template-columns:1fr;gap:16px}
}
@media (max-width:1080px){
 .jpage .top{background:#1B3CD7;color:#fff}
 .jpage .brand svg{color:#fff;--crack:#1B3CD7}
 .jpage .band .wrap{padding-top:10px}
}
@media (max-width:700px){
 body{padding-bottom:96px}
 .jpage .brand b{font-size:20px;line-height:1.08;white-space:normal;max-width:110px}
 .jart .clip{aspect-ratio:346/222}
 .band .wrap{gap:22px!important}
 .yj{height:44px;font-size:15.5px}
 .wrap{width:calc(100% - 44px)}
 .nav{height:78px}
 .brand{margin-left:0;gap:10px}.brand svg{width:42px;height:42px}.brand b{font-size:21px}
 .nav .pill{display:none}
 .h1 .l{font-size:clamp(40px,11.4vw,56px)}
 .h1 .script{font-size:clamp(84px,25vw,120px)}
 .chips a{height:44px;padding:0 15px;font-size:15px}
 .tiles{grid-template-columns:1fr;gap:12px}
 .tile{height:190px}
 .lib{grid-template-columns:1fr}
 .today{grid-template-columns:1fr}.tc.big{grid-column:auto}
 .shared{grid-template-columns:1fr}
 .sec{padding-top:84px}
 .heard{grid-template-columns:1fr}
 .lsec ul{grid-template-columns:1fr}
 .note{padding:28px 24px}
 .endp{padding:30px 24px}
 .jrows a{grid-template-columns:16px 1fr 24px;gap:14px;padding:22px 2px}
 .slist .st span{display:none}
 /* journey band = phone.png */
 .band{border-radius:0}
 .band .wrap{padding:22px 0 34px;gap:30px}
 .band h1{font-size:50px;margin-top:16px}
 .band h1 em{font-size:58px}
 .band .sub{font-size:16.5px}
 .stepper{margin-top:20px}
 .stepper li{width:40px}
 .stepper small{font-size:11px}
 .stepper i{width:30px;height:30px;font-size:12.5px}
 .jcard b{font-size:22px}
 .prose p{font-size:18px}.prose p.lead{font-size:20px}
 .tabs{display:flex;position:fixed;left:12px;right:12px;bottom:12px;height:76px;background:#fff;border-radius:26px;justify-content:space-around;align-items:center;z-index:50;box-shadow:0 -4px 24px rgba(20,20,70,.14)}
 .tabs a{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12.5px;font-weight:600;width:76px;text-decoration:none;color:#20263D;padding:6px 0}
 .tabs a svg{width:24px;height:24px}
 .tabs a[aria-current=page]{color:var(--blue);font-weight:800}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{
 .top,.tabs,footer.ft,.tools,.glass,.glassb,.pnav .ghost{display:none!important}
 body{background:#fff;padding:0;font-size:12pt}
 .band{background:none!important;color:#000}.band h1 em{color:#000}.stepper,.jcard .go{display:none}
 .cite{background:none;color:#000;padding:0}
 .reflect,.heard .t,blockquote.cq{background:#fff!important;color:#000!important;border:1px solid #000}
 a{text-decoration:none}
}

/* ===== R0 critique fixes ===== */
.clip picture,.jart .clip picture{display:block;width:100%;height:100%}
.pill.quiet{background:#fff;color:var(--red);border:2px solid var(--red);box-shadow:none;height:48px;padding:0 20px}
.pill.quiet:hover{background:#FFF1F1}
.chips a.on{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 10px 22px rgba(31,79,224,.28)}
.chips a.on i{box-shadow:0 0 0 2px #fff}
.chips a svg{width:18px;height:18px}
.pickline{margin-top:14px;font-size:16.5px;color:var(--muted);font-weight:500}
.pickline a{color:var(--blue);font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pickline a:hover{text-decoration:underline}
.pickline svg{width:16px;height:16px}
.art .credit{position:absolute;left:0;top:calc(100% + 10px);width:100%;z-index:3}
/* tiles: paintings at full colour on a plate, never dyed */
.tile picture{top:12px!important;right:12px!important;bottom:12px;height:auto!important;width:44%!important;border-radius:12px;overflow:hidden}
.tile picture img{-webkit-mask-image:none!important;mask-image:none!important}
.t-lime picture{top:auto!important;bottom:0!important;right:20px!important;height:76%!important;width:42%!important;border-radius:999px 999px 0 0}
.tile p{max-width:50%}
.tile h3{max-width:52%}
.tile .tx{height:100%;display:flex;flex-direction:column}
.tile .src{margin-top:auto;font-size:12.5px;font-weight:700;opacity:.92;max-width:52%;line-height:1.35}
.srcl{margin-top:auto!important;padding-top:16px;font-size:13px;font-weight:700;color:#3A4058!important}
/* today: two items */
.today{grid-template-columns:1.25fr 1fr!important;grid-template-rows:auto!important}
.tc.big{grid-row:auto!important}
.rite{font-size:14.5px;margin-top:6px!important;color:#E3E9FF}
.upnext{font-size:15.5px;margin-top:16px!important}
.calpick{font-size:14.5px;margin-top:12px!important;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.calpick label{font-weight:700}
.calpick select{border-radius:8px;border:0;padding:7px 10px;color:var(--ink);max-width:100%}
.obj .ans{font-size:18px;line-height:1.55;color:#fff!important;margin-top:14px!important}
.obj .cite{background:rgba(255,255,255,.18);color:#fff}
.obj blockquote{margin-top:18px;padding-left:16px;border-left:3px solid rgba(255,255,255,.7)}
.obj blockquote p{font-family:var(--script);font-style:italic;font-weight:700;font-size:22px;color:#fff!important;margin:0!important;line-height:1.3}
.obj blockquote footer{font-size:13.5px;font-weight:700;margin-top:6px;color:#FFFFFF}
.obj a.lk{color:#fff}
/* article reading template */
.reading{display:grid;grid-template-columns:minmax(0,720px) 300px;gap:80px;justify-content:space-between;padding-top:56px}
.reading .prose{max-width:none}
.reading .prose>.abody p,.reading .prose>.abody li{max-width:68ch}
.atitle{margin-top:14px!important;font-size:clamp(34px,4vw,52px);letter-spacing:-0.035em!important}
.meta{font-size:15px;color:var(--muted);font-weight:600;margin-top:10px!important}
.abody{margin-top:26px}
.rail{position:relative}
.rail-in{position:sticky;top:24px;border-left:3px solid var(--blue);padding:6px 0 6px 22px}
.rk{font-size:15px;font-weight:800}
.rcites{margin-top:12px;display:grid;gap:7px;font-size:15px;max-height:46vh;overflow:auto}
.rcites a{color:var(--blue);font-weight:700;text-decoration:none}
.rcites a:hover{text-decoration:underline}
.rcites span{color:#2B3048;font-weight:600}
.rnote{font-size:13px;color:var(--muted);margin-top:12px}
.rnext{margin-top:18px;height:48px}
.rail .tools{flex-direction:column;gap:8px;align-items:flex-start}
.sugg{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-weight:600;color:var(--muted)}
.sugg a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 14px;text-decoration:none;color:var(--ink);font-size:15px}
.sugg a:hover{border-color:var(--blue);color:var(--blue)}
@media (max-width:1080px){
 .reading{grid-template-columns:1fr;gap:30px}
 .rail{order:-1}.rail-in{position:static}
 .rcites{display:flex;flex-wrap:wrap;gap:8px 14px;max-height:none}
 .art .credit{position:static;margin-top:10px}
}
@media (max-width:700px){
 .today{grid-template-columns:1fr!important}
 .tile picture{width:42%!important}
 .rail{order:0}
}
@media print{.rail{display:none}.reading{display:block}}
/* ===== Lesson template (AptKeys depth) ===== */
.band .h1like{font-size:clamp(48px,6vw,86px);font-weight:800;letter-spacing:-0.04em;line-height:1;margin-top:22px}
.band .h1like em{display:block;font-family:var(--script);font-style:italic;font-weight:800;color:var(--sun);letter-spacing:-0.01em;font-size:1.08em;line-height:1.05}
.lhead .kick{font-size:15px;font-weight:800;color:var(--blue);margin-top:18px}
.lesson h1.atitle{font-weight:800;line-height:1.08;margin-top:6px!important}
.lesson .sum{font-size:21px;line-height:1.55;font-weight:500;color:#1B2140;margin-top:16px}
.lesson .sum>b{font-weight:800;color:var(--ink)}
.lesson .meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px!important}
.lesson .meta span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 13px;font-size:14px;color:#2B3048}
.lesson .meta span b{color:var(--ink)}
.lblock{margin-top:58px}
.lblock>h2{margin-top:0!important}
.kp{margin-top:18px;display:grid;gap:12px;counter-reset:kp}
.kp li{position:relative;padding:16px 18px 16px 58px;background:#fff;border-radius:14px;border:1px solid #E4E6EB;font-size:18px;line-height:1.55;font-weight:600}
.kp li::before{counter-increment:kp;content:counter(kp);position:absolute;left:16px;top:14px;width:30px;height:30px;border-radius:50%;background:var(--cobalt);color:#fff;font-weight:800;font-size:15px;display:grid;place-items:center}
ol.steps{margin-top:18px;display:grid;gap:14px;counter-reset:st}
ol.steps li{position:relative;padding-left:56px;font-size:19px;line-height:1.6;min-height:40px}
ol.steps li::before{counter-increment:st;content:counter(st);position:absolute;left:0;top:-2px;width:40px;height:40px;border-radius:12px;background:var(--lime);color:var(--ink);font-weight:800;display:grid;place-items:center;font-size:18px}
ol.steps b{font-weight:800}
.lite{margin-top:18px;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,var(--cobalt),#0E2A9A 70%);position:relative}
.lite-btn{all:unset;box-sizing:border-box;cursor:pointer;position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:16px;padding:28px;color:#fff}
.lite-btn:focus-visible{outline:3px solid var(--lime);outline-offset:-6px}
.lite-play{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;background:var(--red);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.lite-play svg{width:38px;height:38px;margin-left:5px}
.lite-btn:hover .lite-play{transform:translate(-50%,-50%) scale(1.06)}
.lite-t b{display:block;font-size:22px;font-weight:800;letter-spacing:-0.02em;line-height:1.25}
.lite-t small{display:block;margin-top:6px;font-size:15px;font-weight:600;color:#DCE3FF}
.lite iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vsrc{font-size:15px;color:#2B3048;margin-top:12px!important;line-height:1.5}
.vsrc svg{width:13px;height:13px;vertical-align:-1px}
.vnote{font-size:14px;color:var(--muted);margin-top:6px!important;line-height:1.5}
.gtk-h{font-size:15.5px;color:var(--muted);margin-top:8px!important}
details.faq{margin-top:12px;background:#fff;border:1px solid #E4E6EB;border-radius:14px}
details.faq summary{list-style:none;cursor:pointer;padding:18px 54px 18px 20px;position:relative}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:'+';position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:26px;font-weight:700;color:var(--blue)}
details.faq[open] summary::after{content:'\2013'}
details.faq h3{margin:0!important;font-size:19px}
details.faq p{padding:0 20px 20px;margin-top:0!important;font-size:18px}
.need{margin-top:10px;display:grid;gap:8px;font-size:15.5px;line-height:1.45}
.need li{position:relative;padding-left:22px}
.need li::before{content:'';position:absolute;left:2px;top:.5em;width:10px;height:10px;border-radius:3px;background:var(--lime);border:1.5px solid var(--ink)}
.remember{margin-top:18px!important;padding:14px 16px;border-radius:14px;background:var(--lime);font-size:16px;line-height:1.45;font-weight:700}
.remember b{display:block;font-size:13px;font-weight:800;margin-bottom:2px}
.takeit{margin-top:22px;display:grid;gap:8px}
.takeit .rk{margin-bottom:2px}
.tbtn{display:flex;align-items:center;min-height:44px;padding:0 16px;border-radius:12px;background:#fff;border:1.5px solid var(--ink);font-weight:700;font-size:15px;text-decoration:none;color:var(--ink);cursor:pointer;text-align:left}
.tbtn:hover{background:var(--ink);color:#fff}
.rail .rk{margin-top:22px}
.rail .d-only>.rk:first-child{margin-top:0}
.rel{margin-top:10px;display:grid;gap:10px;font-size:15px}
.rel a{color:var(--blue);font-weight:700;text-decoration:none}.rel a:hover{text-decoration:underline}
.rel small{display:block;color:var(--muted);font-size:13px}
ol.sources{margin-top:12px;display:grid;gap:8px;font-size:15.5px;list-style:decimal;padding-left:22px}
.nextl{display:block;margin-top:40px;padding:24px 28px;border-radius:18px;background:var(--cobalt);color:#fff!important;text-decoration:none}
.nextl span{display:block;font-size:14px;font-weight:700;color:#DCE3FF}
.nextl b{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:800;letter-spacing:-0.02em;margin-top:4px}
.nextl b svg{width:22px;height:22px}
.nextl.soon{background:#ECEDF1;color:var(--ink)!important}.nextl.soon span{color:var(--muted)}
.m-only{display:none}
@media (max-width:1080px){
 .m-only{display:block}.d-only{display:none}
 .rail{order:0}
 .m-need{margin-top:26px;padding:20px;border-radius:16px;background:#fff;border:1px solid #E4E6EB}
 .m-need .rk{font-size:15px}
}
@media (max-width:700px){
 .band .h1like{font-size:50px;margin-top:16px}.band .h1like em{font-size:58px}
 .lesson .sum{font-size:19px}
 .kp li{font-size:17px}
 .lite-play{width:64px;height:64px}.lite-t b{font-size:18px}.lite-btn{padding:18px}
}
@media print{.lite,.vnote,.takeit,.nextl,.m-need .remember{display:none}.lesson .meta span{border:0;padding:0}.kp li{border:1px solid #000}.kp li::before{background:#000}ol.steps li::before{background:#fff;border:1.5px solid #000}.band .h1like em{color:#000}}
/* hook (story opener) */
.hookc{margin-top:30px;padding:28px 30px;border-radius:20px;background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hookc .hk{display:inline-block;margin:0!important;font-size:14px;font-weight:800;background:var(--lime);color:var(--ink);border-radius:999px;padding:4px 12px}
.hookc .ht{font-size:21px;line-height:1.5;font-weight:600;margin-top:14px!important;color:#fff}
.hookc blockquote{margin-top:16px;padding-left:18px;border-left:3px solid var(--lime)}
.hookc blockquote p{font-family:var(--script);font-style:italic;font-weight:700;font-size:23px;line-height:1.35;margin:0!important;color:#fff}
.hookc blockquote footer{font-size:14px;font-weight:700;color:#C9D2F2;margin-top:8px}
/* road / cliffhanger */
.road{margin-top:60px;padding:34px;border-radius:24px;background:var(--cobalt);color:#fff}
.road .rk2{font-size:14.5px;font-weight:700;color:#DCE3FF;margin:0!important}
.roadline{display:flex;gap:6px;margin-top:12px}
.roadline li{flex:1;height:8px;border-radius:99px;background:rgba(255,255,255,.28)}
.roadline li.ok{background:#fff}.roadline li.now{background:var(--lime)}
.road h2{font-size:clamp(26px,2.8vw,34px);margin-top:18px!important;color:#fff;line-height:1.2}
.road .btn{margin-top:22px;background:#fff;color:var(--ink)}
.road .btn:hover{background:var(--lime)}
.road .soonline{color:#E3E9FF;margin-top:14px!important;font-size:17px}
/* mailing list */
.signup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:40px;align-items:start;background:#fff;border-radius:28px;padding:44px;border:1px solid #E4E6EB;margin-top:60px}
.signup h2{font-size:clamp(30px,3.4vw,46px);font-weight:800;letter-spacing:-0.035em;line-height:1.08;margin:0}
.signup .su-copy p{margin-top:12px;font-size:18px;color:#2B3048}
.su-row{display:flex;gap:10px}
.su-row input{flex:1;min-width:0;height:54px;border-radius:999px;border:1.5px solid var(--ink);padding:0 22px;font-size:17px;background:#fff}
.su-row .btn{height:54px;border:0;cursor:pointer;flex:none}
.su-opts{border:0;margin-top:16px;display:grid;gap:10px}
.su-opts legend{font-size:15px;font-weight:800;margin-bottom:8px}
.su-opts label{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:16px;line-height:1.45;cursor:pointer}
.su-opts input[type=checkbox]{width:22px;height:22px;accent-color:var(--cobalt);flex:none}
.su-opts label>span{flex:1;min-width:200px}
.su-opts select{height:38px;border-radius:10px;border:1.5px solid var(--line);padding:0 10px;font-size:15px;background:#fff;margin-left:32px}
.su-p{font-size:14px;color:var(--muted);margin-top:14px;line-height:1.5}
.su-p a{color:var(--blue)}
.su-status{font-size:15.5px;font-weight:700;margin-top:10px;color:var(--ink)}
.su-status:empty{display:none}
.prose .signup p{margin-top:12px}
.ft .signup{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:inherit;margin-top:40px}
.ft .signup .su-copy p,.ft .su-p{color:inherit;opacity:.85}
.ft .su-p a{color:inherit}
.ft .signup .script{color:var(--lime)}
@media (max-width:900px){.signup{grid-template-columns:1fr;gap:20px;padding:28px 22px}.su-row{flex-direction:column}.su-row .btn{justify-content:center}.su-opts select{margin-left:32px}}
@media print{.signup,.road .btn{display:none}.hookc,.road{background:#fff!important;color:#000!important;border:1px solid #000}.hookc *,.road *{color:#000!important}}
.ft .su-opts select{color:var(--ink)}
@media (max-width:700px){.stepper.many li{width:26px}.stepper.many i{width:24px;height:24px;font-size:11px;border-width:1.5px}.stepper.many i svg{width:12px;height:12px}.stepper.many small{display:none}.stepper.many ol::before,.stepper.many .bar{left:12px;top:12px}.stepper.many ol::before{right:12px}}
.crumbs a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose a.pill{color:#fff}.prose a.pill.quiet{color:var(--red)}.t-red .src{color:#fff;opacity:1}.obj .cite{background:rgba(0,0,0,.22);color:#fff}
/* phone overflow fixes (rail check, Oct 4) */
.reading>*,.signup>*{min-width:0}
@media (max-width:900px){.signup{grid-template-columns:minmax(0,1fr)}.su-opts label>span{min-width:0}}
@media (max-width:420px){.signup{padding:24px 18px}.signup h2{font-size:28px;overflow-wrap:anywhere}}
@media (max-width:480px){.stepper small{font-size:10.5px;letter-spacing:-.01em}
 .stepper li:first-child a,.stepper li:first-child>span{align-items:flex-start}.stepper li:last-child a,.stepper li:last-child>span{align-items:flex-end}}
.su-opts{min-width:0}.su-opts select{max-width:calc(100% - 32px)}
.su-opts>*,.su-opts label{min-width:0}.su-opts select{min-width:0;width:calc(100% - 32px)}
/* glass: subtle frame behind the art; never covers art or credits (critic R1 fix 2) */
.glass{top:20px;right:-82px;height:400px;width:auto}
.credit{position:relative;z-index:3}
.art .credit{position:absolute}
@media (max-width:1080px){.glass{top:16px;right:-16px;height:calc(100% - 32px);width:auto;opacity:.9}}
@media (max-width:700px){.glass{right:-12px}.cg .art2 .glass2{left:auto;right:-12px;top:-14px;width:auto;height:46%}.band .glassb{right:-60px;width:240px;opacity:.28}}
html,body{overflow-x:clip}
.cg .art2 .glass2{left:auto;right:-70px;top:-50px;width:230px;height:auto}
@media (max-width:700px){.cg .art2 .glass2{right:-12px;top:-24px;width:120px;height:auto}}
/* ===== Catholic identity pass (Oct 4) ===== */
:root{--navy:#4B34C9}
.feastbar{background:#fff;border-bottom:3px solid var(--lit);font-size:14px;font-weight:600;color:var(--ink)}
.feastbar .wrap{display:flex;align-items:center;gap:10px;min-height:38px;flex-wrap:wrap;row-gap:2px;padding-top:4px;padding-bottom:4px}
.fb-x{width:18px;height:18px;color:var(--lit);flex:none}
.fb-d{color:var(--muted);font-weight:500}
.fb-n{color:var(--ink);font-weight:800;text-decoration:none}.fb-n:hover{text-decoration:underline}
.fb-c{margin-left:auto;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-weight:500}
.fb-c i{width:12px;height:12px;border-radius:50%;background:var(--lit);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line)}
@media (max-width:700px){.feastbar{font-size:13px}.fb-c{display:none}}
.xdiv{display:flex;align-items:center;gap:18px;max-width:420px;margin:70px auto 0;color:var(--lit)}
.xdiv span{flex:1;height:2px;background:linear-gradient(90deg,transparent,var(--lit))}.xdiv span:last-child{background:linear-gradient(90deg,var(--lit),transparent)}
.xdiv svg{width:30px;height:30px;flex:none}
.lesson .xdiv{margin:48px auto 0}
.sopen{font-size:17px;line-height:1.5;color:var(--muted);margin:0 0 14px;max-width:640px}
.sopen .q{font-family:var(--script);font-style:italic;font-weight:700;color:var(--ink);font-size:19px}
.sopen .who{white-space:nowrap}
/* light footer: no dark backgrounds */
footer.ft{background:#fff;color:var(--ink);border-top:4px solid var(--lit)}
.fbrand svg{color:var(--ink)}
.flinks{color:#3A4058}.flinks a:hover{color:var(--blue)}
.ftag .script{color:var(--blue)}
.ft .note{background:var(--bg);border:1px solid var(--line)}
.ft .signup{background:var(--bg);border-color:var(--line)}
.ft .signup .script{color:var(--blue)}
.ft .signup .su-copy p,.ft .su-p{opacity:1;color:#2B3048}
.ft .su-p a{color:var(--blue)}
.ft .fsmall{color:var(--muted)}.ft .fsmall a{color:var(--blue)}
.ft .fsmall{border-top-color:var(--line)}
@media (max-width:1080px){.art{aspect-ratio:auto}.art .clip{aspect-ratio:446/432;height:auto}.art .credit{position:relative;top:auto;margin-top:12px}
 .glass{height:calc(min(446px,100vw - 40px)*0.9686 - 32px)}}
.tile{height:auto;min-height:236px}.tile .tx{padding-bottom:22px}
.vabout{margin-top:14px;padding:16px 18px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:16px}.vabout p{margin:0!important}.vabout p+p{margin-top:8px!important}
.sacd{margin:28px 0 8px;padding:22px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.sacd figcaption{font-size:17px;margin-bottom:14px}
.sacg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sacg section{border-top:6px solid var(--g);background:var(--bg);border-radius:14px;padding:14px 14px 12px}
.sacg h3{margin:0!important;font-size:18px;color:var(--g)}
.sacg p{font-size:14.5px;line-height:1.45;margin:6px 0 10px!important;color:var(--muted)}
.sacg ol{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.sacg li{background:#fff;border-radius:10px;padding:9px 12px;border-left:4px solid var(--g);margin:0!important}
.sacg li b{display:block;font-size:16px}.sacg li span{font-size:13.5px;color:var(--muted)}
.sacn{font-size:14px;color:var(--muted);margin-top:12px!important}
@media (max-width:700px){.sacg{grid-template-columns:1fr}}
.books{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 18px}
.books li{margin:0!important}.books small{color:var(--muted)}
.chnav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}
.chnav a,.chnav span{min-width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:#fff;text-decoration:none;font-weight:700;font-size:15px}
.chnav span{background:var(--ink);color:#fff;border-color:var(--ink)}
.vtext .vs{margin:0 0 10px!important;line-height:1.7}.vtext sup{font-weight:800;color:var(--blue);margin-right:2px}
.vs:target{background:#FFF6CC;border-radius:6px}
.xref{display:inline-block;font-size:14px;font-weight:600;color:var(--muted);margin-left:4px}
.chips a.soonj{background:#F1F2F5;border-style:dashed;color:#3A4058;box-shadow:none}
.soon-b{font-size:12px;font-weight:800;background:#E4E6EB;color:#3A4058;border-radius:999px;padding:2px 8px}
.hookc blockquote footer a{color:#fff;text-decoration:underline}
/* r3: one main link on the Today card; follow-up questions; prayer pages */
.tbtn{display:inline-flex;align-items:center;gap:10px;margin-top:22px;min-height:54px;padding:12px 24px;border-radius:999px;background:#fff;color:var(--cobalt);font-weight:700;font-size:17.5px;text-decoration:none;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.tbtn:hover{background:#F2F5FF}.tbtn svg{width:18px;height:18px}
.tmore{margin-top:16px;font-size:15.5px;line-height:1.6}.tc.big .tmore a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.fqh{margin-top:18px;font-weight:700;font-size:15px}
.fqs{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
.fqs a{font-size:15.5px;font-weight:600;text-decoration:underline;text-underline-offset:3px;color:inherit}
.prayer{background:#fff;border:1px solid #E4E6EB;border-left:6px solid var(--lit,#7B3FE4);border-radius:14px;padding:18px 22px;margin:16px 0}
.prayer p{margin:0 0 8px}.prayer footer{font-size:14px;color:#4A5160}
.ord{counter-reset:o;list-style:none;padding:0}.ord>li{counter-increment:o;position:relative;padding-left:46px;margin:26px 0}
.ord>li::before{content:counter(o);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;display:grid;place-items:center}
.ord>li>h3{margin:0 0 6px}
.notice{background:#FFF4D6;border-radius:14px;padding:16px 20px;margin:18px 0}
.exam h3{margin-top:26px}.exam .cmd{font-style:italic}
/* r3: The Case, Stand firm, Voices */
.stand .standg{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.25fr);gap:22px;margin-top:36px;align-items:start}
.mich{margin:0;border-radius:var(--r);overflow:hidden;background:#fff}
.mich img{width:100%;height:auto;display:block;aspect-ratio:1200/1500;object-fit:cover;object-position:50% 20%}
.mich .credit{position:static;padding:10px 14px;font-size:13px;color:#3A4152;background:#fff}
.armor{background:var(--cobalt);color:#fff;border-radius:var(--r);padding:26px 26px}
.armor .k,.casecol .k{font-weight:800;font-size:15px;letter-spacing:.02em;margin:0 0 10px}
.armor ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.armor li{display:flex;flex-direction:column;background:rgba(255,255,255,.12);border-radius:10px;padding:10px 14px}
.armor li b{font-size:18px}.armor li span{font-size:14.5px;color:#E3E9FF}
.armor .srcl{margin-top:10px}.armor a.cite{color:#fff}
.armor .nfb{margin-top:14px;font-size:15.5px;line-height:1.55;color:#fff}
.casecol{background:#fff;border-radius:var(--r);padding:24px 24px;border:1px solid #E4E6EB}
.casecol .k{color:var(--red)}
.cq2{display:block;padding:12px 0;border-bottom:1px solid #ECEEF2;text-decoration:none;color:var(--ink)}
.cq2 b{display:block;font-size:18px;line-height:1.3}.cq2 span{display:block;font-size:15px;color:var(--muted);margin-top:3px}
.cq2:hover b{color:var(--blue)}
@media(max-width:1000px){.stand .standg{grid-template-columns:1fr 1fr}.casecol{grid-column:span 2}}
@media(max-width:640px){.stand .standg{grid-template-columns:1fr}.casecol{grid-column:auto}}
.case .ck{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--red);font-size:16px}
.case .ck svg{width:26px;height:26px;color:var(--red)}
.case .cq{font-size:clamp(38px,5.4vw,72px);line-height:1.02;letter-spacing:-.035em;font-weight:900;margin:14px 0 0;max-width:16ch}
.case .ca{font-size:clamp(21px,2.2vw,27px);line-height:1.4;font-weight:700;margin-top:22px;max-width:44ch;border-left:8px solid var(--red);padding-left:20px}
.evs{list-style:none;padding:0;margin:0}
.ev{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;margin-top:26px}
.evn{width:52px;height:52px;border-radius:50%;background:var(--cobalt);color:#fff;font-weight:900;font-size:22px;display:grid;place-items:center}
.ev h3{margin:8px 0 6px;font-size:22px}
.pull{margin:18px 0 0;padding:22px 26px;border-radius:16px;background:#FFF4D6;border-left:8px solid var(--sun)}
.pull p{font-size:20px;line-height:1.45;font-weight:600;margin:0}.pull footer{margin-top:10px;font-size:14px;color:#3A4152}
.careful{background:#fff;border:1px solid #E4E6EB;border-radius:var(--r);padding:22px 26px}
.grace{background:#EAF7EE;border-radius:var(--r);padding:22px 26px}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:34px}
.ccard{display:flex;flex-direction:column;gap:10px;border-radius:var(--r);padding:26px;text-decoration:none;color:#fff;min-height:260px}
.ccard.c0{background:var(--cobalt)}.ccard.c1{background:var(--red)}.ccard.c2{background:#7B3FE4}
.ccard h2{font-size:28px;line-height:1.1;letter-spacing:-.02em;margin:0}.ccard p{font-size:16px;line-height:1.5;margin:0;color:#fff}
.ccard .ck2{font-weight:800;font-size:14px}.ccard .go{margin-top:auto;font-weight:800;display:flex;align-items:center;gap:8px}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-top:14px}
.vcard{background:#fff;border:1px solid #E4E6EB;border-radius:16px;overflow:hidden}
.lite.sm{margin-top:0;border-radius:0}.lite.sm .lite-play{width:60px;height:60px;top:50%}.lite.sm .lite-play svg{width:28px;height:28px}
.vct{padding:12px 16px 16px;margin:0;display:flex;flex-direction:column;gap:4px}.vct b{font-size:16.5px;line-height:1.3}.vct span{font-size:14px;color:var(--muted)}.vct a{font-size:14px;font-weight:700}
.vtopics{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.vtopics a{background:#fff;border:1px solid #D9DBE1;border-radius:999px;padding:8px 16px;font-weight:700;text-decoration:none;color:var(--ink)}
.vline{color:var(--muted);margin-top:4px}
.armor a.cite,.armor .cite{color:#fff!important;background:rgba(255,255,255,.2)!important;border-color:transparent!important}
.chnav i{font-style:normal;color:var(--muted);padding:0 2px;align-self:center}
/* Bible reader (r2 repair) */
.bible{max-width:44rem;margin:0 auto}
.bible .btr{font-size:15px;color:var(--muted);margin:10px 0 0;line-height:1.5}
.bible .btr b{color:var(--ink)}
.bible .chnav{margin:22px 0 26px}
.bible .vtext{font-size:19px;line-height:1.75;max-width:68ch}
.bible .vs{position:relative;padding-left:2.6em;margin:0 0 .55em}
.bible .vs sup{position:absolute;left:0;top:.55em;width:2em;text-align:right;font-size:12px;font-weight:800;color:var(--muted);line-height:1}
.bible .vs.v1{padding-top:4px}
.bible .dc{float:left;font-family:'Playfair Display',serif;font-style:italic;font-weight:900;font-size:4.1em;line-height:.8;margin:6px 10px 0 0;color:var(--blue,#1D44D8)}
.bible .xm{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#FFE14D;color:var(--ink);font-size:12px;font-weight:800;text-decoration:none;vertical-align:2px}
.bible .xm:focus-visible,.bible .xm:hover{outline:2px solid var(--ink)}
.bible .qnotes{margin:30px 0 8px;padding:18px 22px;border:1px solid var(--line);border-radius:18px;background:#fff}
.bible .qnotes h2{font-size:18px;margin:0 0 8px}
.bible .qnotes ol{margin:0;padding-left:1.3em;line-height:1.6}
.bible .vs:target{background:#FFF6BF;border-radius:8px}
@media (max-width:600px){.bible .vtext{font-size:18px}.bible .vs{padding-left:2.1em}.bible .vs sup{width:1.6em}}
.vout{display:block;position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:var(--ink)}
.vout img{width:100%;height:100%;object-fit:cover;display:block}
.vout span{position:absolute;left:10px;bottom:10px;background:#fff;color:var(--ink);font-weight:800;font-size:14px;padding:6px 12px;border-radius:999px;display:inline-flex;gap:6px;align-items:center}
.vct .vne{font-size:13px;color:var(--muted)}
.sacg li a{display:block;color:inherit;text-decoration:none}
.sacg li a:hover b,.sacg li a:focus-visible b{text-decoration:underline}
.sacg li:has(a:hover){box-shadow:0 0 0 2px var(--g)}
.gosp{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);border-radius:16px;padding:14px 16px;margin:14px 0}
.gosp h4{font-size:16px;margin:0 0 6px}
.gosp p{font-size:15.5px;line-height:1.6;margin:0}
.gosp sup{font-size:11px;font-weight:800}
.gosp details{margin-top:6px}.gosp summary{cursor:pointer;font-weight:700;text-decoration:underline}
.gosp .gsrc{font-size:13px;margin-top:8px}
.gosp a{color:inherit}
.cpick{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin:8px 0 18px}
.cpick label{font-weight:800;margin-right:8px}
.cpick select{font:inherit;font-size:16px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff;min-width:240px}
.cp-out{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.cp-out:empty{display:none}
.cp-out .tbtn2{display:inline-flex;align-items:center;padding:10px 16px;border-radius:999px;border:1.5px solid var(--ink);color:var(--ink);font-weight:700;text-decoration:none}
/* Heroes of the faith strip */
.heroes{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:16px;margin-top:22px}
.heroes .hh{padding:6px 4px}
.heroes .hh .k{font-weight:800;font-size:15px;letter-spacing:.02em;color:var(--red);margin-bottom:6px}
.heroes .hh p:not(.k){font-size:16px;line-height:1.55}
.hero1{border-radius:20px;padding:18px 18px 14px;color:#fff;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}
.hero1::after{content:"";position:absolute;right:-14px;bottom:-14px;width:86px;height:86px;opacity:.16;background:
 linear-gradient(#fff,#fff) center/26% 100% no-repeat,linear-gradient(#fff,#fff) center/100% 26% no-repeat}
.hero1 b{font-size:18px;font-weight:800}
.hero1 span{font-size:13.5px;opacity:.9}
.hero1 blockquote{font-family:var(--script);font-style:italic;font-weight:700;font-size:19px;line-height:1.35;margin:4px 0 2px}
.hero1 figcaption .cite{background:#fff;color:var(--ink)}
.h-a{background:var(--red)}.h-b{background:var(--cobalt)}.h-c{background:#157A42}
@media (max-width:900px){.heroes{grid-template-columns:1fr}}
.cp-out a.btn{color:#fff!important;text-decoration:none}
.vout{background:linear-gradient(135deg,#1D44D8,#2F5BFF)}
/* ===== Lesson plate palette, capped at four (critic R2): navy = scene, blue = Catechism, green = practice, red = watch-out ===== */
.lesson{--pl-scene:#0D1A44;--pl-ccc:var(--cobalt);--pl-practice:#157A42;--pl-watch:var(--red)}
@media screen{
.lesson .hookc{background:var(--pl-scene)}
.lesson .hookc .hk{background:#fff;color:var(--pl-scene)}
.lesson blockquote.cq{background:var(--pl-ccc)}
.lesson .kp li::before{background:var(--pl-ccc)}
.lesson .heard .h{background:#fff;border:1px solid var(--line);border-left:6px solid var(--pl-watch)}
.lesson .heard .t{background:var(--pl-ccc)}
.lesson .notmean{border-left-color:var(--pl-watch)}
.lesson .reflect,.lesson .remember{background:var(--pl-practice);color:#fff}
.lesson .reflect .cite,.lesson .remember .cite{background:#fff;color:var(--ink)}
.lesson .reflect a,.lesson .remember a{color:#fff}
.lesson ol.steps li::before{background:var(--pl-practice);color:#fff}
.lesson .need li::before{background:var(--pl-practice);border-color:var(--pl-practice)}
}
@media screen{.remember{background:#157A42;color:#fff}.remember .cite{background:#fff;color:var(--ink)}.need li::before{background:#157A42;border-color:#157A42}}
/* ===== Round 4 home: one idea per viewport ===== */
.hero{min-height:calc(100svh - 150px);display:block}
.pickline a{font-size:17.5px}
@media (max-width:700px){
 .hero .art{display:none}
 .hero{min-height:calc(100svh - 120px)}
 .chips{gap:8px}
 .chips a{height:40px;padding:0 14px;font-size:14.5px;gap:8px}
 .pickline{margin-top:16px}
 .pickline a{display:flex;justify-content:space-between;white-space:normal;background:var(--cobalt);color:#fff;padding:14px 18px;border-radius:16px;margin-top:8px}
}
.gday{max-width:46rem;margin:24px auto 0;padding:64px 0 40px;border-top:1px solid var(--line)}
.gmeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-weight:700;font-size:15px;color:var(--ink)}
.gmeta i{width:10px;height:10px;border-radius:50%;background:var(--lit,#178A45)}
.gmeta .gdesc{font-weight:500;color:var(--muted)}
.gday .h2{margin-top:14px}
.gref{font-weight:800;font-size:18px;color:var(--cobalt);margin-top:10px}
.gtext{margin-top:22px;font-size:22px;line-height:1.65;color:var(--ink)}
.gtext sup{font-size:12px;font-weight:800;color:var(--muted);margin:0 4px 0 2px}
.gtext details{margin-top:12px}.gtext summary{cursor:pointer;font-weight:800;font-size:17px;color:var(--cobalt)}
.gtext details p{margin-top:12px}
.gsrc{margin-top:16px;font-size:14px;color:var(--muted)}
.gacts{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;margin-top:28px}
.gfoot{margin-top:28px;font-size:14px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.gfoot select{font:inherit;padding:6px 8px;border-radius:10px;border:1px solid var(--line);background:#fff}
.deeper{max-width:46rem;margin:0 auto 70px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.deeper a{display:flex;flex-direction:column;gap:4px;padding:20px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.deeper a b{font-size:18px}.deeper a span{font-size:15px;color:var(--muted)}
.deeper a:hover b{color:var(--cobalt)}
@media (max-width:700px){.gtext{font-size:19px}.deeper{grid-template-columns:1fr}.gday{padding-top:48px}}
.searchi{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);margin-right:10px}
.searchi svg{width:18px;height:18px}
@media (max-width:900px){.searchi{display:none}}
.gfoot .rite{color:var(--muted);font-size:13.5px}
@media (max-width:700px){
 .h1 .l{font-size:clamp(34px,10.2vw,46px)}
 .h1 .script{font-size:clamp(76px,22vw,104px)}
 .chips a.soonj{display:none}
 .start h2{font-size:18px}
}
/* ===== Voices player (round 4) ===== */
.vp-head{padding-bottom:10px}.vp-head .lede{font-size:20px}
.vp{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:28px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:22px;margin-top:22px;box-shadow:0 30px 60px -30px rgba(20,25,60,.18)}
.vp-screen{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:radial-gradient(120% 120% at 20% 10%,#2F5BFF 0%,#1D44D8 45%,#0D1A44 100%)}
.vp-screen iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vp-play{position:absolute;inset:0;width:100%;border:0;background:transparent;color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font:inherit;font-weight:800;font-size:17px}
.vp-play svg{width:84px;height:84px;padding:22px;border-radius:50%;background:#fff;color:var(--cobalt);box-shadow:0 18px 40px rgba(0,0,0,.25);transition:transform .2s}
.vp-play:hover svg,.vp-play:focus-visible svg{transform:scale(1.06)}
.vp-play:focus-visible{outline:3px solid #fff;outline-offset:-6px}
.vp-priv{font-size:13px;color:var(--muted);margin:10px 4px 0}
.vp-upnext{margin-top:18px}
.vp-k{font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--red)}
.vp-next{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.vp-next button{width:100%;display:flex;gap:14px;align-items:center;text-align:left;border:0;background:transparent;padding:10px 12px;border-radius:14px;cursor:pointer;font:inherit;color:var(--ink)}
.vp-next button:hover{background:#F2F4FA}
.vp-next button[aria-current]{background:#EEF2FF}
.vp-n{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);font-weight:800;font-size:14px}
.vp-next button[aria-current] .vp-n{background:var(--cobalt);color:#fff;border-color:var(--cobalt)}
.vp-nt b{display:block;font-size:15.5px;line-height:1.3}.vp-nt small{color:var(--muted);font-size:13.5px}
.vp-side{padding:6px 8px}
.vp-t{font-size:30px;line-height:1.12;letter-spacing:-0.02em;margin-top:8px}
.vp-by{color:var(--muted);margin-top:8px;font-size:15px}
.vp-side h3{font-size:15px;margin-top:22px;color:var(--ink)}
.vp-pts{margin:10px 0 0;padding-left:1.1em;display:grid;gap:10px;font-size:17px;line-height:1.55}
.vp-ccc{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.vp-ccc a{display:inline-flex;padding:8px 14px;border-radius:999px;background:var(--cobalt);color:#fff;font-weight:700;font-size:14.5px;text-decoration:none}
.vp-note{margin-top:24px;font-size:13px;color:var(--muted);line-height:1.5}
.vp-all{margin-top:34px}.vp-all>summary{cursor:pointer;font-weight:800;font-size:18px;color:var(--cobalt);padding:14px 0}
@media (max-width:900px){.vp{grid-template-columns:1fr;padding:14px;border-radius:22px}.vp-t{font-size:25px}}
/* ===== Evening Prayer session (round 4) ===== */
body.session{background:linear-gradient(180deg,#F7F7F5 0%,#EEF1FB 100%);min-height:100svh}
.sbar{display:flex;justify-content:space-between;align-items:center;max-width:52rem;margin:0 auto;padding:18px 22px}
.sbar .brand svg{width:34px;height:34px;color:var(--ink)}
.sclose{font-weight:700;color:var(--ink);text-decoration:none;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:#fff}
.sess{max-width:44rem;margin:0 auto;padding:4vh 24px 140px}
.sess section{padding:6vh 0 4vh}
.sess.js section{min-height:calc(100svh - 230px)}
.sk{font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--cobalt)}
.stitle{font-size:clamp(52px,9vw,96px);font-weight:800;letter-spacing:-0.04em;line-height:1;margin-top:14px}
.stitle .script{font-size:1.15em}
.slede{font-size:23px;line-height:1.5;color:var(--muted);margin-top:22px;max-width:32rem}
.sbegin{margin-top:40px;font:inherit;font-size:22px;font-weight:800;color:#fff;background:var(--cobalt);border:0;border-radius:999px;padding:20px 54px;cursor:pointer;box-shadow:0 20px 40px -14px rgba(29,68,216,.6)}
.sbegin:hover{transform:translateY(-1px)}
.sh{font-size:clamp(34px,5vw,48px);letter-spacing:-0.03em;line-height:1.08;margin-top:10px;outline:none}
.sv{margin:28px 0 0}
.sv p,.sp{font-family:var(--script);font-weight:700;font-style:italic;font-size:clamp(25px,3.3vw,32px);line-height:1.45;color:var(--ink);margin-top:24px}
.sv p{margin:0}
.sv footer{margin-top:10px;font-size:15px;font-weight:700;color:var(--muted)}
.shint{margin-top:28px;font-size:19px;color:var(--muted)}
.snote{margin-top:26px;font-size:16px;line-height:1.6;color:var(--muted)}
.slinks{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:26px}
.slinks a{font-weight:700;color:var(--cobalt)}
.sctl{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px;box-shadow:0 20px 50px -20px rgba(20,25,60,.35);z-index:20}
.sctl[hidden]{display:none}
.sctl button{font:inherit;font-weight:800;border:0;border-radius:999px;cursor:pointer;height:52px;min-width:52px;background:#F1F3F8;color:var(--ink);font-size:20px}
.sctl .snext{background:var(--cobalt);color:#fff;padding:0 34px;font-size:18px}
.sdots{display:flex;gap:6px}.sdots i{width:8px;height:8px;border-radius:50%;background:#D5D9E5}.sdots i.on{background:var(--cobalt)}
.sv p,.sp{font-family:var(--sans);font-style:normal;font-weight:500;font-size:clamp(23px,3vw,29px);line-height:1.55;letter-spacing:-0.005em}
.stitle:focus,.sh:focus{outline:none}
/* Find a parish, round 4 */
.cpick{padding:22px;border-radius:24px}
.cp-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:12px}
.cp-row:first-child{margin-top:0}
.cp-n{width:30px;height:30px;border-radius:50%;background:var(--cobalt);color:#fff;font-weight:800;display:grid;place-items:center;font-size:14px}
.cp-row input{font:inherit;font-size:16px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);min-width:220px;flex:1}
.cp-go{border:0;cursor:pointer;font:inherit;font-weight:800;color:#fff!important}
.cp-priv{font-size:13px;color:var(--muted);margin-top:10px!important}
.cp-res{margin-top:12px}
.cp-msg{font-size:16px;color:var(--muted)}
.cp-list{list-style:none;padding:0!important;margin:8px 0 0!important;display:grid;gap:10px}
.cp-list li{margin:0!important;padding:14px 16px;border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:4px;background:#fff}
.cp-list li::before{display:none}
.cp-list b{font-size:17px}.cp-list span{color:var(--muted);font-size:15px}
.cp-acts{display:flex;gap:16px;margin-top:4px}.cp-acts a{font-weight:700;color:var(--cobalt)}
.cp-attr{font-size:12.5px;color:var(--muted);margin-top:10px!important}
.cp-when{margin-top:16px;padding:16px 18px;border-radius:16px;background:#EEF2FF}
.cp-when h3{margin:0 0 6px!important;font-size:17px}
.cp-dir{font-size:14px;color:var(--muted);margin-top:16px!important}
.cp-dir .cp-out{display:inline}
/* Bible, round 4: one column, prev/next, no pill grid */
.bnav{display:flex;align-items:center;gap:10px;margin:22px 0 30px}
.bnav a,.bnav .off{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:#fff;font-size:20px;font-weight:800;text-decoration:none;color:var(--ink)}
.bnav .off{opacity:.35}
.bnav a:hover{border-color:var(--ink)}
.bjump select{font:inherit;font-weight:700;font-size:16px;height:48px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink)}
.bpn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:36px 0 10px}
.bpn a{display:flex;flex-direction:column;gap:4px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:#fff;text-decoration:none;color:var(--ink)}
.bpn a.nx{text-align:right;background:var(--ink);color:#fff;border-color:var(--ink)}
.bpn small{font-size:13px;font-weight:700;opacity:.7}.bpn b{font-size:19px}
/* Mass diagram (R4) */
.massd{margin:28px 0 8px;padding:24px;border-radius:22px;background:#fff;border:1px solid var(--line)}
.massd figcaption{display:flex;flex-direction:column;gap:4px;margin-bottom:18px}
.massd figcaption b{font-size:20px;letter-spacing:-.01em}
.massd figcaption span{font-size:15px;color:#4a5160}
.massg{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:stretch}
.massj{align-self:center;font-size:26px;color:#9aa3b2}
.massg section{border-top:5px solid var(--g);border-radius:16px;background:color-mix(in srgb,var(--g) 5%,#fff);padding:16px}
.massg h3{margin:0 0 2px;font-size:19px;color:var(--g)}
.massg .md{margin:0 0 12px;font-size:15px;color:#4a5160}
.massg ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.massg details{background:#fff;border:1px solid var(--line);border-radius:12px}
.massg summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;min-height:44px}
.massg summary::-webkit-details-marker{display:none}
.massg .mn{flex:0 0 28px;height:28px;border-radius:50%;background:var(--g);color:#fff;font-weight:700;font-size:14px;display:grid;place-items:center}
.massg .mt{flex:1;font-weight:600;font-size:16px}
.massg .mp{font-size:13px;color:#5b6475}
.massg details[open] summary{border-bottom:1px solid var(--line)}
.massg .mbody{padding:12px 14px;font-size:15px}
.massg .mbody blockquote{margin:0 0 8px;padding-left:12px;border-left:3px solid var(--g)}
.massg .mbody blockquote p{margin:0 0 4px}
.massg .mbody footer{font-size:13px}
.massg .mbody>p{margin:0}
@media (max-width:760px){.massg{grid-template-columns:1fr}.massj{transform:rotate(90deg);justify-self:center}.massd{padding:16px}}
.massg .mbody blockquote p{font-size:16px;line-height:1.5}
/* First Mass in the pew (A) */
.spos{display:flex;align-items:center;gap:10px;margin:0 0 18px}
.pb{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;font-weight:800;font-size:18px;letter-spacing:.01em;color:#fff;background:#1D44D8}
.pb::before{content:"";width:10px;height:10px;border-radius:50%;background:#fff}
.pb-sit{background:#0E7C4A}.pb-kneel{background:#C8102E}.pb-your{background:#5b2bd1}
.pe{font-size:16px;color:#4a5160;font-weight:600}
.sess .sp.sm{font-size:clamp(19px,2.4vw,24px);line-height:1.5}
.sess .sp .cite,.sess .sp a.c{font-size:14px}
/* Question finder (D) */
.qf{display:flex;gap:10px;margin:8px 0 14px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px;box-shadow:0 10px 30px rgba(20,30,60,.08)}
.qf input{flex:1;border:0;font:inherit;font-size:19px;padding:10px 16px;background:transparent;min-width:0}
.qf input:focus{outline:none}.qf:focus-within{border-color:#1D44D8;box-shadow:0 0 0 3px rgba(29,68,216,.18)}
.qf button{border:0;border-radius:999px;background:#1D44D8;color:#fff;font-weight:700;font-size:17px;padding:0 26px;cursor:pointer;min-height:48px}
.qres{display:grid;gap:14px;margin:18px 0}
.qcount{font-size:14px;color:#5b6475;margin:0}
.qa{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 22px}
.qa .qp{margin:0 0 4px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1D44D8}
.qa h2{margin:0 0 8px;font-size:22px;line-height:1.25}.qa h2 a{color:inherit;text-decoration:none}
.qa .qt{margin:0 0 12px;font-size:17px;line-height:1.55;color:#2a3040}
.qa .qs{margin:0 0 10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:14px}
.qa .qs b{margin-right:4px;font-size:13px;color:#5b6475}
.qa .qgo{font-weight:700;font-size:15px}
.qnone{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}.qnone h2{margin:0 0 8px}
.qmiss,.qnote{font-size:15px;color:#5b6475}
/* OCIA kit (E) */
.khero{padding:72px 0 36px}.ktitle{font-size:clamp(44px,7vw,88px);line-height:.98;letter-spacing:-.035em;margin:10px 0 18px;font-weight:800}
.klede{font-size:clamp(19px,2vw,23px);max-width:40rem;color:#3a4150;line-height:1.5}
.kcta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.btn.ghost{background:#fff;color:#1D44D8;border:1.5px solid #1D44D8}
.kwrap{padding-bottom:80px}
.kstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin:8px 0 56px}
.kstrip div{background:#fff;padding:22px;display:flex;flex-direction:column;gap:4px}.kstrip b{font-size:28px;letter-spacing:-.02em}.kstrip span{color:#5b6475;font-size:15px}
.ksec{font-size:clamp(28px,3.4vw,40px);letter-spacing:-.02em;margin:0 0 8px}.kp{color:#4a5160;font-size:18px;max-width:44rem;margin:0 0 20px}
.klist{list-style:none;margin:0 0 48px;padding:0;display:grid;gap:10px}
.kr{display:grid;grid-template-columns:72px 1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 18px}
.kq svg{width:72px;height:72px;display:block}
.kt{display:flex;flex-direction:column;gap:2px}.kn{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1D44D8}.kt b{font-size:20px}.kh{color:#5b6475;font-size:15px}
.ka{display:flex;gap:8px;flex-wrap:wrap}.ka a{font-size:15px;font-weight:600;padding:9px 14px;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:#1D44D8;background:#f6f8ff;min-height:40px;display:inline-flex;align-items:center}
.ksponsor{margin:0 0 56px;border-radius:28px;padding:44px;background:linear-gradient(135deg,#1D44D8,#3b5bea);color:#fff}
.ksponsor h2{font-size:clamp(30px,4vw,48px);letter-spacing:-.025em;margin:6px 0 12px;color:#fff}.ksponsor p{font-size:18px;max-width:40rem;color:#e8edff}
.ksponsor .kick{color:#cfd9ff}.ksponsor .cite{background:rgba(255,255,255,.18);color:#fff}
.ksponsor .btn{background:#fff;color:#1D44D8}.ksponsor .btn.ghost{background:transparent;color:#fff;border-color:#fff}
.kuse{list-style:none;padding:0;margin:0 0 56px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:k}
.kuse li{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:6px;counter-increment:k}
.kuse li::before{content:counter(k);width:30px;height:30px;border-radius:50%;background:#0E7C4A;color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.kuse b{font-size:19px}.kuse span{color:#4a5160;font-size:16px}
.kmore{margin:0 0 48px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 22px}.kmore summary{font-weight:700;font-size:18px;cursor:pointer;min-height:32px}.kmore h3{margin:22px 0 10px}.kmore .klist{margin-bottom:10px}
.knote h2{font-size:22px}.knote li{font-size:16px;color:#4a5160}
@media (max-width:760px){.kstrip{grid-template-columns:1fr 1fr}.kuse{grid-template-columns:1fr 1fr}.kr{grid-template-columns:56px 1fr}.kq svg{width:56px;height:56px}.ka{grid-column:1/-1}.ksponsor{padding:28px}.khero{padding-top:44px}}
/* Verse-to-sources (B) */
.vs .sx{display:inline-block;font:600 11px/1 var(--sans,inherit);letter-spacing:.04em;color:#1D44D8;background:#eef2ff;border-radius:999px;padding:4px 8px;text-decoration:none;vertical-align:2px;white-space:nowrap}
.xpanel{margin:48px 0 24px;padding-top:28px;border-top:1px solid var(--line)}.xpanel h2{font-size:26px;letter-spacing:-.015em;margin:0 0 6px}
.xlede{font-size:15px;color:#5b6475;margin:0 0 16px}.xlist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.xlist>li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;scroll-margin-top:90px}.xlist>li:target{border-color:#1D44D8;box-shadow:0 0 0 3px rgba(29,68,216,.15)}
.xh{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.xh b{font-size:16px;margin-right:4px}.xc{display:flex;flex-wrap:wrap;gap:6px}
.xlist details{margin-top:8px}.xlist summary{cursor:pointer;font-size:14px;font-weight:600;color:#1D44D8;min-height:28px}
.cx{margin:8px 0;padding-left:18px;font-size:15px;color:#2a3040}.cx li{margin:4px 0}
.fxs{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px}.fx blockquote{margin:0;padding-left:12px;border-left:3px solid #0E7C4A}.fx blockquote p{margin:0;font-size:16px;line-height:1.5}
.fw{margin:4px 0 0;font-size:13px;color:#5b6475}
/* Early Church time machine (C) */
.tl-hero{padding:80px 0 36px}.tl-title{font-size:clamp(46px,8vw,104px);line-height:.95;letter-spacing:-.04em;font-weight:800;margin:10px 0 20px}
.tl-arrow{color:#1D44D8}.tl-lede{font-size:clamp(18px,2vw,22px);max-width:42rem;color:#3a4150;line-height:1.5}
.tl-bar{position:sticky;top:0;z-index:20;background:rgba(247,247,245,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.tl-barin{display:flex;align-items:center;gap:18px;padding-top:10px;padding-bottom:10px;overflow-x:auto}
.tl-year{font-weight:800;font-size:22px;letter-spacing:-.02em;min-width:5.5em;font-variant-numeric:tabular-nums}
.tl-filters{display:flex;gap:8px;flex-wrap:nowrap}.tl-filters button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;min-height:40px;color:#1b2030}
.tl-filters button.on{background:#0f1730;color:#fff;border-color:#0f1730}
.tl-legend{display:flex;justify-content:space-between;margin:28px 0 8px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.tl-legend .lf{color:#1D44D8}.tl-legend .lb{color:#0E7C4A}
.tl{list-style:none;margin:0 0 60px;padding:0;position:relative}
.tl::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:linear-gradient(#1D44D8,#0E7C4A);opacity:.25}
.tl-row{display:grid;grid-template-columns:1fr 120px 1fr;align-items:start;margin:0 0 28px}
.tl-yr{grid-column:2;grid-row:1;display:flex;justify-content:center;position:sticky;top:76px;z-index:2}
.tl-yr span{background:#0f1730;color:#fff;font-weight:800;font-size:15px;padding:7px 12px;border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap}
.tl-l{grid-column:1;grid-row:1;display:grid;gap:16px}.tl-r{grid-column:3;grid-row:1;display:grid;gap:16px}
.tl-c{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px 24px;box-shadow:0 8px 28px rgba(20,30,60,.05)}
.tl-faith{border-top:4px solid #1D44D8}.tl-bible{border-top:4px solid #0E7C4A}
.tl-w{margin:0 0 6px;font-size:13px;font-weight:700;letter-spacing:.04em;color:#5b6475;display:flex;align-items:center;gap:6px}
.tl-dot{width:9px;height:9px;border-radius:50%;background:#1D44D8}.tl-bible .tl-dot{background:#0E7C4A}.tl-tp{font-weight:600}
.tl-c h3{margin:0;font-size:24px;letter-spacing:-.015em;line-height:1.2}.tl-who{margin:2px 0 12px;color:#4a5160;font-weight:600;font-size:15px}
.tl-c blockquote{margin:0 0 12px;padding:0}.tl-c blockquote p{font-size:19px;line-height:1.5;margin:0 0 6px;color:#141a2b}.tl-c blockquote footer{font-size:13px;color:#5b6475}
.tl-why{margin:0;font-size:15px;color:#3a4150}
.tl-c.hide,.tl-row.hide{display:none}
@media (max-width:820px){.tl::before{left:8px}.tl-row{grid-template-columns:1fr;padding-left:26px}.tl-yr,.tl-l,.tl-r{grid-column:1;grid-row:auto;justify-content:flex-start}.tl-yr{position:static;margin-left:-26px}.tl-l,.tl-r{margin-top:12px}.tl-r:empty,.tl-l:empty{display:none}.tl-legend{display:none}.tl-hero{padding-top:48px}}
.tl-note{max-width:44rem;margin:0 auto 40px}
@media (max-width:820px){.tl::before{left:8px}.tl-i,.tl-faith,.tl-bible{justify-content:flex-start;padding-left:26px}.tl-c{width:100%}.tl-legend{display:none}.tl-hero{padding-top:48px}}
/* restrained scroll reveal (shared) */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
/* Lesson first screen (R5 storytelling) */
.lhero{background:var(--paper,#F7F7F5);position:relative;overflow:hidden}
.lhero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:48px 0 56px;min-height:min(78vh,760px)}
.lh-j{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:#1D44D8;text-decoration:none;background:#eef2ff;border-radius:999px;padding:8px 14px}
.lh-j svg{width:18px;height:18px}.lh-n{color:#4a5160;font-weight:600;padding-left:8px;border-left:1px solid #c9d2f5}
.lh-t{font-size:clamp(52px,7.2vw,112px);font-weight:800;letter-spacing:-.045em;line-height:.95;margin:22px 0 10px;color:#0b1020}
.lh-hook{font-family:var(--script);font-style:italic;font-weight:800;color:#1D44D8;font-size:clamp(28px,3.2vw,44px);line-height:1.1;margin:0 0 18px}
.lh-sum{font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:#2a3040;max-width:36rem;margin:0 0 24px}
.lh-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.lh-meta{color:#5b6475;font-size:15px;font-weight:600}
.lh-step{margin-top:28px;max-width:34rem}.lhero .stepper{color:#1b2030}
.lh-art .clip{clip-path:url(#blobStep);aspect-ratio:346/300}.lh-art img{width:100%;height:100%;object-fit:cover}
.lh-art .credit{margin-top:10px}
.lhead{margin-top:6px}
/* varied rhythm inside the lesson */
ol.steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
ol.steps li{background:#fff;border:1px solid var(--line);border-radius:18px;padding:64px 18px 18px;font-size:17px}
ol.steps li::before{left:18px;top:18px}
@media (max-width:1080px){.lhero-in{grid-template-columns:1fr;gap:26px;min-height:0;padding:28px 0 36px}.lh-art{order:-1}.lh-art .clip{aspect-ratio:346/200}}
@media (max-width:700px){.lh-t{font-size:48px;margin-top:16px}.lh-hook{font-size:26px}.lh-sum{font-size:17px}.lh-step{display:none}.lh-art .clip{aspect-ratio:346/170}.lhero-in{padding-top:14px}}
.lh-art .clip{clip-path:none;border-radius:28px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(20,30,60,.45)}
.lhero .stepper small{color:#4a5160}.lhero .stepper ol::before{background:#dfe3ee}
.lhero .stepper .now small{color:#0b1020}
/* Journey hub: a path, not a list (R5) */
.jsteps{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:64px;align-items:start}
.js-intro{position:sticky;top:96px}.js-intro h2{font-size:clamp(34px,3.6vw,52px);letter-spacing:-.03em;margin:6px 0 12px!important}.js-intro p{font-size:17px;color:#3a4150}.js-intro .btn{margin-top:14px}
.jsteps .slist{margin-top:0;border-top:0;max-width:none;position:relative;padding-left:0}
.jsteps .slist::before{content:"";position:absolute;left:23px;top:30px;bottom:30px;width:2px;background:linear-gradient(var(--blue),#c9d2f5)}
.jsteps .slist li{border-bottom:0;margin:0 0 12px;position:relative}
.jsteps .slist li>a,.jsteps .slist li>div{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px 20px 18px 4px;gap:18px}
.jsteps .slist li>a{transition:transform .25s ease,box-shadow .25s ease}.jsteps .slist li>a:hover{transform:translateY(-2px);box-shadow:0 16px 36px -18px rgba(20,30,60,.35)}
.jsteps .slist .num{width:46px;height:46px;margin-left:0;position:relative;left:0;box-shadow:0 0 0 6px var(--paper,#F7F7F5)}
.jsteps .slist li>a,.jsteps .slist li>div{margin-left:0}
@media (max-width:900px){.jsteps{grid-template-columns:1fr;gap:20px}.js-intro{position:static}}
@media (prefers-reduced-motion:reduce){.jsteps .slist li>a{transition:none}.jsteps .slist li>a:hover{transform:none}}
.prose .js-intro a.btn,.js-intro .btn{color:#fff;text-decoration:none}
/* Library: first screen of real tools, then a shelf grid (R5) */
.libhead{padding-bottom:20px}.libq{max-width:46rem;margin-top:22px}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,auto);gap:14px;margin-top:26px}
.bt{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;text-decoration:none;color:#0b1020;transition:transform .25s ease,box-shadow .25s ease;position:relative;overflow:hidden}
.bt:hover{transform:translateY(-3px);box-shadow:0 20px 40px -22px rgba(20,30,60,.4)}
.bt .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:#fff;margin-bottom:auto}.bt .ic svg{width:22px;height:22px}
.bt b{font-size:21px;letter-spacing:-.015em;margin-top:18px}.bt span:last-child{color:#4a5160;font-size:15px}
.bt.big{grid-column:span 2;grid-row:span 2;background:linear-gradient(150deg,#1D44D8,#3b5bea 60%,#6A55DE);color:#fff;border:0}
.bt.big b{font-size:clamp(30px,3vw,42px);letter-spacing:-.03em}.bt.big span:last-child{color:#e3e9ff;font-size:18px}.bt.big .ic{background:rgba(255,255,255,.2)!important}
.shelves{margin-top:64px}.shead h2{font-size:clamp(30px,3.4vw,44px);letter-spacing:-.025em;margin:0 0 6px}.shead p{color:#4a5160;font-size:17px;max-width:44rem}
.lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0 72px}
.lgrid .lsec{display:flex;flex-direction:column;gap:6px;padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff}
.lgrid .lsec>div:first-child{display:flex;align-items:center;gap:12px}.lgrid .lsec .ic{width:40px;height:40px;margin:0;border-radius:10px}.lgrid .lsec .ic svg{width:20px;height:20px}
.lgrid .lsec h2{font-size:22px}.lgrid .lsec p{font-size:15px;margin-top:8px}.lgrid .lsec ul{grid-template-columns:1fr;gap:6px;margin-top:10px}.lgrid .lsec li{font-size:15px}
@media (max-width:1000px){.bento{grid-template-columns:repeat(2,1fr)}.lgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.bento{grid-template-columns:1fr 1fr;grid-auto-rows:minmax(120px,auto);gap:10px}.bt{padding:16px;border-radius:18px}.bt b{font-size:17px;margin-top:12px}.bt span:last-child{font-size:13px}.bt.big{grid-row:span 1}.bt.big b{font-size:26px}.lgrid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.bt{transition:none}.bt:hover{transform:none}}
/* The Case: verdict first screen, varied evidence (R5) */
.chero{min-height:min(72vh,700px);display:flex;flex-direction:column;justify-content:center;padding-bottom:30px}
.case .chero .cq{max-width:18ch}
.cverdict{margin-top:30px;max-width:46rem;background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px 28px;box-shadow:0 24px 48px -30px rgba(20,30,60,.35)}
.cvk{display:block;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}
.case .cverdict .ca{border-left:0;padding-left:0;margin-top:8px;max-width:none}
.cvgo{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:700;color:var(--blue);text-decoration:none}.cvgo svg{width:18px;height:18px}
.cg2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch}
.cg2 .lblock{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;margin:0}
@media (max-width:860px){.cg2{grid-template-columns:1fr}.chero{min-height:0}}
.tlfeat{display:grid;grid-template-columns:1fr auto;gap:4px 18px;margin-top:28px;max-width:46rem;padding:22px 24px;border-radius:22px;background:#0f1730;color:#fff;text-decoration:none}
.tlfeat .tlf-k{grid-column:1;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#9fb3ff}.tlfeat b{grid-column:1;font-size:24px;letter-spacing:-.02em}
.tlfeat span:not(.tlf-k):not(.tlf-go){grid-column:1;color:#cfd6ea;font-size:15px}.tlf-go{grid-column:2;grid-row:1/4;align-self:center;width:44px;height:44px;border-radius:50%;background:#fff;color:#0f1730;display:grid;place-items:center}.tlf-go svg{width:20px;height:20px}
.chg{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.cart .clip{border-radius:28px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 60px -30px rgba(20,30,60,.45)}.cart img{width:100%;height:100%;object-fit:cover}.cart .credit{margin-top:10px}
@media (max-width:1000px){.chg{grid-template-columns:1fr;gap:20px}.cart{order:-1}.cart .clip{aspect-ratio:16/9}}
@media (max-width:700px){.cart .clip{aspect-ratio:16/8}}
/* Home art visible on phones (R5): a small framed icon beside the short headline lines */
@media (max-width:700px){
 .hero{position:relative}
 .hero .art{display:block;position:static;width:auto;height:auto;margin:0;aspect-ratio:auto}
 .hero .art .glass{display:none}
 .hero .art .clip{position:absolute;right:0;top:46px;width:100px;height:100px;z-index:0;filter:drop-shadow(0 12px 16px rgba(20,25,60,.25))}
 .hero .art .credit{display:block;position:static;font-size:11.5px;line-height:1.4;margin-top:12px;color:#5b6475;max-width:none}
 .hero .h1,.hero .start{position:relative;z-index:1}
}
@media (max-width:360px){.hero .art .clip{width:84px;height:84px;top:40px}}

}
/* =====================================================================
   STONE & INCENSE DESIGN SYSTEM (round 6)
   One place for tokens and components. Older page CSS is loaded inside
   @layer legacy, so everything here wins without specificity tricks.
   Values follow critique/grok-r4-design/REPLY.md.
   ===================================================================== */

/* ---------- 1. TOKENS ---------- */
:root{
  /* colour */
  --ds-ink:#0B1230; --ds-accent:#1f4fe0; --ds-bg:#f7f7f5; --ds-surface:#fff;
  --ds-hair:#e4e2dc; --ds-muted:#5c6478; --ds-credit:#716b60; /* REPLY.md asks #8a8478; that is 3.5:1, under WCAG AA at 11px, so the same hue darkened to 4.9:1 */
  --ds-cobalt:#1D44D8; --ds-red:#DC1F27; --ds-lime:#D6E236; --ds-navy:#4B34C9; /* "navy" as set in the Oct 4 identity pass */
  /* 8px spacing grid */
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px; --s6:48px; --s7:56px; --s8:64px; --s12:96px;
  --ds-stack:12px;            /* gap inside a stack */
  --ds-between:64px;          /* between sections */
  --ds-sec:48px;              /* section top padding (phone) */
  --ds-gutter:24px;
  /* radii */
  --ds-r-sm:12px; --ds-r:16px; --ds-r-lg:28px; --ds-r-pill:999px;
  /* type scale: display 40/48 at 390px to 72 at 1440px; accent 56 to 96 (about 1.4x) */
  --ds-fs-display:clamp(40px, calc(28.11px + 3.048vw), 72px);
  --ds-lh-display:calc(var(--ds-fs-display) * 1.15 + 2px);   /* 48px at 40, never under 1.15 */
  --ds-ls-display:calc(var(--ds-fs-display) * -0.02);         /* -0.8px at 40 */
  --ds-fs-accent:clamp(56px, calc(41.14px + 3.81vw), 96px);
  --ds-fs-h2:clamp(28px, calc(23.54px + 1.143vw), 40px);
  --ds-fs-h3:clamp(20px, calc(18.51px + .381vw), 24px);
  --ds-fs-lede:20px; --ds-lh-lede:30px;
  --ds-fs-body:17px; --ds-lh-body:26px;
  --ds-fs-small:15px; --ds-lh-small:22px;
  --ds-fs-cite:13px;
  --ds-measure:62ch;
  /* components */
  --ds-pill-h:48px; --ds-row-h:56px; --ds-ctl-h:56px; --ds-field-h:56px;
  --ds-tabs-clear:104px;      /* bottom bar 76px + 12px inset + 16px air */
  /* legacy names now point at the tokens */
  --ink:var(--ds-ink); --blue:var(--ds-accent); --muted:var(--ds-muted); --line:var(--ds-hair); --bg:var(--ds-bg);
}
/* narrower than the 390px reference phone: scale display type with the screen so the headline keeps its lines */
@media (max-width:389px){:root{--ds-gutter:16px; --ds-fs-display:clamp(32px, 10.256vw, 40px); --ds-fs-accent:clamp(44px, 14.36vw, 56px)}}
@media (min-width:768px){:root{--ds-fs-body:18px; --ds-lh-body:28px; --ds-gutter:32px}}
@media (min-width:1024px){:root{--ds-sec:96px; --ds-gutter:40px}}

html,body{background:var(--ds-bg)}
body{font-size:var(--ds-fs-body); line-height:var(--ds-lh-body); color:var(--ds-ink)}
.wrap{width:min(1328px, 100% - 2*var(--ds-gutter))}

/* ---------- 2. TYPE ---------- */
/* display: every page title on every template */
main h1, .stitle{
  font-size:var(--ds-fs-display); line-height:var(--ds-lh-display); font-weight:700;
  letter-spacing:var(--ds-ls-display); max-width:100%; overflow-wrap:break-word; color:inherit;
}
/* the accent: Playfair italic, 1.4x, always inside the column */
main h1 .script, .stitle .script, .band h1 em, .h1 .script{
  font-family:var(--script); font-style:italic; font-weight:800;
  font-size:var(--ds-fs-accent); line-height:1.15; letter-spacing:-0.01em;
  color:var(--ds-accent); max-width:100%;
}
.band h1 em{color:var(--sun)}
.h1 .l{font-size:inherit; display:block}
.h1 .script{display:block; margin:0}
/* section and card headings */
.h2, .lblock>h2, .abody h2, .prose>h2, .shead h2, .ksec, .tl-note h2, .js-intro h2, .xpanel h2,
.su-copy h2, .endp h2, .road h2, .srcs h2, .knote h2, .ksponsor h2, .vp-all section>h2, .qnone h2{
  font-size:var(--ds-fs-h2); line-height:1.2; font-weight:700; letter-spacing:-0.015em;
}
.ccard h2, .ccard h3, .lsec h2, .qa h2, .tl-c h3, .ev h3, .faq h3, .faq summary, .kmore h3, .vp-t, .bt b, .kt b,
.lgrid .lsec h2, .cg2 .lblock>h2, .kuse b, .massd figcaption b, .sh{
  font-size:var(--ds-fs-h3); line-height:1.3; font-weight:700; letter-spacing:-0.01em;
}
.sh{font-size:var(--ds-fs-h2); line-height:1.2}
.h2 .script, .lblock>h2 .script, .su-copy h2 .script, .endp h2 .script{font-size:1.2em; line-height:1}
/* lede: 20/30, weight 500 */
.lede, .lh-sum, .slede, .klede, .tl-lede, .band .sub, p.lead, .prose p.lead, .shead p, .kp{
  font-size:var(--ds-fs-lede); line-height:var(--ds-lh-lede); font-weight:500; color:var(--ds-ink);
  max-width:var(--ds-measure);
}
.band .sub{color:#F2F4FF}
.lh-hook{font-size:22px; line-height:32px}
/* body: 17/26 phone, 18/28 from 768px, 62 characters wide */
.prose p, .prose li, .abody p, .abody li, .lblock>p, .lblock li, .ev p, .faq p, .tl-c blockquote p,
.ksponsor p, .vp-pts li, .js-intro p, .su-copy p, .endp p, .heard p, .vabout p, .qa .qt, .tl-note p,
.knote li, .kuse span, .gtext p, .cp-msg, .snote, .shint, .careful p, .grace p, .hookc .ht{
  font-size:var(--ds-fs-body); line-height:var(--ds-lh-body); max-width:var(--ds-measure);
}
/* secondary: 15/22 */
.ccard p, .lsec p, .lgrid .lsec li, .tl-who, .tl-why, .kh, .kstrip span, .bt span:last-child, .xlede,
.cx, .fx blockquote p, .vp-by, .vp-nt small, .massg .md, .massg .mbody, .pe, .lh-meta, .ds-small, .vp-panel h3, .btr, ol.sources li, .ds-note{
  font-size:var(--ds-fs-small); line-height:var(--ds-lh-small);
}
/* captions, notes, crumbs */
.crumbs{font-size:14px; line-height:20px; font-weight:600; color:var(--ds-muted)}
.vnote, .gsrc, .qnote, .qmiss, .vp-note, .vp-priv, .srcs p, .fine, .su-p, .cp-attr, .rnote, .fw, .rite{
  font-size:13px; line-height:20px; color:var(--ds-muted)}
.credit, .art .credit, .lh-art .credit, .cart .credit, .band .credit{font-size:11px; line-height:16px; color:var(--ds-credit); font-weight:500}
.band .credit{color:#E9ECFF}
.kick, .sk, .vp-k, .cvk, .tlf-k, .tl-w, .rk, .hk, .ck, .ds-eyebrow{
  font-size:13px; line-height:16px; font-weight:700; letter-spacing:.06em; text-transform:uppercase}
/* citations: 13px, muted, after the sentence */
.cite, span.cite{
  font-size:var(--ds-fs-cite); font-weight:600; line-height:18px; color:var(--ds-muted);
  background:transparent; border:1px solid var(--ds-hair); border-radius:6px; padding:0 6px; margin:0 0 0 4px; vertical-align:1px;
}
a.cite:hover{color:var(--ds-accent); border-color:currentColor}
:is(.ds-navy,.ds-cobalt,.ds-red,.ksponsor,.heard .t,.obj,.armor,.hookc,blockquote.cq,.endp,.band,.reflect,.remember,.lesson .reflect,.lesson .remember,.road,.tlfeat) .cite{
  color:#fff; border-color:rgba(255,255,255,.45); background:transparent}

/* ---------- 3. SPACING (8px grid) ---------- */
.phead, .khero, .tl-hero, .chero{padding-top:var(--ds-sec)}
.lesson>section, .case>section, .case>.cg2, .prose>section, .kwrap>section, .kwrap>details, .shelves,
.tl-note, .bible .xpanel, .gday, .deeper, .jsteps, .signup, .endp{margin-top:var(--ds-between)}
.lesson>section.hookc{margin-top:var(--s4)}
.stack, .ds-stack{display:flex; flex-direction:column; gap:var(--ds-stack)}
.prose p+p, .abody p+p{margin-top:var(--s2)}
main h1+.lede, main h1+p{margin-top:var(--s2)}

/* ---------- 4. HEADER + FEAST BAR ---------- */
.feastbar{position:static; font-size:12px; font-weight:600; line-height:16px; border-bottom:0; box-shadow:inset 0 -2px 0 var(--lit)}
.feastbar .wrap{min-height:32px; height:32px; padding-top:0; padding-bottom:0; flex-wrap:nowrap; overflow:hidden; white-space:nowrap; gap:8px}
.feastbar .fb-x{width:14px; height:14px}
@media (max-width:767px){
  .nav{height:64px}
  .brand{margin-left:0; gap:10px}
  .brand svg{width:36px; height:36px}
  .brand b{font-size:20px}
}

/* ---------- 5. COMPONENTS ---------- */
/* buttons */
.btn{height:auto; min-height:var(--ds-ctl-h); padding:0 var(--s3); border-radius:var(--ds-r-pill); font-size:17px; font-weight:700}
.ds-cta{display:flex; align-items:center; gap:var(--s1); min-height:var(--ds-ctl-h); padding:var(--s1) var(--s3);
  background:var(--ds-cobalt); color:#fff; border-radius:var(--ds-r); text-decoration:none; font-weight:700; font-size:17px; line-height:22px;
  box-shadow:0 12px 24px -12px rgba(29,68,216,.6)}
.ds-cta small{font-weight:600; font-size:14px; opacity:.85; margin-left:auto; white-space:nowrap}
.ds-cta svg{width:20px; height:20px; flex:none}
.ds-cta:hover{background:var(--ds-accent)}
.ds-textbtn{display:inline-flex; align-items:center; gap:var(--s1); min-height:48px; font-weight:700; font-size:16px; text-decoration:none; color:var(--ds-accent)}
.ds-textbtn svg{width:18px; height:18px}

/* pill: 48px, one line, 16/600, radius 999, padding 0 16, gap 8 */
.ds-pill, .chips a, .tl-filters button, .sugg a, .ka a, .vp-ccc a, .lh-j{
  display:inline-flex; align-items:center; gap:var(--s1); height:var(--ds-pill-h); min-height:var(--ds-pill-h);
  padding:0 var(--s2); border-radius:var(--ds-r-pill); white-space:nowrap;
  font-size:16px; font-weight:600; line-height:1; text-decoration:none;
  background:var(--ds-surface); color:var(--ds-ink); border:1px solid var(--ds-hair); box-shadow:none; cursor:pointer;
}
.chips a.on, .chips a[aria-current], .tl-filters button.on, .ds-pill.on, .ds-pill[aria-pressed=true], .vp-ccc a{
  background:var(--ds-accent); border-color:var(--ds-accent); color:#fff; box-shadow:none}
.chips a:hover, .tl-filters button:hover, .sugg a:hover, .ka a:hover{border-color:var(--ds-ink); color:var(--ds-ink)}
.chips a.on:hover, .tl-filters button.on:hover{color:#fff; border-color:var(--ds-accent)}
.chips i{width:8px; height:8px}
.chips a.on i{box-shadow:0 0 0 2px #fff}
.ds-pills, .chips, .tl-filters, .sugg, .ka, .vp-ccc{display:flex; flex-wrap:wrap; gap:var(--s1)}
.tl-filters{flex-wrap:nowrap}
.lh-j{background:#eef2ff; border-color:transparent; color:var(--ds-accent)}

/* row: 56px, hairline, 16 semibold title, 14 secondary, 20px icon, chevron */
.ds-rows{display:block; border-top:1px solid var(--ds-hair)}
.ds-row, .deeper a.ds-row{display:flex; flex-direction:row; align-items:center; gap:var(--s2); min-height:var(--ds-row-h); padding:var(--s1) 0;
  border-bottom:1px solid var(--ds-hair); text-decoration:none; color:var(--ds-ink); background:none}
.ds-row>svg:first-child{width:20px; height:20px; color:var(--ds-accent); flex:none}
.ds-row>svg:last-child{width:16px; height:16px; color:var(--ds-muted); flex:none; transform:rotate(-90deg); margin-left:auto}
.ds-rt, .deeper a .ds-rt{display:flex; flex-direction:column; gap:2px; min-width:0; color:var(--ds-ink); font-size:16px}
.ds-rt b{font-size:16px; line-height:20px; font-weight:600}
.ds-rt span{font-size:14px; line-height:20px; color:var(--ds-muted)}
.ds-row:hover b{color:var(--ds-accent)}

/* saturated cards: the locked cobalt / red / chartreuse / navy */
.ds-card{border-radius:var(--ds-r-lg); padding:var(--s4) var(--s3); border:0}
.ds-navy{background:var(--ds-navy); color:#fff}
.ds-cobalt{background:var(--ds-cobalt); color:#fff}
.ds-red{background:var(--ds-red); color:#fff}
.ds-lime{background:var(--ds-lime); color:var(--ds-ink)}
:is(.ds-navy,.ds-cobalt,.ds-red) a{color:#fff}
:is(.ds-navy,.ds-cobalt,.ds-red) .ds-textbtn{color:#fff}

/* frame: paintings. 4:5, 220px tall on phone, radius 28, face kept, credit 11px under */
.ds-frame, .lh-art .clip, .cart .clip{border-radius:var(--ds-r-lg); overflow:hidden; clip-path:none; filter:none; box-shadow:0 24px 48px -28px rgba(20,30,60,.45)}
.ds-frame img, .lh-art .clip img, .cart .clip img{width:100%; height:100%; object-fit:cover; object-position:50% 20%}
@media (max-width:799px){
  .lh-art .clip, .cart .clip{aspect-ratio:4/5; height:220px; width:176px; margin:0}
  .lh-art, .cart{display:flex; flex-direction:column; align-items:flex-start}
  .lh-art .credit, .cart .credit{margin-top:var(--s1); max-width:none}
}

/* field: 56px, radius 16 */
.qf{height:auto; min-height:var(--ds-field-h); padding:4px; border-radius:var(--ds-r); border:1px solid var(--ds-hair); box-shadow:none; gap:4px; margin:var(--s3) 0 var(--s2)}
.qf input{font-size:17px; padding:0 var(--s2); height:46px}
.qf button{min-height:46px; height:46px; border-radius:12px; font-size:16px; padding:0 var(--s3); background:var(--ds-accent)}

/* ---------- 6. HOME ---------- */
.hero{min-height:0; padding:var(--s3) 0 0}
/* short phones (iPhone SE and similar): keep the Start button above the bottom bar */
@media (max-width:700px) and (max-height:700px){
  .pickline{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
  .hero{padding-top:var(--s2)} .start{margin-top:var(--s2)}
}
@media (max-width:700px) and (max-height:659px){
  .start h2{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
}
@media (max-width:389px){.hero{padding-top:var(--s2)} .start{margin-top:var(--s2)} .pickline{margin-top:var(--ds-stack)}}
.hero .h1{margin:0; max-width:100%}
.start{margin:var(--s3) 0 0; max-width:640px}
.start h2{font-size:16px; line-height:24px; font-weight:600; gap:var(--s1)}
.start h2 svg{width:20px; height:20px}
.chips{margin-top:var(--ds-stack); max-width:640px}
.pickline{margin-top:var(--s2); font-size:15px; line-height:22px; color:var(--ds-muted)}
.pickline+.ds-cta{margin-top:var(--ds-stack)}
.chips a.soonj{border-style:dashed; background:#F3F3F1; color:var(--ds-muted)}
/* painting: blob beside the headline on desktop only */
@media (min-width:800px){
  .hero{position:relative; min-height:520px}
  .hero .art{position:absolute; right:0; top:var(--s3); width:clamp(300px, 32vw, 446px); height:auto; aspect-ratio:446/432; margin:0; display:block}
  .hero .art .clip{position:relative; width:100%; height:100%; clip-path:url(#blobHero); -webkit-clip-path:url(#blobHero); filter:none}
  .hero .art .glass{display:block}
  .hero .art .credit{position:absolute; top:calc(100% + 8px); left:0; width:100%}
  .start{max-width:min(640px, 100% - clamp(300px, 32vw, 446px) - 32px)}
  .ds-cta{display:inline-flex; max-width:520px}
}
@media (min-width:800px) and (max-width:1279px){.hero .art .glass{display:none}}
@media (min-width:800px) and (max-width:1023px){.start{max-width:none} .hero .art{width:280px} .hero .h1{max-width:calc(100% - 300px)}}
@media (max-width:799px){
  .hero .art{position:static; display:block; width:176px; height:auto; margin:var(--s4) 0 0; aspect-ratio:auto}
  .hero .art .glass{display:none}
  .hero .art .clip{position:static; width:176px; height:220px; aspect-ratio:4/5; clip-path:none; -webkit-clip-path:none; filter:none; border-radius:var(--ds-r-lg); overflow:hidden; box-shadow:0 24px 48px -28px rgba(20,30,60,.45)}
  .hero .art .clip img{width:100%; height:100%; object-fit:cover; object-position:50% 20%}
  .hero .art .credit{position:static; display:block; margin-top:var(--s1); width:min(300px, 100vw - 48px); max-width:none}
  .chips a.soonj{display:none}
}
/* Today's Gospel on home: one sentence in a navy card */
.gday{max-width:46rem; border-top:0; padding:var(--s4) var(--s3)}
.gday.ds-card{margin:var(--ds-between) auto 0}
.gday .gmeta{font-size:13px; line-height:16px; font-weight:600; display:flex; align-items:center; gap:var(--s1); color:inherit; opacity:.9}
.gday .gmeta i{width:8px; height:8px; border-radius:50%; background:var(--lit,#1E8E4F); box-shadow:0 0 0 2px rgba(255,255,255,.6)}
.gday .ds-eyebrow{margin-top:var(--s3); color:var(--ds-lime)}
.gline{margin:var(--ds-stack) 0 0}
.gline p{font-family:var(--script); font-style:italic; font-weight:700; font-size:22px; line-height:32px; letter-spacing:0}
.gline footer{margin-top:var(--s1); font-size:13px; line-height:20px; opacity:.8}
.gday .ds-textbtn{margin-top:var(--s2)}
.deeper{max-width:46rem; margin:var(--ds-between) auto var(--s8); grid-template-columns:none}
@media (max-width:700px){.deeper{margin-bottom:var(--ds-tabs-clear)}}
/* the full Gospel page */
.gfull{max-width:none; padding:0; margin-top:0; background:none}
.gfull .gmeta{margin-top:var(--s2); color:var(--ds-ink); opacity:1}
.gfull .gmeta i{box-shadow:none}
.gfull .gtext{margin-top:var(--s2)}
.gfull .gtext p{margin-top:var(--s1); font-size:var(--ds-fs-body); line-height:var(--ds-lh-body)}
.vn{display:inline-block; min-width:1.4em; font-size:12px; font-weight:700; color:var(--ds-muted); vertical-align:1px}
.gfull .gfoot{display:block; margin-top:var(--s4); font-size:15px; line-height:22px; color:var(--ds-muted)}
.gfull .gfoot p+p{margin-top:var(--s1)}
.gfull .calpick{display:flex; align-items:center; gap:var(--s1); flex-wrap:wrap; font-size:15px; margin-top:var(--s2)}
.gfull select{height:48px; padding:0 var(--s2); border-radius:var(--ds-r-pill); border:1px solid var(--ds-hair); background:#fff; font-size:16px}
.gfull .rite{color:var(--ds-muted); font-size:13px}
.gfull .upnext{font-size:15px}
.gacts{margin-top:var(--s3); gap:var(--s2) var(--s3)}

/* ---------- 7. TEMPLATES ---------- */
/* lesson opening */
.lhero-in{padding:var(--s3) 0 var(--s6); gap:var(--s4)}
.lh-t{margin:var(--s2) 0 var(--s1); color:var(--ds-ink)}
@media (max-width:799px){.lh-art{order:-1}}
/* Case */
.case .chero{min-height:0; padding-bottom:0}
.case .chero .cq{max-width:20ch}
.cverdict{border-radius:var(--ds-r-lg); padding:var(--s3)}
/* hub band: the accent sits in the column */
.jpage .brand b{white-space:nowrap; max-width:none}
@media (max-width:799px){
  .jart .clip{clip-path:none; -webkit-clip-path:none; aspect-ratio:4/5; width:176px; height:220px; border-radius:var(--ds-r-lg); overflow:hidden; box-shadow:0 24px 48px -28px rgba(0,0,30,.5)}
  .jart .jcard{margin-top:var(--s2)}
  .jart .credit{margin-top:var(--s1)}
}
.band h1{margin-top:var(--s2)}
.band h1 em{display:block}
/* Library bento: saturated cards */
.bt{border-radius:var(--ds-r-lg)}
.bt.ds-red,.bt.ds-navy,.bt.ds-cobalt{border:0; color:#fff}
.bt.ds-red{background:var(--ds-red)} .bt.ds-navy{background:var(--ds-navy)} .bt.ds-cobalt{background:var(--ds-cobalt)}
.bt.ds-lime{border:0; color:var(--ds-ink); background:var(--ds-lime)}
.bt.ds-red span:last-child,.bt.ds-navy span:last-child,.bt.ds-cobalt span:last-child, .bt.big.ds-red span:last-child{color:#fff}
.bt.ds-lime span:last-child{color:var(--ds-ink)}
.bt.ds-red .ic,.bt.ds-navy .ic,.bt.ds-cobalt .ic{background:rgba(255,255,255,.18)!important}
.bt.ds-lime .ic{background:var(--ds-ink)!important}
.bt.big.ds-red{background:var(--ds-red)}
.bt.big b{font-size:clamp(28px, 3vw, 40px); line-height:1.15}
/* timeline */
.tlfeat{background:var(--ds-navy); border-radius:var(--ds-r-lg)} .tlfeat .tlf-k{color:#E6E2FF}
.tl-c{border-radius:var(--ds-r-lg)}
.tl-yr span{border-radius:var(--ds-r-pill)}
.tl-bar{top:0}
/* OCIA kit */
.ksponsor{border-radius:var(--ds-r-lg); background:var(--ds-cobalt)}
.kr, .kuse li, .kmore, .kstrip{border-radius:var(--ds-r)}
/* Voices */
.vp{border-radius:var(--ds-r-lg)}
/* Bible */
.bible .vtext{font-size:var(--ds-fs-body); line-height:var(--ds-lh-body)}
.bible .vs{max-width:var(--ds-measure); line-height:var(--ds-lh-body)}
/* Ask */
body.asked .lede, body.asked .sugg, body.asked .qnote{display:none}
.sugg{margin:0 0 var(--s3)}
.qa{border-radius:var(--ds-r); padding:var(--s3)}

/* ---------- 8. SESSIONS (Evening Prayer, first Mass) ---------- */
body.session{background:var(--ds-bg)}
body.sess-on .sbar{display:none}
.sess{padding:var(--s3) var(--ds-gutter) calc(var(--ds-ctl-h) + 48px)}
.sess section{padding:var(--s3) 0 0}
.sess.js section{min-height:0}
.stitle{margin-top:var(--s2)}
.sbegin{height:var(--ds-ctl-h); padding:0 var(--s5); border-radius:var(--ds-r); font-size:18px; margin-top:var(--s4); box-shadow:none}
.stop{position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:var(--s2); height:56px; background:var(--ds-bg); margin:0 calc(-1*var(--ds-gutter)); padding:0 var(--ds-gutter)}
.stop[hidden]{display:none}
.stop button{font:inherit; font-size:15px; font-weight:600; height:44px; padding:0 var(--s1); border:0; background:none; color:var(--ds-ink); cursor:pointer; display:inline-flex; align-items:center; gap:6px}
.sback svg{width:16px; height:16px; transform:rotate(180deg)}
.sprog{flex:1; height:4px; border-radius:2px; background:var(--ds-hair); overflow:hidden}
.sprog i{display:block; height:100%; width:0; background:var(--ds-accent); transition:width .3s}
.sv p, .sp, .sess .sp.sm{font-family:var(--sans); font-style:normal; font-weight:500; font-size:22px; line-height:34px; letter-spacing:0; color:var(--ds-ink)}
.sv footer{font-size:13px; line-height:20px; color:var(--ds-muted)}
.sess .sk{color:var(--ds-accent)}
.sctl{left:var(--ds-gutter); right:var(--ds-gutter); transform:none; bottom:calc(16px + env(safe-area-inset-bottom)); max-width:44rem; margin:0 auto; padding:0; gap:0; border:0; background:none; box-shadow:none; border-radius:var(--ds-r)}
.sctl .snext{width:100%; height:var(--ds-ctl-h); border-radius:var(--ds-r); font-size:18px; font-weight:700; padding:0; background:var(--ds-accent); color:#fff; box-shadow:0 12px 28px -12px rgba(31,79,224,.6)}
.spos{margin-bottom:var(--s2)}
.pb{height:40px; padding:0 var(--s2); font-size:16px; font-weight:700}

/* ---------- 9. PHONE BOTTOM BAR CLEARANCE ---------- */
@media (max-width:700px){main{padding-bottom:0} footer.ft{padding-bottom:var(--ds-tabs-clear)}}

/* ---------- 10. HOME TOPIC CARDS (the locked saturated cards) ---------- */
.dtiles{max-width:46rem; margin:var(--ds-between) auto 0}
.dtiles .tiles{display:grid; grid-template-columns:1fr; gap:var(--ds-stack); margin-top:var(--ds-stack)}
.dtiles .tile{height:auto; min-height:184px; border-radius:var(--ds-r-lg)}
.dtiles .tile .tx{padding:var(--s3)}
.dtiles .tile h3{font-size:28px; line-height:32px; font-weight:700; letter-spacing:-0.02em; max-width:55%}
.dtiles .tile p{font-size:15px; line-height:22px; margin-top:var(--s1); max-width:52%}
.dtiles .tile .src{font-size:12px; line-height:16px; margin-top:auto; opacity:1; font-weight:700}
.dtiles .tile picture{border-radius:var(--ds-r)}
.tcred{margin-top:var(--s1)}
@media (min-width:768px){.dtiles .tiles{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.dtiles{max-width:none} .dtiles .tiles{grid-template-columns:repeat(4,1fr)} .dtiles .tile{min-height:236px}}

.t-cobalt{background:var(--ds-cobalt)} .t-red{background:var(--ds-red)} .t-lime{background:var(--ds-lime); color:var(--ds-ink)} .t-navy{background:var(--ds-navy)}
.sstep .spos{margin-top:var(--ds-stack)}

.ds-note{color:var(--ds-muted)} .ds-inknote{color:var(--ds-ink)}
.case .ca, .cverdict .ca{font-size:var(--ds-fs-lede); line-height:var(--ds-lh-lede); font-weight:700}
.gref{font-size:16px; line-height:24px; font-weight:700; color:var(--ds-accent)}
/* lesson opening on tablets and small laptops: text and painting side by side */
@media (min-width:800px) and (max-width:1080px){
  .lhero-in{grid-template-columns:1.15fr .85fr; gap:var(--s4); min-height:0; padding:var(--s4) 0 var(--s6)}
  .lh-art{order:0} .lh-art .clip{aspect-ratio:4/5}
  .lh-step{display:none}
}
/* frames everywhere; the blob shape stays only beside the desktop home headline */
.jart .clip, .cg .art2 .clip{clip-path:none; -webkit-clip-path:none; border-radius:var(--ds-r-lg); overflow:hidden}
@media (min-width:800px){.jart .clip{aspect-ratio:4/5; max-height:560px; width:100%}}
@media (min-width:800px) and (max-width:1080px){
  .band .wrap{grid-template-columns:1.2fr .8fr; gap:var(--s4)}
}
/* very short phone viewports (e.g. iPhone SE with Safari's bars showing): starting points scroll sideways in one row */
@media (max-width:700px) and (max-height:600px){
  .chips{flex-wrap:nowrap; overflow-x:auto; margin-left:calc(-1*var(--ds-gutter)); margin-right:calc(-1*var(--ds-gutter)); padding:0 var(--ds-gutter); scrollbar-width:none}
  .chips::-webkit-scrollbar{display:none}
  .chips a{flex:none}
}

/* ---------- DRAFT: voice pilot (/en/_draft/mass-voice/) ---------- */
.vx{display:flex; justify-content:center}
.vx-col{width:100%; max-width:680px; padding:var(--s6) 0 var(--s12)}
.vx-col p{margin:0 0 var(--s3)}
.vx-draft{display:inline-block; font-size:13px; font-weight:600; letter-spacing:.02em; color:var(--ds-muted); border:1px solid var(--ds-hair); border-radius:var(--ds-r-pill); padding:4px 12px; margin-bottom:var(--s5)!important}
.vx-k{font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ds-accent); margin:0 0 var(--s2)!important; display:flex; align-items:center; gap:12px}
.vx-n{font-variant-numeric:tabular-nums; color:var(--ds-muted)}
.vx-open{padding-bottom:var(--s6); border-bottom:1px solid var(--ds-hair)}
.vx-lede{font-size:clamp(22px, calc(18px + 1vw), 28px); line-height:1.42; font-weight:500; letter-spacing:-0.01em}
.vx-turn{font-family:var(--script); font-style:italic; font-weight:700; font-size:clamp(22px, calc(18px + 1vw), 28px); line-height:1.35; color:var(--ds-accent); margin-top:var(--s4)!important}
.vx-sec{padding:var(--s8) 0 var(--s6); border-bottom:1px solid var(--ds-hair)}
.vx-sec h2, .vx-try h2, .vx-notes h2{font-size:var(--ds-fs-h2); line-height:1.15; font-weight:700; letter-spacing:-0.02em; margin:0 0 var(--s4)}
.vx-v{font-weight:500}
.vx-cliff{font-family:var(--script); font-style:italic; font-weight:700; font-size:clamp(21px, calc(17px + .9vw), 26px); line-height:1.4; color:var(--ds-ink); margin:var(--s5) 0 0!important; padding-left:20px; border-left:3px solid var(--ds-accent)}
.vx-imagine{background:var(--ds-surface); border:1px solid var(--ds-hair); border-radius:var(--ds-r); padding:var(--s3); font-style:italic}
.vx-tag{display:block; font-style:normal; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ds-muted); margin-bottom:6px}
.vx-pull{margin:var(--s4) 0 var(--s5); padding:var(--s4); background:var(--ds-cobalt); color:#fff; border-radius:var(--ds-r-lg)}
.vx-pull p{font-size:clamp(19px, calc(16px + .7vw), 23px); line-height:1.5; font-weight:500; margin:0 0 var(--s2)!important}
.vx-pull footer{font-size:14px; opacity:.9}
.vx-pull sup.fn a{color:#fff}
.vx-scr{margin:var(--s4) 0; padding:0 0 0 var(--s3); border-left:3px solid var(--ds-red)}
.vx-scr p{font-family:var(--script); font-style:italic; font-size:clamp(20px, calc(17px + .7vw), 24px); line-height:1.45; margin:0 0 8px!important}
.vx-scr footer{font-size:14px; color:var(--ds-muted)}
sup.fn{font-size:11px; line-height:0; vertical-align:super; margin-left:1px; font-weight:600}
sup.fn a{color:var(--ds-accent); text-decoration:none; padding:0 1px}
sup.fn a:hover{text-decoration:underline}
.vx-try{padding:var(--s8) 0 var(--s4)}
.vx-need{margin-top:var(--s4); padding:var(--s3); background:var(--ds-surface); border:1px solid var(--ds-hair); border-radius:var(--ds-r)}
.vx-need .rk{font-size:var(--ds-fs-h3); margin:0 0 var(--s1)}
.vx-road h2{font-family:var(--script); font-style:italic}
.vx-notes{padding-top:var(--s6); margin-top:var(--s6); border-top:1px solid var(--ds-hair); font-size:var(--ds-fs-small); line-height:var(--ds-lh-small)}
.vx-notes ol{padding-left:24px; margin:0 0 var(--s3)}
.vx-notes li{margin:0 0 6px}
.vx-notes li:target{background:#eef2ff}
.vx-notes .fine{color:var(--ds-muted); font-size:13px; line-height:20px}
.vx-words{margin:var(--s4) 0; padding:var(--s3); background:var(--ds-surface); border:1px solid var(--ds-hair); border-radius:var(--ds-r)}
.vx-words dl{margin:0; display:grid; gap:14px}
.vx-words dt{font-weight:700; font-size:var(--ds-fs-body)}
.vx-words dd{margin:2px 0 0; font-size:var(--ds-fs-small); line-height:var(--ds-lh-small); color:var(--ds-ink)}
.vx-step{margin:var(--s6) 0 0; padding:var(--s4); background:var(--ds-lime); border-radius:var(--ds-r-lg); color:var(--ds-ink)}
.vx-step h2{font-size:var(--ds-fs-h3); line-height:1.25; margin:0 0 var(--s1)}
.vx-step .vx-tag{color:var(--ds-ink); opacity:1}
.vx-step p{margin:0 0 var(--s3)!important}
.vx-step .btn{background:var(--ds-ink); color:#fff}
/* journeys: New here? Start here */
.newhere{max-width:760px; margin:0 0 var(--s8); padding:var(--s4); background:var(--ds-surface); border:1px solid var(--ds-hair); border-radius:var(--ds-r-lg)}
.newhere h2{font-size:var(--ds-fs-h2); line-height:1.15; margin:0 0 var(--s1); letter-spacing:-0.02em}
.newhere>p{color:var(--ds-muted); margin:0 0 var(--s3)}
.newhere ol{list-style:none; margin:0; padding:0; display:grid; gap:12px}
.newhere li a{display:grid; grid-template-columns:40px 1fr auto; gap:14px; align-items:center; min-height:var(--ds-row-h); padding:12px 16px; border-radius:var(--ds-r); background:var(--ds-bg); color:var(--ds-ink); text-decoration:none}
.newhere li a:hover{background:#eef2ff}
.newhere .nh-n{width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--ds-cobalt); color:#fff; font-weight:700}
.newhere b{display:block}
.newhere small{display:block; color:var(--ds-muted); font-size:var(--ds-fs-small); line-height:var(--ds-lh-small)}
.newhere .nh-go svg{width:20px; height:20px}
@media (max-width:600px){.newhere{padding:20px 16px}.newhere li a{grid-template-columns:32px 1fr; padding:12px}.newhere .nh-n{width:32px;height:32px}.newhere .nh-go{display:none}}
.vx-box{margin:var(--s4) 0; padding:var(--s4); background:var(--ds-surface); border:1px solid var(--ds-hair); border-radius:var(--ds-r-lg)}
.vx-boxt{font-size:var(--ds-fs-body); line-height:1.7; margin:0 0 var(--s2)!important}
.vx-small{font-size:13px; line-height:20px; color:var(--ds-muted); margin:0!important}
.vx-words dd{font-size:var(--ds-fs-body); line-height:var(--ds-lh-body)}
.cgroup{margin-top:var(--s10)}
.cgroup .lede{max-width:var(--ds-measure)}
.jobj{margin-top:var(--s8)}
.jobj ul{list-style:none; padding:0; margin:var(--s3) 0 0; display:grid; gap:var(--s2)}
.jobj a{font-weight:700}
@media (max-width:767px){.case .cverdict .ca{font-size:18px; line-height:27px}}

/* Round 10: no body text under 17/26 on The Case (and lessons sharing vx-*) */
.crumbs{font-size:16px; line-height:24px}
.vx-notes, .vx-notes li{font-size:17px; line-height:26px}
.vx-notes .fine{font-size:15px; line-height:24px}
.vx-scr footer, .vx-pull footer{font-size:16px; line-height:24px}
.ccard p{font-size:17px; line-height:26px}
.vct b{font-size:17px; line-height:24px} .vct span, .vct a{font-size:15px; line-height:22px}
.tlfeat span:not(.tlf-k):not(.tlf-go){font-size:17px; line-height:26px}
.vx-tag{font-size:13px}
.cart .credit, .lh-art .credit{font-size:12px; line-height:17px}

/* Round 11: saint of the day, readings, saints through the year */
.ssaint, .sread{margin-top:var(--s6)}
.scard{margin-top:var(--s3); display:flow-root}
.srank{display:flex; align-items:center; gap:10px; font-size:15px; line-height:22px; font-weight:700; color:var(--ds-muted); margin:0}
.srank > i, .slist summary > i, .slist .srow > i{display:inline-block; width:12px; height:12px; border-radius:50%; flex:none; box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.sname{font-size:28px; line-height:1.15; letter-spacing:-0.02em; font-weight:800; margin:8px 0 var(--s3)}
.sbio, .snote{font-size:17px; line-height:26px; max-width:var(--ds-measure); margin:0 0 var(--s3)}
.snote{color:var(--ds-muted)}
.sq{margin:var(--s3) 0; padding:0 0 0 18px; border-left:4px solid var(--lit,#1D44D8)}
.sq p{font-size:20px; line-height:30px; font-style:italic; margin:0}
.sq footer{font-size:15px; line-height:22px; color:var(--ds-muted); margin-top:6px}
.sart{float:right; width:min(40%,220px); margin:0 0 var(--s2) var(--s3)}
.sart img{width:100%; height:auto; border-radius:16px}
.sart .credit{font-size:12px; line-height:17px}
.sall a, .rlist a{font-weight:700; color:var(--cobalt,#1D44D8)}
.sall a .i{width:18px; height:18px; vertical-align:-3px}
.rlist{list-style:none; padding:0; margin:var(--s3) 0}
.rlist li{display:grid; gap:2px; padding:12px 0; border-top:1px solid var(--ds-hair)}
.rk{font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ds-muted)}
.rr{font-size:19px; line-height:28px; font-weight:700}
.rlist a{font-size:17px; line-height:26px}
.smonth{margin-top:var(--s6)}
.slist{list-style:none; padding:0; margin:var(--s2) 0 0}
.slist li{border-top:1px solid var(--ds-hair)}
.slist summary, .slist .srow{display:grid; grid-template-columns:4.5em 14px 1fr; align-items:baseline; gap:4px 10px; padding:12px 0; font-size:17px; line-height:26px}
.slist summary{cursor:pointer; list-style:none}
.slist summary::-webkit-details-marker{display:none}
.slist summary .sn{color:var(--cobalt,#1D44D8); font-weight:700; text-decoration:underline; text-underline-offset:3px}
.slist .sd{font-weight:700; color:var(--ds-muted)}
.slist .sr2{grid-column:3; font-size:15px; line-height:22px; color:var(--ds-muted)}
.sdet{padding:0 0 var(--s3); display:flow-root}

/* Round 12: popes, saints gallery, story pages, photo credits */
.smore{margin:0 0 var(--s3)} .smore a{font-weight:700; color:var(--ds-cobalt)} .smore .i{width:18px; height:18px; vertical-align:-3px}
.st-meta{font-weight:600}
.st-hero .lh-art .clip img{object-position:50% 35%}
.st-patron{margin:var(--s4) 0 0; padding:var(--s2) var(--s3); border-radius:var(--ds-r); background:var(--ds-lime); color:var(--ds-ink); font-size:17px; line-height:26px}
.st-fig{margin:var(--s4) 0 var(--s5)}
.st-fimg{display:flex; justify-content:center}
.st-fimg picture{display:block; max-width:100%}
.st-fimg img{display:block; width:auto; max-width:100%; height:auto; max-height:620px; border-radius:var(--ds-r-lg)}
.st-fig figcaption{font-size:15px; line-height:22px; color:var(--ds-muted); margin-top:var(--s1)}
.st-fig figcaption .credit{display:block; margin-top:2px}
.st-nav{display:grid; grid-template-columns:1fr 1fr; gap:var(--s2); margin:var(--s6) 0 var(--s4)}
.st-nav a{display:block; padding:var(--s2) var(--s3); border:1px solid var(--ds-hair); border-radius:var(--ds-r); background:var(--ds-surface); text-decoration:none; color:var(--ds-ink)}
.st-nav a:hover{border-color:var(--ds-cobalt)}
.st-nav .nx{text-align:right; grid-column:2}
.st-nav small{display:block; font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ds-muted)}
.st-nav b{font-size:18px; line-height:26px; color:var(--ds-cobalt)}
.pp-k{font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ds-muted); margin:0}
.pp-honest{max-width:var(--ds-measure); margin:var(--s4) 0; padding:var(--s3); border-radius:var(--ds-r-lg); background:var(--ds-surface); border:1px solid var(--ds-hair)}
.pp-honest p{margin:0 0 var(--s2)} .pp-honest p:last-child{margin:0}
.pp-feat, .pp-all{margin-top:var(--s8)}
.pcards{display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap:var(--s3); margin-top:var(--s3)}
.pcard{display:flex; flex-direction:column; border-radius:var(--ds-r-lg); overflow:hidden; background:var(--ds-surface); border:1px solid var(--ds-hair); text-decoration:none; color:var(--ds-ink); transition:border-color .15s}
.pcard:hover{border-color:var(--ds-cobalt)}
.pc-img{display:block; aspect-ratio:4/5; overflow:hidden; background:var(--ds-hair)}
.pc-img img{width:100%; height:100%; object-fit:cover; object-position:50% 25%; display:block}
.pc-tx{display:flex; flex-direction:column; gap:4px; padding:var(--s2) var(--s3) var(--s3)}
.pc-tx small{font-size:13px; font-weight:700; color:var(--ds-muted)}
.pc-tx b{font-size:21px; line-height:1.2; font-weight:800; letter-spacing:-.01em}
.pc-tx span{font-size:15px; line-height:22px; color:var(--ds-muted)}
.pp-jump{display:flex; flex-wrap:wrap; gap:8px; margin:var(--s3) 0}
.pp-jump a{padding:8px 14px; border-radius:var(--ds-r-pill); border:1px solid var(--ds-hair); background:var(--ds-surface); font-size:15px; font-weight:700; color:var(--ds-ink); text-decoration:none}
.pp-jump a:hover{border-color:var(--ds-cobalt); color:var(--ds-cobalt)}
.pera{margin-top:var(--s6); scroll-margin-top:24px}
.pera-h{padding:var(--s3); border-radius:var(--ds-r-lg); background:var(--ds-navy); color:#fff}
.pera:nth-of-type(4n+2) .pera-h{background:var(--ds-cobalt)} .pera:nth-of-type(4n+3) .pera-h{background:var(--ds-red)} .pera:nth-of-type(4n+4) .pera-h{background:var(--ds-lime); color:var(--ds-ink)}
.pera-h .pp-k{color:inherit} .pera-h h3{font-size:var(--ds-fs-h3); line-height:1.2; margin:4px 0} .pera-h p:last-child{margin:0; font-size:16px; line-height:24px}
.plist{list-style:none; padding:0; margin:var(--s2) 0 0; columns:1}
@media (min-width:900px){.plist{columns:2; column-gap:var(--s5)}}
.plist li{break-inside:avoid; border-top:1px solid var(--ds-hair); padding:10px 0}
.plist a{display:grid; grid-template-columns:3em 1fr auto; gap:10px; align-items:baseline; text-decoration:none; color:var(--ds-ink)}
.plist a:hover .pnm{color:var(--ds-cobalt); text-decoration:underline}
.plist .pn{font-weight:700; color:var(--ds-muted); font-variant-numeric:tabular-nums}
.plist .pnm{font-weight:700}
.plist .has .pnm{color:var(--ds-cobalt)}
.plist .pst{display:inline-block; margin-left:6px; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ds-red)}
.plist .pd{font-size:15px; color:var(--ds-muted); white-space:nowrap}
.plist .pnote{display:block; margin:2px 0 0 calc(3em + 10px); font-size:14px; line-height:20px; color:var(--ds-muted)}
.pp-one .vx-pull{max-width:var(--ds-measure)}
.pp-near{margin-top:var(--s6)}
.sg{margin-top:var(--s6)}
.sg-f{display:flex; flex-wrap:wrap; gap:var(--s2); margin:var(--s3) 0}
.sg-f label{display:flex; flex-direction:column; gap:6px; font-size:14px; font-weight:700; color:var(--ds-muted); min-width:min(100%, 200px); flex:1 1 200px}
.sg-f select{height:var(--ds-field-h); padding:0 var(--s2); border-radius:var(--ds-r); border:1px solid var(--ds-hair); background:var(--ds-surface); color:var(--ds-ink); font:inherit; font-size:17px; font-weight:600}
.sg-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap:var(--s3)}
.sg-card{display:flex; flex-direction:column; border-radius:var(--ds-r-lg); overflow:hidden; background:var(--ds-surface); border:1px solid var(--ds-hair); text-decoration:none; color:var(--ds-ink)}
.sg-card[hidden]{display:none}
.sg-card:hover{border-color:var(--ds-cobalt)}
.sg-img{display:block; aspect-ratio:3/4; overflow:hidden; background:var(--ds-hair)}
.sg-img img{width:100%; height:100%; object-fit:cover; display:block}
.sg-tx{display:flex; flex-direction:column; gap:6px; padding:var(--s2) var(--s3) var(--s3)}
.sg-tx small{font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ds-red)}
.sg-tx b{font-size:22px; line-height:1.2; font-weight:800; letter-spacing:-.01em}
.sg-role{font-size:15px; line-height:22px; font-weight:700; color:var(--ds-cobalt)}
.sg-hook{font-size:16px; line-height:24px}
.sg-where{font-size:14px; line-height:20px; color:var(--ds-muted)}
.scal{margin-top:var(--s8)}
.cr-list{list-style:none; padding:0; margin:var(--s2) 0 var(--s5)}
.cr-list li{display:grid; gap:2px; padding:12px 0; border-top:1px solid var(--ds-hair); font-size:15px; line-height:22px}
.cr-list b{font-weight:700; overflow-wrap:anywhere}
.cr-list span{color:var(--ds-muted)}

/* ---------- round 13: the journey map ---------- */
.jm-top{padding-top:var(--s4)}
.jm-top .lede{max-width:var(--ds-measure)}
.jm-how{margin-top:12px; font-size:var(--ds-fs-small); line-height:var(--ds-lh-small); color:var(--ds-muted); max-width:var(--ds-measure)}
.jm{width:min(1328px, 100% - 2*var(--ds-gutter)); margin:var(--s4) auto var(--s8); display:grid; grid-template-columns:minmax(0,1fr); gap:var(--s3)}
.jm-stage{position:sticky; top:0; z-index:30; background:var(--ds-bg); padding:8px 0; margin:0 calc(-1*var(--ds-gutter)); padding-left:var(--ds-gutter); padding-right:var(--ds-gutter)}
.jm-map{height:28vh; min-height:190px; border-radius:var(--ds-r); overflow:hidden; background:#e8ecf3; border:1px solid var(--ds-hair)}
.jm-nojs{padding:var(--s3); color:var(--ds-muted); margin:0}
.jm-time{display:grid; grid-template-columns:1fr auto; align-items:center; gap:0 12px; margin-top:6px; font-size:14px}
.jm-time label{font-weight:700}
.jm-time input{grid-column:1/-1; grid-row:2}
.jm-time input{width:100%; accent-color:var(--ds-cobalt); min-height:32px}
.jm-time output{font-weight:700; min-width:6ch; text-align:right; grid-column:2; grid-row:1}
.jm-count{display:none; color:var(--ds-muted); font-size:13px; grid-column:1/-1}
.jm-era{border-left:4px solid var(--ds-cobalt); padding:2px 0 2px 12px; margin-top:4px}
.jm-era .jm-ek{display:inline} .jm-era .jm-et{display:inline; margin-left:8px}
.jm-ek{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ds-accent); margin:0}
.jm-et{font-weight:800; font-size:17px; margin:2px 0 0}
.jm-etx{display:none; font-size:var(--ds-fs-small); line-height:var(--ds-lh-small); margin:6px 0 0}
.jm-el{display:flex; gap:8px; overflow-x:auto; margin:6px 0 0; padding-bottom:2px}
.jm-el a{flex:none; font-size:13px; font-weight:700; color:var(--ds-ink); background:#fff; border:1px solid var(--ds-hair); border-radius:var(--ds-r-pill); padding:6px 12px; text-decoration:none; min-height:32px; display:inline-flex; align-items:center}
.jm-el a:hover{border-color:var(--ds-cobalt)}
.jm-story{min-width:0}
.jm-ch{margin-bottom:var(--s8)}
.jm-chh{padding:var(--s4) 0}
.jm-chh .vx-lede{font-size:var(--ds-fs-lede); line-height:var(--ds-lh-lede); margin:0 0 14px}
.jm-chh .h2{margin:4px 0 16px}
.jm-stop{background:#fff; border:1px solid var(--ds-hair); border-radius:var(--ds-r-lg); padding:var(--s3); margin:0 0 var(--s3); scroll-margin-top:calc(28vh + 190px); transition:border-color .2s}
.jm-stop[aria-current]{border-color:var(--ds-cobalt); box-shadow:0 0 0 2px var(--ds-cobalt)}
#rome .jm-stop[aria-current]{border-color:var(--ds-red); box-shadow:0 0 0 2px var(--ds-red)}
#world .jm-stop[aria-current]{border-color:var(--ds-navy); box-shadow:0 0 0 2px var(--ds-navy)}
.jm-stop h3{font-size:var(--ds-fs-h3); line-height:1.25; margin:4px 0 12px}
.jm-stop p{font-size:var(--ds-fs-body); line-height:var(--ds-lh-body); margin:0 0 12px}
.jm-when{font-size:13px!important; font-weight:700; color:var(--ds-muted); margin:0!important}
.jm-when span{color:var(--ds-accent)}
#rome .jm-when span{color:#b3141b}
.jm-fig{margin:0 0 16px}
.jm-fig img{width:100%; height:auto; border-radius:var(--ds-r); display:block; aspect-ratio:3/2; object-fit:cover}
.jm-fig figcaption{font-size:13px; line-height:19px; color:var(--ds-muted); margin-top:6px}
.jm-more{margin:4px 0 0!important}
.jm-more a{font-weight:700; color:var(--ds-accent); display:inline-flex; align-items:center; gap:6px; min-height:32px}
.jm-more svg{width:16px; height:16px}
.jm-w{display:grid; grid-template-columns:88px 1fr; gap:var(--s2); padding:var(--s2)}
.jm-wimg img{width:88px; height:88px; object-fit:cover; border-radius:var(--ds-r-sm); display:block}
.jm-w h3{font-size:18px; margin:2px 0 8px}
.jm-w p{font-size:var(--ds-fs-small); line-height:var(--ds-lh-small)}
.jm-next{border-top:1px solid var(--ds-hair); padding-top:var(--s4)}
.jm .leaflet-container{font:inherit; font-size:13px}
.jm .leaflet-control-attribution{font-size:11px}
.jm .leaflet-control-attribution a{color:#1D44D8}
@media (min-width:900px){
  .jm{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:var(--s6); align-items:start}
  .jm-stage{order:2; top:16px; margin:0; padding:0; background:none}
  .jm-map{height:calc(100vh - 290px); min-height:360px}
  .jm-etx{display:block}
  .jm-count{display:block}
  .jm-era{padding:4px 0 4px 12px; margin-top:12px}
  .jm-era .jm-ek, .jm-era .jm-et{display:block; margin-left:0}
  .jm-el{flex-wrap:wrap; overflow:visible}
  .jm-stop{scroll-margin-top:24px}
  .jm-w{grid-template-columns:120px 1fr}
  .jm-wimg img{width:120px; height:120px}
}
@media (prefers-reduced-motion:reduce){ .jm-stop{transition:none} }
.tl-map{margin:12px 0 0}.tl-map a{font-weight:700; color:var(--ds-accent); display:inline-flex; align-items:center; gap:6px; min-height:32px}.tl-map svg{width:16px;height:16px}
