/* Shared reading rules: dialogue is body copy; display type stays on short headlines. */
body.sw-clean :is(#journeyDingo p,#dsRace .ds-quote p,#dsResultQuote,#dingoPreRace .sw-prerace-reaction p,#dingoPreRace .sw-prerace-plan p,#how .dingo-quote-text,#profile .team-dingo-copy>p){
 font:400 clamp(18px,2vw,20px)/1.55 Arial,sans-serif!important;
 font-style:normal!important;letter-spacing:normal!important;text-transform:none!important;
 text-shadow:none!important;-webkit-text-stroke:0!important;overflow-wrap:break-word;
}
body.sw-clean :is(#journeyDingo p,#dsRace .ds-quote p,#dsResultQuote,#dingoPreRace .sw-prerace-reaction p,#how .dingo-quote-text){color:#0c1830!important}
body.sw-clean #dingoPreRace .sw-prerace-plan p{color:#fff5db!important}
body.sw-clean #profile .team-dingo-copy>p{color:#fff5db!important}
body.sw-clean :is(.sw-race-incident h3,.sw-learning-card h4,.analyst-copy h3){line-height:1.24!important;letter-spacing:normal!important}
body.sw-clean :is(.sw-race-incident blockquote,#profile .boardroom .bquote){font:400 18px/1.55 Arial,sans-serif!important;font-style:normal!important;text-shadow:none!important;-webkit-text-stroke:0!important}
body.sw-clean :is(.sw-learning-card p,.sw-learning-road,.sw-learning-method){line-height:1.55!important}
/* Keep the approved headline outlines behind, rather than inside, the letters. */
body.sw-clean :is(#dsRace .ds-headline,#resultSheet #tierH,#reportSheet #repH,#boardSec h2,#swHistory h2,#dingoPreRace .sw-prerace-header h3,#dingoPreRace .sw-prerace-plan h4){-webkit-text-stroke-color:#071226!important;paint-order:stroke fill;text-shadow:none!important}

/* Ordinal suffixes have their own tracking: do not inherit the large digit's spacing. */
body.sw-clean :is(#resultSheet #posBig,#reportSheet #repPos,#dsRace .ds-reveal-position){letter-spacing:-.025em!important;line-height:1.12!important}
body.sw-clean :is(#resultSheet #posBig,#reportSheet #repPos,#dsRace .ds-reveal-position)>span{display:inline-block;font:700 .29em/1.2 var(--arc-label)!important;letter-spacing:.025em!important;vertical-align:baseline!important;margin-left:.2em!important;text-shadow:none!important;-webkit-text-stroke:0!important}

/* Explicit badge and resend colours: global .num/.ghost rules must not hide ink. */
body.sw-clean #board .sqrow.isleader .sqg.num{background:#ffe400!important;color:#0b172c!important;-webkit-text-fill-color:#0b172c!important;text-shadow:none!important;-webkit-text-stroke:0!important}
body.sw-clean #codeAgain.btn.ghost{background:#fff5db!important;color:#0b172c!important;-webkit-text-fill-color:#0b172c!important;border:2px solid #0b172c!important;text-shadow:none!important;opacity:1}
body.sw-clean #codeAgain.btn.ghost:disabled{background:#ded9cc!important;color:#34445a!important;-webkit-text-fill-color:#34445a!important;cursor:wait}
/* Surface audit: help lives on ink; registration lives on paper. */
body.sw-clean #how .sheet.how{background:radial-gradient(ellipse at 95% 5%,#21436688,transparent 60%),#0c1830 url('assets/tactic-contours-v1.svg') center/cover!important}
body.sw-clean #how :is(.howgoal,.how-squads){color:#e3ecf8!important;font:400 17px/1.55 Arial,sans-serif!important;text-shadow:none!important;-webkit-text-stroke:0!important}
body.sw-clean #how .howgoal{font-weight:700!important;margin:12px 0 22px}
body.sw-clean #signup .sheet{background:#fff5db url('assets/newsprint-fibres-v1.svg') center/400px}
body.sw-clean #signup h2{color:#0b172c!important;-webkit-text-fill-color:#0b172c!important;font:700 28px/1.2 var(--arc-label)!important;text-shadow:none!important;-webkit-text-stroke:0!important;letter-spacing:.01em!important}
body.sw-clean #siAgain.btn.ghost{background:#fff5db!important;color:#0b172c!important;-webkit-text-fill-color:#0b172c!important;border:2px solid #0b172c!important;text-shadow:none!important;opacity:1}
body.sw-clean #siAgain.btn.ghost:disabled{background:#ded9cc!important;color:#34445a!important;-webkit-text-fill-color:#34445a!important;cursor:wait}
body.sw-clean :is(#codeBox,#siCodeBox){background:#eee4c9 url('assets/newsprint-fibres-v1.svg') center/400px;color:#0b172c;border:1px solid #8d918e;border-top:3px solid #183a5d;padding:18px}
body.sw-clean :is(#codeBox,#siCodeBox) :is(label,.codelead){color:#0b172c!important;text-shadow:none;-webkit-text-stroke:0}
/* Keep a matching solid base beneath textured layers, including image fallbacks. */
body.sw-clean #stageCard{background-color:#fff5db!important}
body.sw-clean :is(#resultSheet,#reportSheet) .sw-learning-card{background-color:#fff5db}
#swInbox .inbox-masthead{background-color:#142d4c}

/* Explicit ink on yellow: the membership line also contains dark link buttons. */
body.sw-clean .unsent{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:#10233e;color:#fff5db;border:1px solid #ffe400;font:400 15px/1.5 Arial,sans-serif}
body.sw-clean .unsent button#retrySend{flex:none;min-height:44px;padding:10px 18px;margin:0;background:#ffe400!important;color:#0b172c!important;-webkit-text-fill-color:#0b172c!important;font:700 18px/1.25 var(--arc-label)!important;border:2px solid #0b172c;border-radius:4px;text-shadow:none!important;-webkit-text-stroke:0!important;opacity:1;white-space:normal;cursor:pointer}
body.sw-clean .unsent button#retrySend:focus-visible{outline:3px solid #fff5db;outline-offset:3px}
body.sw-clean .unsent button#retrySend:disabled{background:#ded9cc!important;color:#34445a!important;-webkit-text-fill-color:#34445a!important;cursor:wait}
