:root{
  --ink:#173a32;
  --ink-2:#2c5148;
  --paper:#f4eddf;
  --paper-2:#fffaf0;
  --sand:#dfc9a3;
  --rust:#c5663c;
  --gold:#d9ad55;
  --sage:#819c78;
  --muted:#6d746f;
  --line:rgba(23,58,50,.14);
  --shadow:0 24px 70px rgba(23,58,50,.13);
  --radius:26px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--paper);scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(197,102,60,.35);outline-offset:2px}
.hidden{display:none!important}
.eyebrow{display:block;font-size:.72rem;letter-spacing:.14em;font-weight:900;color:var(--rust)}
.text-button{border:0;background:transparent;padding:4px 0;font-weight:850;color:var(--rust)}
.button{border:0;border-radius:999px;padding:13px 18px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:10px}
.button.primary{background:var(--ink);color:var(--paper-2)}
.button.secondary{background:var(--paper-2);border:1px solid var(--line)}
.button.ghost{background:transparent;border:1px solid rgba(255,255,255,.3);color:white}
.button.xl{padding:17px 22px;font-size:1rem}
.offline-banner{position:fixed;z-index:1000;left:50%;top:12px;transform:translateX(-50%);background:#6e5435;color:white;border-radius:999px;padding:9px 14px;font-size:.78rem;font-weight:850;box-shadow:0 10px 35px rgba(0,0,0,.2)}

/* Portail */
.portal{position:relative;min-height:100dvh;overflow:hidden;background:#0d2824;color:#fffaf0;display:grid;place-items:center;padding:42px 24px}
.portal-sky{position:absolute;inset:0;background:radial-gradient(circle at 70% 18%,rgba(231,190,102,.13),transparent 24%),linear-gradient(#102e29 0 52%,#24463d 75%,#b77847 115%)}
.portal-grain{position:absolute;inset:0;opacity:.14;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E")}
.portal-moon{position:absolute;width:82px;height:82px;border-radius:50%;background:#f4d789;right:13%;top:12%;box-shadow:0 0 80px rgba(244,215,137,.22)}
.portal-star{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff8dc}.star-a{left:14%;top:16%}.star-b{left:34%;top:27%}.star-c{right:32%;top:9%}
.portal-hills{position:absolute;left:-5%;right:-5%;bottom:-2%;height:43%;background:#102c27;clip-path:polygon(0 66%,8% 48%,17% 58%,28% 27%,38% 52%,48% 20%,60% 48%,72% 18%,83% 55%,92% 39%,100% 62%,100% 100%,0 100%)}
.portal-campfire{position:absolute;left:50%;bottom:11%;width:100px;height:100px;transform:translateX(-50%)}
.portal-campfire:before,.portal-campfire:after{content:"";position:absolute;left:50%;bottom:12px;width:74px;height:10px;background:#7b4c31;border-radius:999px;transform:translateX(-50%) rotate(18deg)}
.portal-campfire:after{transform:translateX(-50%) rotate(-18deg)}
.portal-campfire i{position:absolute;left:50%;bottom:18px;width:36px;height:58px;border-radius:55% 45% 58% 42%/60% 48% 52% 40%;background:#f7a33b;transform-origin:bottom;animation:fire 1.8s ease-in-out infinite}
.portal-campfire i:nth-child(2){width:25px;height:42px;background:#ffe080;animation-delay:-.5s}.portal-campfire i:nth-child(3){width:18px;height:29px;background:#fff1bc;animation-delay:-.9s}
@keyframes fire{0%,100%{transform:translateX(-50%) rotate(-4deg) scaleY(.92)}50%{transform:translateX(-50%) rotate(5deg) scaleY(1.08)}}
.portal-content{position:relative;z-index:2;width:min(760px,100%);text-align:center;margin-top:-80px}
.portal-mark{display:inline-flex;align-items:baseline;gap:5px;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 13px;margin-bottom:24px}.portal-mark span{font-weight:900;letter-spacing:.16em;font-size:.75rem}.portal-mark b{font-size:1.35rem;color:#f0bd63}
.portal-kicker{font-size:.74rem;letter-spacing:.17em;font-weight:850;color:#dfc98d}
.portal h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,9vw,6.8rem);line-height:.92;letter-spacing:-.055em;margin:18px auto;max-width:12ch;font-weight:500}
.portal-content>p:not(.portal-kicker){font-size:clamp(1rem,2vw,1.25rem);line-height:1.6;color:rgba(255,250,240,.72);max-width:50ch;margin:0 auto 28px}
.portal-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.portal-demo{margin-top:18px;border:0;background:transparent;color:rgba(255,250,240,.68);text-decoration:underline;text-underline-offset:4px}
.portal-foot{position:absolute;z-index:3;bottom:22px;font-size:.76rem;color:rgba(255,250,240,.55)}.portal-foot span{color:#f0bd63;font-weight:900}

/* App shell */
.app{min-height:100dvh;background:var(--paper)}
.side-rail{position:fixed;z-index:40;left:0;top:0;bottom:0;width:92px;background:var(--ink);color:var(--paper-2);display:flex;flex-direction:column;align-items:center;padding:18px 10px 16px;border-right:1px solid rgba(255,255,255,.08)}
.brand-button{width:58px;height:58px;border-radius:19px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:white;display:grid;place-content:center;line-height:.95}.brand-button span{font-size:.58rem;letter-spacing:.15em;font-weight:900}.brand-button b{font-size:1.45rem;color:#e9bd67}
.rail-nav{display:flex;flex-direction:column;gap:7px;margin:auto 0;width:100%}.rail-nav button{position:relative;border:0;background:transparent;color:rgba(255,250,240,.63);border-radius:18px;padding:11px 4px;display:grid;gap:3px;place-items:center;font-size:1.15rem}.rail-nav button small{font-size:.58rem;font-weight:800;letter-spacing:.03em}.rail-nav button.active{background:rgba(255,255,255,.11);color:white}.rail-nav button.active:before{content:"";position:absolute;left:-10px;width:4px;height:26px;border-radius:0 4px 4px 0;background:#e1b35b}
.rail-footer{display:grid;gap:8px;place-items:center}.rail-icon,.header-icon{border:1px solid rgba(255,255,255,.15);background:transparent;color:white;width:42px;height:42px;border-radius:50%;position:relative}.profile-orb{border:0;background:#e4bb68;color:var(--ink);font-weight:950;width:42px;height:42px;border-radius:50%}
.mobile-header,.bottom-nav{display:none}
.app-main{margin-left:92px;min-height:100dvh}
.top-status{height:62px;display:flex;align-items:center;gap:14px;padding:0 34px;border-bottom:1px solid var(--line);background:rgba(244,237,223,.89);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.top-status>p{margin:0;color:var(--muted);font-size:.76rem}.phase-pill{border:1px solid var(--line);background:var(--paper-2);border-radius:999px;padding:8px 12px;display:flex;gap:8px;align-items:center}.phase-pill span{color:var(--rust)}.phase-pill b{font-size:.76rem}.notifications-button{margin-left:auto;border:0;background:transparent;font-weight:850;position:relative}.badge{display:inline-grid;place-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--rust);color:white;font-size:.67rem}
.view{max-width:1480px;margin:0 auto;padding:28px 34px 110px;outline:none}

/* Shared */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin:6px 0 24px}.page-head h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2.3rem,4.4vw,4.5rem);line-height:.95;letter-spacing:-.045em;margin:8px 0 0}.page-head p{max-width:54ch;color:var(--muted);line-height:1.55;margin:8px 0 0}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 30px rgba(23,58,50,.045)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:32px 0 14px}.section-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.75rem,3vw,2.8rem);font-weight:500;letter-spacing:-.035em;margin:6px 0 0}.section-heading p{margin:6px 0 0;color:var(--muted)}
.empty{padding:36px;text-align:center;color:var(--muted)}

/* Home */
.home-grid{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(320px,.68fr);gap:18px}.home-hero{position:relative;min-height:430px;overflow:hidden;padding:38px;color:white;background:linear-gradient(140deg,#15382f,#31584d);display:flex;flex-direction:column;justify-content:space-between}.home-hero:after{content:"";position:absolute;inset:auto -6% -42% 32%;height:76%;border-radius:50% 50% 0 0;background:radial-gradient(circle at 50% 10%,#d18a4e 0 3%,transparent 4%),linear-gradient(145deg,#294c42,#15372f);opacity:.85}.home-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 45%,rgba(241,189,91,.08)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cpath d='M0 130L70 10l70 120' fill='none' stroke='%23ffffff' opacity='.04'/%3E%3C/svg%3E")}.home-hero>*{position:relative;z-index:2}.episode-chip{display:inline-flex;width:max-content;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);border-radius:999px;padding:8px 12px;font-size:.72rem;font-weight:900;letter-spacing:.08em}.home-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,6vw,6.2rem);font-weight:500;line-height:.87;letter-spacing:-.06em;max-width:10ch;margin:28px 0 18px}.home-hero p{max-width:44ch;color:rgba(255,250,240,.74);line-height:1.6}.home-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.home-hero .button.secondary{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:white}.countdown-card{padding:26px;display:flex;flex-direction:column;justify-content:space-between;min-height:200px;background:#e5ca98}.countdown-card strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.6rem,5vw,5rem);font-weight:500;line-height:.9}.countdown-card p{margin:8px 0 0;color:#5f594d}.signal-card{padding:26px;min-height:212px;background:var(--paper-2);display:flex;flex-direction:column;justify-content:space-between}.signal-card .signal-icon{font-size:1.6rem}.signal-card h2{font-size:1.5rem;margin:10px 0 6px}.signal-card p{color:var(--muted);line-height:1.5;margin:0}.signal-card button{align-self:flex-start;margin-top:16px}
.map-heart{margin-top:18px;display:grid;grid-template-columns:minmax(270px,.45fr) minmax(0,1fr);overflow:hidden;min-height:520px;background:var(--ink);color:white}.map-heart-copy{padding:38px;display:flex;flex-direction:column;justify-content:center}.map-heart-copy h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.5rem,4vw,4.3rem);font-weight:500;line-height:.92;letter-spacing:-.05em;margin:12px 0 18px}.map-heart-copy p{color:rgba(255,250,240,.7);line-height:1.65}.map-heart-frame{position:relative;background:#d5c4a4;overflow:hidden;min-height:450px}.map-heart-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}.map-open-overlay{position:absolute;inset:0;border:0;background:transparent}.map-open-overlay span{position:absolute;right:20px;bottom:20px;background:rgba(255,250,240,.95);border-radius:999px;padding:12px 16px;font-weight:900;box-shadow:0 8px 28px rgba(0,0,0,.16)}
.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.quick-card{padding:22px;min-height:170px;display:flex;flex-direction:column;justify-content:space-between;border:0;text-align:left}.quick-card span{font-size:1.7rem}.quick-card small{font-weight:900;color:var(--rust);letter-spacing:.08em}.quick-card h3{font-size:1.35rem;margin:6px 0}.quick-card p{color:var(--muted);margin:0;line-height:1.45}.episode-strip{display:flex;gap:10px;overflow:auto;padding:3px 2px 12px;scroll-snap-type:x mandatory}.episode-mini{min-width:215px;scroll-snap-align:start;border:1px solid var(--line);background:var(--paper-2);border-radius:22px;padding:18px;text-align:left}.episode-mini.locked{opacity:.58}.episode-mini.current{border-color:rgba(197,102,60,.45);box-shadow:0 10px 28px rgba(197,102,60,.1)}.episode-mini b{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.18rem;margin:12px 0 6px}.episode-mini small{color:var(--muted)}

/* During */
.live-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.now-card{padding:32px;background:var(--ink);color:white;min-height:260px}.now-card .live-dot{display:inline-flex;align-items:center;gap:8px;font-size:.74rem;font-weight:900;letter-spacing:.1em}.live-dot:before{content:"";width:9px;height:9px;border-radius:50%;background:#e7b553;box-shadow:0 0 0 7px rgba(231,181,83,.13)}.now-card h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.7rem,5vw,5.5rem);font-weight:500;letter-spacing:-.055em;line-height:.9;margin:24px 0 12px}.now-card p{color:rgba(255,255,255,.72)}.next-card{padding:28px;background:#e3c78e;display:flex;flex-direction:column;justify-content:space-between}.next-card h2{font-size:1.7rem;margin:12px 0 6px}.during-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.during-tool{padding:22px;text-align:left;border:0}.during-tool b{font-size:1.25rem;display:block;margin:12px 0 6px}.during-tool p{color:var(--muted);margin:0}.score-mini{display:flex;gap:8px;align-items:flex-end;height:90px}.score-mini i{display:block;width:16%;border-radius:8px 8px 2px 2px;background:var(--team-color,var(--sage));height:var(--score-height)}

/* Map */
.map-page{padding:0!important;max-width:none!important}.map-shell{height:calc(100dvh - 62px);position:relative;background:#ddcfb7}.map-shell iframe{width:100%;height:100%;border:0;display:block}.map-back{position:absolute;z-index:5;left:16px;top:16px;border:1px solid rgba(23,58,50,.16);background:rgba(255,250,240,.94);border-radius:999px;padding:11px 14px;font-weight:900;box-shadow:0 8px 25px rgba(23,58,50,.13)}

/* Episodes */
.episodes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.episode-card{position:relative;min-height:270px;padding:22px;text-align:left;border:0;overflow:hidden;background:var(--paper-2)}.episode-card:after{content:attr(data-number);position:absolute;right:-4px;bottom:-28px;font-family:Georgia,"Times New Roman",serif;font-size:8.5rem;color:rgba(23,58,50,.05)}.episode-card.open{border-top:5px solid var(--rust)}.episode-card.current{background:#1d4239;color:white}.episode-card.current p,.episode-card.current small{color:rgba(255,255,255,.68)}.episode-card.locked{filter:saturate(.6);opacity:.68}.episode-card .lock{position:absolute;right:18px;top:18px}.episode-card h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:1.8rem;line-height:1.05;letter-spacing:-.035em;margin:38px 0 12px}.episode-card p{color:var(--muted);line-height:1.45}.episode-card footer{position:absolute;left:22px;right:22px;bottom:20px;display:flex;justify-content:space-between;font-size:.75rem;font-weight:850}
.episode-detail-number{font-family:Georgia,"Times New Roman",serif;font-size:5rem;color:var(--rust);line-height:.8}.episode-detail h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.3rem,6vw,4.7rem);font-weight:500;letter-spacing:-.05em;line-height:.95;margin:18px 0}.episode-detail .question{font-weight:850;color:var(--rust);font-size:1.05rem}.episode-detail .intro{font-size:1.18rem;line-height:1.6}.episode-detail-body{display:grid;gap:12px;margin-top:22px}.episode-detail-body p{margin:0;padding:16px 18px;border-left:3px solid var(--gold);background:rgba(217,173,85,.1);line-height:1.55}

/* Campers */
.camper-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.camper-count{font-family:Georgia,"Times New Roman",serif;font-size:2rem}.search-field{border:1px solid var(--line);background:var(--paper-2);border-radius:999px;padding:11px 15px;min-width:260px}.camper-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:13px}.camper-card{position:relative;border:0;padding:0;overflow:hidden;min-height:275px;text-align:left;background:var(--paper-2)}.camper-photo{height:145px;background:linear-gradient(145deg,var(--camper-color,#2f5c51),#c9b281);display:grid;place-content:center;color:white;font-family:Georgia,"Times New Roman",serif;font-size:3rem}.camper-card-content{padding:17px}.camper-card h3{font-size:1.35rem;margin:0 0 4px}.camper-card p{margin:0;color:var(--muted);font-size:.86rem}.camper-days{display:flex;gap:4px;margin-top:12px;flex-wrap:wrap}.camper-days span{font-size:.65rem;border:1px solid var(--line);border-radius:999px;padding:4px 7px}.team-dot{position:absolute;right:12px;top:12px;width:16px;height:16px;border-radius:50%;border:3px solid rgba(255,255,255,.7);background:var(--team-color)}
.camper-detail-head{display:flex;gap:18px;align-items:center}.camper-detail-avatar{width:88px;height:88px;border-radius:26px;background:linear-gradient(145deg,var(--camper-color),#c9b281);display:grid;place-content:center;color:white;font:500 2.6rem Georgia}.camper-detail h2{font-family:Georgia,"Times New Roman",serif;font-size:2.8rem;font-weight:500;margin:0}.camper-detail .answer{margin:24px 0;padding:20px;border-radius:20px;background:#f0e4cb;font-size:1.1rem;line-height:1.55}.camper-prompt{border-top:1px solid var(--line);padding-top:18px}.camper-prompt small{font-weight:900;color:var(--rust)}

/* Teams & challenges */
.team-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px}.my-team-card{position:relative;padding:28px;overflow:hidden;background:var(--team-color);color:white;min-height:310px}.my-team-card:after{content:attr(data-icon);position:absolute;right:-18px;bottom:-65px;font-size:12rem;color:rgba(255,255,255,.09)}.my-team-card h2{font-family:Georgia,"Times New Roman",serif;font-size:3rem;font-weight:500;line-height:.95;margin:18px 0 10px;max-width:8ch}.my-team-card p{color:rgba(255,255,255,.74)}.team-score-big{font-family:Georgia,"Times New Roman",serif;font-size:5rem;line-height:.9}.team-score-big small{font-family:inherit;font-size:1.1rem}.rotation-card{padding:22px;display:flex;gap:16px;align-items:flex-start}.rotation-date{min-width:72px;border-radius:18px;padding:13px 9px;background:#e4c785;text-align:center}.rotation-date b{display:block;font-size:1.6rem}.rotation-card h3{margin:2px 0 6px}.rotation-card p{margin:0;color:var(--muted)}.ranking{padding:18px}.ranking-row{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:12px;border-radius:16px}.ranking-row+ .ranking-row{border-top:1px solid var(--line)}.ranking-icon{width:36px;height:36px;border-radius:12px;background:var(--team-accent);color:var(--team-color);display:grid;place-content:center;font-weight:950}.ranking-row b{display:block}.ranking-row small{color:var(--muted)}.ranking-score{font-family:Georgia,"Times New Roman",serif;font-size:1.7rem}.challenge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.challenge-card{padding:20px}.challenge-card header{display:flex;justify-content:space-between;gap:12px}.challenge-points{border-radius:999px;background:#ecd399;padding:6px 9px;font-size:.75rem;font-weight:900}.challenge-card h3{font-size:1.25rem;margin:18px 0 8px}.challenge-card p{color:var(--muted);line-height:1.48}.challenge-status{font-size:.7rem;font-weight:900;color:var(--rust)}

/* Program */
.day-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:10px}.day-tabs button{border:1px solid var(--line);background:var(--paper-2);border-radius:999px;padding:10px 15px;white-space:nowrap;font-weight:850}.day-tabs button.active{background:var(--ink);color:white}.schedule-list{display:grid;gap:10px;margin-top:14px}.schedule-item{display:grid;grid-template-columns:115px 1fr auto;gap:18px;align-items:center;padding:20px}.schedule-time{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem}.schedule-item h3{margin:0 0 5px}.schedule-item p{margin:0;color:var(--muted)}.schedule-location{font-size:.75rem;font-weight:900;border-radius:999px;background:#ede1c8;padding:7px 10px}

/* Practical */
.practical-hero{display:grid;grid-template-columns:1fr .7fr;gap:16px}.address-card{padding:30px;background:var(--ink);color:white}.address-card h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,4vw,4rem);font-weight:500;line-height:.95;margin:16px 0}.address-card p{color:rgba(255,255,255,.7)}.arrival-card{padding:28px;background:#e3c68d}.arrival-card strong{font-family:Georgia,"Times New Roman",serif;font-size:2.8rem;font-weight:500;display:block;margin:15px 0}.practical-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.practical-section{padding:24px}.practical-section>span:first-child{font-size:1.8rem}.practical-section h2{font-family:Georgia,"Times New Roman",serif;font-size:1.85rem;font-weight:500;line-height:1.05;margin:12px 0 20px}.practical-item{padding:13px 0;border-top:1px solid var(--line)}.practical-item b{display:block;margin-bottom:4px}.practical-item p{margin:0;color:var(--muted);line-height:1.47}.my-info-card{margin-top:16px;padding:24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.my-info-card article{padding:14px;border-radius:18px;background:#f0e4cc}.my-info-card small{display:block;color:var(--rust);font-weight:900}.my-info-card b{display:block;margin-top:6px}

/* Profile & notifications */
.profile-hero-card{padding:30px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}.profile-avatar{width:84px;height:84px;border-radius:28px;background:var(--ink);color:white;display:grid;place-content:center;font-family:Georgia,"Times New Roman",serif;font-size:2.3rem}.profile-hero-card h2{font-size:2rem;margin:0 0 4px}.profile-progress{width:74px;height:74px;border-radius:50%;display:grid;place-content:center;background:conic-gradient(var(--rust) var(--progress),#e5dac4 0);position:relative}.profile-progress:after{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--paper-2)}.profile-progress b{position:relative;z-index:2}.profile-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.profile-link{padding:20px;text-align:left;border:0;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center}.profile-link>span{font-size:1.5rem}.profile-link small{display:block;color:var(--rust);font-weight:900}.profile-link b{display:block;margin-top:3px}.notifications-list{display:grid;gap:10px}.notification-card{padding:20px;display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:start}.notification-icon{width:44px;height:44px;border-radius:15px;background:#e9d5ad;display:grid;place-content:center}.notification-card h3{margin:0 0 5px}.notification-card p{margin:0;color:var(--muted)}.notification-card time{font-size:.72rem;color:var(--muted)}

/* Dialogs */
.dialog{border:1px solid var(--line);border-radius:28px;background:var(--paper-2);color:var(--ink);box-shadow:0 30px 90px rgba(0,0,0,.27);padding:30px;width:min(620px,calc(100% - 28px));max-height:88dvh;overflow:auto}.dialog::backdrop{background:rgba(9,31,27,.62);backdrop-filter:blur(4px)}.dialog-close{border:0;background:rgba(23,58,50,.08);width:38px;height:38px;border-radius:50%;font-size:1.35rem;float:right}.auth-head h2{font-family:Georgia,"Times New Roman",serif;font-size:2.8rem;font-weight:500;margin:8px 0}.auth-head p{color:var(--muted)}.auth-tabs{display:flex;background:#eee2cb;border-radius:999px;padding:4px;margin:22px 0}.auth-tabs button{flex:1;border:0;border-radius:999px;background:transparent;padding:10px;font-weight:850}.auth-tabs button.active{background:var(--ink);color:white}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:6px;font-size:.8rem;font-weight:850}.auth-form input,.auth-form textarea,.auth-form select{border:1px solid var(--line);background:white;border-radius:14px;padding:12px}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:1fr 1fr}.day-picker{border:1px solid var(--line);border-radius:18px;padding:14px}.day-picker legend{font-weight:850}.day-picker>div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.day-choice input{position:absolute;opacity:0}.day-choice span{display:block;text-align:center;border:1px solid var(--line);border-radius:12px;padding:9px 4px}.day-choice input:checked+span{background:var(--ink);color:white}.check-row{grid-template-columns:auto 1fr!important;align-items:start}.check-row input{margin-top:3px}.form-message{padding:12px;border-radius:13px;background:#eee0c4}.episode-dialog{width:min(760px,calc(100% - 28px))}

/* Admin */
.drawer-backdrop{position:fixed;inset:0;z-index:90;background:rgba(7,28,24,.45);backdrop-filter:blur(2px)}.admin-drawer{position:fixed;z-index:100;right:0;top:0;bottom:0;width:min(780px,100%);background:#f5ecdb;transform:translateX(103%);transition:transform .28s ease;box-shadow:-25px 0 80px rgba(0,0,0,.2);overflow:auto}.admin-drawer.open{transform:translateX(0)}.admin-header{position:sticky;top:0;z-index:3;background:rgba(245,236,219,.95);backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.admin-header h2{margin:4px 0 0}.admin-tabs{display:flex;gap:6px;overflow:auto;padding:12px 18px;border-bottom:1px solid var(--line);background:#eadcc2;position:sticky;top:77px;z-index:2}.admin-tabs button{border:1px solid var(--line);background:#fff8ea;border-radius:999px;padding:9px 12px;white-space:nowrap;font-weight:850;font-size:.77rem}.admin-tabs button.active{background:var(--ink);color:white}.admin-content{padding:20px;display:grid;gap:14px}.admin-card{padding:20px;border:1px solid var(--line);background:var(--paper-2);border-radius:22px}.admin-card h3{margin:4px 0 8px}.admin-card p{color:var(--muted);line-height:1.45}.admin-field{display:grid;gap:6px;margin-top:12px;font-size:.78rem;font-weight:850}.admin-field input,.admin-field textarea,.admin-field select{border:1px solid var(--line);border-radius:13px;padding:11px;background:white}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-list{display:grid;gap:8px}.admin-list-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:12px}.admin-list-row small{display:block;color:var(--muted)}.switch{display:flex;gap:8px;align-items:center}.switch input{width:20px;height:20px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.admin-notice{padding:13px;border-radius:14px;background:#e8d3a9;font-size:.82rem}.brevo-preview{border:1px dashed #b28c4a;border-radius:18px;padding:16px;margin-top:12px}.brevo-preview h4{margin:7px 0}.admin-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.admin-stat{background:#e8dbc3;border-radius:18px;padding:15px}.admin-stat b{font:500 2.1rem Georgia;display:block}.admin-stat small{color:var(--muted)}
.toast{position:fixed;z-index:200;left:50%;bottom:24px;transform:translate(-50%,120px);opacity:0;background:var(--ink);color:white;border-radius:999px;padding:12px 16px;font-weight:850;box-shadow:0 14px 40px rgba(0,0,0,.24);transition:.25s}.toast.show{transform:translate(-50%,0);opacity:1}

/* After */
.after-hero{padding:38px;min-height:360px;background:linear-gradient(145deg,#213f38,#8a674c);color:white;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.after-hero:after{content:"✦";position:absolute;right:6%;top:8%;font-size:10rem;color:rgba(255,255,255,.08)}.after-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,6vw,6rem);font-weight:500;line-height:.9;letter-spacing:-.055em;max-width:10ch;margin:14px 0}.after-hero p{max-width:50ch;color:rgba(255,255,255,.7)}.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.memory-card{padding:22px;min-height:180px;text-align:left;border:0}.memory-card span{font-size:1.7rem}.memory-card h3{font-size:1.25rem;margin:18px 0 7px}.memory-card p{color:var(--muted);margin:0}

@media(max-width:1100px){
  .home-grid,.team-layout,.practical-hero,.live-hero{grid-template-columns:1fr}.episodes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-grid,.during-tools,.challenge-grid,.practical-sections{grid-template-columns:repeat(2,minmax(0,1fr))}.map-heart{grid-template-columns:1fr}.map-heart-copy{padding:28px}.map-heart-frame{min-height:460px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .side-rail,.top-status{display:none}.app-main{margin:0}.mobile-header{display:flex;position:sticky;top:0;z-index:30;height:62px;padding:0 14px;background:rgba(244,237,223,.92);backdrop-filter:blur(14px);align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.mobile-brand{border:0;background:transparent;display:flex;align-items:baseline;gap:4px}.mobile-brand span{font-size:.68rem;letter-spacing:.14em;font-weight:900}.mobile-brand b{font-size:1.5rem;color:var(--rust)}.mobile-header-actions{display:flex;gap:7px;align-items:center}.header-icon{border-color:var(--line);color:var(--ink);background:var(--paper-2)}.bottom-nav{display:flex;position:fixed;z-index:35;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));height:66px;border:1px solid rgba(23,58,50,.13);background:rgba(255,250,240,.94);backdrop-filter:blur(18px);border-radius:22px;padding:6px;box-shadow:0 14px 42px rgba(23,58,50,.18);overflow-x:auto}.bottom-nav button{min-width:62px;flex:1;border:0;background:transparent;border-radius:17px;display:grid;place-content:center;gap:3px;color:var(--muted)}.bottom-nav button span{font-size:1.1rem}.bottom-nav button small{font-size:.6rem;font-weight:850}.bottom-nav button.active{background:var(--ink);color:white}.view{padding:18px 14px 105px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:2.7rem}.home-hero{min-height:460px;padding:26px}.home-hero h1{font-size:4rem}.home-grid{gap:12px}.map-heart{min-height:660px}.map-heart-copy{padding:27px 22px}.map-heart-frame{min-height:390px}.quick-grid,.during-tools,.challenge-grid,.practical-sections,.profile-links,.my-info-card,.memory-grid{grid-template-columns:1fr}.episodes-grid{grid-template-columns:1fr}.episode-card{min-height:245px}.camper-toolbar{align-items:flex-start;flex-direction:column}.search-field{width:100%;min-width:0}.camper-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.camper-card{min-height:230px}.camper-photo{height:115px}.schedule-item{grid-template-columns:84px 1fr;gap:12px}.schedule-location{grid-column:2;width:max-content}.profile-hero-card{grid-template-columns:auto 1fr}.profile-progress{display:none}.notification-card{grid-template-columns:42px 1fr}.notification-card time{grid-column:2}.form-grid.two{grid-template-columns:1fr}.day-picker>div{grid-template-columns:repeat(2,1fr)}.admin-grid,.admin-stat-grid{grid-template-columns:1fr}.portal-content{margin-top:-45px}.portal h1{font-size:3.6rem}.portal-moon{right:7%;top:8%}.portal-campfire{bottom:7%}.map-shell{height:calc(100dvh - 62px - 82px)}
}
@media(max-width:420px){.bottom-nav button{min-width:48px}.bottom-nav button small{font-size:.54rem}.camper-grid{grid-template-columns:1fr 1fr}.camper-card-content{padding:13px}.camper-card h3{font-size:1.1rem}.portal-actions{display:grid}.portal-actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* Éditeurs et révélation collective protégée */
.profile-edit-dialog,
.admin-edit-dialog { width: min(760px, calc(100vw - 28px)); max-height: min(88vh, 880px); overflow: auto; }
.profile-edit-form { display: grid; gap: 18px; }
.profile-edit-form label { display: grid; gap: 7px; font-weight: 700; color: var(--ink); }
.profile-edit-form label small { font-weight: 500; opacity: .65; }
.profile-edit-form input,
.profile-edit-form textarea,
.profile-edit-form select { width: 100%; border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; background: #fffdf8; color: var(--ink); font: inherit; }
.profile-edit-form textarea { resize: vertical; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; padding-top: 4px; }
.locked-team { min-height: 280px; display: grid; place-items: center; align-content: center; text-align: center; padding: clamp(28px, 6vw, 70px); background: radial-gradient(circle at 50% 30%, rgba(232,194,116,.2), transparent 46%), var(--paper); }
.locked-team > span { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--ink); color: white; font-size: 30px; margin-bottom: 14px; }
.locked-team h2 { margin: 0 0 8px; font-size: clamp(28px, 5vw, 52px); }
.locked-team p { max-width: 620px; margin: 0; }
.admin-edit-dialog .hidden,
.admin-field.hidden { display: none !important; }

@media (max-width: 680px) {
  .profile-edit-dialog,
  .admin-edit-dialog { width: calc(100vw - 16px); padding: 22px 16px; }
  .dialog-actions .button { flex: 1; }
}

.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:7px 10px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.status-pill.open{background:#dce9df;color:#245044}
.status-pill.locked{background:#ece8df;color:#7a746b}
