@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:14px;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:14px;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:14px;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:14px;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:14px;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:14px;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:14px;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:14px;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:14px}
 .stepper i{width:30px;height:30px;font-size:14px}
 .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:14px;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:14px;font-weight:700;opacity:.92;max-width:52%;line-height:1.35}
.srcl{margin-top:auto!important;padding-top:16px;font-size:14px;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:14px;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:14px;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:14px;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:14px}
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:14px;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:14px;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:14px}.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:14px;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:14px;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:14px;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:14px;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:14px;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:14px;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:14px;font-weight:800}
.gosp details{margin-top:6px}.gosp summary{cursor:pointer;font-weight:700;text-decoration:underline}
.gosp .gsrc{font-size:14px;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:14px;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:14px;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:inline-flex;align-items:center;gap:6px;padding:0 14px;height:44px;border-radius:999px;font-weight:600;text-decoration:none;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:14px}
@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:14px;color:var(--muted);margin:10px 4px 0}
.vp-upnext{margin-top:18px}
.vp-k{font-size:14px;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:14px}
.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:14px;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:14px;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:14px;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:14px;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:14px;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:14px}
.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:14px;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:14px;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:14px;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:14px;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:14px;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:14px;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:14px;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:14px}.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:14px;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:14px;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:14px;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:#464e60; --ds-credit:#5c564c; /* 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:14px; line-height:20px; color:var(--ds-muted)}
.credit, .art .credit, .lh-art .credit, .cart .credit, .band .credit{font-size:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px}
.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}
.vq 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)}
.vq footer{font-size:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px}
.cart .credit, .lh-art .credit{font-size:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px; 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:14px!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:14px; 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:14px}
.jm .leaflet-control-attribution{font-size:14px}
.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}

