/* Layout: one mobile-first column — hero, carte de l'expédition, semaine (3 séances + renfo), feu tibias, radio du camp, Apple Watch. */
/* Theme: original survivor camp in a wild forest — night moss, bone paper, ember orange, radio teal. Deliberately a single dark look. */
:root{
  --bg:#0d1410; --surface:#162019; --surface2:#213025; --fg:#ece5d3; --muted:#a9b3a4; --line:#2f4232;
  --accent:#ff8a3d; --accent-ink:#1d0e03; --radio:#6fd3c1; --radio-soft:#123430;
  --a:#9cc58a; --b:#ffc25c; --c:#ff8a3d;
  --ok:#8fe0a8; --ok-soft:#173523; --warn:#ffc25c; --warn-soft:#3a2e15; --bad:#ff7a6b; --bad-soft:#3d1a17;
  --display:"Big Shoulders Stencil Display","Impact","Arial Narrow",sans-serif; --body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"Share Tech Mono",ui-monospace,Menlo,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{background:radial-gradient(ellipse at 50% -20%,#24382a 0%,var(--bg) 55%);background-color:var(--bg);background-attachment:fixed;color:var(--fg);font:16px/1.5 var(--body);padding-inline:16px;padding-block:20px 48px}
.wrap{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance;line-height:1;letter-spacing:.02em}
h2{font-size:30px;font-weight:900;text-transform:uppercase}
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hero{position:relative;overflow:hidden;border-radius:12px;border:1px solid #3a2a22;background:#081012;display:flex;flex-direction:column;gap:12px;padding:clamp(200px,40vw,260px) 18px 20px;margin-inline:-4px}
.scene-art{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero>*:not(.scene-art){position:relative}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(180deg,transparent,#050806d9);pointer-events:none}
.hero>*:not(.scene-art):not(.heatglow){z-index:1}
.rise{transform-box:fill-box;animation:rise 8s linear infinite;opacity:0}
@keyframes rise{0%{transform:translate(0,0);opacity:0}12%{opacity:1}100%{transform:translate(var(--dx),-240px);opacity:0}}
@media (prefers-reduced-motion:reduce){.rise{animation:none;opacity:.6}}
.chron{display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,#1c1612,#141a15);border:1px solid #3a2a22;border-radius:10px;padding:16px}
.chron-head{display:flex;align-items:center;gap:14px}
.chron-em{width:clamp(72px,20vw,96px);height:auto;flex:none;filter:drop-shadow(0 0 10px #ff8a3d44)}
.chron h3{font-size:26px;font-weight:900;text-transform:uppercase;color:var(--accent)}
.chron p{margin:0;font-size:16px;line-height:1.6;max-width:62ch}
.chron .tease{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.chron details p{margin-top:8px;color:var(--muted);font-size:15px}
.chron details b{color:var(--fg)}
#totals{grid-template-columns:repeat(3,minmax(0,1fr))}
.mapstats .stat{background:var(--surface2);border:1px solid var(--line)}
.mapstats .stat b{font-size:clamp(22px,6.5vw,30px);color:var(--fg)}
.mapstats .stat.count b{color:var(--accent)}
.today{gap:10px;border-color:var(--accent);box-shadow:0 0 0 1px #ff8a3d33,0 10px 30px #0006}
.tsess{border-radius:8px;background:var(--surface2);border-left:6px solid var(--muted)}
.tsess>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer}
.tsess>summary::-webkit-details-marker{display:none}
.tsess .more{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);white-space:nowrap}
.tsess .more b{display:inline-block;font-size:18px;transition:transform .2s}
.tsess[open] .more b{transform:rotate(90deg)}
.tbody{display:flex;flex-direction:column;gap:12px;padding:0 14px 14px}
.tsess.k-a{border-left-color:var(--a)} .tsess.k-b{border-left-color:var(--b)} .tsess.k-c{border-left-color:var(--c)}
.tsess .s-title{font-size:24px}
#today{display:flex;flex-direction:column;gap:10px}
.medals{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:10px}
.medal{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:#3e4a40}
.medal svg{width:72px;height:auto;display:block;overflow:visible}
.medal span{font-size:12px;font-weight:600;line-height:1.25;color:var(--muted)}
.medal.on{color:#f57030} .medal.on svg{filter:drop-shadow(0 0 8px #ff8a3d66)} .medal.on span{color:var(--fg)}
.herorow{display:flex;align-items:center;gap:16px}
.emblem{flex:none;width:clamp(104px,28vw,150px);height:auto;filter:drop-shadow(0 0 14px #ff8a3d55) drop-shadow(0 2px 2px #050806)}
.hero h1{font-size:clamp(84px,26vw,150px);font-weight:900;color:var(--fg);text-shadow:0 2px 0 #050806,0 0 36px #ff8a3d66}
.hero h1 small{display:block;font-family:var(--mono);font-size:15px;font-weight:400;letter-spacing:.14em;color:var(--accent);text-shadow:none;margin-bottom:6px;text-transform:uppercase}
.hero p{margin:0;max-width:60ch;color:var(--muted)}
.hero .eyebrow{color:#e9cfb4}
.motto{margin:0;font-family:var(--mono);font-size:14px;letter-spacing:.06em;color:#ffcf8a;text-transform:uppercase}
.goals{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--accent);color:var(--accent);border-radius:6px;padding:4px 10px;font-weight:700;font-size:14px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em}
.chip.ghost{border-color:var(--line);color:var(--muted)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.map{position:relative;border-radius:10px;overflow:hidden;background:linear-gradient(180deg,#14261d 0%,#1d3326 55%,#2a3b22 100%);border:1px solid var(--line)}
.map svg{display:block;width:100%;height:auto}
.mapinfo{position:absolute;left:14px;top:12px;display:flex;flex-direction:column;gap:2px}
.mapinfo b{font-family:var(--display);font-size:clamp(30px,9vw,44px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.mapinfo span{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.checkpoints{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.cp{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;border-radius:8px;padding:8px 4px;background:var(--surface2);color:var(--muted);border:1.5px solid transparent;min-width:0}
.cp img{width:100%;max-width:78px;aspect-ratio:1;object-fit:contain;display:block;filter:grayscale(1) brightness(.75);opacity:.5}
.cp.on img{filter:drop-shadow(0 0 8px #ff8a3d55);opacity:1}
.cp.next img{filter:none;opacity:.9}
.cp b{font-family:var(--mono);font-weight:400;font-size:11px;line-height:1.2;text-transform:uppercase;letter-spacing:.03em}
.cp small{font-size:11px;color:var(--muted)}
.cp.on{color:var(--accent);background:#2a2014} .cp.on b{color:var(--fg)}
.cp.next{border-color:var(--accent);color:var(--fg)}
.nonstop{display:flex;flex-direction:column;gap:6px}
.nonstop .row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.nonstop .row b{font-family:var(--display);font-size:28px;font-weight:900;font-variant-numeric:tabular-nums}
.bar{height:12px;border-radius:3px;background:var(--surface2);overflow:hidden;position:relative}
.bar i{display:block;height:100%;background:repeating-linear-gradient(135deg,var(--accent) 0 10px,#ff9f5e 10px 20px)}
.trail-msg{font-size:15px;margin:0}.trail-msg b{color:var(--accent)}
.badges{display:flex;flex-wrap:wrap;gap:6px}.badge{font-size:13px;font-weight:600;border-radius:6px;padding:5px 10px;background:var(--surface2);color:var(--muted)}.badge.on{background:var(--ok-soft);color:var(--ok)}
.weekbar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.weekbar .t{display:flex;flex-direction:column;gap:2px}
.wkdl{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.weekbar strong{font-family:var(--display);font-size:34px;font-weight:900;text-transform:uppercase}
.nav{display:flex;gap:6px}
button{font:inherit;cursor:pointer}
.icon{width:44px;height:44px;border-radius:8px;border:1px solid var(--line);background:var(--surface2);color:var(--fg);font-size:22px;font-weight:700}
.icon:disabled{opacity:.35;cursor:default}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,label.btn:focus-within{outline:3px solid var(--accent);outline-offset:2px}
.rules{font-size:15px;color:var(--muted);margin:0}
.light{display:flex;gap:12px;align-items:flex-start;border-radius:8px;padding:12px 14px}
.light .dot{flex:none;width:14px;height:14px;border-radius:50%;margin-top:5px}
.light p{margin:0;font-size:15px}
.light.ok{background:var(--ok-soft)} .light.ok .dot{background:var(--ok);box-shadow:0 0 10px var(--ok)}
.light.warn{background:var(--warn-soft)} .light.warn .dot{background:var(--warn);box-shadow:0 0 10px var(--warn)}
.light.bad{background:var(--bad-soft)} .light.bad .dot{background:var(--bad);box-shadow:0 0 10px var(--bad)}
.light.info{background:var(--surface2)} .light.info .dot{background:var(--muted)}
.session{border-radius:8px;border:1px solid var(--line);background:var(--surface2);overflow:hidden}
.session>summary{list-style:none;display:grid;grid-template-columns:6px 1fr auto;gap:14px;align-items:stretch;padding:14px 14px 14px 0;cursor:pointer}
.session>summary::-webkit-details-marker{display:none}
.stripe{border-radius:0 3px 3px 0;background:var(--muted)}
.k-a .stripe{background:var(--a)} .k-a .s-tag{color:var(--a)}
.k-b .stripe{background:var(--b)} .k-b .s-tag{color:var(--b)}
.k-c .stripe{background:var(--c)} .k-c .s-tag{color:var(--c)}
.s-head{display:flex;flex-direction:column;gap:3px;min-width:0}
.s-tag{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.s-title{font-family:var(--display);font-size:26px;font-weight:900;text-transform:uppercase;line-height:1}
.s-meta{font-size:14px;color:var(--muted)}
.done{align-self:center;font-size:13px;font-weight:700;border-radius:6px;padding:4px 8px;background:var(--ok-soft);color:var(--ok);white-space:nowrap}
.todo{align-self:center;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}
.s-body{padding:0 16px 16px;display:flex;flex-direction:column;gap:14px}
.goal{background:var(--surface);border-radius:8px;padding:10px 12px;font-size:15px}
ol.steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;counter-reset:st}
ol.steps>li{counter-increment:st;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}
ol.steps>li::before{content:counter(st);width:28px;height:28px;border-radius:6px;display:grid;place-items:center;font-family:var(--mono);font-size:15px;background:var(--accent);color:var(--accent-ink)}
.rep{border-left:3px solid var(--b);padding-left:10px;margin-top:4px;display:flex;flex-direction:column;gap:4px}
.pace{font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px}
.recipe{background:var(--surface);border-radius:8px;padding:12px 14px;font-size:15px}.recipe ol{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.recipe ul{margin:4px 0 0;padding-left:18px}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.btn{border:0;border-radius:8px;padding:12px 16px;font-weight:700;background:var(--accent);color:var(--accent-ink);font-size:16px}
.btn.sec{background:var(--surface);color:var(--fg);border:1px solid var(--line)}
.btn.small{padding:8px 12px;font-size:14px}
.hint{font-size:13px;color:var(--muted);margin:0}
form.log{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--surface);border-radius:8px;padding:14px}
form.log .full{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--muted);min-width:0}
input,select,textarea{font:16px var(--body);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;min-width:0;width:100%}
input[type=range]{padding:0;accent-color:var(--accent);background:transparent;border:0}
.rangeval{color:var(--fg);font-weight:700}
.calc{font-size:14px;color:var(--fg);font-weight:600;margin:0}
.result{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.stat{background:var(--surface);border-radius:8px;padding:10px 12px}
.stat b{display:block;font-family:var(--display);font-size:24px;font-weight:900;font-variant-numeric:tabular-nums}
.stat span{font-size:12px;color:var(--muted);font-weight:600}
.morning{display:flex;flex-direction:column;gap:8px;background:var(--surface);border-radius:8px;padding:12px 14px}
.morning p{margin:0;font-size:15px}
.note{border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;border-left:4px solid var(--radio);background:var(--radio-soft)}
.note.ok{border-left-color:var(--ok)} .note.warn{border-left-color:var(--warn);background:var(--warn-soft)} .note.bad{border-left-color:var(--bad);background:var(--bad-soft)}
.note .from{font-family:var(--mono);font-size:12px;color:var(--radio);text-transform:uppercase;letter-spacing:.06em}
.note h3{font-family:var(--body);font-size:17px;font-weight:700;letter-spacing:0;line-height:1.3}
.note p{margin:0;font-size:15px}
.note q{font-style:italic;color:var(--muted)}
.lognote{display:flex;flex-direction:column;gap:6px;padding-block:12px;border-bottom:1px solid var(--line)}
.lognote:last-child{border-bottom:0}
.lognote .top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);font-weight:600}
details.plain>summary{cursor:pointer;font-weight:700}
.empty{color:var(--muted);font-size:15px;margin:0}
.lights{display:flex;flex-direction:column;gap:8px}
.foot{font-size:13px;color:var(--muted);text-align:center;margin:0}
.toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:8px;font-weight:600;font-size:14px;max-width:calc(100% - 32px)}
.ember{animation:flick 1.8s ease-in-out infinite;transform-origin:center}
@keyframes flick{0%,100%{opacity:.85}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.ember{animation:none}}
@media (max-width:420px){form.log{grid-template-columns:1fr}}
@media (prefers-reduced-motion:no-preference){.session[open] .s-body{animation:fade .2s ease}@keyframes fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}}

/* ---- texture pass: grain, burnt card edges, distressed brush titles, ember heat, sky per chapter ---- */
:root{--heat:0;--sky:#24382a;--sky2:#0d1410}
body[data-ch="1"]{--sky:#203a3c} body[data-ch="2"]{--sky:#1f3a22} body[data-ch="3"]{--sky:#4a2a18;--sky2:#120e0b} body[data-ch="4"]{--sky:#7a4a1c;--sky2:#17110a}
body{background:url(../assets/img/8ae1ed828f.png),radial-gradient(ellipse at 50% -20%,var(--sky) 0%,var(--sky2) 58%);background-color:var(--sky2);background-attachment:fixed;transition:background-color 1s}
.card{background:url(../assets/img/8ae1ed828f.png),linear-gradient(180deg,#19231c,#121812);border-color:#33291f;box-shadow:inset 0 0 0 1px #00000055,inset 0 0 42px #000000a0,0 12px 30px #0007}
h2,.hero h1,.s-title,.chron h3{-webkit-mask-image:url(../assets/img/e168a2280b.png);mask-image:url(../assets/img/e168a2280b.png);-webkit-mask-size:180px;mask-size:180px}
h2{font-size:34px;letter-spacing:.03em}
h2::after{content:"";display:block;height:4px;width:64px;margin-top:8px;background:var(--accent);border-radius:2px;transform:skewX(-20deg);box-shadow:0 0 calc(4px + var(--heat)*14px) #ff8a3d}
.hero{box-shadow:0 0 calc(20px + var(--heat)*60px) rgba(255,138,61,calc(.12 + var(--heat)*.4))}
.heatglow{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 92%,rgba(255,138,61,calc(.08 + var(--heat)*.55)),transparent 62%);pointer-events:none}
.today{box-shadow:0 0 0 1px #ff8a3d33,0 0 calc(10px + var(--heat)*40px) rgba(255,138,61,calc(.12 + var(--heat)*.35)),inset 0 0 42px #000000a0}
.heatbar{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#ffcf8a}
.heatbar i{flex:1;height:6px;border-radius:3px;background:linear-gradient(90deg,#ff8a3d,#ffcf8a);transform-origin:left;transform:scaleX(max(.04,var(--heat)));box-shadow:0 0 10px #ff8a3d}
.heatbar span{white-space:nowrap}

.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#0b100c;border:1px solid #33291f;border-radius:10px;padding:5px;position:sticky;top:env(safe-area-inset-top,0px);z-index:5}
.tabs button{border:0;border-radius:7px;padding:11px 8px;background:transparent;color:var(--muted);font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 14px #ff8a3d66}
.tabpane{display:flex;flex-direction:column;gap:20px}
.tabpane[hidden]{display:none}
.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.tiles .stat b{font-size:30px}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}
.count{white-space:nowrap;font-family:var(--display);font-size:30px;color:var(--accent);font-variant-numeric:tabular-nums}
.chartwrap{overflow-x:auto}.chartwrap svg{display:block;width:100%;height:auto}
.big{font-family:var(--display);font-weight:900;font-size:clamp(46px,14vw,72px);line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.progbar{height:14px;border-radius:4px;background:var(--surface2);overflow:hidden}.progbar i{display:block;height:100%;background:repeating-linear-gradient(135deg,var(--accent) 0 10px,#ff9f5e 10px 20px);box-shadow:0 0 12px #ff8a3d}
.versus{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.versus>div{background:var(--surface2);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.versus .eyebrow{color:var(--accent)}
.versus dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:14px}
.versus dt{color:var(--muted)} .versus dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:380px){.versus{grid-template-columns:1fr}}