/* ---------- ROUND 14: the doors and the chambers ---------- */
.dhero .start{margin-top:var(--s3)}
.dchips{margin-top:var(--s2)}
.dchips a{min-height:var(--ds-pill-h)}
.dnext{margin-top:var(--s3); font-size:var(--ds-fs-small); font-weight:700}
.dnext a{color:var(--ds-accent); text-decoration:none; display:inline-flex; align-items:center; gap:6px}
.dnext svg{width:16px; height:16px}
.doors{scroll-margin-top:24px}
@media (min-width:1024px){.doors .tiles{grid-template-columns:repeat(3,1fr)} .doors .tile{min-height:300px}}
.chamber .ptitle{margin-top:var(--s2)}
.chamber .lede{max-width:var(--ds-measure)}
.rooms{margin-top:var(--s5)}
@media (min-width:1024px){.rooms .tiles{grid-template-columns:1fr 1fr} .rooms .tile{min-height:260px}}
.rooms .tile .src{display:inline-flex; align-items:center; gap:6px}
.rooms .tile .src svg, .doors .tile .src svg{width:14px; height:14px}
.otherdoors{display:flex; gap:var(--s2); flex-wrap:wrap; margin:var(--s6) 0 var(--s4)}
.otherdoors a{display:inline-flex; align-items:center; gap:8px; height:var(--ds-pill-h); padding:0 var(--s3); border:1px solid var(--ds-hair); border-radius:var(--ds-r-pill); background:#fff; color:var(--ds-ink); font-weight:700; text-decoration:none}
.otherdoors svg{width:16px; height:16px}
.sgos{margin-top:var(--s2); font-weight:700}
.sgos a{color:var(--ds-accent)}
/* chapel mode: no chrome, one quiet exit, one control */
.stop{justify-content:flex-end}
.stop .sx, .sbar .sclose{font-size:15px; font-weight:600; color:var(--ds-muted); text-decoration:none; padding:10px 4px}
.stop .sx:hover, .sbar .sclose:hover{color:var(--ds-ink)}
@media (max-width:799px){.dhero .art{display:none} .doors{margin-top:var(--s6)}}

/* ---------- ROUND 15: thresholds, silence, light ---------- */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-group(*){animation-duration:.9s; animation-timing-function:cubic-bezier(.22,.61,.2,1)}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.6s}
}
.dhero{padding-bottom:var(--s2)}
.doors{margin-top:var(--s5); padding-bottom:var(--s6)}
.dgrid{display:grid; grid-template-columns:1fr; gap:var(--s3)}
.door{display:block; text-decoration:none; color:var(--ds-ink)}
.dwin{position:relative; display:block; overflow:hidden; border-radius:999px 999px var(--ds-r) var(--ds-r); aspect-ratio:4/3; isolation:isolate}
.door-cobalt .dwin{box-shadow:0 0 0 6px var(--ds-cobalt)} .door-red .dwin{box-shadow:0 0 0 6px var(--ds-red)} .door-navy .dwin{box-shadow:0 0 0 6px var(--ds-navy)}
.dwin picture, .dwin img, .thresh picture, .thresh img{display:block; width:100%; height:100%; object-fit:cover}
.dwin img{transition:transform 1.2s cubic-bezier(.22,.61,.2,1)}
.door:hover .dwin img, .door:focus-visible .dwin img{transform:scale(1.04)}
.dlab{display:block; padding:var(--s2) 4px 0}
.dlab b{display:block; font-size:clamp(32px,5vw,44px); line-height:1.05; font-weight:800; letter-spacing:-.03em}
.dlab span{display:block; margin-top:6px; font-size:var(--ds-fs-small); line-height:var(--ds-lh-small); color:var(--ds-muted)}
.dcred{margin-top:var(--s3)}
@media (min-width:800px){.dgrid{grid-template-columns:repeat(3,1fr); gap:var(--s4)} .dwin{aspect-ratio:3/4}}
/* slow light through glass */
.glint{position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(115deg, transparent 35%, rgba(255,250,225,.28) 50%, transparent 65%); background-size:300% 100%; background-position:100% 0; mix-blend-mode:screen}
@media (prefers-reduced-motion:no-preference){.glint{animation:glint 14s ease-in-out infinite} .door:nth-child(2) .glint{animation-delay:-4.6s} .door:nth-child(3) .glint{animation-delay:-9.2s}}
@keyframes glint{0%,15%{background-position:100% 0} 60%,100%{background-position:0 0}}
.thresh{position:relative; height:clamp(220px,42vh,460px); overflow:hidden; border-radius:0 0 50% 50% / 0 0 18% 18%}
/* quiet pages and chapel: silence */
body.quiet .tabs, body.session .tabs, body.session .feastbar{display:none}
body.quiet main{padding-bottom:var(--s4)}
.stop{position:sticky; top:0; display:flex; justify-content:space-between; align-items:center; height:56px}
.stt{font-size:15px!important; line-height:20px!important; font-weight:700!important; letter-spacing:0!important; color:var(--ds-muted)!important; margin:0!important}
.sess .sh{font-size:17px; line-height:24px; font-weight:700; color:var(--ds-muted); margin-top:4px; letter-spacing:0}
.sess .sk{font-size:14px; letter-spacing:.08em}
.vq p, .sp, .sess .sp.sm{font-size:22px!important; line-height:34px!important}
.sbellp{margin-top:var(--s4)}
.sbell{font:inherit; font-size:14px; font-weight:600; color:var(--ds-muted); background:none; border:1px solid var(--ds-hair); border-radius:var(--ds-r-pill); height:40px; padding:0 16px; cursor:pointer}
.sbell[aria-pressed=true]{color:var(--ds-accent); border-color:var(--ds-accent)}
@media (prefers-reduced-motion:no-preference){.sess.js [data-s]:not([hidden]){animation:sfade .8s ease both}}
@keyframes sfade{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}
/* journey map instrument */
.jm-inst .jm-ch{display:none}
.jm-now .jm-stop{margin-top:var(--s2)}
@media (prefers-reduced-motion:no-preference){.jm-now .jm-cur{animation:sfade .7s ease both} .jm-mk{transition:fill-opacity .8s ease, stroke-opacity .8s ease}}
.jm-nav{grid-column:1/-1; grid-row:3; display:flex; gap:8px; margin-top:6px}
.jm-nav[hidden]{display:none}
.jm-nav button{font:inherit; font-size:14px; font-weight:700; height:40px; padding:0 16px; border-radius:var(--ds-r-pill); border:1px solid var(--ds-hair); background:#fff; color:var(--ds-ink); cursor:pointer}
.jm-nav button:hover{border-color:var(--ds-cobalt)}
.jm-inst .jm-map{height:44vh}
@media (min-width:1024px){.jm-inst .jm-map{height:calc(100vh - 300px)}}
.btog{display:inline-flex; gap:4px; padding:4px; margin-top:var(--s2); background:#fff; border:1px solid var(--ds-hair); border-radius:var(--ds-r-pill)}
.btog button{font:inherit; font-size:14px; font-weight:700; height:36px; padding:0 14px; border:0; border-radius:var(--ds-r-pill); background:none; color:var(--ds-muted); cursor:pointer}
.btog button[aria-pressed=true]{background:var(--ds-ink); color:#fff}
.wseg{font-size:14px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ds-accent); margin:var(--s3) 0 var(--s1)}

/* ---------- ROUND 16: the arches are the doors ---------- */
.dhero{padding-bottom:0}
.doors{margin-top:var(--s4)}
.dgrid{grid-template-columns:repeat(3,1fr)!important; gap:clamp(10px,2.4vw,32px)!important}
.dwin{aspect-ratio:9/19!important; border-radius:999px 999px 10px 10px}
@media (min-width:800px){.dwin{aspect-ratio:5/9!important}}
.door-cobalt .dwin, .door-red .dwin, .door-navy .dwin{box-shadow:none; outline:clamp(3px,.5vw,6px) solid; outline-offset:0}
.door-cobalt .dwin{outline-color:var(--ds-cobalt)} .door-red .dwin{outline-color:var(--ds-red)} .door-navy .dwin{outline-color:var(--ds-navy)}
.dname{display:block; text-align:center; margin-top:var(--s2); font-size:clamp(18px,2.4vw,30px); font-weight:800; letter-spacing:-.02em; color:var(--ds-ink)}
.door:hover .dname{color:var(--ds-accent)}
.newq{margin:var(--s5) 0 var(--s6); text-align:center}
.newq summary{display:inline-block; cursor:pointer; list-style:none; font-size:var(--ds-fs-small); font-weight:600; color:var(--ds-muted); padding:10px 4px; border-bottom:1px solid var(--ds-hair)}
.newq summary::-webkit-details-marker{display:none}
.newq summary:hover{color:var(--ds-ink)}
.newq .dchips{justify-content:center; margin-top:var(--s2)}
/* the room continues from the painting */
.thresh{height:min(88svh,820px); border-radius:0}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-group(door-learn),::view-transition-group(door-pray),::view-transition-group(door-explore){animation-duration:.82s; animation-timing-function:cubic-bezier(.65,0,.2,1)}
  ::view-transition-old(door-learn),::view-transition-new(door-learn),::view-transition-old(door-pray),::view-transition-new(door-pray),::view-transition-old(door-explore),::view-transition-new(door-explore){height:100%; width:100%; object-fit:cover; animation-duration:.82s}
  ::view-transition-old(root){animation:vtout .5s ease both} ::view-transition-new(root){animation:vtin .6s .25s ease both}
}
@keyframes vtout{to{opacity:0}} @keyframes vtin{from{opacity:0}}
/* bell glyph */
.sbell{width:44px; height:44px; padding:0; display:inline-grid; place-items:center; border-radius:50%}
.sbell.rung{color:var(--ds-accent); border-color:var(--ds-accent)}
@media (prefers-reduced-motion:no-preference){.sbell.rung svg{animation:bellsw 1.4s ease-out}}
@keyframes bellsw{0%{transform:rotate(0)}20%{transform:rotate(14deg)}45%{transform:rotate(-10deg)}70%{transform:rotate(5deg)}100%{transform:rotate(0)}}
/* map: play the centuries */
.jm-playb{background:var(--ds-ink)!important; color:#fff!important; border-color:var(--ds-ink)!important}
.jm-lock, .jm-lock body{overflow:hidden}
.jm-playing .jm-stage{position:fixed!important; inset:0!important; z-index:1000!important; margin:0!important; padding:0!important; background:var(--ds-bg)!important; top:0!important}
.jm-playing .jm-map{height:100vh!important; border-radius:0!important; border:0!important}
.jm-playing .jm-time, .jm-playing .jm-eras{display:none!important}
.jm-playui{position:fixed; z-index:1001; left:0; right:0; bottom:calc(24px + env(safe-area-inset-bottom)); display:flex; flex-direction:column; align-items:center; gap:12px; pointer-events:none}
.jm-playui[hidden]{display:none}
.jm-big{margin:0; text-align:center; background:rgba(247,247,245,.92); border-radius:var(--ds-r-lg); padding:12px 28px; box-shadow:0 10px 30px -12px rgba(11,18,48,.35)}
.jm-big span{display:block; font-size:clamp(40px,7vw,80px); line-height:1; font-weight:800; letter-spacing:-.03em; color:var(--ds-ink); font-variant-numeric:tabular-nums}
.jm-big small{display:block; margin-top:6px; font-size:15px; font-weight:600; color:var(--ds-muted); min-height:20px}
.jm-pctl{margin:0; display:flex; gap:8px; pointer-events:auto}
.jm-pctl button{font:inherit; font-size:15px; font-weight:700; height:44px; padding:0 20px; border-radius:var(--ds-r-pill); border:1px solid var(--ds-hair); background:#fff; color:var(--ds-ink); cursor:pointer}

/* ---------- ROUND 17: one arch at a time on a phone; a continuous threshold ---------- */
@media (max-width:799px){
  .doors{margin-left:calc(-1*var(--ds-gutter)); margin-right:calc(-1*var(--ds-gutter))}
  .dgrid{display:flex!important; gap:16px!important; overflow-x:auto; scroll-snap-type:x mandatory; padding:8px var(--ds-gutter) 4px; scroll-padding:0 var(--ds-gutter); scrollbar-width:none; -webkit-overflow-scrolling:touch}
  .dgrid::-webkit-scrollbar{display:none}
  .door{flex:0 0 80vw; scroll-snap-align:center}
  .dwin{aspect-ratio:7/10!important; outline-width:5px}
  .dname{font-size:28px}
  /* the room's threshold has the same width-to-height ratio as the arch, so the growth is a pure scale */
  .thresh{height:auto; aspect-ratio:7/10; border-radius:999px 999px 0 0 / 50vw 50vw 0 0}
}
@media (min-width:800px){.thresh{border-radius:0}}
.thresh img, .dwin img{object-fit:cover}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-group(door-learn),::view-transition-group(door-pray),::view-transition-group(door-explore){overflow:clip}
  ::view-transition-image-pair(door-learn),::view-transition-image-pair(door-pray),::view-transition-image-pair(door-explore){isolation:auto}
  ::view-transition-old(door-learn),::view-transition-old(door-pray),::view-transition-old(door-explore){animation:none; opacity:0}
  ::view-transition-new(door-learn),::view-transition-new(door-pray),::view-transition-new(door-explore){animation:none; opacity:1}
}
/* chapel position dots */
.sdots{display:flex; gap:7px; margin:0 0 10px}
.sdots i{width:6px; height:6px; border-radius:50%; background:var(--ds-hair)}
.sdots i.on{background:var(--ds-accent)}
/* play the centuries: only the map, the year, the stop */
.jm-playing .leaflet-control-zoom{display:none}
.jm-playing .leaflet-control-attribution{opacity:.6; font-size:14px}
.jm-pctl{opacity:0; transition:opacity .4s}
.jm-playui.ctl .jm-pctl, .jm-pctl:focus-within{opacity:1}

/* ---------- ROUND 18: rooms at the chapel's level ---------- */
.rbar{max-width:none; padding:14px var(--ds-gutter)}
.rbar .brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ds-ink); font-weight:700; font-size:15px}
.rbar .brand svg{width:26px; height:26px}
.rbar .sclose{font-size:15px; font-weight:600; color:var(--ds-muted); text-decoration:none}
/* the arch crop persists: the room's top is the same arch, the same shape as the door */
.thresh{margin:0 auto; width:min(100%, 480px); aspect-ratio:5/9; height:auto!important; border-radius:999px 999px 0 0 / 50% 50% 0 0!important; overflow:hidden}
@media (min-width:800px){.thresh{width:auto; height:min(78svh,760px)!important; aspect-ratio:5/9}}
@media (max-width:799px){.thresh{width:100%; aspect-ratio:7/10; border-radius:999px 999px 0 0 / 50vw 50vw 0 0!important}}
.room{text-align:center; padding-bottom:var(--s8)}
.rtitle{margin:var(--s4) 0 0; font-size:var(--ds-fs-display); line-height:var(--ds-lh-display); letter-spacing:var(--ds-ls-display); font-weight:800}
.rlede{max-width:34rem; margin:var(--s2) auto 0; font-size:var(--ds-fs-lede); line-height:var(--ds-lh-lede); color:var(--ds-muted)}
.rpath{display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; margin:var(--s6) calc(-1*var(--ds-gutter)) 0; padding:8px calc(50vw - min(42vw, 320px)) 16px; scrollbar-width:none}
.rpath::-webkit-scrollbar{display:none}
.rp{flex:0 0 min(84vw, 640px); scroll-snap-align:center; min-height:min(78svh,760px); display:flex; flex-direction:column; align-items:center; text-align:center; background:#fff; border:1px solid var(--ds-hair); border-radius:var(--ds-r-lg); padding:var(--s3) var(--s3) var(--s4)}
.rpimg{width:100%; flex:1 1 auto; min-height:260px; border-radius:var(--ds-r); overflow:hidden}
.rpimg picture, .rpimg img{display:block; width:100%; height:100%; object-fit:cover}
.rph{margin:var(--s3) 0 0; font-size:var(--ds-fs-h2); line-height:1.15; font-weight:800; letter-spacing:-.02em}
.rpx{margin:var(--s1) 0 0; max-width:30rem; font-size:var(--ds-fs-body); line-height:var(--ds-lh-body); color:var(--ds-muted)}
.rpgo{margin-top:var(--s3); display:inline-flex; align-items:center; gap:10px; height:var(--ds-ctl-h); padding:0 var(--s4); border-radius:var(--ds-r-pill); background:var(--ds-accent); color:#fff; font-weight:700; font-size:17px; text-decoration:none}
.rpgo svg{width:18px; height:18px}
.rdots{justify-content:center; margin:var(--s2) 0 0}
.rdots a{display:grid; place-items:center; width:24px; height:24px}
.rdots a i{width:7px; height:7px; border-radius:50%; background:var(--ds-hair); display:block}
.rdots a[aria-current] i{background:var(--ds-accent)}
.room .otherdoors{justify-content:center; margin-top:var(--s6)}
.room .tcred{margin-top:var(--s4); text-align:left}

/* ---------- ROUND 19: welcome and direction first ---------- */
.home19{padding-top:var(--s4); padding-bottom:var(--s8)}
.h19{font-size:clamp(34px,7.4vw,72px); line-height:1.02; letter-spacing:-.035em; font-weight:800; margin:0; max-width:15ch}
.h19 .script{display:inline}
.who19{margin:var(--s2) 0 0; max-width:40rem; font-size:clamp(17px,2.2vw,21px); line-height:1.5; color:var(--ds-ink)}
.sh19{margin:var(--s6) 0 var(--s3); font-size:clamp(24px,4vw,40px); line-height:1.1; letter-spacing:-.025em; font-weight:800}
.sh19.small{font-size:clamp(20px,3vw,26px)}
.start19 .sh19{margin-top:var(--s4)}
.sgrid{display:grid; grid-template-columns:1fr; gap:10px}
@media (min-width:700px){.sgrid{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.sgrid{grid-template-columns:repeat(3,1fr)}}
.scard{position:relative; display:flex; flex-direction:column; gap:4px; padding:16px 48px 16px 20px; background:#fff; border:1px solid var(--ds-hair); border-left:6px solid var(--c); border-radius:var(--ds-r); text-decoration:none; color:var(--ds-ink); transition:transform .2s, box-shadow .2s}
.scard b{font-size:18px; line-height:1.25; font-weight:700}
.scard span{font-size:15px; line-height:1.4; color:var(--ds-muted)}
.scard svg{position:absolute; right:18px; top:50%; width:20px; height:20px; transform:translateY(-50%); color:var(--c)}
.scard:hover{transform:translateY(-2px); box-shadow:0 8px 24px rgba(13,26,68,.10)}
.ask19 .qf{display:flex; gap:8px; max-width:44rem}
.ask19 input{flex:1; min-width:0; height:56px; padding:0 18px; font:inherit; font-size:17px; border:2px solid var(--ds-hair); border-radius:var(--ds-r-pill); background:#fff}
.ask19 input:focus{border-color:var(--ds-accent); outline:none}
.ask19 button{height:56px; padding:0 26px; border:0; border-radius:var(--ds-r-pill); background:var(--ds-accent); color:#fff; font:inherit; font-weight:700; font-size:17px; cursor:pointer}
.askn{margin:10px 0 0; font-size:15px; color:var(--ds-muted)}
.askn a, .hall a{font-weight:700; color:var(--ds-accent); text-decoration:none; display:inline-flex; align-items:center; gap:6px}
.askn svg, .hall svg{width:16px; height:16px}
.hgrid{display:grid; grid-template-columns:1fr; gap:12px}
@media (min-width:700px){.hgrid{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.hgrid{grid-template-columns:repeat(4,1fr)}}
.hcard{display:flex; flex-direction:column; gap:10px; min-height:230px; padding:24px; border-radius:var(--ds-r-lg); text-decoration:none; color:#fff; transition:transform .2s}
.hcard:hover{transform:translateY(-3px)}
.hcard small{font-size:14px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:.9}
.hcard b{font-size:clamp(24px,2.6vw,30px); line-height:1.1; letter-spacing:-.02em; font-weight:800}
.hcard span{font-size:16px; line-height:1.45; opacity:.95}
.hcard em{margin-top:auto; font-style:normal; font-weight:700; display:inline-flex; gap:6px; align-items:center}
.hcard em svg{width:18px; height:18px}
.hc-cobalt{background:#1D44D8}.hc-red{background:#C8102E}.hc-navy{background:#0D1A44}
.hc-lime{background:#B5D334; color:#0D1A44}
.hall{margin:var(--s2) 0 0}
.vlede{margin:-8px 0 var(--s3); color:var(--ds-muted); font-size:17px; max-width:40rem}
.vrow{display:grid; grid-auto-flow:column; grid-auto-columns:min(78vw,320px); gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px}
@media (min-width:1100px){.vrow{grid-auto-flow:row; grid-template-columns:repeat(4,1fr); overflow:visible}}
.hvid{scroll-snap-align:start}
.hvid .lite{aspect-ratio:16/9; border-radius:var(--ds-r); overflow:hidden}
.d19{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
.door19{display:flex; flex-direction:column; gap:6px; text-decoration:none; color:var(--ds-ink)}
.door19 .dwin{display:block; aspect-ratio:5/6; border-radius:999px 999px var(--ds-r) var(--ds-r) / 40% 40% var(--ds-r) var(--ds-r); overflow:hidden}
.door19 .dwin img, .door19 .dwin picture{display:block; width:100%; height:100%; object-fit:cover}
.door19 b{font-size:20px; font-weight:800; margin-top:4px}
.door19 span:last-child{font-size:14px; line-height:1.4; color:var(--ds-muted)}
/* rooms: plain guidance */
.rhere{max-width:36rem; margin:var(--s2) auto 0; font-size:var(--ds-fs-lede); line-height:1.5}
.rnew{margin:var(--s3) auto 0; font-size:17px}
.rnew a{font-weight:700; color:var(--ds-accent); text-decoration:none; display:inline-flex; gap:6px; align-items:center}
.rnew svg{width:16px; height:16px}
.rlist{max-width:44rem; margin:var(--s6) auto 0; text-align:left}
.rlist h2{font-size:24px; font-weight:800; margin:0 0 var(--s2)}
.rlist ul{list-style:none; margin:0; padding:0; border-top:1px solid var(--ds-hair)}
.rlist li a{display:flex; flex-direction:column; gap:2px; padding:14px 4px; border-bottom:1px solid var(--ds-hair); text-decoration:none; color:var(--ds-ink)}
.rlist li b{font-size:18px}
.rlist li span{font-size:15px; color:var(--ds-muted)}
/* journeys */
.stopnote{display:inline-block; margin:0 0 var(--s3); padding:10px 16px; border-radius:var(--ds-r-pill); background:#EEF2FF; color:#1D44D8; font-weight:600; font-size:15px}
.bq.qr{border-left-color:#0E8A5F}
.week{margin:var(--s5) 0; padding:var(--s4); border-radius:var(--ds-r-lg); background:#1D44D8; color:#fff}
.week h2{color:#fff; margin-top:0}
.week ol{margin:0; padding-left:1.3em}
.week li{margin:0 0 14px}
.week li b{display:block; font-size:19px}
.week li span{font-size:16px; line-height:1.5}
.week a{color:#fff; text-decoration:underline}
.wkstop{margin:0; font-weight:600; opacity:.9}
.cmp{display:grid; grid-template-columns:1fr; gap:0; border-radius:var(--ds-r-lg); overflow:hidden; margin:0 0 16px; border:1px solid var(--ds-hair)}
@media (min-width:760px){.cmp{grid-template-columns:1fr 1fr}}
.cmp > div{padding:20px 22px; background:#fff}
.cmp > div + div{background:#EEF2FF}
.cmp small{display:block; font-size:14px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ds-muted); margin-bottom:6px}
.cmp > div + div small{color:#1D44D8}
.cmp blockquote{margin:6px 0 0; font-size:16px; line-height:1.5}
.cmp blockquote footer{font-size:14px; color:var(--ds-muted); margin-top:4px}
.cmpq{font-size:20px; font-weight:800; margin:var(--s4) 0 10px}
.cmpq a{color:inherit}
.sgrid .scard{margin:0!important; min-height:0}
.d19{max-width:760px}
.home19 .sh19:first-child{margin-top:var(--s4)}
.ask19 .qf{border:0!important; padding:0!important; background:none!important; box-shadow:none!important}

/* ---------- ROUND 20 ---------- */
.cmplist{display:flex; flex-direction:column; gap:8px}
.cmpa .cmpq{font-size:clamp(20px,2.4vw,26px); letter-spacing:-.02em}
.cmp p{font-size:16px; line-height:1.55; margin:10px 0 0}
.cmp.so > div:first-child{background:#FFF1F2}
.cmp.so > div:first-child small{color:#C8102E}
.cmpgo a{font-weight:700; color:var(--ds-accent); text-decoration:none; display:inline-flex; gap:6px; align-items:center}
.cmpgo svg{width:16px;height:16px}
.sidebar{margin:var(--s5) 0; padding:var(--s4); border-radius:var(--ds-r-lg); background:#EEF2FF; border-left:6px solid #1D44D8}
.sidebar h2{margin-top:0}
.email{margin:0 0 var(--s5); border:1px solid var(--ds-hair); border-radius:var(--ds-r-lg); background:#fff; overflow:hidden}
.eml-h{display:flex; justify-content:space-between; align-items:center; margin:0; padding:12px 16px; background:#F3F4F8}
.copy{border:0; border-radius:var(--ds-r-pill); background:var(--ds-accent); color:#fff; font:inherit; font-weight:700; padding:8px 18px; cursor:pointer}
.email pre{margin:0; padding:16px; white-space:pre-wrap; font:inherit; font-size:16px; line-height:1.55}
.tenlink{margin:-6px 0 var(--s3); font-size:16px}
.tenlink a{font-weight:700; color:var(--ds-accent); text-decoration:none; display:inline-flex; gap:6px; align-items:center}
.tenlink svg{width:16px;height:16px}
.ten{padding-left:1.2em}
.ten li{margin:0 0 var(--s3)}
.ten h2{font-size:22px; margin:0 0 6px}
.askwrap{position:relative; max-width:44rem}
.sugg{position:absolute; left:0; right:0; top:62px; z-index:20; background:#fff; border:1px solid var(--ds-hair); border-radius:var(--ds-r-lg); box-shadow:0 18px 40px rgba(13,26,68,.14); padding:8px}
.sg-h{margin:6px 10px; font-size:14px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ds-muted)}
.sg{display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-radius:var(--ds-r); text-decoration:none; color:var(--ds-ink)}
.sg:hover, .sg:focus{background:#EEF2FF}
.sg b{font-size:16px} .sg span{font-size:14px; color:var(--ds-muted)}
.sg1{background:#EEF2FF}
.sg-none{margin:8px 12px; color:var(--ds-muted)}
.qbest{border:2px solid var(--ds-accent)!important}
.qbl{margin:0 0 6px; font-size:14px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ds-accent)}
.resume{margin:var(--s3) 0 0}
.resume a{display:inline-flex; gap:8px; align-items:center; padding:10px 16px; border-radius:var(--ds-r-pill); background:#EEF2FF; color:#1D44D8; font-weight:600; text-decoration:none; font-size:15px}
.resume svg{width:16px;height:16px}
.caselinks{display:grid; grid-template-columns:1fr; gap:12px; margin:var(--s4) 0}@media (min-width:760px){.caselinks{grid-template-columns:1fr 1fr}}
.sugg a.sg{display:flex!important; width:100%!important; margin:0!important; padding:10px 12px!important; border:0!important; border-radius:var(--ds-r)!important; background:none; text-align:left!important; align-items:flex-start!important; min-height:0!important; box-shadow:none!important}
.sugg a.sg.sg1{background:#EEF2FF}
.qfilter input{width:100%; max-width:44rem; height:56px; padding:0 18px; font:inherit; font-size:17px; border:2px solid var(--ds-hair); border-radius:var(--ds-r-pill); background:#fff}
.qfilter input:focus{border-color:var(--ds-accent); outline:none}
.qtopics{display:flex; flex-wrap:wrap; gap:8px; margin:var(--s3) 0 var(--s4)}
.qtopics a{padding:8px 14px; border-radius:var(--ds-r-pill); background:#fff; border:1px solid var(--ds-hair); text-decoration:none; color:var(--ds-ink); font-weight:600; font-size:15px}
.qtopics a span{color:var(--ds-muted); font-weight:500}
.qgroup h2{font-size:26px; margin:var(--s5) 0 var(--s2)}
.qitem{border-bottom:1px solid var(--ds-hair)}
.qitem summary{cursor:pointer; padding:14px 4px; font-weight:700; font-size:18px; list-style:none}
.qitem summary::-webkit-details-marker{display:none}
.qitem summary::before{content:'+'; display:inline-block; width:1.2em; color:var(--ds-accent); font-weight:800}
.qitem[open] summary::before{content:'\2212'}
.qans{padding:0 4px 16px 1.2em}
.qnext a{font-weight:700; color:var(--ds-accent); text-decoration:none}
.qnext svg{width:14px; height:14px}
.tdia{margin:var(--s5) 0; padding:var(--s4); background:#fff; border:1px solid var(--ds-hair); border-radius:var(--ds-r-lg); text-align:center}.tdia svg{width:100%; max-width:440px; height:auto}.tdia figcaption{font-size:15px; color:var(--ds-muted); max-width:34rem; margin:12px auto 0; line-height:1.5}
/* R21 questions: video-first */
.qtopics{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 28px}
.qtopics a{padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--line,#e3e3ea);font-weight:600;text-decoration:none;color:var(--ink)}
.qtopics a span{color:var(--blue,#1d3fbf);margin-left:4px}
.qcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:12px 0 28px}
.qcard{display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:16px;background:#fff;border:1px solid var(--line,#e3e3ea);text-decoration:none;color:var(--ink)}
.qcard:hover{border-color:var(--blue,#1d3fbf)}
.qcard b{font-size:1.05rem;line-height:1.35}
.qcard span{font-size:.88rem;color:var(--blue,#1d3fbf);display:flex;gap:6px;align-items:center}
.qcard[hidden],.qgroup[hidden]{display:none}
.qpage{max-width:760px;padding-top:24px;padding-bottom:40px}
.qh1{font-size:clamp(1.8rem,4.5vw,2.6rem);line-height:1.15;margin:.3em 0 .2em}
.qwho{margin:0 0 16px;color:var(--muted,#555)}
.qsum{font-size:1.05rem;line-height:1.6;margin:22px 0 10px}
.qnext.big{font-size:1.1rem}
.qparish{margin-top:18px;padding:14px 18px;border-radius:14px;background:var(--cobalt,#1d3fbf);color:#fff}
.qparish a{color:#fff;font-weight:700}
.qvid .lite-play{top:50%}
.qvid .qvlab{position:absolute;left:18px;bottom:14px;right:18px;font-size:14px;font-weight:600;color:#DCE3FF}
/* R22 lead video + parish band */
.lead-w{margin:18px 0 30px;padding:22px;border-radius:22px;background:#fff;border:1px solid var(--line,#e3e3ea);box-shadow:0 10px 30px rgba(14,42,154,.08)}
.lw-k{margin:0 0 4px;font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red,#d7263d)}
.lead-w h2,.pband h2{margin:0 0 8px;font-size:clamp(1.4rem,3.4vw,1.9rem);line-height:1.2}
.lw-x{margin:0 0 4px;color:var(--muted,#555)}
.pband{margin:36px 0;padding:26px;border-radius:22px;background:var(--cobalt,#1d3fbf);color:#fff}
.pband .lw-k{color:#FFD24A}.pband p{color:#E8ECFF}
.pb-go{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pband .btn{background:#fff;color:var(--cobalt,#1d3fbf)}.pband .btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.6)}
/* R22 posters */
.poster{margin:30px 0;padding:0 0 18px;border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--line,#e3e3ea);box-shadow:0 14px 40px rgba(14,42,154,.10)}
.poster .phead{position:relative;aspect-ratio:16/7;overflow:hidden}
.poster .phead img{width:100%;height:100%;object-fit:cover;display:block}
.pcap{position:absolute;left:0;right:0;bottom:0;padding:18px 22px;background:linear-gradient(transparent,rgba(10,20,80,.85));color:#fff}
.pcap .lw-k{color:#FFD24A}.pcap h2{margin:0;color:#fff;font-size:clamp(1.5rem,4vw,2.2rem);line-height:1.1}
.plede{margin:16px 22px 6px;font-size:1.05rem}
.pgroups{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:10px 22px}
.pgroup{padding:14px;border-radius:16px;background:var(--cobalt,#1d3fbf);color:#fff}
.pgroup:nth-child(2){background:var(--red,#c8102e)}.pgroup:nth-child(3){background:var(--navy,#0e1f4d)}
.pgroup h3{margin:0 0 8px;color:#fff;font-size:1rem;letter-spacing:.04em;text-transform:uppercase}
.pgroup p,.pgroup b{color:#fff}.pgroup .cite{color:#fff;border-color:rgba(255,255,255,.5)}
.pline{list-style:none;margin:0;padding:0}
.ptime{margin:12px 22px;border-left:3px solid var(--cobalt,#1d3fbf)}
.pnode{display:flex;gap:12px;align-items:flex-start;padding:8px 0 8px 0}
.ptime .pnode{margin-left:-15px}
.pn{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;background:#C9F24A;color:#0e1f4d}
.pnode p{margin:2px 0 0;font-size:.95rem;line-height:1.45}
.poster .credit{margin:8px 22px 0;font-size:14px}
.pgroup a,.pgroup sup a,.pgroup .fn a{color:#fff!important}
.poster .phead picture{display:block;width:100%;height:100%}.poster .phead img{position:absolute;inset:0}
.poster .plede{margin:16px 22px 6px!important;padding:0}
.poster .pgroups{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.poster .phead{padding:0!important;margin:0!important}
.qvid .qvlab{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;bottom:12px}.qvid .lite-play{top:42%}
/* R23 branded player shell */
.sv{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#0E2A9A;box-shadow:0 0 0 1px rgba(14,42,154,.25),0 0 0 5px #fff,0 0 0 6px rgba(14,42,154,.18),0 18px 40px rgba(14,42,154,.22);isolation:isolate}
.sv .sv-btn{all:unset;box-sizing:border-box;cursor:pointer;position:absolute;inset:0;display:block;color:#fff}
.sv-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15) brightness(1.05);mix-blend-mode:normal}
.sv-tint{position:absolute;inset:0;background:linear-gradient(160deg,rgba(31,79,224,.78) 0%,rgba(14,42,154,.72) 45%,rgba(13,26,68,.92) 100%);mix-blend-mode:multiply}
.sv-tint::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(13,26,68,.75) 100%)}
.sv-top{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.sv-mark{font-size:14px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:.92}
.sv-len{font-size:14px;font-weight:700;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(4px)}
.sv-txt{position:absolute;left:18px;right:84px;bottom:16px;display:flex;flex-direction:column;gap:6px}
.sv-q{font-size:clamp(17px,2.6vw,26px);line-height:1.15;font-weight:800;letter-spacing:-.02em;color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sv-who{font-size:14px;font-weight:700;color:#C9F24A}
.sv-play{position:absolute;right:16px;bottom:16px;width:56px;height:56px;border-radius:50%;background:#fff;color:#1F4FE0;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.sv-play svg{width:26px;height:26px;margin-left:3px}
.sv-btn:focus-visible{outline:3px solid #C9F24A;outline-offset:-3px;border-radius:22px}
@media (prefers-reduced-motion:no-preference){.sv-img,.sv-play{transition:transform .5s cubic-bezier(.2,.7,.2,1)}.sv-btn:hover .sv-img{transform:scale(1.04)}.sv-btn:hover .sv-play{transform:scale(1.08)}}
.sv.sv-sm{border-radius:16px}.sv-sm .sv-q{font-size:15px;-webkit-line-clamp:2}.sv-sm .sv-play{width:42px;height:42px;right:12px;bottom:12px}.sv-sm .sv-play svg{width:20px;height:20px}.sv-sm .sv-txt{left:12px;bottom:12px;right:62px}.sv-sm .sv-top{top:10px;left:12px;right:12px}
.sv.sv-on{background:#000}.sv iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:inherit}
.lite.sv{margin-top:0}
/* R23 lead video above the fold + watch another */
.has-lead .lead-w{margin:14px 0 18px;padding:14px;border-radius:24px}
.has-lead .lead-w h2{font-size:1.2rem}
@media (max-width:799px){.has-lead .lh-art,.has-lead .lh-sum,.has-lead .lh-step{display:none}.has-lead .lh-t{font-size:clamp(28px,8vw,36px)}.has-lead .lead-w{margin-left:-6px;margin-right:-6px}}
.wa{margin:18px 0 6px}.wa-h{margin:0 0 10px;font-size:14px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#555)}
.wa-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
.wa-i{scroll-snap-align:start;display:flex;flex-direction:column;gap:6px}
.wa-l{font-size:14px;font-weight:600;line-height:1.3;text-decoration:none;color:var(--ink)}
.wa .sv{box-shadow:0 0 0 1px rgba(14,42,154,.2),0 8px 20px rgba(14,42,154,.15)}
.lh-txt{min-width:0}.lhero-in>*{min-width:0}.sv{height:auto!important;aspect-ratio:16/9!important;width:100%}.has-lead .lead-w{max-width:100%;box-sizing:border-box}
.hnext{margin-left:6px;padding:7px 14px!important;min-height:44px;display:inline-flex!important;align-items:center;border-radius:999px;background:var(--cobalt,#1d3fbf);color:#fff!important;font-weight:700}
.qf2{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:10px;font-size:15px}.qf2 select{font:inherit;padding:8px 12px;border-radius:12px;border:1px solid rgba(14,42,154,.25);background:#fff}.qfs{display:flex;gap:6px;align-items:center}.qfn{color:var(--muted,#555);font-weight:600}
.pgroup.reveal:nth-child(2),.pnode.reveal:nth-child(2){transition-delay:.12s}.pgroup.reveal:nth-child(3),.pnode.reveal:nth-child(3){transition-delay:.24s}.pnode.reveal:nth-child(4){transition-delay:.36s}.pnode.reveal:nth-child(5){transition-delay:.48s}
/* R23 Mass walkthrough */
.mw{margin:8px 0 28px}.mw-bar{display:none}
.mw-track{list-style:none;margin:0;padding:0;display:grid;gap:20px}
.mw-p{border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px rgba(14,42,154,.12),0 14px 34px rgba(14,42,154,.12)}
.mw-art{position:relative;aspect-ratio:16/9;overflow:hidden}.mw-art img{width:100%;height:100%;object-fit:cover}
.mw-n{position:absolute;left:16px;top:14px;width:44px;height:44px;border-radius:50%;background:#C9F24A;color:#0E2A9A;font-weight:800;font-size:20px;display:grid;place-items:center}
.mw-t{padding:18px 20px 16px}.mw-t h2{margin:0 0 8px;font-size:clamp(24px,4vw,32px);letter-spacing:-.02em}.mw-t p{margin:0 0 10px;font-size:17px;line-height:1.55}.mw-why b{color:#1F4FE0}
.mw-on .mw-bar{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.mw-on .mw-track{grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:16px}.mw-on .mw-track::-webkit-scrollbar{display:none}
.mw-on .mw-p{scroll-snap-align:start}
.mw-dots{list-style:none;display:flex;flex:1;gap:6px;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}
.mw-dots a{display:block;white-space:nowrap;padding:7px 12px;border-radius:999px;font-size:14px;font-weight:700;text-decoration:none;color:#0E2A9A;background:rgba(31,79,224,.08)}
.mw-dots a[aria-current]{background:#1F4FE0;color:#fff}
.mw-prev,.mw-next{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:#0E2A9A;color:#fff;display:grid;place-items:center;cursor:pointer}.mw-prev svg{transform:rotate(180deg)}
@media (max-width:640px){.mw-dots a{font-size:0;width:10px;height:10px;padding:0}.mw-dots{justify-content:center}}
.qf2 select{width:auto!important;max-width:100%}.qfs input{width:20px!important;height:20px!important;padding:0!important;margin:0;flex:none;accent-color:#1F4FE0}.qfs{white-space:nowrap}
.qa-v{margin:6px 0 14px;max-width:560px}.qa-vc{margin:8px 0 0;font-size:14px;color:var(--muted,#555)}.cmpa .qa-v{margin:10px 0 16px}
/* R24 big-picture posters */
.bp-hero{position:relative;min-height:min(78vh,720px);display:flex;align-items:flex-end;overflow:hidden;color:#fff;isolation:isolate}
.bp-hero picture,.bp-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.bp-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,26,68,.15) 0%,rgba(13,26,68,.55) 45%,rgba(13,26,68,.94) 100%)}
.bp-cap{padding-top:120px;padding-bottom:48px}.bp-k{margin:0 0 10px;color:#C9F24A;font-weight:800;font-size:15px;letter-spacing:.04em}
.bp-hero h1{margin:0;font-size:clamp(44px,9vw,104px);line-height:.95;letter-spacing:-.035em;font-weight:800;color:#fff}
.bp-lede{max-width:640px;margin:16px 0 0;font-size:clamp(18px,2.2vw,21px);line-height:1.5;color:rgba(255,255,255,.92)}.bp-lede a{color:#fff}
.bp-act{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0}.bp-act .ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.4)}
.bp-body{padding-top:40px;padding-bottom:56px}
.bp-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.bp-i{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:18px;border-radius:20px;background:#fff;box-shadow:0 0 0 1px rgba(14,42,154,.1),0 10px 26px rgba(14,42,154,.08)}
.bp-n{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#1F4FE0;color:#fff;font-weight:800}
.bp-i b{display:block;font-size:18px;line-height:1.25;letter-spacing:-.01em}.bp-i p{margin:6px 0 0;font-size:15px;line-height:1.5;color:var(--muted,#4a5068)}
.bp-groups{display:grid;gap:28px}.bp-g h2{margin:0 0 12px;font-size:clamp(22px,3vw,28px);letter-spacing:-.02em}
.bp-foot{margin-top:32px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:14px;color:var(--muted,#555)}.bp-mark{font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.bp-hub{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.bp-card{position:relative;display:block;aspect-ratio:4/5;border-radius:24px;overflow:hidden;color:#fff;text-decoration:none;isolation:isolate}
.bp-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.bp-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 40%,rgba(13,26,68,.92))}
.bp-card span{position:absolute;left:20px;right:20px;bottom:18px}.bp-card small{display:block;color:#C9F24A;font-weight:700;font-size:14px}.bp-card b{font-size:28px;letter-spacing:-.02em;line-height:1.05}
@media (prefers-reduced-motion:no-preference){.bp-card:hover img{transform:scale(1.04)}}
@media print{header.site,nav.tabbar,.sitefoot,footer.site,.noprint,.pband,.hnext{display:none!important}.bp-hero{min-height:0;height:3.2in;color:#000}.bp-hero::after{background:linear-gradient(180deg,transparent,rgba(13,26,68,.85))}.bp-hero h1{color:#fff;font-size:48pt}.bp-cap{padding:0 .4in .3in}.bp-i{box-shadow:none;border:1px solid #c8cde0;break-inside:avoid;padding:8pt}.bp-list{grid-template-columns:repeat(2,1fr);gap:6pt}.bp-i p{font-size:9.5pt}.bp-i b{font-size:11pt}.bp-body{padding:.25in .4in}.reveal{opacity:1!important;transform:none!important}body{background:#fff}}
/* R24 Bible timeline */
.btl-eras{position:sticky;top:0;z-index:5;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:12px 0;margin:8px 0 18px;background:linear-gradient(var(--bg,#f7f7f5) 80%,transparent)}
.btl-eras a{flex:none;padding:8px 14px;border-radius:999px;font-weight:700;font-size:14px;text-decoration:none;color:#0E2A9A;background:rgba(31,79,224,.08);transition:background .25s,color .25s}
.btl-eras a[aria-current]{background:#1F4FE0;color:#fff}
.btl{list-style:none;margin:0;padding:0 0 0 28px;position:relative;max-width:720px}
.btl::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(#1F4FE0,#C9F24A)}
.btl-i{position:relative;margin:0 0 30px;scroll-margin-top:80px}
.btl-i::before{content:"";position:absolute;left:-25px;top:6px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid #1F4FE0}
.btl-w{margin:0 0 4px;font-size:14px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#1F4FE0}
.btl-i h2{margin:0 0 6px;font-size:clamp(22px,3.4vw,30px);letter-spacing:-.02em;line-height:1.15}.btl-i p{margin:0;font-size:17px;line-height:1.55}
.btl-pic{border-radius:20px;overflow:hidden;aspect-ratio:16/9;margin:0 0 14px}.btl-pic img{width:100%;height:100%;object-fit:cover}
.btl-canon{margin:20px 0 40px;padding:28px;border-radius:28px;background:#0E2A9A;color:#fff;max-width:720px}.btl-canon h2{color:#fff;margin:4px 0 10px;font-size:clamp(28px,4vw,40px)}.btl-canon a.cite{color:#C9F24A}.btl-canon .ghost{color:#fff;border-color:rgba(255,255,255,.4)}
/* R24 studio-finish layer: rhythm, alignment and micro-interactions (all motion honors reduced-motion) */
:root{--r24-ease:cubic-bezier(.2,.7,.2,1)}
::selection{background:#C9F24A;color:#0D1A44}
html{-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2,h3{text-wrap:balance}p,li{text-wrap:pretty}
a{text-underline-offset:.18em;text-decoration-thickness:.08em}
:focus-visible{outline:3px solid #1F4FE0;outline-offset:3px;border-radius:10px}
/* home: no orphan card, doors span the full measure */
@media (min-width:1100px){.sgrid .scard:last-child:nth-child(3n+1){grid-column:1/-1}}
@media (min-width:700px) and (max-width:1099px){.sgrid .scard:last-child:nth-child(2n+1){grid-column:1/-1}}
.d19{max-width:none!important;gap:clamp(12px,2vw,24px)}
@media (min-width:900px){.door19 .dwin{aspect-ratio:4/5}}
.home19>section+section{margin-top:clamp(48px,7vw,88px)}
/* cards: one lift language everywhere */
@media (prefers-reduced-motion:no-preference){
 .scard,.hcard,.qcard,.jcard,.cq2,.bp-i,.mw-p,.wa-i,.door19 .dwin{transition:transform .35s var(--r24-ease),box-shadow .35s var(--r24-ease)}
 .scard:hover,.hcard:hover,.qcard:hover,.jcard:hover,.cq2:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(14,42,154,.14)}
 .door19:hover .dwin{transform:translateY(-4px)}
 .btn{transition:transform .2s var(--r24-ease),box-shadow .2s var(--r24-ease),background-color .2s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(1px) scale(.98)}
 img{transition:opacity .5s ease}
}
/* question cards: equal heights, aligned meta */
.qcards{align-items:stretch}.qcard{display:flex!important;flex-direction:column;justify-content:space-between;gap:10px}
/* phone gutters: one rhythm */
@media (max-width:640px){.wrap{padding-left:20px!important;padding-right:20px!important}}
.sv-img{filter:grayscale(1) contrast(1.1) blur(2.5px)!important;transform:scale(1.08)}@media (prefers-reduced-motion:no-preference){.sv-btn:hover .sv-img{transform:scale(1.12)}}.sv-tint{background:linear-gradient(160deg,rgba(31,79,224,.82) 0%,rgba(14,42,154,.8) 45%,rgba(13,26,68,.95) 100%)!important}
.lh-j{max-width:100%;flex-wrap:wrap;row-gap:4px;white-space:normal!important}

/* R25: index-page finish (popes, saints, Bible, Case) matched to the home: one art band, one card language, quiet notes */
.iband{margin:26px 0 30px;border-radius:22px;overflow:hidden;background:#0b1430;box-shadow:0 1px 2px rgba(11,20,48,.06),0 18px 40px -22px rgba(11,20,48,.45);position:relative}
.iband picture,.iband img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:var(--pos,50% 40%)}
.iband figcaption{font-size:14px;line-height:1.45;color:rgba(255,255,255,.78);padding:10px 16px 12px;background:#0b1430}
.iband figcaption i{font-style:italic}
@media (max-width:700px){.iband{margin:20px 0 24px;border-radius:18px}.iband picture,.iband img{aspect-ratio:4/3}}
.case .caselinks{display:grid;gap:14px;grid-template-columns:1fr 1fr;margin:0 0 34px}
@media (max-width:700px){.case .caselinks{grid-template-columns:1fr}}
.bnote{margin:40px 0 10px;border:1px solid rgba(11,20,48,.10);border-radius:18px;background:#fff;padding:0 20px}
.bnote summary{cursor:pointer;font-weight:700;padding:16px 0;list-style:none}
.bnote summary::-webkit-details-marker{display:none}
.bnote summary::after{content:"+";float:right;font-weight:400;opacity:.6}
.bnote[open] summary::after{content:"\2212"}
.bnote .btrans{font-size:15px;line-height:1.6;color:#4a5170;margin:0 0 14px}
.pp-honest{border:1px solid rgba(11,20,48,.10);border-left:5px solid #1D44D8;border-radius:18px;background:#fff;padding:18px 20px;box-shadow:0 1px 2px rgba(11,20,48,.05)}
.pp-honest p{font-size:15px;line-height:1.6;margin:0 0 10px}
.pp-honest p:last-child{margin:0}
.sg{background:none!important;border:0!important;box-shadow:none!important;padding-left:0!important;padding-right:0!important}
.wrap > section.phead:not(.poster .phead){padding-top:0;margin-top:0}
.iband picture{aspect-ratio:auto!important;height:auto!important}
.iband img{aspect-ratio:auto!important;width:100%!important;height:min(56vw,560px)!important;object-fit:cover!important;object-position:var(--pos,50% 40%)!important}
@media (max-width:700px){.iband img{height:68vw!important}}
/* R25: saint, pope and Case detail heroes on phones: one full-width art panel (same as the index bands), not a thumbnail */
@media (max-width:799px){
  .st-hero .lh-art, .case .chero .cart{width:100%;align-items:stretch}
  .st-hero .lh-art .clip, .case .chero .cart .clip{width:100%!important;height:auto!important;aspect-ratio:16/10!important;border-radius:20px}
  .st-hero .lh-art .credit, .case .chero .cart .credit{margin:8px 2px 0}
  .st-hero .lh-txt{margin-top:22px}
  .case .chero .crumbs{margin-top:20px}
}
.bible > section.phead{padding-top:0;margin-top:0}
.iband figcaption a{color:#fff;text-decoration:underline;text-underline-offset:2px}

/* ===== R26: The Story in 7 Acts (scroll-scrubbed). --p = 0..1 progress through each act; default 1 so no-JS shows everything. ===== */
.story{--p:1;background:#070b1d;color:#fff;position:relative}
.story .script{color:#ffd76a}
.sa-intro,.sa-stage{position:relative;height:100svh;min-height:560px;overflow:hidden;isolation:isolate}
.sa-art{position:absolute;inset:0;z-index:-2}
.sa-art picture,.sa-art img{display:block;width:100%;height:100%;object-fit:cover}
.sa-veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,11,29,.25) 0%,rgba(7,11,29,.15) 35%,rgba(7,11,29,.9) 100%),radial-gradient(120% 80% at 50% 120%,color-mix(in srgb,var(--tone,#1D44D8) 55%,transparent),transparent 70%)}
.sa-ih{position:absolute;left:0;right:0;bottom:0;padding:0 max(24px,6vw) 9svh;max-width:900px}
.sa-ih .crumbs,.sa-ih .crumbs a{color:rgba(255,255,255,.8)}
.sa-k{font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:14px;color:#ffd76a;margin:0 0 10px}
.sa-intro h1{font-size:clamp(48px,9vw,112px);line-height:.95;letter-spacing:-.03em;margin:0 0 18px;font-weight:800}
.sa-il{font-size:clamp(18px,2.2vw,22px);line-height:1.5;max-width:40ch;margin:0;color:rgba(255,255,255,.92)}
.sa-cue{margin-top:28px;font-weight:700;display:inline-flex;gap:8px;align-items:center;opacity:.85}
.sa-cue svg{width:18px;height:18px;transform:rotate(90deg)}
.story sup a,.story .cite a{color:#ffd76a}

.sa{position:relative}
.sa-stage{position:sticky;top:0}
.sa-art img{transform:scale(calc(1.18 - .18 * var(--p))) translateY(calc((1 - var(--p)) * 2%));transform-origin:50% 40%;will-change:transform}
.sa-svg{position:absolute;right:max(16px,5vw);top:50%;width:min(46vw,460px);height:auto;translate:0 -50%;fill:none;stroke:rgba(255,255,255,.92);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 6px 24px rgba(0,0,0,.45));opacity:.95}
.sa-head{position:absolute;left:max(24px,6vw);top:max(88px,13svh);max-width:min(560px,80vw)}
.sa-n{font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:14px;color:#ffd76a;margin:0 0 6px}
.sa-n span{color:rgba(255,255,255,.6)}
.sa-head h2{font-size:clamp(52px,10vw,128px);line-height:.9;letter-spacing:-.035em;margin:0;font-weight:800;color:#fff;transform:translateY(calc((1 - min(1, var(--p) * 5)) * 30px));opacity:calc(.3 + min(1, var(--p) * 5) * .7)}
.sa-books{margin:10px 0 0;font-weight:700;color:rgba(255,255,255,.75)}
.sa-line{position:absolute;left:max(24px,6vw);bottom:10svh;margin:0;max-width:min(640px,86vw);opacity:clamp(0, calc(1.2 - var(--p) * 4), 1)}
.sa-line p{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:700;font-size:clamp(24px,3.4vw,40px);line-height:1.2;margin:0 0 10px;color:#fff;text-wrap:balance}
.sa-line cite{font-style:normal;font-weight:700;font-size:14px;color:rgba(255,255,255,.75)}
.sa-beats{position:relative;margin-top:-55svh;padding:0 max(24px,6vw) 20svh;display:grid;gap:55svh;pointer-events:none}
.sa-beat{pointer-events:auto;max-width:520px;margin:0;padding:22px 24px;border-radius:18px;background:rgba(7,11,29,.72);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(255,255,255,.14);border-left:4px solid var(--tone);font-size:clamp(18px,2vw,21px);line-height:1.5;color:#fff;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.sa-end{position:relative;padding:48px max(24px,6vw) 72px;background:linear-gradient(180deg,#070b1d,color-mix(in srgb,var(--tone) 18%,#070b1d))}
.sa-end .lw-k{color:#ffd76a}
.sa-vids{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;max-width:1080px}
.sa-vk{font-weight:800;font-size:14px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;color:#fff}
.sa-end .vsrc,.sa-end .credit,.sa-end .credit a{color:rgba(255,255,255,.72)}
.sa-coda{padding:96px max(24px,6vw);max-width:900px}
.sa-coda h2{font-size:clamp(40px,6vw,72px);line-height:1;letter-spacing:-.03em;margin:0 0 16px;color:#fff}
.sa-coda p{font-size:20px;line-height:1.55;color:rgba(255,255,255,.9)}
.sa-coda .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
/* rail + progress */
.sa-bar{position:fixed;left:0;right:0;top:0;height:3px;z-index:60;pointer-events:none}
.sa-bar i{display:block;height:100%;background:linear-gradient(90deg,#ffd76a,#DC1F27);transform-origin:0 50%;transform:scaleX(var(--g,0))}
.sa-rail{position:fixed;right:14px;top:50%;translate:0 -50%;z-index:55;display:flex;flex-direction:column;gap:6px}
.sa-rail a{display:flex;align-items:center;justify-content:flex-end;gap:8px;text-decoration:none;color:#fff;font-weight:700;font-size:14px}
.sa-rail i{font-style:normal;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(7,11,29,.6);border:1px solid rgba(255,255,255,.3);font-size:14px;transition:background .3s,transform .3s}
.sa-rail span{opacity:0;transform:translateX(6px);transition:.25s;background:rgba(7,11,29,.75);padding:4px 10px;border-radius:99px}
.sa-rail a:hover span,.sa-rail a:focus-visible span,.sa-rail a.on span{opacity:1;transform:none}
.sa-rail a.on i{background:#ffd76a;color:#0B1230;transform:scale(1.12);border-color:#ffd76a}
@media (max-width:799px){
 .sa-rail{right:auto;left:50%;top:auto;bottom:calc(var(--ds-tabs-clear) - 18px);translate:-50% 0;flex-direction:row;gap:4px;background:rgba(7,11,29,.7);padding:6px 8px;border-radius:99px;backdrop-filter:blur(10px)}
 .sa-rail span{display:none} .sa-rail i{width:28px;height:28px}
 .sa-svg{width:72vw;right:50%;translate:50% -46%;opacity:.55}
 .sa-head{top:84px} .sa-line{bottom:14svh}
 .sa-beats{margin-top:-40svh;gap:45svh} .sa-beat{padding:18px 20px}
 .sa-end{padding-bottom:96px}
}
/* the illustrations */
.sa-svg .sv-draw{stroke-dasharray:1 1;stroke-dashoffset:clamp(0px, calc((1 - var(--p) * 1.8) * 1px), 1px)}
.sa-svg .d2{stroke-dashoffset:clamp(0px, calc((1.25 - var(--p) * 1.8) * 1px), 1px)}
.sa-svg .d3{stroke-dashoffset:clamp(0px, calc((1.5 - var(--p) * 1.8) * 1px), 1px)}
.sa-svg .d4{stroke-dashoffset:clamp(0px, calc((1.75 - var(--p) * 1.8) * 1px), 1px)}
.sa-svg .sv-gold{stroke:#ffd76a;stroke-width:3.5}
.sa-svg .sv-red{stroke:#ff5a5f}
.sa-svg .sv-dash{stroke-dasharray:1 1}
.sv-star{fill:#fff;stroke:none;opacity:clamp(0, calc(var(--p) * 7 - var(--i)), 1)}
.sv-sun{fill:#ffd76a;stroke:none;transform-box:fill-box;transform-origin:center;transform:scale(calc(.2 + var(--p) * .8));opacity:calc(.25 + var(--p) * .75)}
.sv-fruit{fill:#DC1F27;stroke:none;transform:translateY(calc(var(--p) * 150px))}
.sv-rise{transform:translateY(calc((1 - var(--p)) * 60px));opacity:calc(var(--p) * 1.4)}
.sv-col{fill:rgba(255,215,106,.85);stroke:none;transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(clamp(0, calc(var(--p) * 3 - var(--i) * .3), 1))}
.sv-brick{fill:rgba(255,255,255,.18);transform:translate(calc(var(--dx) * var(--p) * 1px), calc(var(--dy) * var(--p) * 1px)) rotate(calc(var(--dx) * var(--p) * .6deg));transform-box:fill-box;transform-origin:center}
.sv-ember{fill:#ff8a3d;stroke:none;opacity:var(--p)}
.sv-rays path{stroke:rgba(255,215,106,.5);stroke-width:1.5}
.sv-rays{transform-origin:200px 200px;transform:rotate(calc(var(--p) * 40deg)) scale(calc(.3 + var(--p) * .7));opacity:var(--p)}
.sv-stone{fill:rgba(255,255,255,.2);transform-box:fill-box;transform-origin:center;transform:translateX(calc(var(--p) * 70px)) rotate(calc(var(--p) * 200deg))}
.sv-flame{fill:#ff8a3d;stroke:#ffd76a;transform-box:fill-box;transform-origin:50% 100%;transform:scale(clamp(0, calc(var(--p) * 3 - var(--i) * .25), 1.1))}
.sv-ppl circle{fill:#fff;stroke:none;transform:translate(calc(var(--dx) * var(--p) * 1px), calc(var(--dy) * var(--p) * 1px));opacity:calc(.3 + var(--p) * .7)}
.sv-dove{fill:#fff;stroke:#ffd76a}
@media (prefers-reduced-motion:reduce){.story{--p:1 !important}.story *{transition:none !important}}
@media (min-width:800px){
 .sa-beats{justify-items:end;padding-right:max(80px,8vw)}
 .sa-svg{right:auto;left:max(24px,6vw);top:60%;width:min(32vw,380px)}
 .sa-line{left:auto;right:max(80px,8vw);bottom:12svh;text-align:right;max-width:min(560px,44vw)}
}
.sa-vids{grid-template-columns:repeat(auto-fill,minmax(280px,480px))}
.sa-coda .btn.ghost{background:transparent !important;color:#fff !important;border:1.5px solid rgba(255,255,255,.55) !important}
.sa-rail,.sa-bar{transition:opacity .3s}.story.sa-out .sa-rail,.story.sa-out .sa-bar{opacity:0;pointer-events:none}
.mp-num{position:absolute;right:max(24px,6vw);bottom:4svh;margin:0;font-weight:800;font-size:clamp(160px,30vw,380px);line-height:.8;color:transparent;-webkit-text-stroke:2px rgba(255,215,106,.7);transform:translateY(calc((1 - var(--p)) * 80px));opacity:calc(.2 + var(--p) * .8);pointer-events:none}
.sa-beat b{color:#ffd76a}
@media (max-width:799px){.mp-num{bottom:auto;top:96px;right:20px;font-size:120px}}
/* R26: See it cards */
.see19,.see-step{margin:56px 0}
.see-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.see-step .see-row{grid-template-columns:repeat(auto-fit,minmax(240px,340px))}
.see-c{position:relative;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;text-decoration:none;color:#fff;background:#0B1230;min-height:340px;isolation:isolate;box-shadow:0 18px 50px -18px rgba(11,18,48,.5);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.see-c:hover,.see-c:focus-visible{transform:translateY(-4px);box-shadow:0 26px 60px -18px rgba(11,18,48,.6)}
.see-art{position:absolute;inset:0;z-index:-2}
.see-art picture,.see-art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.see-c:hover .see-art img{transform:scale(1.06)}
.see-c::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,18,48,0) 25%,color-mix(in srgb,var(--c) 40%,rgba(11,18,48,.92)) 70%,rgba(11,18,48,.96))}
.see-t{margin-top:auto;padding:22px;display:flex;flex-direction:column;gap:6px}
.see-t small{font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:14px;color:#ffd76a}
.see-t b{font-size:24px;line-height:1.1;letter-spacing:-.01em}
.see-t span{font-size:15px;line-height:1.45;color:rgba(255,255,255,.88)}
.see-t em{font-style:normal;font-weight:800;display:inline-flex;align-items:center;gap:6px;margin-top:6px}
.see-t em svg{width:16px;height:16px}
@media (max-width:799px){.see-home{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.see-home .see-c{scroll-snap-align:start}}
.qquick{margin:28px 0;padding:20px;border-radius:20px;background:linear-gradient(135deg,#0B1230,#1D44D8);color:#fff;max-width:560px}
.qquick .lw-k{color:#ffd76a;margin-top:0}.qquick .vsrc,.qquick .vsrc b{color:rgba(255,255,255,.8)}
.story .cite,.story a.cite{color:#ffd76a !important;border-color:rgba(255,215,106,.55) !important;background:transparent !important}
.sa-beat{background:rgba(7,11,29,.86)}
.ctype{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px}
.ct{font-size:14px;font-weight:800;letter-spacing:.02em;padding:5px 12px;border-radius:99px;text-decoration:none;border:1.5px solid currentColor}
.ct-teach{color:#1D44D8}.ct-scr{color:#9a2a00}.ct-theo{color:#5b3fa0}.ct-hist{color:#3B4A6B}.ct-disp{color:#b00d26}
.clog{list-style:none;padding:0;margin:0 0 32px;border-left:3px solid #1D44D8}
.clog li{padding:0 0 22px 22px;position:relative}.clog li::before{content:"";position:absolute;left:-8px;top:6px;width:13px;height:13px;border-radius:50%;background:#1D44D8}
.clog time{font-weight:800;font-size:14px;color:#1D44D8}.clog p{margin:4px 0 0}
.get19{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px;font-weight:700;font-size:15px;color:#0B1230}
.get19 li{display:flex;align-items:center;gap:8px}.get19 li::before{content:"";width:8px;height:8px;border-radius:50%;background:#1D44D8;flex:none}
.vx-sec .ctype{margin:-4px 0 14px}
/* R27: story rail is the only progress cue (no progress bars) */
.sa-rail a.on i{box-shadow:0 0 0 4px rgba(255,215,106,.25)}
/* R27: phone polish for journey steps at 390px: 44px tap targets, calmer rhythm, video first */
@media (max-width:799px){
 .brand{min-height:44px;display:inline-flex;align-items:center}
 .wa-l{display:flex;align-items:center;min-height:44px;padding:4px 0}
 .ct{min-height:44px;display:inline-flex;align-items:center}
 footer a,.foot a{display:inline-flex;align-items:center;min-height:44px}
 .vx-col{font-size:18px;line-height:1.62}
 .vx-col h2{font-size:clamp(26px,7.4vw,30px);line-height:1.15;margin-top:8px}
 .vx-sec{padding-top:36px}
 .vx-cliff{font-size:19px}
 .lh-t{font-size:clamp(34px,10vw,42px);line-height:1.05}
 .lh-hook{font-size:19px}
 .lh-cta .btn{min-height:48px}
 .lead-w .sv,.lhero .sv{border-radius:16px}
}
/* Round 28: written answers, crisis box, labels */
.qans{margin:28px 0 8px;padding:24px 22px;border-radius:18px;background:#F6F4EF;border:1px solid #E6E1D6}
.qans h2{font-size:24px;line-height:1.25;margin:0 0 12px}
.qans p{font-size:17px;line-height:1.6;margin:0 0 12px;max-width:62ch}
.qans .ctype{margin:14px 0 8px}
.ct-ours{color:#5c6478}
.qgo2 a{display:inline-block;margin:4px 14px 4px 0;font-weight:600}
.crisis{margin:18px 0 22px;padding:20px 22px;border-radius:16px;background:#FFF4E5;border:2px solid #C8102E}
.crisis h2{font-size:20px;line-height:1.3;margin:0 0 8px;color:#8A0B20}
.crisis p{font-size:17px;line-height:1.6;margin:0 0 8px}
.crisis a{font-weight:700}
.ess{margin:22px 0;padding:20px 22px;border-left:4px solid #1F4FE0;background:#F4F6FC;border-radius:0 14px 14px 0}
.ess h3{margin:0 0 6px;font-size:19px}
/* R29b: numbered call script on the parish finder */
ol.callsteps{list-style:decimal;padding-left:1.5em;margin:12px 0 20px}
ol.callsteps li{margin:0 0 12px;padding-left:4px}
ol.callsteps li::marker{font-weight:800;color:var(--blue,#1D44D8)}
/* R30: journey map controls, stop by stop (no slider, no counter) */
.jm-ctl{margin-top:12px}
.jm-ctl[hidden]{display:none}
.jm-pos{margin:0 0 10px; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px}
.jm-yr{font-size:22px; font-weight:800; color:var(--ds-ink)}
.jm-place{font-size:16px; font-weight:600; color:var(--ds-ink)}
.jm-k{font-size:14px; color:#4a5568; margin-left:auto}
.jm-btns{display:flex; gap:10px}
.jm-b{flex:1; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; font:inherit; font-size:16px; font-weight:700; border-radius:999px; border:2px solid var(--ds-cobalt); background:#fff; color:var(--ds-cobalt); cursor:pointer}
.jm-b svg{width:18px; height:18px}
.jm-b:first-child svg{transform:rotate(180deg)}
.jm-bn{background:var(--ds-cobalt); color:#fff}
.jm-b:disabled{opacity:.4; cursor:default}
.jm-b:focus-visible,.jm-chip:focus-visible{outline:3px solid var(--ds-ink); outline-offset:2px}
.jm-chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.jm-chip{min-height:44px; padding:0 14px; font:inherit; font-size:14px; font-weight:700; border-radius:999px; border:1.5px solid #c9cfdb; background:#fff; color:var(--ds-ink); cursor:pointer}
.jm-chip.on{background:var(--ds-ink); color:#fff; border-color:var(--ds-ink)}
.jm-tip{font-size:14px; color:#4a5568; margin:10px 0 0}
@media (prefers-reduced-motion: reduce){ .jm *{transition:none!important; animation:none!important} }
.cp-auto{font-size:14px;color:#3d4659;margin:6px 0 0} .cp-call{font-weight:700}
.cp-acts a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1.5px solid var(--ds-cobalt);border-radius:999px;margin:6px 8px 0 0;text-decoration:none}
.cp-acts a.cp-call{background:var(--ds-cobalt);color:#fff}
/* R30: short version + step jumper */
.shortv{border:1.5px solid #d6dbe6; border-radius:var(--ds-r-lg,16px); background:#fff; padding:18px 20px; margin:12px 0 28px}
.shortv h2{font-size:22px; margin:0 0 10px}
.sv-steps{margin:0 0 8px; padding-left:24px; list-style:decimal} .sv-steps li{padding-left:4px} .sv-steps li{margin:6px 0; font-size:17px; line-height:1.5}
.sv-toc,.sv-q{list-style:none; margin:0 0 8px; padding:0} .sv-toc li a,.sv-q li a{display:flex; align-items:center; min-height:44px; font-weight:600}
.sv-k{font-size:15px; font-weight:700; color:#3d4659; margin:12px 0 2px}
.sv-more{margin:8px 0}
.sjump{margin-top:12px; border-top:1px solid #e3e6ee; padding-top:8px}
.sjump summary{min-height:44px; display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; cursor:pointer; font-weight:700}
.sj-now{font-weight:500; font-size:15px; color:#3d4659}
.sjump ol{list-style:none; padding:0; margin:4px 0 0}
.sjump li a,.sjump li span{display:flex; gap:8px; align-items:center; min-height:44px; font-size:16px}
.sjump li span[aria-current]{color:var(--ds-ink); background:#eef1fb; border-radius:8px; padding:0 8px}
.sjump .soon{color:#4a5568}
/* R30 age panel: 44px tap targets for small inline links (footnotes, citation chips, YouTube links, breadcrumbs).
   Negative margins keep the line height of the text around them unchanged. */
sup.fn a, a.cite{position:relative}
sup.fn a::before{content:''; position:absolute; left:50%; top:50%; width:44px; height:44px; transform:translate(-50%,-50%)}
a.cite::before{content:''; position:absolute; left:-4px; right:-4px; top:50%; height:44px; transform:translateY(-50%)}
sup.fn a{font-size:14px; padding:0 3px}
a[href*="youtube.com/watch"]{display:inline-flex; align-items:center; min-height:44px}
.crumbs a{display:inline-flex; align-items:center; min-height:44px}
.crumbs{font-size:15px}
/* R30: list links, "more" links, credits and citation numbers get a 44px target (links inside running sentences are exempt under WCAG 2.5.8) */
a.tt, .smore a, .qa-vc a, .credit a, figcaption a, .cp-attr a, .lw a, footer a, .wa-l, .notes a, .fine a, p > a:only-child, .qgo2 a, .ds-note a{display:inline-flex; align-items:center; min-height:44px}
.cite + a, b + a[href*="vatican.va"]{display:inline-flex; align-items:center; min-height:44px; min-width:44px; justify-content:center}
.nh-act{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-weight:700;color:var(--ds-cobalt)} .nh-act svg{width:16px;height:16px} .nh-also{margin-top:12px;font-size:16px}
/* R30: saints A-Z */
.stoday{margin:20px 0 28px}
.az-btns{display:grid; grid-template-columns:repeat(auto-fill,minmax(56px,1fr)); gap:8px; margin:12px 0 20px}
.az-btns a,.az-btns span{display:flex; align-items:center; justify-content:center; min-height:56px; border-radius:12px; font-size:22px; font-weight:800; text-decoration:none}
.az-btns a{background:#fff; border:2px solid var(--ds-cobalt); color:var(--ds-cobalt)}
.az-btns a:hover,.az-btns a:focus-visible{background:var(--ds-cobalt); color:#fff}
.az-btns span{color:#9aa1ae; background:#f0f1f4}
.az-groups{columns:2 280px; column-gap:32px}
.az-g{break-inside:avoid; margin-bottom:12px; scroll-margin-top:90px}
.az-g h3{font-size:22px; margin:0 0 4px; color:var(--ds-cobalt)}
.az-g ul{list-style:none; padding:0; margin:0} .az-g li a{display:inline-flex; align-items:center; min-height:44px; font-weight:600; font-size:17px} .az-g small{font-size:14px; color:#464e60}
.si-t{font-size:15px}
.askn a{display:inline-flex;align-items:center;min-height:44px} .htoday{margin-top:12px}
.bigday{display:flex;flex-direction:column;gap:4px;padding:16px 18px;margin:16px 0;border-radius:16px;background:#fff7e6;border:2px solid #e8b44a;color:var(--ds-ink);text-decoration:none;min-height:44px} .bigday b{font-size:18px} .bigday span{display:inline-flex;align-items:center;gap:6px;font-size:16px} .bigday svg{width:16px;height:16px}
.jm-cur .jm-h{font-size:22px;margin:4px 0 10px}
/* R31: one visible focus ring everywhere (WCAG 2.4.7 / 2.4.11), never removed */
:focus-visible{outline:3px solid #1d44d8 !important; outline-offset:3px !important; border-radius:6px}
.btn:focus-visible,.hnext:focus-visible{outline-color:#0b1430 !important; box-shadow:0 0 0 6px rgba(255,255,255,.9)}
.skip:focus{position:fixed; left:12px; top:12px; z-index:2000; background:#0b1430; color:#fff; padding:12px 16px; border-radius:10px}
/* R31: signature art moment, full bleed */
.sig{position:relative; width:100vw; margin:56px 0 8px calc(50% - 50vw); background:#0b1430; color:#fff; overflow:hidden}
.sig-img{aspect-ratio:16/9; max-height:78vh; width:100%; overflow:hidden}
@media (max-width:700px){ .sig-img{aspect-ratio:4/5} }
.sig-img picture,.sig-img img{display:block; width:100%; height:100%; object-fit:cover; object-position:var(--pos,50% 40%)}
.sig figcaption{position:absolute; inset:auto 0 0 0; padding:120px max(24px,calc(50vw - 560px)) 28px; background:linear-gradient(to top, rgba(8,12,28,.92) 0%, rgba(8,12,28,.72) 45%, rgba(8,12,28,0) 100%)}
.sig-k{display:block; font-size:14px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#ffd88a; margin-bottom:10px}
.sig-q{margin:0; border:0; padding:0; max-width:30ch}
.sig-q p{font-size:clamp(24px,3vw,40px); line-height:1.18; font-weight:700; letter-spacing:-.01em; margin:0 0 10px; color:#fff}
.sig-q footer{font-size:16px; color:#e6e9f2}
.sig-c{display:block; margin-top:14px; font-size:14px; color:#d5d9e4} .sig-c a{color:#fff}
@media (prefers-reduced-motion:no-preference){ .sig .sig-img img{transform:scale(1.04); transition:transform 1.6s ease} .sig.in .sig-img img{transform:none} }
/* R31: micro-interactions: gentle lifts on cards, never on reduced motion */
@media (prefers-reduced-motion:no-preference) and (hover:hover){
 .scard,.jcard,.sg-card,.newhere li a,.bigday,.qa,.wa-i,.room a{transition:transform .18s ease, box-shadow .18s ease}
 .scard:hover,.jcard:hover,.sg-card:hover,.newhere li a:hover,.bigday:hover,.room a:hover{transform:translateY(-2px); box-shadow:0 10px 28px rgba(11,20,48,.12)} }
@media (max-width:700px){ .sig figcaption{position:static; padding:22px 24px 26px; background:#0b1430} .sig-img{aspect-ratio:4/3} }
/* R31 Mass walk: quiet "you are here" marker (no bar, no dots), Back + Next */
.sctl{display:flex!important; gap:10px!important}
.sctl .snext{flex:2}
.sctl .sprev{flex:1; height:var(--ds-ctl-h,56px); border-radius:var(--ds-r,14px); font:inherit; font-size:17px; font-weight:700; background:#fff; color:var(--ds-ink); border:1.5px solid #c9cfdb}
.sctl .sprev[hidden]{display:none}
.shere{margin:0 0 14px}
.shere summary{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; min-height:44px; cursor:pointer; list-style:none; font-size:16px}
.shere summary::-webkit-details-marker{display:none}
.sh-k{font-size:14px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#464e60}
.sh-n{font-size:14px; color:#464e60; text-decoration:underline; text-underline-offset:3px}
.shere ol{margin:6px 0 0; padding-left:24px} .shere li a,.shere li span{display:inline-flex; align-items:center; min-height:44px; font-size:16px}
.shere li span[aria-current]{font-weight:800}
/* R31: Story, act-to-act hand-off */
.sa-next{max-width:44rem; margin:32px auto 0; padding:0 var(--ds-gutter,20px)}
.sa-next a{display:flex; align-items:center; gap:10px; min-height:56px; padding:12px 18px; border-radius:14px; border:1.5px solid rgba(255,255,255,.35); color:inherit; text-decoration:none}
.sa-next a span{font-size:14px; letter-spacing:.08em; text-transform:uppercase; opacity:.85} .sa-next a b{font-size:20px} .sa-next svg{width:18px;height:18px; margin-left:auto}
html{scroll-behavior:smooth} @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* R31 search */
.qkind{font-size:14px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#464e60; margin:0 0 4px}
.qsugg{margin:24px 0} .qsugg h2{font-size:20px; margin:0 0 8px}
.qsugg ul{list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px}
.qsugg a{display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border-radius:999px; border:1.5px solid #c9cfdb; background:#fff; text-decoration:none; font-weight:600}
.qsugg a:hover{border-color:var(--ds-cobalt)}
/* R31 rhythm: comfortable measure for reading, tighter display headings, steady vertical rhythm */
.prose p,.prose li,.vx-col p,.qans p{max-width:68ch}
h1,.h1,.ptitle,.lh-t{letter-spacing:-.022em; line-height:1.04}
h2,.h2{letter-spacing:-.012em; line-height:1.15}
.prose h2,.vx-col h2{margin-top:1.8em; margin-bottom:.5em}
.prose p+p,.vx-col p+p{margin-top:.9em}
/* R31b: Scripture quotes in the walks: calm and readable. No fill, thin accent rule, large quotation mark, dark text, clear citation. Never focusable. */
blockquote.vq{position:relative; margin:18px 0; padding:4px 0 4px 22px; border:0; border-left:3px solid #c9a24a; background:none; box-shadow:none; aspect-ratio:auto; border-radius:0; color:#1b2236}
blockquote.vq::before{content:"\201C"; position:absolute; left:14px; top:-18px; font-size:56px; line-height:1; color:#c9a24a; opacity:.55; font-family:Georgia,serif}
blockquote.vq p{color:#1b2236!important; font-style:italic!important; margin:0 0 8px}
blockquote.vq footer{font-size:15px!important; color:#3d4659!important; font-weight:600; font-style:normal}
blockquote:focus,blockquote:focus-visible,.sstep h2:focus,.sstep h2:focus-visible{outline:none!important; box-shadow:none!important}
/* R31b: pull quotes calm too: no blue box */
blockquote.vx-pull{background:none!important; color:#1b2236!important; border:0!important; border-left:3px solid #c9a24a!important; border-radius:0!important; box-shadow:none!important; padding:4px 0 4px 22px!important; position:relative}
blockquote.vx-pull p{color:#1b2236!important} blockquote.vx-pull footer,blockquote.vx-pull cite,blockquote.vx-pull a{color:#3d4659!important}
blockquote.vx-pull sup.fn a{color:#1d44d8!important}
.dnum{font-size:.4em;font-weight:600;color:#464e60;letter-spacing:0}
.rlist li a{color:var(--ds-cobalt,#1d44d8)!important;text-decoration:underline;text-underline-offset:3px}
/* Saints room deepening (Oct 10): finder search, Live it */
.sg-f input[type=search]{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:500}
.sg-f .sg-q{flex:2 1 320px}
.sg-reset{align-self:flex-end; height:var(--ds-field-h); padding:0 var(--s3); border-radius:var(--ds-r); border:1px solid var(--ds-hair); background:transparent; color:var(--ds-ink); font:inherit; font-size:16px; font-weight:700; cursor:pointer}
.sg-reset:hover{background:var(--ds-surface)}
.sg-count{margin:0 0 var(--s2)}
.sg-live{display:block; margin-top:8px; font-size:15px; line-height:22px; color:var(--ds-ink)}
.sg-live em{font-style:normal; font-weight:700; color:var(--ds-red)}
.st-live{margin:var(--s5,48px) 0; padding:var(--s4) var(--s4); border-radius:var(--ds-r); background:var(--ds-surface); border-left:4px solid var(--ds-red)}
.st-live h2{margin:6px 0 10px}
.st-live p{margin:0; font-size:19px; line-height:30px}
.snext{margin-top:var(--s2)}
.fnote{font-size:.85em;color:var(--ink-soft,inherit);opacity:.85;font-style:italic}
/* r32 */
.jconf{margin:10px 0 6px; font-size:16px; line-height:24px; color:inherit; opacity:.92}
.resume{display:flex; align-items:center; gap:8px; margin:8px 0; font-size:15px}
.resume[hidden]{display:none}
.resume a{font-weight:700}
.resume-x{min-width:44px; min-height:44px; border:0; background:transparent; color:inherit; font-size:22px; cursor:pointer}
.sugg .sg span{display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sg-all{margin:8px 12px 4px; font-size:15px}
.youhere{font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--ds-muted); margin:0 0 8px}
.actjump{margin:16px 0 24px}
.actjump summary{min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:700}
.actjump ol{display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:8px 0 0}
.actjump a{display:inline-flex; align-items:center; min-height:44px; padding:0 14px; border:1px solid var(--ds-hair); border-radius:999px; text-decoration:none}
.actjump a[aria-current]{border-color:var(--ds-ink); font-weight:700}
.youhere{position:sticky; top:8px; z-index:30; width:max-content; max-width:90vw; margin:0 auto; padding:6px 12px; background:rgba(255,255,255,.94); border:1px solid var(--ds-hair); border-radius:999px; color:var(--ds-ink); text-transform:none; letter-spacing:0; font-size:14px}
.story .actjump{background:#fff; padding:16px; border-radius:var(--ds-r-lg)}
/* r32 mobile nav: menu opens as a bottom sheet in the thumb zone; journeys first, each row >= 44px */
@media (max-width:720px){
 .burger summary{min-width:48px; min-height:48px}
 .burger[open] .menu{position:fixed; left:8px; right:8px; bottom:8px; top:auto; width:auto; max-height:78vh; overflow:auto; border-radius:20px; padding:10px 10px 14px; box-shadow:0 -10px 40px rgba(15,20,60,.25)}
 .burger[open]::before{content:""; position:fixed; inset:0; background:rgba(13,26,68,.35); z-index:39}
 .burger .menu a{min-height:44px; display:flex; align-items:center; padding:10px 14px}
}
.howknow{margin:8px 0 14px; border:1px solid var(--ds-hair); border-radius:14px; padding:4px 14px}
.howknow summary{min-height:44px; display:flex; align-items:center; flex-wrap:wrap; gap:4px; cursor:pointer; font-size:15px; color:var(--ds-muted)}
.howknow summary b{color:var(--ds-ink)}
.howknow[open] summary{border-bottom:1px solid var(--ds-hair); margin-bottom:8px}
.story .actjump, .story .actjump summary, .story .actjump a{color:var(--ds-ink)}
.story .actjump{max-width:720px; margin:16px auto 24px}
.sugg a.sg{display:flex; flex-direction:column; height:auto; min-height:0; max-width:100%; white-space:normal; line-height:1.3; padding:10px 12px!important; border:0}
.sugg a.sg b{white-space:normal}
.sugg a.sg span{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; white-space:normal; overflow:hidden; line-height:20px}
/* qa-final: search results never wider than the screen; tap targets >= 24px */
.qres{grid-template-columns:minmax(0,1fr)!important}
.qa{min-width:0; overflow-wrap:anywhere}
.qgo{display:inline-flex; align-items:center; min-height:44px}
a.cite, span.cite{display:inline-block; min-height:24px; line-height:22px; overflow-wrap:anywhere}
sup a, a.fn, .vx-fn a{display:inline-block; min-width:24px; min-height:24px; line-height:24px; text-align:center}
