:root {
  --ink: #172727;
  --muted: #62706d;
  --cream: #f6f2e8;
  --paper: #fffcf5;
  --green: #2f6c63;
  --green-dark: #214e49;
  --mint: #d9e8df;
  --coral: #e97161;
  --yellow: #e5b94d;
  --blue: #5c8fb8;
  --soft-green: #75a98b;
  --line: rgba(23, 39, 39, 0.13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: "Avenir Next", Avenir, Nunito, system-ui, sans-serif; }
button, input { font: inherit; }
button, a, input[type=range] { touch-action: manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible { outline: 3px solid rgba(92, 143, 184, .45); outline-offset: 3px; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.brand > span:last-child { display: flex; flex-direction: column; line-height: 1.15; }
.brand strong { font-size: 16px; letter-spacing: -.02em; }
.brand small { margin-top: 4px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50% 48% 52% 46%; background: var(--green); color: #fff; font-weight: 900; transform: rotate(-7deg); }
.kicker { margin: 0 0 17px; color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.topbar { width: min(1180px, calc(100% - 48px)); min-height: 96px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.top-actions { display: flex; align-items: center; gap: 9px; }
.parent-button, .logout-button { border: 0; border-radius: 999px; padding: 11px 17px; font-size: 12px; font-weight: 900; cursor: pointer; }
.parent-button { background: var(--green); color: #fff; }
.parent-button.active { background: #dcebe2; color: var(--green-dark); }
.logout-button { border: 1px solid var(--line); background: transparent; color: var(--muted); }
.hero { width: min(1180px, calc(100% - 48px)); min-height: 570px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, .95fr) minmax(460px, 1.05fr); align-items: center; gap: 58px; overflow: hidden; }
.hero-copy { padding: 68px 0 76px; }
.hero h1, .section-heading h2, .history-intro h2, .parent-dialog h2 { margin: 0; font-family: Raleway, "Avenir Next", system-ui, sans-serif; letter-spacing: -.055em; }
.hero h1 { font-size: clamp(44px, 5vw, 72px); line-height: .99; font-weight: 800; }
.hero h1 em { color: var(--coral); font-style: italic; font-weight: 500; }
.hero-description { max-width: 500px; margin: 29px 0 30px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.hero-link { display: inline-flex; align-items: center; gap: 13px; color: var(--ink); font-size: 13px; font-weight: 900; text-decoration: none; }
.hero-link span { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; }
.goal-visual { position: relative; min-height: 410px; display: grid; place-items: center; }
.visual-circle { position: absolute; width: 390px; height: 390px; border-radius: 50%; background: #e6ebdd; }
.orbit { position: absolute; border: 1px solid rgba(47, 108, 99, .16); border-radius: 50%; }
.orbit-one { width: 470px; height: 270px; transform: rotate(28deg); }
.orbit-two { width: 270px; height: 470px; transform: rotate(62deg); }
.console-shape { position: relative; z-index: 2; display: flex; align-items: stretch; filter: drop-shadow(0 24px 25px rgba(31, 62, 59, .18)); transform: rotate(-3deg); }
.console-screen { width: 270px; height: 174px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 10px solid var(--ink); background: linear-gradient(150deg, #dbe6da, #b8d0c5); }
.console-screen > span { font-size: 9px; font-weight: 900; letter-spacing: .19em; }
.console-screen strong { font-size: 48px; letter-spacing: -.05em; }
.console-screen > i { width: 120px; height: 6px; margin-top: 7px; overflow: hidden; border-radius: 99px; background: rgba(23,39,39,.15); }
.console-screen > i b { display: block; height: 100%; border-radius: inherit; background: var(--coral); transition: width .4s; }
.joy { position: relative; width: 70px; height: 174px; background: var(--coral); }
.joy-left { border-radius: 58px 13px 13px 58px; }
.joy-right { border-radius: 13px 58px 58px 13px; background: var(--green); }
.stick { position: absolute; top: 41px; left: 20px; width: 29px; height: 29px; border: 6px solid #253532; border-radius: 50%; background: #41514d; }
.buttons { position: absolute; top: 35px; left: 20px; font-size: 23px; letter-spacing: 4px; line-height: .65; transform: rotate(45deg); }
.progress-stamp { position: absolute; z-index: 3; right: 20px; bottom: 15px; width: 126px; height: 126px; display: flex; align-items: center; justify-content: center; gap: 7px; border-radius: 50%; background: var(--paper); box-shadow: 0 15px 35px rgba(33,78,73,.13); transform: rotate(7deg); }
.progress-stamp strong { color: var(--green); font-size: 28px; }
.progress-stamp span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.hero-unlocked .visual-circle { background: #dcebdc; box-shadow: 0 0 0 24px rgba(229,185,77,.08); }
.objectives { padding: 90px max(24px, calc((100% - 1180px)/2)) 110px; background: var(--paper); border-top: 1px solid rgba(23,39,39,.06); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 38px; }
.section-heading h2, .history-intro h2 { font-size: clamp(36px, 4vw, 54px); line-height: 1; }
.overall-summary { min-width: 220px; }
.overall-summary span { display: block; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.overall-summary strong { color: var(--green); font-size: 34px; }
.error-banner { margin-bottom: 20px; padding: 14px 18px; border: 1px solid rgba(233,113,97,.35); border-radius: 12px; background: rgba(233,113,97,.08); color: #8a382e; font-weight: 800; }
.cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); align-items: start; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.goal-card { --accent: var(--coral); min-width: 0; padding: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.goal-card.yellow { --accent: var(--yellow); }.goal-card.blue { --accent: var(--blue); }.goal-card.green { --accent: var(--soft-green); }
.card-topline, .card-progress-label { display: flex; align-items: center; justify-content: space-between; }
.card-number { color: rgba(23,39,39,.28); font-size: 11px; font-weight: 900; }
.card-icon, .history-icon { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); font-weight: 900; }
.card-eyebrow { margin: 32px 0 8px; color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.goal-card h3 { min-height: 54px; margin: 0 0 11px; font-size: 24px; letter-spacing: -.035em; line-height: 1.1; }
.card-description { min-height: 72px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.card-progress { margin-top: 28px; }.card-progress-label { margin-bottom: 9px; font-size: 11px; }.card-progress-label span { color: var(--muted); font-weight: 800; }.card-progress-label strong { color: var(--accent); font-size: 18px; }
.progress-track { height: 7px; overflow: hidden; border-radius: 99px; background: rgba(23,39,39,.09); }.progress-track i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.edit-panel { margin: 25px -10px -12px; padding: 17px 10px 10px; border-top: 1px dashed var(--line); }
.edit-panel label, .parent-dialog label, .family-dialog label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.note-input { width: 100%; height: 41px; border: 1px solid var(--line); border-radius: 9px; padding: 0 11px; font-size: 16px; }
.mobile-edit-toggle { display: none; }
.quick-buttons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 9px; }
.quick-buttons button, .save-manual { height: 39px; border: 1px solid var(--line); border-radius: 9px; background: #fff; font-weight: 900; cursor: pointer; }.quick-buttons .plus { border-color: var(--accent); background: var(--accent); color: #fff; }button:disabled { opacity: .4; cursor: not-allowed; }
.quick-buttons .boost{border-color:var(--ink);background:linear-gradient(135deg,var(--accent),var(--ink));box-shadow:0 5px 12px color-mix(in srgb,var(--accent) 25%,transparent)}
.manual-adjust { margin-top: 15px; }.manual-adjust > div { display: grid; grid-template-columns: 1fr 70px; gap: 8px; }.manual-adjust input[type=range] { grid-column: 1/-1; width: 100%; accent-color: var(--accent); }.number-input { min-width: 0; height: 38px; border: 1px solid var(--line); border-radius: 8px; text-align: center; }.save-manual { background: var(--ink); color: #fff; }
.history-section { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 104px 0 115px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 110px; }
.history-intro > p:last-child { max-width: 390px; color: var(--muted); line-height: 1.65; }.history-list { border-top: 1px solid var(--line); }
.history-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 17px; padding: 21px 0; border-bottom: 1px solid var(--line); }.history-icon.coral{--accent:var(--coral)}.history-icon.yellow{--accent:var(--yellow)}.history-icon.blue{--accent:var(--blue)}.history-icon.green{--accent:var(--soft-green)}
.history-copy > div { display: flex; justify-content: space-between; gap: 15px; }.history-copy time { color: #8c9692; font-size: 10px; font-weight: 800; }.history-copy p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }.history-delta { min-width: 43px; padding: 7px 8px; border-radius: 99px; text-align: center; font-size: 12px; font-weight: 900; }.history-delta.positive{background:#e0eee4;color:#35734d}.history-delta.negative{background:#fae6e2;color:#a74e42}
.empty-history { min-height: 245px; display: grid; place-content: center; justify-items: center; text-align: center; border-bottom: 1px solid var(--line); }.empty-history span{color:var(--yellow);font-size:28px}.empty-history p{margin:7px 0 0;color:var(--muted);font-size:13px}
footer { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 27px 0 38px; display: flex; align-items: center; gap: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }footer .brand-mark{width:31px;height:31px;font-size:12px}footer p{margin:0}footer a{margin-left:auto;color:var(--ink);font-weight:900;text-decoration:none}
.parent-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#f5f5f2;color:#171b1a;box-shadow:none}.parent-dialog[open]{display:grid;place-items:center;animation:parent-screen-in .22s ease both}.parent-dialog::backdrop{background:#f5f5f2;backdrop-filter:none}.family-dialog::backdrop{background:rgba(21,38,36,.72);backdrop-filter:blur(7px)}.parent-dialog form{position:relative;width:min(390px,100%);min-height:100dvh;margin:auto;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:calc(34px + env(safe-area-inset-top)) 28px calc(28px + env(safe-area-inset-bottom));text-align:center}.dialog-close{position:absolute;top:13px;right:16px;border:0;background:transparent;font-size:27px;cursor:pointer}.parent-dialog .dialog-close{position:fixed;z-index:2;top:calc(16px + env(safe-area-inset-top));right:18px;width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(23,27,26,.1);border-radius:50%;background:rgba(255,255,255,.72);color:#505653;font-size:24px;line-height:1;backdrop-filter:blur(12px)}.dialog-icon{width:44px;height:44px;display:grid;place-items:center;margin-bottom:25px;border-radius:50%;background:var(--mint);color:var(--green)}.parent-dialog .dialog-icon{width:48px;height:48px;margin:0 0 18px;border:1px solid rgba(23,27,26,.1);background:#fff;color:#171b1a;font-size:15px;font-weight:700}.parent-dialog .kicker{margin:0 0 10px;color:#747a77;font-size:9px;font-weight:700;letter-spacing:.16em}.parent-dialog h2{margin:0;font-family:"Avenir Next",Avenir,system-ui,sans-serif;font-size:clamp(30px,5vw,38px);font-weight:650;letter-spacing:-.04em}.dialog-description{color:var(--muted);font-size:14px;line-height:1.55}.parent-dialog .dialog-description{max-width:310px;margin:10px 0 24px;color:#777d7a;font-size:13px;line-height:1.45}.pin-input{width:100%;height:54px;margin-bottom:17px;border:1px solid var(--line);border-radius:11px;padding:0 16px;font-size:24px;font-weight:900;letter-spacing:.35em;text-align:center}.visually-hidden,.pin-native-input{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;padding:0!important}.pin-passcode-display{height:22px;display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:27px}.pin-passcode-display i{width:12px;height:12px;border:1.5px solid #8a908d;border-radius:50%;background:transparent;transition:background .14s ease,border-color .14s ease,transform .14s ease}.pin-passcode-display i.filled{border-color:#171b1a;background:#171b1a;transform:scale(1.08)}.pin-passcode-display .pin-slot-optional{display:none}#parent-form.pin-long-code .pin-passcode-display .pin-slot-optional{display:block}#parent-form.pin-error .pin-passcode-display i{border-color:#bd5b50}#parent-form.pin-error .pin-passcode-display i.filled{background:#bd5b50}.pin-keypad{width:272px;display:grid;grid-template-columns:repeat(3,72px);justify-content:space-between;gap:12px 0;margin:0 auto}.pin-keypad button{width:72px;height:72px;min-height:0;border:1px solid rgba(23,27,26,.09);border-radius:50%;background:rgba(255,255,255,.88);color:#171b1a;font-size:26px;font-weight:500;cursor:pointer;touch-action:manipulation;box-shadow:none;transition:background .12s ease,transform .12s ease}.pin-keypad button:hover{background:#fff}.pin-keypad button:active{background:#dfe1de;transform:scale(.94);box-shadow:none}.pin-keypad .pin-keypad-action{border-color:transparent;background:transparent;color:#666c69;font-size:11px;font-weight:600}.pin-keypad-help{display:block;margin:20px 0 0;color:#858b88;font-size:10px;font-weight:500;letter-spacing:0;text-align:center;text-transform:none}.parent-dialog #parent-error{max-width:330px;margin:14px 0 0;color:#9c4037;font-size:11px;font-weight:600;line-height:1.4;text-align:center}.parent-dialog .primary-button{display:none;width:auto;min-height:38px;margin:12px 0 0;padding:0;border:0;background:transparent;color:#606663;font-size:11px;font-weight:600;text-decoration:underline}#parent-form.pin-long-code .primary-button{display:block}#parent-form.pin-verifying .pin-keypad{opacity:.38;pointer-events:none}#parent-form.pin-verifying .pin-passcode-display{animation:pin-verifying .55s ease-in-out infinite alternate}
.primary-button { width: 100%; min-height: 50px; border: 0; border-radius: 11px; background: var(--green); color: #fff; font-weight: 900; cursor: pointer; }.primary-button:hover{background:var(--green-dark)}.primary-button span{float:right}.form-error{margin:0 0 13px;color:#a44337;font-size:12px;font-weight:800}
.auth-page { min-height: 100vh; background: var(--cream); }.auth-shell { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; }.auth-visual { position: relative; display: grid; place-content: center; justify-items: center; overflow: hidden; background: var(--green); color: #fff; }.auth-visual::before,.auth-visual::after{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(255,255,255,.14);border-radius:50%;transform:rotate(25deg)}.auth-visual::after{width:280px;height:550px;transform:rotate(65deg)}.auth-console{position:relative;z-index:2;display:flex;filter:drop-shadow(0 24px 25px rgba(0,0,0,.2));transform:rotate(-4deg)}.auth-joy{width:54px;height:124px}.auth-joy.coral{border-radius:45px 8px 8px 45px;background:var(--coral)}.auth-joy.green{border-radius:8px 45px 45px 8px;background:#183e3a}.auth-screen{width:185px;height:124px;display:grid;place-items:center;border:8px solid var(--ink);background:#dbe6da;color:var(--green)}.auth-screen strong{font-size:44px}.auth-visual p{position:relative;z-index:2;margin-top:36px;font-size:17px;font-weight:800}.auth-card{width:min(500px,calc(100% - 48px));margin:auto;padding:48px}.auth-heading{margin:75px 0 32px}.auth-heading h1{margin:0;font-size:clamp(38px,4vw,58px);line-height:1;letter-spacing:-.055em}.auth-heading>p:last-child{color:var(--muted);line-height:1.6}.auth-card form label{display:block;margin:18px 0 7px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.auth-card form input{width:100%;height:52px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 15px}.auth-card .primary-button{margin-top:24px}.field-help{display:block;margin-top:6px;color:#8c9692;font-size:11px}.auth-footnote{margin:23px 0 0;color:#8c9692;font-size:11px;text-align:center}
/* Couche ludique et animations */
body{position:relative;overflow-x:hidden}body.reward-screen-active{overscroll-behavior:none}
.topbar,main,footer{position:relative;z-index:1}
.brand-mark{animation:brand-wiggle 5s ease-in-out infinite}
.parent-button,.logout-button{transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.parent-button:hover,.logout-button:hover{transform:translateY(-3px) rotate(-1deg);box-shadow:0 10px 22px rgba(33,78,73,.13)}
.parent-button:active,.logout-button:active,.quick-buttons button:active,.save-manual:active,.primary-button:active{transform:scale(.94)}
.hero-copy{animation:hero-arrival .75s cubic-bezier(.2,.8,.2,1) both}
.hero-link span{animation:arrow-bounce 1.8s ease-in-out infinite}
.visual-circle{animation:circle-breathe 4.5s ease-in-out infinite}
.orbit-one{animation:orbit-one-spin 17s linear infinite}
.orbit-two{animation:orbit-two-spin 22s linear infinite reverse}
.console-shape{animation:console-float 3.3s ease-in-out infinite}
.console-screen strong{animation:number-pulse 2.7s ease-in-out infinite}
.console-screen>i b{background:linear-gradient(90deg,var(--coral),var(--yellow),var(--coral));background-size:200% 100%;transition:width .85s cubic-bezier(.2,.8,.2,1);animation:progress-shine 2s linear infinite}
.progress-stamp{animation:stamp-bob 2.9s ease-in-out infinite}
.goal-card{position:relative;transition:transform .28s ease,background .28s ease,box-shadow .28s ease;animation:card-arrival .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--card-order) * .1s)}
.goal-card:hover{z-index:2;transform:translateY(-7px) rotate(-.5deg);background:#fff;box-shadow:0 22px 40px rgba(33,78,73,.11)}
.goal-card.completed{background:linear-gradient(145deg,#fffdf7,#eef7ee)}
.goal-card.completed .card-icon{animation:completed-glow 1.7s ease-in-out infinite}
.card-icon{animation:icon-float 3s ease-in-out infinite;animation-delay:calc(var(--card-order) * -.45s)}
.progress-track i{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 62%,white));background-size:180% 100%;transition:width .9s cubic-bezier(.2,.8,.2,1);animation:progress-shine 1.8s linear infinite}
.quick-buttons button,.save-manual{transition:transform .18s ease,box-shadow .18s ease}
.quick-buttons button:hover,.save-manual:hover{transform:translateY(-2px);box-shadow:0 7px 15px rgba(23,39,39,.12)}
.quick-buttons .plus{animation:plus-invite 2.2s ease-in-out infinite}
button:disabled{animation:none!important}
.history-item{animation:history-slide .48s cubic-bezier(.2,.8,.2,1) both}
.history-item:nth-child(2){animation-delay:.05s}.history-item:nth-child(3){animation-delay:.1s}.history-item:nth-child(4){animation-delay:.15s}
.parent-dialog[open]{animation:parent-screen-in .22s ease both}
.dialog-icon{animation:dialog-icon-spin 4s ease-in-out infinite}
.auth-visual::before{animation:auth-orbit-one 16s linear infinite}.auth-visual::after{animation:auth-orbit-two 22s linear infinite reverse}
.auth-console{animation:auth-console-float 3s ease-in-out infinite}.auth-screen strong{animation:number-pulse 2.2s ease-in-out infinite}.auth-visual p{animation:auth-text-float 3.5s ease-in-out infinite}
.auth-card{animation:auth-card-arrival .7s cubic-bezier(.2,.8,.2,1) both}
.auth-card form input{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.auth-card form input:focus{transform:scale(1.015);border-color:var(--blue);box-shadow:0 8px 20px rgba(92,143,184,.12)}

/* Écran de démarrage spectaculaire */
.game-boot{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,#214e49 0,#101e1d 38%,#060d0c 78%);color:#fff;isolation:isolate;animation:boot-failsafe .45s 7s forwards}.game-boot::before{content:"";position:absolute;z-index:12;inset:0;background:repeating-linear-gradient(0deg,transparent 0 4px,rgba(0,0,0,.22) 4px 6px);pointer-events:none;animation:boot-scan .28s linear infinite}.game-boot::after{content:"";position:absolute;z-index:0;width:78vmin;height:78vmin;border:1px solid rgba(229,185,77,.24);border-radius:50%;box-shadow:0 0 0 7vmin rgba(229,185,77,.025),0 0 0 14vmin rgba(233,113,97,.025),0 0 100px rgba(92,143,184,.18);animation:boot-reactor 2.2s ease-in-out infinite}
.boot-grid{position:absolute;z-index:1;left:-30%;right:-30%;bottom:-38%;height:80%;background-image:linear-gradient(rgba(229,185,77,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(229,185,77,.2) 1px,transparent 1px);background-size:52px 52px;transform:perspective(420px) rotateX(62deg);transform-origin:center top;animation:boot-grid-drive 1.1s linear infinite}
.boot-speed-lines{position:absolute;z-index:2;inset:0;pointer-events:none}.boot-speed-lines i{position:absolute;left:50%;top:50%;width:56vw;height:2px;background:linear-gradient(90deg,var(--yellow),rgba(255,255,255,.7),transparent 75%);box-shadow:0 0 14px var(--yellow);transform-origin:left center;animation:boot-speed-line 1.25s cubic-bezier(.14,.65,.18,1) infinite}.boot-speed-lines i:nth-child(1){--boot-angle:5deg;animation-delay:-.15s}.boot-speed-lines i:nth-child(2){--boot-angle:48deg;animation-delay:-.8s}.boot-speed-lines i:nth-child(3){--boot-angle:92deg;animation-delay:-.45s}.boot-speed-lines i:nth-child(4){--boot-angle:137deg;animation-delay:-1.05s}.boot-speed-lines i:nth-child(5){--boot-angle:184deg;animation-delay:-.65s}.boot-speed-lines i:nth-child(6){--boot-angle:226deg;animation-delay:-.25s}.boot-speed-lines i:nth-child(7){--boot-angle:276deg;animation-delay:-.95s}.boot-speed-lines i:nth-child(8){--boot-angle:320deg;animation-delay:-.55s}
.boot-corner{position:absolute;z-index:5;padding:7px 10px;border:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.68);font-size:9px;font-weight:1000;letter-spacing:.18em}.boot-corner-one{top:calc(22px + env(safe-area-inset-top));left:22px;border-left:4px solid var(--coral)}.boot-corner-two{right:22px;bottom:calc(22px + env(safe-area-inset-bottom));border-right:4px solid var(--yellow)}
.boot-content{position:relative;z-index:6;width:min(720px,calc(100% - 34px));text-align:center}.boot-loading{display:flex;align-items:center;flex-direction:column;animation:boot-content-arrive .72s cubic-bezier(.12,.88,.18,1) both}.boot-kicker{display:flex;align-items:center;gap:9px;margin:0 0 17px;color:var(--yellow);font-size:10px;font-weight:1000;letter-spacing:.22em}.boot-kicker span{width:9px;height:9px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 0 rgba(233,113,97,.6);animation:boot-status-ping 1s ease-out infinite}
.boot-emblem{position:relative;width:188px;height:114px;display:grid;place-items:center}.boot-emblem::before,.boot-emblem::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.21);border-radius:50%;animation:boot-emblem-orbit 2.4s linear infinite}.boot-emblem::before{width:180px;height:78px;transform:rotate(18deg)}.boot-emblem::after{width:80px;height:174px;transform:rotate(58deg);animation-direction:reverse;animation-duration:3.1s}.boot-emblem-letter{position:relative;z-index:3;width:83px;height:83px;display:grid;place-items:center;border:4px solid #fff;border-radius:50%;background:var(--coral);font-size:50px;font-weight:1000;line-height:1;box-shadow:7px 7px 0 var(--yellow),0 0 55px rgba(233,113,97,.52);animation:boot-letter-hit 1.6s steps(2) infinite}
.boot-mini-console{position:absolute;z-index:2;right:-18px;bottom:2px;display:flex;align-items:stretch;filter:drop-shadow(0 10px 12px rgba(0,0,0,.36));transform:rotate(-8deg);animation:boot-console-float 1.8s ease-in-out infinite}.boot-mini-console b{width:75px;height:45px;border:5px solid #081110;background:linear-gradient(135deg,#d8e8df,#7da69a)}.boot-mini-joy{width:20px;height:45px}.boot-mini-joy.left{border-radius:20px 4px 4px 20px;background:var(--coral)}.boot-mini-joy.right{border-radius:4px 20px 20px 4px;background:var(--blue)}
.boot-loading h1{margin:17px 0 0;font-size:clamp(60px,12vw,112px);font-style:italic;font-weight:1000;letter-spacing:-.09em;line-height:.78;text-shadow:5px 5px 0 #07110f,8px 8px 0 var(--coral);animation:boot-title-glitch .8s steps(2) infinite}.boot-loading h1 em{display:inline-block;color:var(--yellow);font-style:inherit;text-shadow:5px 5px 0 #07110f,8px 8px 0 var(--blue)}.boot-subtitle{margin:22px 0 0;padding:7px 13px;background:#fff;color:#101e1d;font-size:11px;font-weight:1000;letter-spacing:.22em;transform:skew(-8deg)}
.boot-loader{width:min(510px,92%);margin-top:38px}.boot-loader>div{display:flex;justify-content:space-between;gap:15px;margin-bottom:8px;color:rgba(255,255,255,.72);font-size:9px;font-weight:1000;letter-spacing:.12em}.boot-loader>div strong{color:var(--yellow);font-size:11px}.boot-loader>b{height:17px;display:block;padding:3px;border:2px solid rgba(255,255,255,.8);background:#07110f;transform:skew(-10deg)}.boot-loader>b i{width:0;height:100%;display:block;background:linear-gradient(90deg,var(--coral),var(--yellow),#fff);box-shadow:0 0 20px rgba(229,185,77,.65);transition:width .12s linear}
.boot-ready{position:absolute;inset:50% auto auto 50%;width:min(680px,calc(100vw - 32px));display:flex;align-items:center;flex-direction:column;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.2)}.boot-ready-icon{width:95px;height:95px;display:grid;place-items:center;border:5px solid #fff;border-radius:50%;background:var(--yellow);color:#101e1d;font-size:53px;box-shadow:0 0 0 12px rgba(229,185,77,.13),0 0 70px rgba(229,185,77,.62)}.boot-ready small{margin-top:25px;padding:6px 12px;border:2px solid var(--yellow);color:var(--yellow);font-size:10px;font-weight:1000;letter-spacing:.25em;transform:skew(-9deg)}.boot-ready strong{margin-top:16px;font-size:clamp(68px,14vw,126px);font-style:italic;font-weight:1000;letter-spacing:-.09em;line-height:.72;text-shadow:6px 6px 0 #07110f,10px 10px 0 var(--coral)}.boot-ready p{margin:28px 0 0;padding:8px 15px;background:var(--coral);font-size:13px;font-weight:1000;letter-spacing:.18em;transform:skew(-8deg)}
.game-boot.ready .boot-loading{animation:boot-content-disappear .3s steps(2) forwards}.game-boot.ready .boot-ready{animation:boot-ready-slam 1.08s cubic-bezier(.1,.92,.16,1) both}.game-boot.ready::after{animation:boot-reactor-ready .85s cubic-bezier(.1,.82,.2,1) infinite alternate}
.boot-slashes{position:absolute;z-index:20;inset:0;overflow:hidden;pointer-events:none}.boot-slashes i{position:absolute;left:-35%;width:170%;height:37%;background:var(--yellow);opacity:0;transform:translateX(-110%) skewX(-18deg)}.boot-slashes i:nth-child(1){top:-4%}.boot-slashes i:nth-child(2){top:32%;background:#fff}.boot-slashes i:nth-child(3){top:68%;background:var(--coral)}.game-boot.exiting{animation:boot-exit .95s cubic-bezier(.7,0,.9,.35) forwards}.game-boot.exiting .boot-slashes i{animation:boot-slash .7s cubic-bezier(.7,0,.25,1) forwards}.game-boot.exiting .boot-slashes i:nth-child(2){animation-delay:.08s}.game-boot.exiting .boot-slashes i:nth-child(3){animation-delay:.16s}
.game-entering .topbar{animation:page-topbar-drop .7s cubic-bezier(.1,.9,.2,1) both}.game-entering .hero-copy{animation:page-copy-slam .85s cubic-bezier(.1,.92,.16,1) both}.game-entering .goal-visual{animation:page-console-slam 1s cubic-bezier(.1,.9,.2,1) both}.game-entering .objectives{animation:page-objectives-flash 1.2s ease both}
.form-shake{animation:form-shake .46s ease-in-out!important}.auth-success .auth-console{animation:auth-takeoff .65s cubic-bezier(.2,.8,.2,1) forwards}.auth-success .auth-card{animation:auth-success-card .55s ease-in forwards}

.ambient-playground{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.ambient-shape{position:absolute;color:color-mix(in srgb,var(--green) 34%,transparent);font-weight:900;opacity:.46}.ambient-shape.star{font-size:24px;animation:ambient-drift 8s ease-in-out infinite}.star-one{left:3%;top:18%}.star-two{right:4%;top:35%;font-size:17px!important;animation-delay:-2.8s!important}.star-three{left:7%;top:74%;animation-delay:-5s!important}.ambient-shape.dot{width:13px;height:13px;border-radius:50%;background:var(--yellow);animation:dot-roam 11s ease-in-out infinite}.dot-one{right:8%;top:14%}.dot-two{left:2%;top:54%;width:8px;height:8px;background:var(--coral);animation-delay:-4s}.squiggle{right:3%;top:72%;color:var(--coral);font-size:36px;animation:squiggle-wave 4s ease-in-out infinite}
.visual-spark{position:absolute;z-index:4;color:var(--yellow);font-size:22px;animation:spark-pop 2.8s ease-in-out infinite}.spark-one{left:8%;top:18%}.spark-two{right:9%;top:16%;color:var(--coral);font-size:15px;animation-delay:-1s}.spark-three{left:19%;bottom:8%;color:var(--blue);animation-delay:-2s}
.celebration-layer{position:fixed;inset:0;z-index:100;overflow:hidden;pointer-events:none}.party-particle{position:absolute;z-index:104;width:var(--size);height:calc(var(--size) * .62);border-radius:2px;opacity:0;animation:particle-flight var(--duration) cubic-bezier(.12,.72,.2,1) var(--delay) forwards}.party-particle.shape-1{border-radius:50%}.party-particle.shape-2{clip-path:polygon(50% 0,63% 34%,100% 38%,71% 61%,80% 100%,50% 78%,20% 100%,29% 61%,0 38%,37% 34%)}.party-particle.shape-3{height:var(--size);border-radius:50% 0 50% 50%}
.celebration-layer.above-recap{z-index:970}
.fun-toast{position:fixed;z-index:110;top:22px;left:50%;width:min(430px,calc(100% - 28px));display:flex;align-items:center;gap:13px;padding:14px 17px;border:1px solid rgba(47,108,99,.16);border-radius:17px;background:rgba(255,252,245,.95);box-shadow:0 22px 55px rgba(23,39,39,.2);backdrop-filter:blur(12px);opacity:0;transform:translate(-50%,-140%) rotate(-2deg);transition:opacity .3s ease,transform .45s cubic-bezier(.2,.9,.2,1.25)}.fun-toast.visible{opacity:1;transform:translate(-50%,0) rotate(-1deg)}.fun-toast>span{flex:0 0 auto;width:45px;height:45px;display:grid;place-items:center;border-radius:50%;background:var(--mint);color:var(--green);font-size:22px;animation:toast-icon-dance 1.2s ease-in-out infinite}.fun-toast div{display:flex;flex-direction:column}.fun-toast strong{font-size:15px}.fun-toast small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}.fun-toast.gentle>span{background:#e4edf5;color:var(--blue)}.fun-toast.victory{border-color:rgba(229,185,77,.5);background:linear-gradient(130deg,#fffdf3,#fff4cb)}.fun-toast.victory>span{background:var(--yellow);color:#fff}
.score-bubble{position:absolute;z-index:8;top:45%;left:50%;padding:9px 14px;border-radius:999px;color:#fff;font-size:13px;font-weight:900;white-space:nowrap;pointer-events:none;animation:score-pop 1.45s cubic-bezier(.2,.9,.2,1) forwards}.score-bubble.positive{background:var(--green)}.score-bubble.negative{background:var(--coral)}.goal-card.is-celebrating{z-index:5;animation:card-celebrate .8s cubic-bezier(.2,.9,.2,1)}.goal-card.is-celebrating .card-icon{animation:icon-celebrate .7s ease-in-out 2}.goal-card.is-adjusting{animation:card-adjust .48s ease-in-out}.victory-party .hero{animation:victory-glow 1.3s ease-in-out 4}.victory-party .console-shape{animation:victory-console .8s ease-in-out 5}.victory-party .progress-stamp{animation:victory-stamp .62s ease-in-out 6}
.auth-sparkles{position:absolute;inset:0}.auth-sparkles span{position:absolute;font-size:20px;opacity:.62;animation:auth-sparkle 4s ease-in-out infinite}.auth-sparkles span:nth-child(1){left:14%;top:18%}.auth-sparkles span:nth-child(2){right:13%;top:27%;animation-delay:-1s}.auth-sparkles span:nth-child(3){left:23%;bottom:19%;animation-delay:-2s}.auth-sparkles span:nth-child(4){right:24%;bottom:14%;font-size:10px;animation-delay:-3s}.auth-sparkles span:nth-child(5){right:7%;bottom:43%;animation-delay:-1.7s}

/* Un journal compact sous chaque objectif */
.card-history{margin-top:21px;padding-top:14px;border-top:1px dashed var(--line);scroll-margin-top:calc(80px + env(safe-area-inset-top));overflow-anchor:none}
.card-history-toggle,.card-history-empty{width:100%;min-height:46px;display:flex;align-items:center;gap:10px;padding:8px 9px;border:0;border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,#fff);color:var(--ink);text-align:left}
.card-history-toggle{cursor:pointer;transition:transform .18s ease,background .18s ease}.card-history-toggle:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--accent) 14%,#fff)}
.card-history-symbol,.card-history-empty>span{flex:0 0 auto;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,#fff);color:var(--accent);font-size:17px;font-weight:900}
.card-history-title,.card-history-empty>div{min-width:0;display:flex;flex:1;flex-direction:column}.card-history-title b,.card-history-empty b{font-size:12px}.card-history-title small,.card-history-empty small{margin-top:2px;color:var(--muted);font-size:9px;font-weight:800}
.card-history-chevron{flex:0 0 auto;color:var(--accent);font-size:22px;font-weight:900;transition:transform .25s ease}.history-open .card-history-chevron{transform:rotate(180deg)}
.card-history-preview{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-top:8px;padding:9px 8px;border-radius:10px;background:rgba(23,39,39,.025)}.card-history-preview>div{min-width:0}.card-history-preview small{display:block;margin-bottom:2px;color:var(--accent);font-size:8px;font-weight:900;text-transform:uppercase}.card-history-preview p{min-width:0;margin:0;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.card-history-preview time{color:#8c9692;font-size:8px;font-weight:800;white-space:nowrap}.card-history-preview .history-delta{min-width:36px;padding:5px 6px;font-size:10px}
.card-history-drawer{display:none;margin-top:8px}.history-open .card-history-preview{display:none}.history-open .card-history-drawer{display:block;animation:history-drawer-reveal .3s ease both}
.card-history-scroll{max-height:235px;overflow-y:auto;padding:5px 7px 7px;overflow-anchor:none;overscroll-behavior:contain;scroll-behavior:auto;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 45%,transparent) transparent}
.card-history-item{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 5px;border-bottom:1px solid rgba(23,39,39,.08)}.card-history-item:last-child{border-bottom:0}.card-history-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}.card-history-item p{margin:0;color:var(--ink);font-size:10px;line-height:1.4}.card-history-item time{display:block;margin-top:3px;color:#8c9692;font-size:8px;font-weight:800}.card-history-item .history-delta{min-width:36px;padding:5px 6px;font-size:10px}
.new-history-preview{animation:new-history-glow 1.45s cubic-bezier(.2,.9,.2,1)}.new-history-entry{animation:new-history-entry 1s ease both}

/* Replay d’historique façon jeu d’action */
.history-open .card-history-toggle{background:linear-gradient(135deg,#122220,#244b47);color:#fff;box-shadow:0 8px 20px rgba(15,31,30,.2);transform:skew(-1deg)}.history-open .card-history-title small{color:rgba(255,255,255,.62)}.history-open .card-history-symbol{background:var(--accent);color:#fff;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent),0 0 22px var(--accent);animation:history-symbol-combat .58s steps(2) infinite alternate}.history-open .card-history-chevron{color:var(--yellow)}
.card-history-drawer{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:14px;background:linear-gradient(160deg,#f9fbf7,#eef3ed);box-shadow:inset 0 0 35px rgba(33,78,73,.05)}.card-history-drawer::before{content:"";position:absolute;z-index:0;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(23,39,39,.035) 5px 7px),linear-gradient(115deg,transparent 0 47%,color-mix(in srgb,var(--accent) 12%,transparent) 47% 53%,transparent 53%);pointer-events:none;animation:history-scan-drive 2.2s linear infinite}.card-history-drawer>*{position:relative;z-index:1}
.history-replay-hud{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:13px 12px 16px;overflow:hidden;background:linear-gradient(135deg,#0d1918,#203f3c);color:#fff}.history-replay-hud::before{content:"";position:absolute;inset:0;background:repeating-conic-gradient(from 0deg at 82% 50%,rgba(229,185,77,.15) 0 2deg,transparent 2deg 8deg);opacity:.62;animation:history-radar 8s linear infinite}.history-replay-hud>div,.history-replay-hud>button,.history-replay-progress{position:relative;z-index:1}.history-replay-hud>div{display:flex;min-width:0;flex-direction:column}.history-replay-hud span{color:var(--yellow);font-size:8px;font-weight:1000;letter-spacing:.18em}.history-replay-hud strong{margin-top:2px;font-size:13px;font-style:italic;font-weight:1000;letter-spacing:-.03em}.history-replay-hud small{margin-top:3px;color:rgba(255,255,255,.55);font-size:8px;font-weight:800}.history-replay-button{align-self:center;min-height:35px;padding:0 9px;border:1px solid rgba(255,255,255,.3);border-radius:7px;background:var(--accent);color:#fff;font-size:8px;font-weight:1000;letter-spacing:.05em;cursor:pointer;transform:skew(-4deg)}.history-replay-button:disabled{opacity:.78}.history-replay-progress{position:absolute!important;right:12px;bottom:7px;left:12px;height:4px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.13)}.history-replay-progress i{width:0;height:100%;display:block;background:linear-gradient(90deg,var(--coral),var(--yellow),#fff);box-shadow:0 0 13px var(--yellow);transition:width .18s cubic-bezier(.15,.75,.2,1)}
.history-replaying .history-replay-step{position:relative;overflow:hidden;opacity:0;transform:translateX(-115%) skew(-7deg) scale(.78);filter:blur(7px) brightness(2)}.history-replaying .history-replay-step.step-live{opacity:1;transform:none;filter:none;animation:history-action-entry .66s cubic-bezier(.08,.88,.16,1.15) both}.history-replay-step::before,.history-replay-step::after{content:"";position:absolute;pointer-events:none;opacity:0}.history-replay-step::before{z-index:0;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 35%,#fff),transparent 72%)}.history-replay-step::after{z-index:3;top:50%;right:-50%;width:70%;height:3px;background:linear-gradient(90deg,transparent,#fff,var(--accent));box-shadow:0 -10px 0 color-mix(in srgb,var(--accent) 45%,transparent),0 10px 0 color-mix(in srgb,var(--accent) 45%,transparent)}.history-replay-step.step-impact::before{animation:history-step-flash .48s steps(2) both}.history-replay-step.step-impact::after{animation:history-step-slash .52s cubic-bezier(.1,.7,.18,1) both}.history-replay-step>*{position:relative;z-index:2}.history-step-label{display:block;margin-bottom:3px;color:var(--accent);font-size:7px;font-weight:1000;letter-spacing:.16em}.history-replaying .history-replay-step.step-live .card-history-dot{animation:history-dot-impact .65s cubic-bezier(.1,.9,.2,1) both}.history-replaying .history-replay-step.step-live .history-delta{animation:history-xp-slam .72s cubic-bezier(.08,.9,.18,1.2) both;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.history-replay-complete .history-replay-hud{box-shadow:inset 0 -3px 0 var(--yellow)}.history-replay-complete .history-replay-button{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 24%,transparent)}.goal-card.history-replay-card{z-index:9;animation:history-card-impact 1.4s cubic-bezier(.1,.85,.18,1) both}.history-action-shake main,.history-action-shake .topbar{animation:history-screen-kick .65s steps(2) both}

/* Célébrations renforcées */
.celebration-ring{position:fixed;z-index:104;width:20px;height:20px;border:5px solid var(--yellow);border-radius:50%;opacity:0;transform:translate(-50%,-50%);animation:celebration-ring 1.45s cubic-bezier(.12,.75,.2,1) var(--ring-delay) forwards}.celebration-ring:nth-last-child(even){border-color:var(--coral)}
.reward-symbol{position:fixed;top:-65px;color:var(--yellow);font-size:var(--reward-size);font-style:normal;font-weight:900;text-shadow:0 4px 12px rgba(23,39,39,.18);animation:reward-rain var(--reward-duration) cubic-bezier(.15,.68,.24,1) var(--reward-delay) forwards}
.milestone-splash{position:fixed;z-index:105;top:50%;left:50%;width:min(440px,calc(100% - 34px));min-height:235px;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;border:2px solid rgba(255,255,255,.72);border-radius:32px;background:linear-gradient(145deg,rgba(33,78,73,.97),rgba(47,108,99,.94));color:#fff;box-shadow:0 35px 100px rgba(14,31,29,.42);pointer-events:none;animation:milestone-splash 2.5s cubic-bezier(.2,.88,.2,1) forwards}.milestone-splash::before{content:"";position:absolute;width:600px;height:600px;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.18) 0 6deg,transparent 6deg 18deg);animation:milestone-rays 7s linear infinite}.milestone-splash>*{position:relative;z-index:1}.milestone-splash>span{font-size:43px;animation:milestone-icon .72s ease-in-out infinite alternate}.milestone-splash>strong{margin-top:5px;font-size:clamp(48px,12vw,78px);letter-spacing:-.07em;line-height:.92;text-shadow:0 7px 0 rgba(0,0,0,.12)}.milestone-splash>small{margin-top:12px;font-size:13px;font-weight:900;letter-spacing:.14em;text-align:center;text-transform:uppercase}.milestone-splash.victory{background:linear-gradient(145deg,#df9d23,#e97161)}
.spectacular-hit .visual-circle{animation:spectacular-circle .75s cubic-bezier(.2,.9,.2,1)}.spectacular-hit .console-shape{animation:spectacular-console .8s cubic-bezier(.2,.9,.2,1)}

/* Récompense de points entièrement plein écran */
.game-impact{--game-accent:var(--coral);position:fixed;z-index:102;inset:0;min-height:100dvh;display:grid;place-items:center;overflow:hidden;padding:calc(24px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--game-accent) 62%,#172727) 0,#132523 43%,#030807 100%);color:#fff;isolation:isolate;pointer-events:auto;touch-action:none;animation:game-impact-screen 2.45s cubic-bezier(.12,.8,.18,1) both}.game-impact.yellow{--game-accent:var(--yellow)}.game-impact.blue{--game-accent:var(--blue)}.game-impact.green{--game-accent:var(--soft-green)}.game-impact::before{content:"";position:absolute;z-index:0;inset:-50%;background:repeating-conic-gradient(from 0deg at 50% 50%,rgba(255,255,255,.13) 0 3deg,transparent 3deg 11deg);animation:game-impact-rays 8s linear infinite}.game-impact::after{content:"";position:absolute;z-index:5;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(0,0,0,.2) 5px 7px),linear-gradient(90deg,transparent 0 4%,var(--game-accent) 4% 4.6%,transparent 4.6% 95.4%,var(--game-accent) 95.4% 96%,transparent 96%);pointer-events:none;animation:game-scanlines .28s linear infinite}
.game-impact-flash{position:fixed;z-index:8;inset:0;background:#fff;mix-blend-mode:screen;pointer-events:none;animation:game-impact-flash .46s steps(2) forwards}.game-speed-lines{position:fixed;z-index:1;inset:0;background:repeating-conic-gradient(from 0deg at var(--impact-x) var(--impact-y),transparent 0deg 4deg,color-mix(in srgb,var(--game-accent) 72%,white) 4deg 4.7deg,transparent 4.7deg 10deg);opacity:0;animation:game-speed-lines .95s cubic-bezier(.1,.7,.15,1) forwards}
.game-impact-stage{position:relative;z-index:3;width:min(680px,94vw);display:flex;align-items:center;flex-direction:column;text-align:center}.game-impact-kicker{padding:7px 13px;border:2px solid var(--game-accent);background:#0b1514;color:var(--game-accent);font-size:10px;font-weight:1000;letter-spacing:.2em;transform:skew(-8deg);animation:game-impact-kicker .48s steps(2) infinite alternate}.game-impact-icon{width:96px;height:96px;margin-top:22px;display:grid;place-items:center;border:4px solid #fff;border-radius:28px;background:var(--game-accent);color:#fff;font-size:52px;font-weight:1000;box-shadow:10px 10px 0 #0b1514,0 0 55px color-mix(in srgb,var(--game-accent) 65%,transparent);animation:game-impact-icon .68s cubic-bezier(.1,.9,.2,1.2) both}.game-impact-mission{margin:20px 0 4px;color:rgba(255,255,255,.8);font-size:clamp(18px,4vw,26px);font-weight:1000;letter-spacing:.04em;text-transform:uppercase}
.game-hit-label{position:relative;z-index:3;margin:5px 0 0;padding:8px 25px;background:#0b1514;color:#fff;font-size:clamp(52px,10vw,88px);font-weight:1000;font-style:italic;letter-spacing:-.075em;line-height:.88;text-shadow:5px 5px 0 var(--game-accent),-2px -2px 0 var(--game-accent);clip-path:polygon(5% 0,100% 0,94% 100%,0 100%);animation:game-hit-label 2.25s cubic-bezier(.12,.88,.17,1) both}.game-xp-label{position:relative;z-index:3;margin-top:17px;padding:8px 15px;border:3px solid #0b1514;background:var(--game-accent);color:#0b1514;font-size:20px;font-weight:1000;letter-spacing:.1em;animation:game-xp-label 2.25s cubic-bezier(.15,.8,.2,1) both}.game-impact-progress-label{margin-top:22px;color:rgba(255,255,255,.75);font-size:9px;letter-spacing:.18em}.game-impact-progress{width:min(390px,76vw);height:15px;margin-top:8px;padding:3px;border:2px solid #fff;background:#0b1514;transform:skew(-10deg)}.game-impact-progress u{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--game-accent),#fff);box-shadow:0 0 18px var(--game-accent);text-decoration:none;transform-origin:left;animation:game-impact-bar 1.5s cubic-bezier(.12,.8,.2,1) both}
.game-shard{position:fixed;z-index:4;width:46px;height:6px;border-radius:999px;background:linear-gradient(90deg,#fff,var(--game-accent),transparent);box-shadow:0 0 14px var(--game-accent);opacity:0;transform-origin:left center;animation:game-shard-flight .78s cubic-bezier(.08,.7,.15,1) var(--shard-delay) forwards}.game-reward-glyph{position:fixed;z-index:2;top:-55px;color:var(--game-accent);font-size:28px;font-style:normal;font-weight:1000;text-shadow:0 0 15px currentColor;animation:game-reward-glyph 1.85s cubic-bezier(.12,.7,.2,1) var(--glyph-delay) both}
.game-token{position:fixed;z-index:103;width:31px;height:31px;display:grid;place-items:center;border:3px solid #172727;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3a7,var(--yellow) 45%,#c88919);color:#172727;font-size:15px;font-weight:1000;box-shadow:0 4px 0 #172727,0 0 18px rgba(229,185,77,.65);opacity:0;transform:translate(-50%,-50%);animation:game-token-flight 1.45s cubic-bezier(.08,.76,.18,1) var(--token-delay) forwards}
.goal-card.is-celebrating.is-powering-up{animation:arcade-card-hit 1.25s cubic-bezier(.12,.9,.2,1)}.goal-card.is-powering-up::after{content:"POWER UP";position:absolute;z-index:7;inset:-5px;display:grid;place-items:end center;padding-bottom:14px;border:4px solid var(--accent);border-radius:12px;background:linear-gradient(160deg,transparent 52%,color-mix(in srgb,var(--accent) 20%,transparent));color:var(--accent);font-size:10px;font-weight:1000;letter-spacing:.22em;pointer-events:none;animation:power-up-frame 1.25s steps(3) forwards}.goal-card.is-powering-up .progress-track{overflow:visible;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent),0 0 30px var(--accent)}.goal-card.is-powering-up .progress-track i{height:11px;transform:translateY(-2px);box-shadow:0 0 18px var(--accent)}
.arcade-shake .game-impact-stage{animation:arcade-screen-shake .58s steps(2) both}

/* Puissance proportionnelle au gain réel, sans déplacer la page. */
.game-impact[data-reward-level]{height:100dvh;min-height:0;padding:0;animation:reward-screen-envelope var(--reward-duration) ease-out both}
.game-impact[data-reward-level]::after{animation:none;opacity:.35}
.game-impact-camera{position:absolute;inset:-28px;display:grid;place-items:center;overflow:hidden;padding:calc(52px + env(safe-area-inset-top)) 40px calc(52px + env(safe-area-inset-bottom));animation:reward-power-kick .42s .42s var(--reward-waves) both}
.game-impact-camera .game-impact-stage{max-width:calc(100vw - 32px);animation:none}
.game-impact-camera .game-impact-flash{position:absolute;z-index:0;background:radial-gradient(circle at 50% 48%,#ffeaa580,transparent 68%);animation:reward-power-glow .9s .4s both}
.game-impact-camera .game-speed-lines{position:absolute;inset:0;animation-delay:.15s;background:repeating-conic-gradient(from 0deg at 50% 48%,transparent 0deg 4deg,color-mix(in srgb,var(--game-accent) 72%,white) 4deg 4.7deg,transparent 4.7deg 10deg)}
.game-impact-camera .game-shard,.game-impact-camera .game-reward-glyph{position:absolute}
.game-impact-camera .game-shard{z-index:2}
.game-impact-camera .game-impact-kicker{animation:none;max-width:100%;overflow-wrap:anywhere;letter-spacing:.12em}
.game-impact-camera .game-impact-icon{animation-delay:.1s;width:clamp(60px,15vh,96px);height:clamp(60px,15vh,96px)}
.game-impact-camera .game-impact-mission{max-width:100%;overflow-wrap:anywhere}
.game-impact-camera .game-hit-label{background:none;clip-path:none;padding:0 10px;font-style:normal;white-space:nowrap;line-height:1;font-size:min(170px,27vh,calc(135vw / var(--points-digits)));animation:reward-power-slam .66s .42s both}
.game-impact-camera .game-xp-label{white-space:normal;max-width:100%;font-size:clamp(12px,3.5vw,19px);line-height:1.4;animation:reward-caption-in .4s .8s both}
.game-impact-camera .game-impact-progress-label{margin-top:15px}
.game-impact-camera .game-impact-progress{max-width:100%}
.history-replaying .history-replay-step[data-reward-level].step-live .history-delta{animation-name:reward-history-slam;animation-duration:.6s}
.visit-recap[data-reward-level] .recap-total{animation:reward-power-slam .66s .42s both}
@keyframes reward-screen-envelope{0%{opacity:0}6%,89%{opacity:1}100%{opacity:0}}
@keyframes reward-caption-in{from{opacity:0;transform:translateY(24px) scale(.7)}to{opacity:1;transform:none}}
@keyframes reward-history-slam{from{opacity:0;transform:scale(calc(var(--reward-slam) * .6)) rotate(-12deg)}60%{opacity:1;transform:scale(.9) rotate(3deg)}to{opacity:1;transform:none}}
@media(max-height:600px){.game-impact-camera{padding-top:36px;padding-bottom:36px}.game-impact-camera .game-impact-icon{width:48px;height:48px;font-size:27px;border-radius:14px;margin-top:6px}.game-impact-camera .game-impact-mission{margin-top:8px;font-size:15px}.game-impact-camera .game-xp-label{margin-top:6px;padding:5px 10px}.game-impact-camera .game-impact-progress-label{margin-top:8px}}

/* Écran LEVEL UP façon jeu vidéo */
.milestone-splash{z-index:120}
.milestone-splash{width:100vw;min-height:100dvh;border:0;border-radius:0;background:radial-gradient(circle at center,rgba(47,108,99,.98),#101c1b 64%);box-shadow:none}.milestone-splash::before{width:140vmax;height:140vmax;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.16) 0 3deg,transparent 3deg 11deg);animation-duration:9s}.milestone-splash::after{content:"";position:absolute;z-index:0;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(0,0,0,.13) 5px 7px),linear-gradient(90deg,transparent 0 6%,var(--yellow) 6% 6.6%,transparent 6.6% 93.4%,var(--yellow) 93.4% 94%,transparent 94%);animation:game-scanlines .32s linear infinite}.milestone-splash>i{padding:7px 14px;border:2px solid currentColor;background:#101c1b;color:var(--yellow);font-size:12px;font-style:normal;font-weight:1000;letter-spacing:.24em;transform:skew(-8deg);animation:game-kicker .55s steps(2) infinite alternate}.milestone-splash>span{margin-top:20px;font-size:58px;filter:drop-shadow(0 0 18px rgba(255,255,255,.45))}.milestone-splash>strong{margin-top:9px;font-size:clamp(68px,14vw,132px);font-style:italic;font-weight:1000;letter-spacing:-.085em;line-height:.82;text-shadow:6px 6px 0 #101c1b,9px 9px 0 var(--yellow);animation:game-title-glitch .55s steps(2) infinite}.milestone-splash>small{max-width:90%;margin-top:24px;padding:8px 15px;background:var(--yellow);color:#101c1b;font-size:15px;font-weight:1000;letter-spacing:.18em;transform:skew(-7deg)}.milestone-splash>b{width:min(360px,70vw);height:15px;margin-top:26px;padding:3px;border:2px solid #fff;background:#101c1b;transform:skew(-12deg)}.milestone-splash>b>u{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--coral),var(--yellow),#fff);text-decoration:none;transform-origin:left;animation:game-level-bar 1.65s cubic-bezier(.12,.75,.2,1) forwards}.milestone-splash.victory{background:radial-gradient(circle at center,#b45235,#171a19 68%)}.milestone-splash.victory::after{background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(0,0,0,.14) 5px 7px),linear-gradient(90deg,transparent 0 4%,var(--coral) 4% 5%,transparent 5% 95%,var(--coral) 95% 96%,transparent 96%)}.milestone-splash.victory>i,.milestone-splash.victory>small{background:var(--coral);color:#fff;border-color:#fff}.milestone-splash.victory>strong{text-shadow:6px 6px 0 #101c1b,10px 10px 0 var(--coral)}

@keyframes hero-arrival{from{opacity:0;transform:translateX(-38px)}to{opacity:1;transform:none}}@keyframes brand-wiggle{0%,88%,100%{transform:rotate(-7deg)}92%{transform:rotate(10deg) scale(1.08)}96%{transform:rotate(-13deg)}}@keyframes arrow-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes circle-breathe{0%,100%{transform:scale(.96)}50%{transform:scale(1.04);box-shadow:0 0 0 22px rgba(117,169,139,.07)}}@keyframes orbit-one-spin{from{transform:rotate(28deg)}to{transform:rotate(388deg)}}@keyframes orbit-two-spin{from{transform:rotate(62deg)}to{transform:rotate(-298deg)}}@keyframes console-float{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(1deg) translateY(-12px)}}@keyframes number-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes progress-shine{to{background-position:-200% 0}}@keyframes stamp-bob{0%,100%{transform:rotate(7deg) translateY(0)}50%{transform:rotate(11deg) translateY(-9px)}}@keyframes card-arrival{from{opacity:0;transform:translateY(34px) scale(.96)}to{opacity:1;transform:none}}@keyframes icon-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(8deg)}}@keyframes completed-glow{0%,100%{transform:scale(1);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 25%,transparent)}50%{transform:scale(1.13);box-shadow:0 0 0 10px transparent}}@keyframes plus-invite{0%,80%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 25%,transparent)}90%{box-shadow:0 0 0 8px transparent}}@keyframes history-slide{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}@keyframes dialog-pop{from{opacity:0;transform:translateY(22px) scale(.9) rotate(-2deg)}to{opacity:1;transform:none}}@keyframes dialog-icon-spin{0%,85%,100%{transform:rotate(0)}92%{transform:rotate(180deg) scale(1.15)}}@keyframes ambient-drift{0%,100%{transform:translate(0,0) rotate(0)}35%{transform:translate(24px,-30px) rotate(80deg)}70%{transform:translate(-13px,18px) rotate(180deg)}}@keyframes dot-roam{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-35px,46px) scale(1.4)}66%{transform:translate(22px,76px) scale(.7)}}@keyframes squiggle-wave{0%,100%{transform:rotate(-12deg) scale(1)}50%{transform:rotate(16deg) scale(1.2)}}@keyframes spark-pop{0%,100%{opacity:.25;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.25) rotate(130deg)}}@keyframes particle-flight{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(1) rotate(var(--turn))}}@keyframes score-pop{0%{opacity:0;transform:translate(-50%,18px) scale(.3) rotate(-6deg)}25%{opacity:1;transform:translate(-50%,-15px) scale(1.12) rotate(3deg)}100%{opacity:0;transform:translate(-50%,-110px) scale(.9) rotate(-3deg)}}@keyframes card-celebrate{0%,100%{transform:none}20%{transform:translateY(-15px) rotate(-2deg) scale(1.025)}42%{transform:translateY(2px) rotate(2deg) scale(1.01)}65%{transform:translateY(-7px) rotate(-1deg)}}@keyframes icon-celebrate{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.32) rotate(180deg)}}@keyframes card-adjust{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px) rotate(-.5deg)}75%{transform:translateX(6px) rotate(.5deg)}}@keyframes toast-icon-dance{0%,100%{transform:rotate(-8deg) scale(1)}50%{transform:rotate(10deg) scale(1.12)}}@keyframes victory-glow{0%,100%{filter:none}50%{filter:drop-shadow(0 0 24px rgba(229,185,77,.36))}}@keyframes victory-console{0%,100%{transform:rotate(-3deg) translateY(0) scale(1)}50%{transform:rotate(4deg) translateY(-22px) scale(1.08)}}@keyframes victory-stamp{0%,100%{transform:rotate(7deg) scale(1)}50%{transform:rotate(-8deg) scale(1.2)}}@keyframes auth-orbit-one{from{transform:rotate(25deg)}to{transform:rotate(385deg)}}@keyframes auth-orbit-two{from{transform:rotate(65deg)}to{transform:rotate(-295deg)}}@keyframes auth-console-float{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(2deg) translateY(-14px)}}@keyframes auth-text-float{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes auth-card-arrival{from{opacity:0;transform:translateX(38px)}to{opacity:1;transform:none}}@keyframes auth-sparkle{0%,100%{opacity:.2;transform:scale(.6) rotate(0)}50%{opacity:1;transform:scale(1.35) rotate(160deg)}}@keyframes form-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}@keyframes auth-takeoff{0%{transform:rotate(-4deg) translateY(0) scale(1)}55%{transform:rotate(5deg) translateY(-26px) scale(1.08)}100%{opacity:0;transform:rotate(-9deg) translateY(-140px) scale(.7)}}@keyframes auth-success-card{0%{opacity:1;transform:none}100%{opacity:0;transform:translateX(28px) scale(.97)}}

@keyframes parent-screen-in{from{opacity:0}to{opacity:1}}@keyframes pin-verifying{from{opacity:.45}to{opacity:1}}
@keyframes history-drawer-reveal{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@keyframes new-history-glow{0%{background:color-mix(in srgb,var(--accent) 32%,#fff);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 35%,transparent);transform:scale(.96)}45%{box-shadow:0 0 0 10px transparent;transform:scale(1.02)}100%{background:rgba(23,39,39,.025);box-shadow:none;transform:none}}
@keyframes new-history-entry{from{opacity:0;transform:translateX(-15px);background:color-mix(in srgb,var(--accent) 18%,#fff)}to{opacity:1;transform:none;background:transparent}}
@keyframes history-symbol-combat{from{transform:rotate(-16deg) scale(.93)}to{transform:rotate(20deg) scale(1.12);filter:brightness(1.4)}}@keyframes history-scan-drive{to{background-position:0 7px,240px 0}}@keyframes history-radar{to{transform:rotate(360deg)}}
@keyframes history-action-entry{0%{opacity:0;transform:translateX(-115%) skew(-8deg) scale(.72);filter:blur(7px) brightness(2.6)}42%{opacity:1;transform:translateX(13px) skew(2deg) scale(1.06);filter:none}68%{transform:translateX(-5px) skew(-1deg) scale(.99)}100%{opacity:1;transform:none;filter:none}}@keyframes history-step-flash{0%{opacity:0}18%{opacity:1}36%{opacity:.12}55%{opacity:.8}100%{opacity:0}}@keyframes history-step-slash{0%{opacity:0;transform:translateX(0) skew(-18deg)}20%{opacity:1}100%{opacity:0;transform:translateX(-230%) skew(-18deg)}}
@keyframes history-dot-impact{0%{transform:scale(.1);box-shadow:0 0 0 0 var(--accent)}35%{transform:scale(2.4);box-shadow:0 0 0 14px transparent}62%{transform:scale(.72)}100%{transform:scale(1);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}}@keyframes history-xp-slam{0%{opacity:0;transform:translateX(48px) scale(2.8) rotate(12deg);filter:brightness(2)}38%{opacity:1;transform:translateX(-5px) scale(.86) rotate(-4deg);filter:none}67%{transform:translateX(2px) scale(1.08) rotate(2deg)}100%{transform:none}}@keyframes history-card-impact{0%{transform:scale(1)}8%{transform:scale(.95) rotate(-.8deg);filter:brightness(1.7)}21%{transform:scale(1.025) rotate(.6deg);filter:none}48%{transform:scale(.995) rotate(-.2deg)}100%{transform:none}}@keyframes history-screen-kick{0%,100%{transform:none}12%{transform:translate(-6px,3px) rotate(-.25deg)}30%{transform:translate(7px,-4px) rotate(.3deg)}48%{transform:translate(-4px,-2px)}68%{transform:translate(3px,2px)}84%{transform:translate(-1px,1px)}}@keyframes history-replay-ready{50%{transform:skew(-4deg) translateY(-2px);box-shadow:0 0 17px color-mix(in srgb,var(--accent) 55%,transparent)}}
@keyframes celebration-ring{0%{opacity:.95;width:20px;height:20px;border-width:6px}100%{opacity:0;width:min(52vw,440px);height:min(52vw,440px);border-width:1px}}
@keyframes reward-rain{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(0) scale(.5)}12%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate3d(var(--reward-drift),calc(100vh + 120px),0) rotate(var(--reward-turn)) scale(1.2)}}
@keyframes milestone-splash{0%{opacity:0;transform:translate(-50%,-50%) scale(.12) rotate(-10deg)}13%{opacity:1;transform:translate(-50%,-50%) scale(1.07) rotate(2deg)}26%,76%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.2) rotate(2deg)}}
@keyframes milestone-rays{to{transform:rotate(360deg)}}@keyframes milestone-icon{from{transform:translateY(3px) rotate(-8deg) scale(.95)}to{transform:translateY(-7px) rotate(8deg) scale(1.15)}}
@keyframes spectacular-circle{0%,100%{transform:scale(.96)}40%{transform:scale(1.2);box-shadow:0 0 0 55px rgba(229,185,77,.13)}}@keyframes spectacular-console{0%,100%{transform:rotate(-3deg)}35%{transform:rotate(7deg) translateY(-25px) scale(1.12)}65%{transform:rotate(-6deg) translateY(4px) scale(1.04)}}

@keyframes game-impact-screen{0%{opacity:0;clip-path:inset(50% 0);filter:brightness(2.5)}9%{opacity:1;clip-path:inset(0);filter:brightness(1.5)}18%,82%{opacity:1;clip-path:inset(0);filter:none}100%{opacity:0;clip-path:inset(0 50%);filter:brightness(2)}}@keyframes game-impact-rays{to{transform:rotate(360deg)}}
@keyframes game-impact-flash{0%{opacity:1}18%{opacity:.15}31%{opacity:.82}100%{opacity:0}}@keyframes game-speed-lines{0%{opacity:0;transform:scale(.35) rotate(-6deg)}18%{opacity:.8}100%{opacity:0;transform:scale(1.35) rotate(3deg)}}
@keyframes game-impact-kicker{from{transform:skew(-8deg) translateX(-4px);filter:brightness(1)}to{transform:skew(-8deg) translateX(4px);filter:brightness(1.55)}}@keyframes game-impact-icon{0%{opacity:0;transform:scale(3.2) rotate(-18deg);filter:blur(12px) brightness(2)}48%{opacity:1;transform:scale(.78) rotate(6deg);filter:none}75%{transform:scale(1.12) rotate(-3deg)}100%{transform:none}}@keyframes game-impact-bar{from{transform:scaleX(0)}70%{transform:scaleX(1.08)}100%{transform:scaleX(1)}}
@keyframes game-hit-label{0%{opacity:0;transform:translateY(70px) scale(2.2) rotate(-8deg)}12%{opacity:1;transform:translateY(-8px) scale(.88) rotate(3deg)}25%{transform:translateY(0) scale(1) rotate(-1deg)}72%{opacity:1;transform:translateY(0) scale(1) rotate(-1deg)}100%{opacity:0;transform:translateY(-70px) scale(1.15) rotate(2deg)}}
@keyframes game-xp-label{0%,12%{opacity:0;transform:translateY(35px) scale(.4)}25%{opacity:1;transform:translateY(0) scale(1.15)}36%,78%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-35px) scale(.85)}}@keyframes game-reward-glyph{0%{opacity:0;transform:translateY(-20px) rotate(0) scale(.4)}16%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(var(--glyph-drift),calc(100dvh + 100px)) rotate(var(--glyph-turn)) scale(1.25)}}
@keyframes game-shard-flight{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--shard-angle)) scaleX(.2)}12%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--shard-x)),calc(-50% + var(--shard-y))) rotate(var(--shard-angle)) scaleX(1.8)}}
@keyframes game-token-flight{0%{opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(0)}14%{opacity:1;transform:translate(-50%,-50%) scale(1.25) rotate(70deg)}80%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--token-x)),calc(-50% + var(--token-y))) scale(.85) rotate(720deg)}}
@keyframes arcade-screen-shake{0%,100%{transform:none}10%{transform:translate(-8px,5px) rotate(-.5deg)}23%{transform:translate(9px,-6px) rotate(.6deg)}38%{transform:translate(-6px,-3px) rotate(-.35deg)}52%{transform:translate(6px,4px) rotate(.3deg)}68%{transform:translate(-3px,2px)}84%{transform:translate(2px,-1px)}}
@keyframes arcade-card-hit{0%{transform:scale(1)}8%{transform:scale(.92) rotate(-1deg);filter:brightness(1.9)}20%{transform:scale(1.08) rotate(1deg);filter:brightness(1.25)}38%{transform:scale(.99) rotate(-.5deg)}58%{transform:scale(1.035) rotate(.3deg)}100%{transform:scale(1);filter:none}}
@keyframes power-up-frame{0%{opacity:0;clip-path:inset(50%)}18%{opacity:1;clip-path:inset(0)}65%{opacity:1}100%{opacity:0;transform:scale(1.04)}}
@keyframes game-scanlines{to{background-position:0 7px,0 0}}@keyframes game-kicker{from{transform:skew(-8deg) translateX(-3px)}to{transform:skew(-8deg) translateX(3px);filter:brightness(1.35)}}
@keyframes game-title-glitch{0%,82%,100%{transform:skew(-5deg);filter:none}86%{transform:translateX(-8px) skew(5deg);filter:hue-rotate(40deg)}91%{transform:translateX(9px) skew(-8deg);filter:brightness(1.8)}96%{transform:translateX(-3px) skew(-5deg)}}@keyframes game-level-bar{from{transform:scaleX(0)}65%{transform:scaleX(1)}78%{transform:scaleX(.88)}100%{transform:scaleX(1)}}

@keyframes boot-failsafe{to{opacity:0;visibility:hidden;pointer-events:none}}@keyframes boot-scan{to{background-position:0 6px}}@keyframes boot-reactor{0%,100%{transform:scale(.9);opacity:.6}50%{transform:scale(1.08);opacity:1}}@keyframes boot-reactor-ready{from{transform:scale(.85);box-shadow:0 0 0 0 rgba(229,185,77,.18)}to{transform:scale(1.28);box-shadow:0 0 0 16vmin transparent}}
@keyframes boot-grid-drive{from{background-position:0 0,0 0}to{background-position:0 52px,52px 0}}@keyframes boot-speed-line{0%{opacity:0;transform:rotate(var(--boot-angle)) translateX(0) scaleX(.05)}18%{opacity:.65}100%{opacity:0;transform:rotate(var(--boot-angle)) translateX(34vw) scaleX(1.25)}}
@keyframes boot-content-arrive{from{opacity:0;transform:scale(1.9);filter:blur(18px) brightness(2)}45%{opacity:1;filter:blur(0) brightness(1.5)}70%{transform:scale(.96)}100%{transform:scale(1);filter:none}}@keyframes boot-status-ping{0%{box-shadow:0 0 0 0 rgba(233,113,97,.7)}100%{box-shadow:0 0 0 13px transparent}}@keyframes boot-emblem-orbit{to{transform:rotate(360deg)}}
@keyframes boot-letter-hit{0%,72%,100%{transform:scale(1) rotate(0)}76%{transform:scale(.82) rotate(-7deg);filter:brightness(2)}82%{transform:scale(1.16) rotate(5deg)}90%{transform:scale(.97) rotate(-2deg)}}@keyframes boot-console-float{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(2deg) translateY(-9px) scale(1.07)}}@keyframes boot-title-glitch{0%,82%,100%{transform:skew(-4deg)}86%{transform:translateX(-8px) skew(8deg);filter:hue-rotate(50deg)}91%{transform:translateX(9px) skew(-9deg);filter:brightness(1.8)}96%{transform:translateX(-3px) skew(-4deg);filter:none}}
@keyframes boot-content-disappear{0%{opacity:1;transform:scale(1)}55%{opacity:1;transform:scale(1.08);filter:brightness(3)}100%{opacity:0;transform:scale(2.4);filter:blur(18px)}}@keyframes boot-ready-slam{0%{opacity:0;transform:translate(-50%,-50%) scale(3.5) rotate(-10deg);filter:blur(14px) brightness(2)}18%{opacity:1;transform:translate(-50%,-50%) scale(.72) rotate(4deg);filter:none}38%{transform:translate(-50%,-50%) scale(1.12) rotate(-2deg)}58%,100%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}
@keyframes boot-slash{0%{opacity:1;transform:translateX(-110%) skewX(-18deg)}62%{opacity:1}100%{opacity:0;transform:translateX(110%) skewX(-18deg)}}@keyframes boot-exit{0%,45%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}100%{opacity:0;visibility:hidden;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}}
@keyframes page-topbar-drop{from{opacity:0;transform:translateY(-90px) scaleX(.8)}60%{transform:translateY(8px) scaleX(1.03)}to{opacity:1;transform:none}}@keyframes page-copy-slam{from{opacity:0;transform:translateX(-120px) skew(-8deg);filter:blur(12px)}55%{transform:translateX(13px) skew(2deg);filter:none}to{opacity:1;transform:none}}@keyframes page-console-slam{from{opacity:0;transform:scale(2.4) rotate(18deg);filter:blur(16px) brightness(2)}42%{opacity:1;transform:scale(.78) rotate(-6deg);filter:none}70%{transform:scale(1.12) rotate(3deg)}to{transform:scale(1) rotate(0)}}@keyframes page-objectives-flash{0%{filter:brightness(2.4) saturate(1.8)}100%{filter:none}}

/* Account and installation help: also available after dismissing the banner. */
.auth-extra-links { display:grid; gap:4px; margin-top:20px; }
.auth-extra-links a,.auth-extra-links button { min-height:44px; display:flex; align-items:center; text-align:left; background:none; border:0; padding:6px 0; color:#285c4a; font:inherit; font-size:13px; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.profile-help-links { display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-top:14px; }
.profile-help-links a,.profile-help-links button { display:inline-flex; align-items:center; min-height:44px; color:#496457; background:none; border:0; font:inherit; font-size:12px; text-decoration:underline; cursor:pointer; }
.pwa-help-dialog { position:relative; width:min(520px,calc(100% - 24px)); max-height:calc(100dvh - 32px); border:0; border-radius:24px; padding:30px 24px; background:#fffdf6; color:#203f39; overflow:auto; overscroll-behavior:contain; }
.pwa-help-dialog::backdrop { background:#102a24bc; }
.pwa-help-dialog h2 { padding-right:20px; font-size:28px; line-height:1.15; margin:16px 0; }
.pwa-help-dialog p { font-size:14px; line-height:1.7; }
.pwa-help-dialog .primary-button { min-height:48px; width:100%; }
.pwa-help-links { display:grid; gap:8px; }
.pwa-help-links a { display:flex; min-height:44px; align-items:center; color:#285c4a; text-decoration:underline; }
.network-notice { position:fixed; z-index:10000; bottom:0; left:0; right:0; padding:12px 18px calc(12px + env(safe-area-inset-bottom)); background:#fff1c6; border-top:1px solid #d3ba76; color:#503c18; text-align:center; font-size:13px; line-height:1.5; }
@media(max-width:520px) { .pwa-help-dialog { padding:28px 20px; } }
/* Installation sur l’écran d’accueil */
.pwa-install-card{position:fixed;z-index:130;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:min(440px,calc(100% - 28px));display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:13px;padding:13px 42px 13px 13px;border:1px solid rgba(47,108,99,.2);border-radius:20px;background:rgba(255,253,248,.97);box-shadow:0 24px 65px rgba(23,39,39,.24),0 0 0 3px rgba(229,185,77,.13);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;transform:translateY(calc(100% + 40px)) scale(.92);transition:opacity .28s ease,transform .38s cubic-bezier(.2,.9,.2,1.12)}
.pwa-install-card.visible{opacity:1;transform:none}.pwa-install-card>img{width:58px;height:58px;border-radius:14px;object-fit:cover;box-shadow:0 6px 15px rgba(23,39,39,.15)}.pwa-install-card>div{min-width:0;display:flex;flex-direction:column}.pwa-install-card strong{font-size:14px;line-height:1.2}.pwa-install-card small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.35}.pwa-install-action{min-height:42px;padding:0 13px;border:0;border-radius:12px;background:var(--green);color:#fff;font:inherit;font-size:11px;font-weight:900;cursor:pointer;box-shadow:0 5px 0 var(--green-dark)}.pwa-install-action:active{transform:translateY(3px);box-shadow:0 2px 0 var(--green-dark)}.pwa-install-close{position:absolute;top:5px;right:7px;width:32px;height:32px;border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer}.is-standalone body{min-height:100dvh;overscroll-behavior-y:none}

/* Profils familiaux */
.profile-gate{position:fixed;z-index:900;inset:0;display:grid;place-items:center;overflow:auto;padding:calc(34px + env(safe-area-inset-top)) 20px calc(34px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 20%,#326f67 0,#17312f 47%,#07110f 100%);color:#fff}.profile-gate[hidden]{display:none}.profile-gate::before{content:"";position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(0,0,0,.13) 5px 7px),repeating-conic-gradient(from 0deg at 50% 45%,rgba(229,185,77,.09) 0 4deg,transparent 4deg 15deg);animation:profile-rays 18s linear infinite;pointer-events:none}.profile-panel{position:relative;z-index:1;width:min(900px,100%);text-align:center}.profile-kicker{display:flex;justify-content:center;align-items:center;gap:9px;margin:0;color:var(--yellow);font-size:10px;font-weight:1000;letter-spacing:.2em}.profile-kicker span{width:9px;height:9px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 8px rgba(233,113,97,.13);animation:boot-status-ping 1.2s ease-out infinite}.profile-panel h1{margin:18px 0 8px;font-size:clamp(42px,7vw,78px);font-style:italic;letter-spacing:-.065em;line-height:.92;text-shadow:5px 5px 0 #07110f}.profile-panel>p:not(.profile-kicker){margin:0;color:rgba(255,255,255,.72)}.profile-grid{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;margin:38px auto 28px}.profile-card{--profile-color:var(--coral);position:relative;width:150px;display:flex;align-items:center;flex-direction:column;gap:11px;border:0;background:transparent;color:#fff;cursor:pointer}.profile-avatar{position:relative;width:112px;height:112px;display:grid;place-items:center;border:4px solid rgba(255,255,255,.9);border-radius:30px;background:var(--profile-color);font-size:46px;font-weight:1000;box-shadow:8px 8px 0 var(--yellow),0 20px 45px rgba(0,0,0,.25);transition:transform .28s cubic-bezier(.2,.9,.2,1.25),filter .28s}.profile-card:hover .profile-avatar,.profile-card:focus-visible .profile-avatar{transform:translateY(-10px) rotate(-3deg) scale(1.06);filter:brightness(1.12)}.profile-card.is-device-profile .profile-avatar{box-shadow:0 0 0 6px rgba(229,185,77,.18),8px 8px 0 var(--yellow),0 20px 45px rgba(0,0,0,.25)}.profile-device-badge{position:absolute;z-index:2;top:-18px;left:50%;padding:5px 8px;border:2px solid #172727;border-radius:6px;background:var(--yellow);color:#172727;font-size:7px;font-weight:1000;letter-spacing:.08em;white-space:nowrap;transform:translateX(-50%) rotate(-2deg);box-shadow:3px 3px 0 #172727}.profile-card strong{font-size:17px}.profile-card small{padding:4px 8px;border:1px solid rgba(255,255,255,.25);border-radius:99px;color:rgba(255,255,255,.67);font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.profile-lock{position:absolute;right:-8px;bottom:-8px;width:35px;height:35px;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:#101e1d;font-size:14px}.profile-setup-button{min-height:54px;padding:0 23px;border:0;border-radius:14px;background:var(--yellow);color:#172727;font-weight:1000;cursor:pointer;box-shadow:0 8px 0 #9d7923}.profile-setup-button span{margin-left:22px}.profile-footnote{display:block;margin-top:21px;color:rgba(255,255,255,.5);font-size:10px}.profile-switch-button,.child-switcher{min-height:40px;border:1px solid var(--line);border-radius:999px;background:#fffdf8;color:var(--ink);font-size:11px;font-weight:900}.profile-switch-button{padding:9px 14px;cursor:pointer}.child-switcher{max-width:150px;padding:0 31px 0 13px}.history-actor{display:inline-block;margin-top:4px;color:var(--green);font-size:8px;font-weight:900;text-transform:uppercase}

/* Gestion familiale */
.family-dialog{width:min(850px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;overflow:auto;border:0;border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 35px 110px rgba(14,31,29,.38)}.family-dialog[open]{animation:dialog-pop .38s cubic-bezier(.2,.9,.25,1.1)}.family-dialog>form{position:relative;padding:38px}.family-dialog h2{margin:0;font-size:clamp(31px,4vw,46px);letter-spacing:-.05em}.family-pin-section{max-width:390px;margin:24px 0;padding:18px;border-radius:16px;background:var(--mint)}.member-editors{display:grid;gap:15px;margin-top:26px}.member-editor{position:relative;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}.member-editor-header{display:grid;grid-template-columns:55px minmax(0,1fr) auto;align-items:center;gap:12px}.member-role-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:15px;background:var(--member-color,var(--coral));color:#fff;font-size:22px;font-weight:1000}.member-editor input,.member-editor select,.category-editor input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:#fff;font-size:16px}.member-name-wrap{min-width:0}.member-name-wrap label{margin:0 0 4px}.remove-member,.remove-category{min-height:39px;border:1px solid rgba(233,113,97,.25);border-radius:10px;background:#fff1ee;color:#a44337;font-size:11px;font-weight:900;cursor:pointer}.child-settings{margin-top:16px;padding-top:16px;border-top:1px dashed var(--line)}.child-settings>label{margin-top:0}.category-settings{margin-top:14px}.category-settings summary{cursor:pointer;color:var(--green);font-size:12px;font-weight:900}.category-list{display:grid;gap:8px;margin-top:12px}.category-editor{display:grid;grid-template-columns:42px minmax(0,1fr) 94px;gap:8px;align-items:center}.category-editor-icon{height:42px;display:grid;place-items:center;border-radius:10px;background:var(--category-color,var(--mint));color:#fff;font-weight:900}.add-category{min-height:42px;margin-top:10px;border:1px dashed var(--green);border-radius:10px;background:transparent;color:var(--green);font-weight:900;cursor:pointer}.member-add-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.member-add-actions button{min-height:48px;border:1px dashed var(--green);border-radius:12px;background:var(--mint);color:var(--green-dark);font-weight:900;cursor:pointer}.family-save-button{margin-top:8px}

/* Récapitulatif de visite façon jeu vidéo */
.visit-recap{position:fixed;z-index:950;inset:0;display:grid;place-items:center;overflow:hidden;padding:calc(22px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 42%,#2f6c63 0,#142928 42%,#050b0a 100%);color:#fff;isolation:isolate}.visit-recap::before{content:"";position:absolute;inset:-50%;background:repeating-conic-gradient(from 0deg,rgba(229,185,77,.12) 0 5deg,transparent 5deg 17deg);animation:recap-rays 14s linear infinite}.visit-recap::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(0,0,0,.2) 5px 7px);pointer-events:none}.recap-card{position:relative;z-index:2;width:min(620px,100%);text-align:center;animation:recap-card-slam .75s cubic-bezier(.1,.9,.18,1.15) both}.recap-kicker{display:inline-block;padding:7px 12px;border:2px solid var(--yellow);color:var(--yellow);font-size:9px;font-weight:1000;letter-spacing:.2em;transform:skew(-8deg)}.recap-card h2{margin:22px 0 4px;font-size:clamp(34px,7vw,64px);font-style:italic;letter-spacing:-.065em;line-height:.9;text-shadow:4px 4px 0 #07110f,7px 7px 0 var(--coral)}.recap-subtitle{margin:13px 0 0;color:rgba(255,255,255,.68)}.recap-total{position:relative;width:210px;height:150px;margin:23px auto 18px;display:grid;place-items:center;border:4px solid #fff;border-radius:34px;background:linear-gradient(145deg,var(--coral),#b94d43);box-shadow:11px 11px 0 var(--yellow),0 0 80px rgba(229,185,77,.34);transform:rotate(-3deg)}.recap-total span{font-size:clamp(53px,12vw,82px);font-style:italic;font-weight:1000;letter-spacing:-.08em}.recap-total small{position:absolute;bottom:12px;font-size:9px;font-weight:1000;letter-spacing:.18em}.recap-categories{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:16px auto}.recap-category{--recap-accent:var(--yellow);display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid color-mix(in srgb,var(--recap-accent) 58%,transparent);border-radius:99px;background:color-mix(in srgb,var(--recap-accent) 18%,transparent);font-size:11px;font-weight:900}.recap-category b{color:var(--recap-accent)}.recap-launch{min-width:220px;min-height:55px;margin-top:16px;border:0;border-radius:14px;background:var(--yellow);color:#172727;font-weight:1000;letter-spacing:.05em;cursor:pointer;box-shadow:0 8px 0 #9d7923;animation:recap-button-pulse 1.25s ease-in-out infinite}.recap-launch:active{transform:translateY(5px);box-shadow:0 3px 0 #9d7923}.recap-empty .recap-total{background:linear-gradient(145deg,#5c8fb8,#365f7e)}.visit-recap.leaving{animation:recap-exit .55s cubic-bezier(.7,0,.9,.3) forwards}

@keyframes profile-rays{to{transform:rotate(360deg)}}@keyframes recap-rays{to{transform:rotate(360deg)}}@keyframes recap-card-slam{from{opacity:0;transform:scale(2.4) rotate(-10deg);filter:blur(15px)}48%{opacity:1;transform:scale(.86) rotate(3deg);filter:none}to{transform:scale(1) rotate(0)}}@keyframes recap-button-pulse{50%{transform:translateY(-4px) scale(1.035);box-shadow:0 12px 0 #9d7923,0 0 30px rgba(229,185,77,.28)}}@keyframes recap-exit{to{opacity:0;transform:scale(1.18);filter:brightness(2)}}

/* Route, missions et collection */
.quest-hub{position:relative;z-index:2;width:min(1180px,calc(100% - 48px));margin:0 auto 78px}.quest-hub-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:20px}.quest-hub-heading h2{margin:4px 0 0;font-size:clamp(37px,5vw,63px);font-style:italic;letter-spacing:-.06em;line-height:.93}.collection-button{min-height:51px;display:flex;align-items:center;gap:9px;padding:8px 16px;border:2px solid var(--ink);border-radius:14px;background:var(--yellow);color:var(--ink);font-size:11px;font-weight:1000;cursor:pointer;box-shadow:6px 6px 0 var(--ink);transition:transform .2s ease,box-shadow .2s ease}.collection-button:hover{transform:translateY(-4px) rotate(-1deg);box-shadow:8px 10px 0 var(--ink)}.collection-button>span{font-size:21px}.collection-button b{padding:5px 7px;border-radius:7px;background:var(--ink);color:#fff;font-size:9px}
.trophy-road{position:relative;overflow:hidden;padding:21px 25px 28px;border:2px solid #31524e;border-radius:25px;background:radial-gradient(circle at 75% 0,rgba(229,185,77,.19),transparent 28%),linear-gradient(145deg,#0e1d1b,#203d39);color:#fff;box-shadow:0 23px 55px rgba(23,39,39,.2);isolation:isolate}.trophy-road::after{content:"";position:absolute;z-index:-1;inset:0;background:repeating-linear-gradient(0deg,transparent 0 6px,rgba(0,0,0,.13) 6px 8px);pointer-events:none}.road-status{display:flex;align-items:center;justify-content:space-between;gap:20px}.road-status>div{display:flex;align-items:baseline;gap:10px}.road-status span{color:var(--yellow);font-size:9px;font-weight:1000;letter-spacing:.17em}.road-status strong{font-size:34px;font-style:italic}.road-status strong small{font-size:15px}.road-status p{margin:0;color:rgba(255,255,255,.7);font-size:12px}.road-status p b{color:#fff}.road-track{position:relative;height:104px;margin:16px 38px 0}.road-track::before,.road-track>i{content:"";position:absolute;top:43px;right:0;left:0;height:11px;border:3px solid #07100f;border-radius:99px;background:#425c58;transform:skew(-8deg)}.road-track>i{z-index:1;right:auto;width:0;border:0;background:linear-gradient(90deg,var(--coral),var(--yellow),#fff);box-shadow:0 0 22px rgba(229,185,77,.7);transition:width 1.1s cubic-bezier(.15,.8,.2,1)}.road-stop{position:absolute;z-index:2;top:18px;left:var(--road-position);width:72px;display:flex;align-items:center;flex-direction:column;transform:translateX(-50%);text-align:center}.road-stop>span{width:48px;height:48px;display:grid;place-items:center;border:3px solid #07100f;border-radius:15px;background:#3d5551;color:rgba(255,255,255,.5);font-size:20px;font-weight:1000;box-shadow:0 7px 0 #07100f;transform:rotate(-3deg);transition:transform .35s cubic-bezier(.15,.85,.2,1.2),background .3s}.road-stop>b{margin-top:10px;color:rgba(255,255,255,.52);font-size:9px}.road-stop>small{width:90px;margin-top:2px;overflow:hidden;color:rgba(255,255,255,.45);font-size:8px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.road-stop.reached>span{background:var(--yellow);color:var(--ink);box-shadow:0 7px 0 #07100f,0 0 25px rgba(229,185,77,.45)}.road-stop.reached>b,.road-stop.reached>small{color:#fff}.road-stop.next>span{border-color:#fff;animation:road-next-pulse 1.25s ease-in-out infinite}.road-stop:last-child>span{background:linear-gradient(145deg,#e5b94d,#e97161)}
.quest-panels{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:16px;margin-top:16px}.super-panel,.missions-panel{min-width:0;border:1px solid var(--line);border-radius:23px;background:#fffdf8;box-shadow:0 14px 40px rgba(33,78,73,.08)}.super-panel{display:grid;grid-template-columns:145px minmax(0,1fr);align-items:center;gap:3px;padding:22px;overflow:hidden;background:radial-gradient(circle at 10% 20%,rgba(92,143,184,.19),transparent 38%),#fffdf8}.super-orb{position:relative;width:122px;height:122px;display:grid;place-items:center;border:5px solid var(--ink);border-radius:38px;background:linear-gradient(to top,var(--blue) 0 var(--super-fill),#dce8ed var(--super-fill) 100%);color:#fff;box-shadow:9px 9px 0 var(--ink);transform:rotate(-5deg);overflow:hidden}.super-orb::before{content:"";position:absolute;inset:-80%;background:conic-gradient(transparent,#fff,transparent 18%);opacity:.45;animation:super-orb-scan 3s linear infinite}.super-orb span{position:relative;font-size:51px;filter:drop-shadow(0 4px 0 rgba(0,0,0,.2))}.super-orb b{position:absolute;right:8px;bottom:7px;padding:4px 6px;border-radius:6px;background:var(--ink);font-size:8px}.super-copy{min-width:0}.super-copy>span,.panel-heading span,.badge-collection-heading span{color:var(--blue);font-size:8px;font-weight:1000;letter-spacing:.16em}.super-copy h3,.panel-heading h3,.badge-collection-heading h3{margin:4px 0 0;font-size:23px;font-style:italic;letter-spacing:-.045em}.super-copy p{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.super-mini-track{height:8px;margin-top:13px;overflow:hidden;border-radius:99px;background:#dce5e1}.super-mini-track i{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--yellow));transition:width .7s ease}.super-copy>small{display:block;margin-top:8px;color:var(--muted);font-size:8px;font-weight:900}.super-copy button{width:100%;min-height:42px;margin-top:11px;border:2px solid var(--ink);border-radius:10px;background:var(--yellow);color:var(--ink);font-size:10px;font-weight:1000;letter-spacing:.05em;cursor:pointer;box-shadow:0 5px 0 var(--ink);animation:super-button-ready 1s steps(2) infinite}.super-copy button:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}.super-panel.super-ready{border-color:var(--yellow);background:radial-gradient(circle at 15% 35%,rgba(229,185,77,.32),transparent 45%),#fffdf8}.super-ready .super-orb{background:linear-gradient(145deg,var(--yellow),var(--coral));animation:super-ready-orb .8s cubic-bezier(.1,.9,.2,1) infinite alternate}
.missions-panel{padding:20px}.panel-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line)}.panel-heading span{color:var(--green)}.panel-heading small{padding:6px 8px;border-radius:99px;background:var(--mint);color:var(--green);font-size:8px;font-weight:900}.weekly-missions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}.weekly-mission{--mission-color:var(--coral);position:relative;min-width:0;display:grid;grid-template-columns:35px minmax(0,1fr);gap:8px;padding:11px;border:1px solid color-mix(in srgb,var(--mission-color) 35%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--mission-color) 7%,#fff);overflow:hidden}.mission-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--mission-color);color:#fff;font-size:16px;font-weight:1000;box-shadow:3px 3px 0 var(--ink)}.weekly-mission>div{min-width:0}.weekly-mission small{display:block;color:var(--mission-color);font-size:6px;font-weight:1000;letter-spacing:.12em}.weekly-mission strong{display:block;margin-top:2px;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.weekly-mission p{min-height:22px;margin:3px 0 0;color:var(--muted);font-size:8px;line-height:1.3}.weekly-mission div>b{height:5px;display:block;margin-top:6px;overflow:hidden;border-radius:99px;background:#dce5e1}.weekly-mission div>b i{height:100%;display:block;background:var(--mission-color)}.weekly-mission>em{position:absolute;right:6px;bottom:4px;color:var(--mission-color);font-size:7px;font-style:normal;font-weight:1000}.weekly-mission.complete{background:color-mix(in srgb,var(--mission-color) 16%,#fff)}.weekly-mission.complete::after{content:"MISSION OK";position:absolute;top:6px;right:-19px;width:70px;padding:3px 0;background:var(--yellow);color:var(--ink);font-size:5px;font-weight:1000;text-align:center;transform:rotate(42deg)}.mission-empty{grid-column:1/-1;color:var(--muted);font-size:11px}
.badge-collection{margin-top:16px;padding:22px;border:2px solid var(--ink);border-radius:24px;background:linear-gradient(145deg,#fdf9eb,#eef4ed);box-shadow:8px 8px 0 var(--ink);animation:badge-vault-open .48s cubic-bezier(.15,.85,.2,1.15) both}.badge-collection[hidden]{display:none}.badge-collection-heading{display:flex;align-items:start;justify-content:space-between;gap:14px}.badge-collection-heading span{color:var(--coral)}.badge-collection-heading h3 b{color:var(--coral)}.badge-collection-heading button{width:39px;height:39px;border:2px solid var(--ink);border-radius:11px;background:#fff;color:var(--ink);font-size:24px;font-weight:900;cursor:pointer}.badges-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:17px}.badge-card{position:relative;min-width:0;min-height:145px;display:flex;align-items:center;flex-direction:column;padding:14px 10px 10px;border:1px solid var(--line);border-radius:17px;background:#fff;text-align:center;overflow:hidden}.badge-card>span{width:58px;height:58px;display:grid;place-items:center;border:4px solid var(--ink);border-radius:19px;background:var(--yellow);font-size:28px;font-weight:1000;box-shadow:5px 5px 0 var(--ink);transform:rotate(-4deg)}.badge-card>div{min-width:0;margin-top:10px}.badge-card strong{display:block;font-size:10px}.badge-card small{display:block;margin-top:3px;color:var(--muted);font-size:7px;line-height:1.3}.badge-card>b{margin-top:auto;padding-top:8px;color:var(--green);font-size:6px;letter-spacing:.12em}.badge-card.unlocked>span{animation:badge-earned-float 2.1s ease-in-out infinite}.badge-card.blue>span{background:var(--blue)}.badge-card.green>span{background:var(--soft-green)}.badge-card.coral>span{background:var(--coral)}.badge-card.locked{filter:grayscale(1);opacity:.5}.badge-card.locked>span{background:#d6ddda;color:#89938f}.badge-card.locked>b{color:var(--muted)}
.super-activation{position:fixed;z-index:1200;inset:0;min-height:100dvh;display:grid;place-items:center;overflow:hidden;padding:calc(20px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));background:radial-gradient(circle,#4c8dad 0,#1e4449 38%,#030908 75%);color:#fff;isolation:isolate;animation:super-screen-in 2.95s cubic-bezier(.08,.8,.18,1) both}.super-activation.leaving{animation:super-screen-out .5s ease-in forwards}.super-rays{position:absolute;inset:-70%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.2) 0 3deg,transparent 3deg 10deg);animation:super-rays-spin 7s linear infinite}.super-bolts i{position:absolute;color:var(--yellow);font-size:clamp(28px,8vw,75px);font-style:normal;font-weight:1000;text-shadow:0 0 25px currentColor;animation:super-bolt-burst 1.5s cubic-bezier(.1,.8,.2,1) both}.super-bolts i:nth-child(1){left:8%;top:18%}.super-bolts i:nth-child(2){right:9%;top:15%;animation-delay:.12s}.super-bolts i:nth-child(3){right:12%;bottom:15%;animation-delay:.23s}.super-bolts i:nth-child(4){left:13%;bottom:16%;animation-delay:.32s}.super-bolts i:nth-child(5){left:50%;top:5%;animation-delay:.42s}.super-activation-stage{position:relative;z-index:2;width:min(650px,100%);display:flex;align-items:center;flex-direction:column;text-align:center}.super-activation-stage>span{padding:7px 12px;border:2px solid var(--yellow);background:#07100f;color:var(--yellow);font-size:9px;font-weight:1000;letter-spacing:.2em;transform:skew(-8deg)}.super-activation-icon{width:112px;height:112px;margin-top:21px;display:grid;place-items:center;border:5px solid #fff;border-radius:34px;background:linear-gradient(145deg,var(--yellow),var(--coral));font-size:63px;box-shadow:13px 13px 0 #07100f,0 0 80px var(--yellow);animation:super-icon-slam .72s cubic-bezier(.08,.9,.18,1.25) both}.super-activation h2{margin:22px 0 0;font-size:clamp(67px,17vw,132px);font-style:italic;letter-spacing:-.09em;line-height:.68;text-shadow:7px 7px 0 #07100f}.super-activation h2 em{color:var(--yellow);font-size:.65em}.super-activation p{margin:25px 0 0;color:rgba(255,255,255,.72);font-size:14px}.super-activation-stage>b{margin-top:19px;padding:10px 17px;background:#fff;color:var(--ink);font-size:10px;letter-spacing:.12em;transform:skew(-6deg)}.super-screen-active{overflow:hidden}
.mission-settings{margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8f5ed}.mission-settings summary{font-size:11px;font-weight:900;cursor:pointer}.mission-settings>p{margin:8px 0;color:var(--muted);font-size:9px}.mission-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.mission-choice-list label{min-width:0;display:flex;align-items:center;gap:7px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:10px;font-weight:800;cursor:pointer}.mission-choice-list input{width:17px;height:17px;accent-color:var(--green)}.mission-choice-list span{color:var(--coral);font-weight:1000}

/* Quêtes personnalisées et validation familiale */
.quest-heading-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}.quest-heading-actions>b{padding:6px 8px;border-radius:99px;background:#fff0cc;color:#9a6811;font-size:7px;letter-spacing:.09em;animation:quest-pending-pulse 1.25s ease-in-out infinite}.quest-heading-actions button{min-height:34px;padding:0 10px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:#fff;font-size:8px;font-weight:1000;cursor:pointer}.custom-quest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.custom-quest-card{--mission-color:var(--coral);position:relative;min-width:0;padding:11px;border:1px solid color-mix(in srgb,var(--mission-color) 35%,var(--line));border-radius:15px;background:linear-gradient(145deg,color-mix(in srgb,var(--mission-color) 8%,#fff),#fff);overflow:hidden}.custom-quest-card.has-pending{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(229,185,77,.12)}.custom-quest-card.period-complete{opacity:.68;background:#f0f3f0}.custom-quest-top{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px}.custom-quest-top>div{min-width:0}.custom-quest-top small{display:block;color:var(--mission-color);font-size:6px;font-weight:1000;letter-spacing:.12em;text-transform:uppercase}.custom-quest-top strong{display:-webkit-box;margin-top:3px;overflow:hidden;font-size:11px;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.custom-quest-top>em{align-self:start;padding:5px 7px;border-radius:8px;background:var(--mission-color);color:#fff;font-size:12px;font-style:normal;font-weight:1000;box-shadow:2px 2px 0 var(--ink)}.quest-meta{min-height:22px;display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;padding-top:7px;border-top:1px dashed color-mix(in srgb,var(--mission-color) 34%,var(--line))}.quest-meta span{color:var(--muted);font-size:7px;font-weight:900}.quest-meta b{overflow:hidden;color:#9a6811;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.quest-request,.quest-direct{width:100%;min-height:38px;margin-top:7px;border:2px solid var(--ink);border-radius:9px;font-size:9px;font-weight:1000;letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 0 var(--ink)}.quest-request{background:var(--yellow);color:var(--ink);animation:quest-action-ready 1.1s steps(2) infinite}.quest-direct{background:var(--green);color:#fff}.quest-direct b{padding-left:4px;color:var(--yellow)}.quest-request:active,.quest-direct:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.quest-review-actions{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:6px;margin-top:7px}.quest-review-actions button{min-height:38px;border-radius:9px;font-size:8px;font-weight:1000;cursor:pointer}.quest-approve{border:2px solid var(--ink);background:var(--yellow);color:var(--ink);box-shadow:0 3px 0 var(--ink)}.quest-reject{border:1px solid var(--line);background:#fff;color:var(--muted)}.quest-pending-state,.quest-completed-state,.quest-view-state{min-height:36px;display:flex;align-items:center;justify-content:center;margin-top:7px;border-radius:9px;font-size:8px;font-weight:1000;text-align:center}.quest-pending-state{background:#fff0cc;color:#9a6811}.quest-completed-state{background:var(--mint);color:var(--green)}
.quest-dialog{width:min(1040px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;overflow:auto;border:0;border-radius:25px;background:var(--paper);color:var(--ink);box-shadow:0 40px 120px rgba(14,31,29,.46)}.quest-dialog[open]{animation:dialog-pop .38s cubic-bezier(.2,.9,.25,1.1)}.quest-dialog::backdrop{background:rgba(10,22,21,.78);backdrop-filter:blur(8px)}.quest-dialog>form{position:relative;padding:36px}.quest-dialog h2{margin:0;font-size:clamp(35px,5vw,58px);font-style:italic;letter-spacing:-.06em}.quest-dialog .dialog-description{margin:8px 0 0}.quest-manager-layout{display:grid;grid-template-columns:minmax(0,.88fr) minmax(360px,1.12fr);gap:15px;margin-top:24px}.quest-library,.quest-editor{min-width:0;padding:18px;border:1px solid var(--line);border-radius:19px;background:#fff}.quest-library{background:#f0f4f0}.quest-library-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line)}.quest-library-heading h3{margin:0;font-size:16px}.quest-library-heading h3 span{color:var(--coral)}.quest-library-heading button{min-height:37px;padding:0 10px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:#fff;font-size:9px;font-weight:1000;cursor:pointer}#quest-library-list{display:grid;gap:8px;max-height:490px;margin-top:11px;overflow:auto}.quest-library-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fff}.quest-library-item>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:var(--quest-item-color);color:#fff;font-weight:1000}.quest-library-item>div{min-width:0}.quest-library-item strong{display:block;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.quest-library-item small{display:block;margin-top:3px;overflow:hidden;color:var(--muted);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.quest-library-item>b{padding:4px 5px;border-radius:6px;background:var(--mint);color:var(--green);font-size:6px}.quest-library-item>button{grid-column:2/-1;min-height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:8px;font-weight:900;cursor:pointer}.quest-library-item.inactive{opacity:.55}.quest-library-empty{display:flex;align-items:center;flex-direction:column;padding:42px 15px;text-align:center}.quest-library-empty>span{font-size:32px;color:var(--yellow)}.quest-library-empty strong{margin-top:9px;font-size:13px}.quest-library-empty p{margin:5px 0 0;color:var(--muted);font-size:9px}.quest-editor-kicker{color:var(--coral);font-size:8px;font-weight:1000;letter-spacing:.16em}.quest-editor h3{margin:4px 0 18px;font-size:21px;letter-spacing:-.035em}.quest-editor>label,.quest-form-row label{display:block;margin:13px 0 6px;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}.quest-editor input[type=text],.quest-editor select{width:100%;min-height:49px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:16px}.quest-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quest-reward-fieldset{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0 0;padding:0;border:0}.quest-reward-fieldset legend{margin-bottom:7px;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}.quest-reward-fieldset label{position:relative;min-width:0;margin:0;cursor:pointer}.quest-reward-fieldset input{position:absolute;opacity:0}.quest-reward-fieldset label>span{min-height:55px;display:grid;place-items:center;border:2px solid var(--line);border-radius:12px;background:#fff;font-size:22px;font-weight:1000;transition:transform .18s,border-color .18s,background .18s}.quest-reward-fieldset label>small{display:block;margin-top:4px;color:var(--muted);font-size:7px;text-align:center}.quest-reward-fieldset input:checked+span{border-color:var(--ink);background:var(--yellow);box-shadow:0 4px 0 var(--ink);transform:translateY(-2px)}.quest-active-toggle{display:flex!important;align-items:center;gap:8px;margin:18px 0 0!important;color:var(--ink)!important;font-size:10px!important;text-transform:none!important;cursor:pointer}.quest-active-toggle input{width:20px;height:20px;accent-color:var(--green)}.quest-save-button{width:100%;margin-top:15px}.quest-save-button:disabled{opacity:.55}.quest-dialog .form-error{margin:10px 0 0}.quest-dialog .dialog-close{z-index:2;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff}
.quest-view-state{background:#eef2f0;color:var(--muted)}
@keyframes quest-pending-pulse{50%{box-shadow:0 0 0 6px rgba(229,185,77,0);background:var(--yellow)}}@keyframes quest-action-ready{50%{filter:brightness(1.1);transform:translateY(-2px)}}
@keyframes road-next-pulse{50%{transform:rotate(4deg) translateY(-5px) scale(1.08);box-shadow:0 12px 0 #07100f,0 0 35px var(--yellow)}}@keyframes super-orb-scan{to{transform:rotate(360deg)}}@keyframes super-button-ready{50%{filter:brightness(1.12);transform:translateY(-2px)}}@keyframes super-ready-orb{to{transform:rotate(4deg) scale(1.055);box-shadow:11px 12px 0 var(--ink),0 0 45px var(--yellow)}}@keyframes badge-vault-open{from{opacity:0;transform:translateY(-16px) scale(.96)}to{opacity:1;transform:none}}@keyframes badge-earned-float{50%{transform:translateY(-5px) rotate(4deg)}}@keyframes super-screen-in{0%{opacity:0;filter:brightness(4)}10%{opacity:1}18%{transform:translate(7px,-4px)}25%{transform:translate(-5px,3px)}100%{transform:none}}@keyframes super-screen-out{to{opacity:0;transform:scale(1.2);filter:brightness(3)}}@keyframes super-rays-spin{to{transform:rotate(360deg)}}@keyframes super-bolt-burst{from{opacity:0;transform:scale(.1) rotate(-80deg)}45%{opacity:1;transform:scale(1.5) rotate(12deg)}to{opacity:.35;transform:scale(1) rotate(0)}}@keyframes super-icon-slam{from{opacity:0;transform:scale(3) rotate(30deg);filter:blur(15px)}55%{opacity:1;transform:scale(.78) rotate(-9deg);filter:none}to{transform:none}}

.super-vault-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-top:25px;padding-top:20px;border-top:2px dashed var(--line)}.super-vault-heading span{color:var(--blue);font-size:8px;font-weight:1000;letter-spacing:.17em}.super-vault-heading h3{margin:4px 0 0;font-size:21px;font-style:italic;letter-spacing:-.04em}.super-vault-heading>b{padding:7px 9px;border-radius:9px;background:var(--blue);color:#fff;font-size:10px}.super-rewards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:13px}.super-reward-card{min-width:0;min-height:108px;display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fff}.super-reward-card>span{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:12px;background:var(--blue);color:#fff;font-size:19px;font-weight:1000;box-shadow:3px 3px 0 var(--ink);transform:rotate(-4deg)}.super-reward-card>div{min-width:0}.super-reward-card strong{display:block;font-size:9px;line-height:1.2}.super-reward-card small{display:block;margin-top:4px;color:var(--muted);font-size:7px;line-height:1.25}.super-reward-card>b{align-self:start;margin-left:auto;color:var(--blue);font-size:6px}.super-reward-card.locked{opacity:.43;filter:grayscale(1)}.super-reward-card.locked>span{background:#a9b0ad}.super-reward-card.unlocked{background:linear-gradient(145deg,#fff,#edf5f7)}.super-reward-card.unlocked>span{animation:badge-earned-float 2s ease-in-out infinite}.quest-hub.has-electric-frame .trophy-road{border-color:var(--yellow);box-shadow:0 23px 55px rgba(23,39,39,.2),0 0 0 4px rgba(229,185,77,.15)}.quest-hub.has-neon-theme .trophy-road{background:radial-gradient(circle at 75% 0,rgba(92,143,184,.55),transparent 35%),linear-gradient(145deg,#071518,#1b4a50)}.quest-hub.has-champion-aura .badge-card.unlocked{box-shadow:0 0 22px rgba(229,185,77,.25)}.quest-hub.has-gold-frame .badge-collection{border-color:var(--yellow);box-shadow:8px 8px 0 var(--ink),0 0 35px rgba(229,185,77,.28)}.super-unlock-card{width:min(390px,90vw);margin-top:19px;padding:13px 17px;border:3px solid #fff;border-radius:15px;background:linear-gradient(135deg,var(--yellow),#fff2b0);color:var(--ink);box-shadow:8px 8px 0 #07100f;transform:skew(-4deg)}.super-unlock-card b{display:block;font-size:18px;font-weight:1000;text-transform:uppercase}.super-unlock-card small{display:block;margin-top:4px;font-size:9px;font-weight:900}.super-activation-stage>.super-unlock-card+p{margin-top:20px}
.super-panel-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:8px}.super-panel-actions>small{flex:1;min-width:140px;margin:0!important}.super-copy .super-panel-actions button{margin-top:0}.super-copy .manage-super-gifts{min-height:34px;padding:0 10px;border:1px solid var(--blue);background:#eef5f8;color:#35667c;font-size:8px;box-shadow:none;animation:none}.super-copy .manage-super-gifts:hover{background:#deedf3}.super-copy .manage-super-gifts:active{transform:none}.revealed-gifts{margin-top:16px;padding:14px;border:1px solid rgba(229,185,77,.48);border-radius:15px;background:#fff8df}.revealed-gifts[hidden]{display:none}.revealed-gifts-heading{display:flex;align-items:center;justify-content:space-between}.revealed-gifts-heading span{color:#9a6811;font-size:8px;font-weight:1000;letter-spacing:.14em}.revealed-gifts-heading b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:var(--yellow);font-size:9px}.revealed-gifts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.revealed-gifts-grid article{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid rgba(229,185,77,.36);border-radius:11px;background:#fff}.revealed-gifts-grid article>span{font-size:23px}.revealed-gifts-grid article>div{min-width:0}.revealed-gifts-grid strong{display:block;font-size:10px}.revealed-gifts-grid small{display:block;margin-top:3px;color:var(--muted);font-size:8px;line-height:1.3}.super-activation.gift-reveal{background:radial-gradient(circle,#b78625 0,#62471c 38%,#0b0803 75%)}.gift-reveal .super-activation-icon{background:linear-gradient(145deg,#fff3ad,var(--yellow));animation:gift-box-slam .8s cubic-bezier(.08,.9,.18,1.25) both}.gift-reveal .super-unlock-card{background:linear-gradient(135deg,#fff7d2,#fff);box-shadow:8px 8px 0 #07100f,0 0 55px rgba(229,185,77,.7)}
.super-gift-dialog{width:min(920px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;overflow:auto;border:0;border-radius:25px;background:var(--paper);color:var(--ink);box-shadow:0 40px 120px rgba(14,31,29,.46)}.super-gift-dialog[open]{animation:dialog-pop .38s cubic-bezier(.2,.9,.25,1.1)}.super-gift-dialog::backdrop{background:rgba(10,22,21,.8);backdrop-filter:blur(8px)}.super-gift-dialog>form{position:relative;padding:36px}.super-gift-dialog h2{margin:0;font-size:clamp(35px,5vw,58px);font-style:italic;letter-spacing:-.06em}.super-gift-dialog .dialog-description{max-width:700px;margin:8px 0 0}.super-gift-dialog .dialog-close{z-index:2;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff}.gift-manager-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(350px,1.1fr);gap:14px;margin-top:23px}.gift-library,.gift-editor{min-width:0;padding:17px;border:1px solid var(--line);border-radius:18px;background:#fff}.gift-library{background:#f3f1e8}.gift-library-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line)}.gift-library-heading span{color:#9a6811;font-size:7px;font-weight:1000;letter-spacing:.15em}.gift-library-heading h3{margin:3px 0 0;font-size:16px}.gift-library-heading h3 b{color:var(--coral)}.gift-library-heading button{min-height:37px;padding:0 10px;border:1px solid #9a6811;border-radius:9px;background:var(--yellow);color:var(--ink);font-size:9px;font-weight:1000;cursor:pointer}#gift-library-list{display:grid;gap:8px;max-height:475px;margin-top:11px;overflow:auto}.gift-library-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border:1px solid rgba(229,185,77,.32);border-radius:12px;background:#fff}.gift-library-item>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:var(--yellow);font-size:20px}.gift-library-item>div{min-width:0}.gift-library-item strong{display:block;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.gift-library-item small{display:block;margin-top:3px;overflow:hidden;color:var(--muted);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.gift-library-item>b{padding:4px 5px;border-radius:6px;background:#fff0cc;color:#9a6811;font-size:6px}.gift-library-item>button,.gift-library-item>em{grid-column:2/-1}.gift-library-item>button{min-height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:8px;font-weight:900;cursor:pointer}.gift-library-item>em{color:var(--muted);font-size:7px;font-style:normal}.gift-library-item.revealed{opacity:.65}.gift-library-item.inactive{opacity:.48}.gift-library-empty{display:flex;align-items:center;flex-direction:column;padding:42px 15px;text-align:center}.gift-library-empty>span{font-size:34px}.gift-library-empty strong{margin-top:8px;font-size:13px}.gift-library-empty p{margin:5px 0 0;color:var(--muted);font-size:9px}.gift-editor-kicker{color:#9a6811;font-size:8px;font-weight:1000;letter-spacing:.16em}.gift-editor h3{margin:4px 0 18px;font-size:21px}.gift-editor>label{display:block;margin:13px 0 6px;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}.gift-editor input[type=text],.gift-editor textarea{width:100%;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:16px}.gift-editor input[type=text]{min-height:49px}.gift-editor textarea{min-height:104px;padding-top:12px;resize:vertical}.gift-active-toggle{display:flex!important;align-items:center;gap:8px;margin:17px 0 0!important;color:var(--ink)!important;font-size:10px!important;text-transform:none!important;cursor:pointer}.gift-active-toggle input{width:20px;height:20px;accent-color:var(--green)}.gift-save-button{width:100%;margin-top:15px}.gift-save-button:disabled{opacity:.55}@keyframes gift-box-slam{from{opacity:0;transform:scale(3.2) rotate(25deg);filter:blur(14px)}52%{opacity:1;transform:scale(.72) rotate(-12deg);filter:none}75%{transform:scale(1.16) rotate(5deg)}to{transform:none}}
@media(max-width:980px){.hero{grid-template-columns:1fr;padding-bottom:60px}.hero-copy{padding-bottom:0}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-shell{grid-template-columns:1fr}.auth-visual{display:none}.auth-card{padding-block:35px}.auth-heading{margin-top:60px}.quest-panels{grid-template-columns:1fr}.badges-grid,.super-rewards-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:640px){
  body{padding-bottom:env(safe-area-inset-bottom)}
  .boot-corner{font-size:7px;letter-spacing:.12em}.boot-corner-one{top:calc(12px + env(safe-area-inset-top));left:12px}.boot-corner-two{right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}.boot-content{width:calc(100% - 24px)}.boot-kicker{margin-bottom:10px;font-size:8px;letter-spacing:.14em}.boot-emblem{width:155px;height:99px;transform:scale(.88)}.boot-loading h1{margin-top:10px;font-size:58px;line-height:.72}.boot-loading h1 em{display:block;margin-top:10px}.boot-subtitle{margin-top:21px;font-size:9px;letter-spacing:.15em}.boot-loader{margin-top:29px}.boot-loader>div{font-size:7px}.boot-ready-icon{width:77px;height:77px;font-size:42px}.boot-ready small{margin-top:20px;font-size:8px}.boot-ready strong{margin-top:14px;font-size:66px}.boot-ready p{margin-top:24px;font-size:10px}.boot-grid{bottom:-27%;height:65%;background-size:36px 36px}.boot-speed-lines i{width:72vw}
  .topbar{position:sticky;top:0;z-index:40;width:100%;min-height:68px;margin:0;padding:calc(9px + env(safe-area-inset-top)) 15px 9px;gap:8px;border-bottom:1px solid var(--line);background:rgba(246,242,232,.94);box-shadow:0 7px 22px rgba(23,39,39,.06);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .brand{min-width:0;gap:8px}.brand>span:last-child{min-width:0}.brand small{display:none}.brand strong{font-size:14px;white-space:nowrap}.brand-mark{width:38px;height:38px}
  .top-actions{flex:0 0 auto;gap:6px}.parent-button,.logout-button,.profile-switch-button{min-height:44px}
  .child-switcher{max-width:105px;min-height:44px;padding-left:9px;font-size:16px}
  .hero,.history-section,footer{width:min(100% - 30px,1180px)}
  .hero{gap:0}.hero-copy{min-width:0;padding-top:48px;padding-right:8px}.hero h1{padding-right:.12em;font-size:clamp(36px,10.2vw,41px);line-height:1.02}.hero h1 em{display:block}.goal-visual{min-height:310px;transform:scale(.76);margin:-25px auto}
  .objectives{padding:66px 12px 82px}.section-heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:15px;margin-bottom:25px}.section-heading h2,.history-intro h2{font-size:37px}.overall-summary{min-width:auto;padding:8px 11px;border-radius:13px;background:var(--mint);text-align:right}.overall-summary span{font-size:8px}.overall-summary strong{font-size:25px}
  .cards-grid{grid-template-columns:1fr;gap:14px;border:0;background:transparent}.goal-card{scroll-margin-top:86px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fffdf8;box-shadow:0 10px 28px rgba(33,78,73,.07)}.goal-card:hover{transform:none;background:#fffdf8;box-shadow:0 10px 28px rgba(33,78,73,.07)}.goal-card h3,.card-description{min-height:0}.card-eyebrow{margin-top:24px}.card-progress{margin-top:22px}
  .mobile-edit-toggle{width:100%;min-height:50px;margin-top:20px;padding:9px 13px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid color-mix(in srgb,var(--accent) 44%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 9%,#fff);color:var(--ink);cursor:pointer}.mobile-edit-toggle span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#fff;font-size:18px;line-height:1}.mobile-edit-toggle b{font-size:13px}
  .edit-panel{display:none;margin:14px 0 0;padding:18px 0 0;border-top:1px dashed var(--line)}.goal-card.mobile-edit-open .edit-panel{display:block;animation:mobile-controls-reveal .28s ease both}.goal-card.mobile-edit-open .mobile-edit-toggle{background:color-mix(in srgb,var(--accent) 16%,#fff)}
  .edit-panel label,.parent-dialog label{font-size:11px}.note-input{height:52px;padding:0 14px;border-radius:12px;scroll-margin-block:130px}.quick-buttons{gap:10px;margin-top:10px}.quick-buttons button,.save-manual{min-height:52px;height:auto;border-radius:12px;font-size:17px}.manual-adjust{margin-top:19px}.manual-adjust>div{grid-template-columns:82px minmax(0,1fr);gap:10px}.manual-adjust input[type=range]{height:38px;touch-action:pan-y}.number-input{height:50px;border-radius:11px;font-size:16px}.save-manual{font-size:14px}
  input,select,textarea{font-size:16px!important}.auth-card form input:focus{transform:none}
  .history-section{padding:78px 0}.history-copy>div{display:block}.history-copy time{display:block;margin-top:3px}
  footer{padding-bottom:calc(30px + env(safe-area-inset-bottom))}
  .auth-page{min-height:100dvh}.auth-shell{min-height:100dvh}.auth-card{width:min(100% - 28px,500px);padding:27px 15px calc(27px + env(safe-area-inset-bottom))}.auth-heading{margin-top:50px}.auth-heading h1{font-size:40px}.auth-card form input{min-height:52px}
  .parent-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;overflow:auto;border-radius:0}.parent-dialog form{min-height:100dvh;padding:calc(20px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom))}.parent-dialog .dialog-icon{width:38px;height:38px;margin-bottom:12px}.parent-dialog .kicker{margin-bottom:7px}.parent-dialog h2{font-size:28px}.parent-dialog .dialog-description{margin:7px 0 15px;font-size:12px}.pin-passcode-display{margin-bottom:18px}.pin-keypad{width:244px;grid-template-columns:repeat(3,64px);gap:8px 0}.pin-keypad button{width:64px;height:64px;min-height:0}.pin-keypad-help{margin-top:14px}.family-dialog{width:calc(100% - 14px);max-height:calc(100dvh - 14px);border-radius:19px}.family-dialog>form{padding:31px 14px calc(26px + env(safe-area-inset-bottom))}.family-pin-section{max-width:none}.member-editor{padding:13px}.member-editor-header{grid-template-columns:45px minmax(0,1fr)}.member-role-icon{width:43px;height:43px}.remove-member{grid-column:1/-1;min-height:43px}.category-editor{grid-template-columns:38px minmax(0,1fr)}.category-editor .remove-category{grid-column:1/-1;min-height:40px}.member-add-actions{grid-template-columns:1fr}.member-add-actions button{min-height:50px}
  .card-history{margin-top:18px}.card-history-toggle,.card-history-empty{min-height:52px;padding:10px}.card-history-preview{grid-template-columns:minmax(0,1fr) auto;padding:10px}.card-history-preview>time{display:none}.card-history-preview p{display:-webkit-box;overflow:hidden;font-size:11px;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.card-history-scroll{max-height:260px}.card-history-item{padding:12px 5px}.card-history-item p{font-size:12px}.card-history-item time{font-size:9px}
  .history-replay-hud{grid-template-columns:minmax(0,1fr);padding:12px 10px 18px}.history-replay-hud strong{font-size:12px}.history-replay-button{width:100%;min-height:42px}.history-replay-progress{right:10px;bottom:7px;left:10px}.history-replay-step{grid-template-columns:8px minmax(0,1fr) auto;gap:9px}
  .game-impact{padding-inline:12px}.game-impact-stage{width:96vw}.game-impact-kicker{font-size:8px}.game-impact-icon{width:80px;height:80px;margin-top:17px;border-radius:23px;font-size:43px}.game-impact-mission{margin-top:16px;font-size:17px}.game-hit-label{max-width:96vw;padding:7px 15px;font-size:clamp(43px,14vw,61px);white-space:nowrap}.game-xp-label{max-width:92vw;margin-top:14px;font-size:16px;white-space:nowrap}.game-impact-progress-label{margin-top:18px}.game-token{width:27px;height:27px;font-size:13px}.goal-card.is-powering-up::after{inset:-3px;border-radius:18px}
  .milestone-splash{min-height:100dvh;border-radius:0}.milestone-splash>i{font-size:10px}.milestone-splash>span{font-size:48px}.milestone-splash>strong{max-width:94%;font-size:54px;text-align:center;text-shadow:4px 4px 0 #101c1b,7px 7px 0 var(--yellow)}.milestone-splash>small{padding:8px 14px;font-size:10px}.milestone-splash>b{margin-top:21px}
  .fun-toast{top:calc(10px + env(safe-area-inset-top))}
  .pwa-install-card{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));grid-template-columns:52px minmax(0,1fr);padding:12px 42px 12px 12px}.pwa-install-card>img{width:52px;height:52px;border-radius:13px}.pwa-install-action{grid-column:1/-1;min-height:46px}.pwa-install-card small{font-size:11px}
  .profile-gate{align-items:start;padding-top:calc(42px + env(safe-area-inset-top))}.profile-panel h1{font-size:45px}.profile-grid{gap:14px 7px;margin-top:28px}.profile-card{width:136px}.profile-avatar{width:94px;height:94px;border-radius:25px;font-size:40px}.profile-setup-button{width:100%}.recap-card h2{font-size:43px}.recap-total{width:180px;height:132px;margin-top:20px}.recap-total span{font-size:66px}.recap-launch{width:100%;min-height:58px}.recap-categories{max-height:115px;overflow:auto}
}
@media(max-width:370px){.topbar .brand>span:last-child{display:none}.section-heading h2{font-size:34px}}
@media(max-height:520px){.boot-kicker,.boot-corner-two{display:none}.boot-emblem{height:55px;transform:scale(.55)}.boot-loading h1{margin-top:4px;font-size:52px;line-height:.78}.boot-loading h1 em{display:inline-block;margin-top:0}.boot-subtitle{margin-top:14px}.boot-loader{margin-top:18px}.boot-ready-icon{width:50px;height:50px;font-size:27px}.boot-ready small{margin-top:10px}.boot-ready strong{margin-top:9px;font-size:49px}.boot-ready p{margin-top:15px}.boot-grid{bottom:-65%;height:105%}}
@media(max-width:640px){
  .quest-hub{width:min(100% - 24px,1180px);margin-bottom:58px}.quest-hub-heading{align-items:start;margin-bottom:15px}.quest-hub-heading h2{font-size:34px;line-height:.92}.collection-button{flex:0 0 auto;min-height:46px;padding:7px 10px;font-size:0;box-shadow:4px 4px 0 var(--ink)}.collection-button>span{font-size:20px}.collection-button b{font-size:8px}
  .trophy-road{padding:17px 12px 20px;border-radius:20px}.road-status{align-items:start;flex-direction:column;gap:3px}.road-status>div{width:100%;justify-content:space-between}.road-status strong{font-size:29px}.road-status p{font-size:10px}.road-track{height:101px;margin:15px 25px 0}.road-stop{width:50px}.road-stop>span{width:39px;height:39px;border-width:2px;border-radius:12px;font-size:16px;box-shadow:0 5px 0 #07100f}.road-stop>b{margin-top:8px;font-size:7px}.road-stop>small{width:58px;font-size:6px}.road-track::before,.road-track>i{top:34px;height:9px;border-width:2px}
  .quest-panels{gap:11px;margin-top:11px}.super-panel{grid-template-columns:100px minmax(0,1fr);padding:16px 14px}.super-orb{width:84px;height:84px;border-width:3px;border-radius:25px;box-shadow:6px 6px 0 var(--ink)}.super-orb span{font-size:37px}.super-copy h3,.panel-heading h3{font-size:19px}.super-copy p{font-size:9px}.super-mini-track{margin-top:9px}.super-copy button{font-size:9px}
  .missions-panel{padding:15px 12px}.panel-heading small{font-size:6px}.weekly-missions{grid-template-columns:1fr;gap:7px}.weekly-mission{grid-template-columns:38px minmax(0,1fr);padding:10px}.weekly-mission p{min-height:0}.weekly-mission>em{right:10px;bottom:8px}.weekly-mission.complete::after{right:-17px}
  .badge-collection{padding:16px 12px;border-radius:18px;box-shadow:5px 5px 0 var(--ink)}.badge-collection-heading h3{font-size:20px}.badges-grid,.super-rewards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.badge-card{min-height:137px}.badge-card>span{width:52px;height:52px;font-size:24px}.super-vault-heading h3{font-size:17px}.super-reward-card{min-height:125px;align-items:center;flex-direction:column;text-align:center}.super-reward-card>b{align-self:center;margin:0}.mission-choice-list{grid-template-columns:1fr}.mission-choice-list label{font-size:11px}.mission-choice-list input{font-size:16px}
  .super-activation-icon{width:92px;height:92px;font-size:51px}.super-activation h2{font-size:70px}.super-activation p{max-width:270px;font-size:12px}
  .panel-heading{align-items:flex-start}.quest-heading-actions{max-width:145px}.quest-heading-actions small{display:none}.quest-heading-actions button{min-height:38px}.custom-quest-card{padding:12px}.custom-quest-top strong{font-size:12px}.quest-request,.quest-direct{min-height:44px;font-size:10px}.quest-review-actions button{min-height:44px;font-size:9px}
  .quest-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0}.quest-dialog>form{min-height:100dvh;padding:calc(28px + env(safe-area-inset-top)) 13px calc(24px + env(safe-area-inset-bottom))}.quest-dialog h2{font-size:38px}.quest-dialog .dialog-description{padding-right:34px;font-size:11px}.quest-manager-layout{grid-template-columns:1fr;gap:10px;margin-top:18px}.quest-library,.quest-editor{padding:13px;border-radius:15px}#quest-library-list{max-height:285px}.quest-library-item{grid-template-columns:40px minmax(0,1fr) auto}.quest-editor{scroll-margin-top:10px}.quest-form-row{grid-template-columns:1fr;gap:0}.quest-reward-fieldset label>span{min-height:58px}.quest-reward-fieldset label>small{font-size:6px}.quest-save-button{min-height:52px}.quest-dialog .dialog-close{position:fixed;top:calc(10px + env(safe-area-inset-top));right:10px}
  .super-panel-actions{align-items:stretch;flex-direction:column}.super-panel-actions>small{min-width:0}.super-copy .manage-super-gifts{width:100%;min-height:40px}.revealed-gifts-grid{grid-template-columns:1fr}.super-gift-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0}.super-gift-dialog>form{min-height:100dvh;padding:calc(28px + env(safe-area-inset-top)) 13px calc(24px + env(safe-area-inset-bottom))}.super-gift-dialog h2{font-size:38px}.super-gift-dialog .dialog-description{padding-right:34px;font-size:11px}.gift-manager-layout{grid-template-columns:1fr;gap:10px;margin-top:18px}.gift-library,.gift-editor{padding:13px;border-radius:15px}#gift-library-list{max-height:285px}.gift-editor{scroll-margin-top:10px}.gift-save-button{min-height:52px}.super-gift-dialog .dialog-close{position:fixed;top:calc(10px + env(safe-area-inset-top));right:10px}
}
@keyframes mobile-controls-reveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.game-boot,.ambient-playground,.auth-sparkles,.visual-spark,.game-impact,.game-token,.milestone-splash{display:none!important}}

/* Écran d’entrée pour un téléphone familial partagé */
.profile-gate{display:block;overflow:auto;padding:0;background:#f4f3ef;color:var(--ink);overscroll-behavior:none}.profile-gate::before{display:none}.shared-profile-shell{position:relative;z-index:1;min-height:100dvh;display:grid;grid-template-rows:auto 1px minmax(250px,1fr)}
.shared-parent-entry{min-height:55dvh;display:grid;grid-template-columns:minmax(210px,1fr) minmax(210px,1fr) auto;align-items:center;gap:clamp(24px,5vw,70px);padding:calc(28px + env(safe-area-inset-top)) max(28px,calc((100vw - 1100px)/2)) 28px;background:radial-gradient(circle at 78% 8%,rgba(92,143,184,.11),transparent 31%),#f4f3ef}.shared-entry-heading{max-width:320px}.shared-entry-kicker{margin:0 0 8px;color:#6a716e;font-size:9px;font-weight:800;letter-spacing:.18em}.shared-entry-heading h1{margin:0;font-family:"Avenir Next",Avenir,system-ui,sans-serif;font-size:clamp(30px,4vw,48px);font-weight:650;letter-spacing:-.05em}.shared-entry-heading>p:last-child{margin:9px 0 0;color:#777d7a;font-size:12px;line-height:1.45}
.entry-adult-profiles{min-width:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.entry-adult-profiles button{position:relative;min-width:104px;min-height:58px;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:9px;padding:7px 12px 7px 8px;border:1px solid rgba(23,27,26,.1);border-radius:15px;background:rgba(255,255,255,.73);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.entry-adult-profiles button>span{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--profile-color);color:#fff;font-size:16px;font-weight:900}.entry-adult-profiles button>b{align-self:end;font-size:11px}.entry-adult-profiles button>small{align-self:start;color:#787e7b;font-size:7px;font-weight:700;text-transform:uppercase}.entry-adult-profiles button.selected{border-color:#263e3a;background:#fff;box-shadow:0 0 0 2px rgba(38,62,58,.08)}.entry-adult-profiles button.selected::after{content:"✓";position:absolute;top:4px;right:6px;color:#2f6c63;font-size:8px;font-weight:900}.entry-adult-profiles button:active{transform:scale(.97)}
.entry-pin-form{width:246px;display:flex;align-items:center;flex-direction:column}.entry-pin-form[hidden]{display:none}.entry-pin-display{height:15px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}.entry-pin-display i{width:9px;height:9px;border:1.5px solid #8a908d;border-radius:50%;background:transparent;transition:background .14s ease,border-color .14s ease,transform .14s ease}.entry-pin-display i.filled{border-color:#171b1a;background:#171b1a;transform:scale(1.1)}.entry-pin-display .entry-pin-slot-optional{display:none}.entry-pin-form.pin-long-code .entry-pin-slot-optional{display:block}.entry-pin-form.pin-error .entry-pin-display i{border-color:#bd5b50}.entry-pin-form.pin-error .entry-pin-display i.filled{background:#bd5b50}.entry-pin-keypad{width:226px;display:grid;grid-template-columns:repeat(3,58px);justify-content:space-between;gap:7px 0}.entry-pin-keypad button{width:58px;height:58px;min-height:0;border:1px solid rgba(23,27,26,.1);border-radius:50%;background:rgba(255,255,255,.86);color:#171b1a;font:inherit;font-size:21px;font-weight:500;cursor:pointer;touch-action:manipulation;box-shadow:none;transition:background .12s ease,transform .12s ease}.entry-pin-keypad button:active{background:#dbdedb;transform:scale(.93)}.entry-pin-keypad .entry-pin-action{border-color:transparent;background:transparent;color:#686e6b;font-size:9px;font-weight:650}.entry-pin-help{margin-top:10px;color:#858b88;font-size:8px}.entry-pin-error{max-width:250px;margin:8px 0 0;color:#9c4037;font-size:9px;font-weight:650;line-height:1.35;text-align:center}.entry-pin-submit{display:none;margin-top:7px;border:0;background:transparent;color:#5d6461;font-size:9px;text-decoration:underline;cursor:pointer}.entry-pin-form.pin-long-code .entry-pin-submit{display:block}.entry-pin-form.pin-verifying .entry-pin-keypad{opacity:.32;pointer-events:none}.entry-pin-form.pin-verifying .entry-pin-display{animation:shared-pin-check .55s ease-in-out infinite alternate}
.shared-entry-divider{position:relative;z-index:2;height:1px;background:rgba(255,255,255,.18)}.shared-entry-divider span{position:absolute;top:50%;left:50%;width:38px;height:24px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:99px;background:#17312f;color:rgba(255,255,255,.66);font-size:7px;font-weight:900;transform:translate(-50%,-50%)}
.shared-child-entry{min-height:45dvh;padding:29px max(22px,calc((100vw - 1000px)/2)) calc(28px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 0,#326f67 0,#17312f 52%,#07110f 100%);color:#fff;text-align:center}.shared-child-heading h2{margin:8px 0 4px;font-size:clamp(28px,5vw,46px);font-style:italic;letter-spacing:-.055em;line-height:1}.shared-child-heading>p:last-child{margin:0;color:rgba(255,255,255,.68);font-size:11px}.shared-child-entry .profile-grid{gap:14px;margin:22px auto 8px}.shared-child-entry .profile-card{width:128px;gap:8px}.shared-child-entry .profile-avatar{width:82px;height:82px;border-width:3px;border-radius:23px;font-size:35px;box-shadow:6px 6px 0 var(--yellow),0 15px 30px rgba(0,0,0,.22)}.shared-child-entry .profile-card strong{font-size:14px}.shared-child-entry .profile-card small{font-size:7px}.shared-child-entry .profile-footnote{margin-top:13px}.shared-child-entry .profile-device-badge{top:-14px;padding:4px 6px;font-size:6px}
@keyframes shared-pin-check{to{opacity:.4;transform:scale(.94)}}

@media(max-width:760px){
  .shared-profile-shell{display:block}.shared-parent-entry{min-height:auto;display:flex;align-items:center;flex-direction:column;gap:10px;padding:calc(15px + env(safe-area-inset-top)) 16px 15px;text-align:center}.shared-entry-heading{max-width:330px}.shared-entry-kicker{margin-bottom:4px;font-size:7px}.shared-entry-heading h1{font-size:25px}.shared-entry-heading>p:last-child{margin-top:4px;font-size:10px}.entry-adult-profiles{width:100%;max-width:390px;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:1px 2px 3px;scrollbar-width:none}.entry-adult-profiles::-webkit-scrollbar{display:none}.entry-adult-profiles button{flex:1 0 92px;min-width:92px;min-height:46px;grid-template-columns:31px minmax(0,1fr);column-gap:7px;padding:5px 8px 5px 6px;border-radius:12px}.entry-adult-profiles button>span{width:31px;height:31px;border-radius:9px;font-size:13px}.entry-adult-profiles button>b{font-size:9px}.entry-adult-profiles button>small{font-size:6px}.entry-pin-form{width:230px}.entry-pin-display{margin:1px 0 7px}.entry-pin-keypad{width:206px;grid-template-columns:repeat(3,52px);gap:4px 0}.entry-pin-keypad button{width:52px;height:52px;font-size:19px}.entry-pin-keypad .entry-pin-action{font-size:8px}.entry-pin-help{margin-top:6px;font-size:7px}.entry-pin-error{margin-top:5px;font-size:8px}.shared-child-entry{min-height:245px;padding:20px 12px calc(20px + env(safe-area-inset-bottom))}.shared-child-heading h2{margin-top:7px;font-size:28px}.shared-child-heading>p:last-child{font-size:9px}.shared-child-entry .profile-grid{justify-content:flex-start;flex-wrap:nowrap;gap:5px;margin:17px auto 7px;overflow-x:auto;padding:5px 8px 13px;scrollbar-width:none}.shared-child-entry .profile-grid::-webkit-scrollbar{display:none}.shared-child-entry .profile-grid.single-child{justify-content:center}.shared-child-entry .profile-card{flex:0 0 112px;width:112px}.shared-child-entry .profile-avatar{width:69px;height:69px;border-radius:19px;font-size:29px}.shared-child-entry .profile-card strong{font-size:12px}.shared-child-entry .profile-card small{padding:3px 6px;font-size:6px}.shared-child-entry .profile-footnote{margin-top:5px;font-size:8px}.shared-child-entry .profile-setup-button{width:calc(100% - 18px);max-width:390px;min-height:49px}.profile-gate .profile-kicker{font-size:8px}
}

@media(max-height:700px) and (max-width:760px){.shared-parent-entry{gap:6px;padding-top:calc(9px + env(safe-area-inset-top));padding-bottom:10px}.shared-entry-heading>p:last-child,.entry-pin-help{display:none}.entry-pin-keypad{width:184px;grid-template-columns:repeat(3,46px);gap:2px 0}.entry-pin-keypad button{width:46px;height:46px}.entry-pin-display{margin-bottom:3px}.shared-child-entry{min-height:220px;padding-top:15px}.shared-child-entry .profile-grid{margin-top:11px}}

/* Mode parent simple */
.parent-view-toggle{min-height:40px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fffdf8;color:var(--ink);font:inherit;font-size:10px;font-weight:850;cursor:pointer}.parent-view-toggle[aria-pressed="true"]{border-color:#304d48;background:#304d48;color:#fff}.parent-view-toggle[hidden]{display:none}
.simple-parent-dashboard{width:min(1080px,calc(100% - 40px));margin:38px auto 0;padding:28px;border:1px solid #d8dedb;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(32,48,45,.06)}.simple-parent-dashboard[hidden]{display:none}.simple-parent-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:21px;border-bottom:1px solid #e0e4e2}.simple-parent-heading p{margin:0 0 5px;color:#68716e;font-size:9px;font-weight:800;letter-spacing:.15em}.simple-parent-heading h1{margin:0;font-family:"Avenir Next",Avenir,system-ui,sans-serif;font-size:34px;font-weight:650;letter-spacing:-.045em}.simple-parent-heading>div>span{display:block;margin-top:5px;color:#6d7572;font-size:12px}.simple-parent-progress{min-width:155px;text-align:right}.simple-parent-progress span{color:#6d7572;font-size:9px}.simple-parent-progress strong{display:block;margin-top:2px;font-size:29px;font-weight:700;letter-spacing:-.04em}.simple-parent-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.simple-parent-summary article{padding:15px;border:1px solid #e0e4e2;border-radius:12px;background:#f7f8f7}.simple-parent-summary span,.simple-parent-summary small{display:block;color:#727a77;font-size:9px}.simple-parent-summary strong{display:block;margin:5px 0 3px;font-size:20px;font-weight:700}.simple-parent-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.simple-parent-actions button{min-height:66px;padding:12px 14px;border:1px solid #cfd6d3;border-radius:11px;background:#fff;color:#26322f;font:inherit;text-align:left;cursor:pointer}.simple-parent-actions button:hover{border-color:#687e79;background:#f7f9f8}.simple-parent-actions strong,.simple-parent-actions small{display:block}.simple-parent-actions strong{font-size:12px}.simple-parent-actions small{margin-top:4px;color:#707875;font-size:9px;line-height:1.3}.simple-parent-notice{margin:15px 0 0;padding:11px 13px;border-left:3px solid #5c7c74;background:#f2f6f4;color:#30433e;font-size:11px;line-height:1.4}.simple-parent-notice[hidden]{display:none}
.parent-simple-mode,.parent-simple-mode main{background:#f4f6f5}.parent-simple-mode *,.parent-simple-mode *::before,.parent-simple-mode *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.parent-simple-mode .ambient-playground,.parent-simple-mode .celebration-layer,.parent-simple-mode .fun-toast,.parent-simple-mode .hero,.parent-simple-mode .quest-hub,.parent-simple-mode footer{display:none!important}.parent-simple-mode .topbar{position:sticky;top:0;z-index:45;border-bottom:1px solid #d9dedc;background:rgba(255,255,255,.97);box-shadow:none;backdrop-filter:none}.parent-simple-mode .brand-mark{border-radius:10px;background:#304d48;box-shadow:none;transform:none}.parent-simple-mode .parent-button{display:none}.parent-simple-mode .objectives{padding:42px 20px 70px;background:#f4f6f5}.parent-simple-mode .section-heading{width:min(1080px,100%);margin:0 auto 18px}.parent-simple-mode .section-heading .kicker{color:#64706c}.parent-simple-mode .overall-summary{border:1px solid #d8dedb;background:#fff}.parent-simple-mode .cards-grid{width:min(1080px,100%);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 auto;border:0;background:transparent}.parent-simple-mode .goal-card{padding:19px;border:1px solid #d8dedb;border-radius:13px;background:#fff;box-shadow:none;transform:none}.parent-simple-mode .goal-card:hover{background:#fff;box-shadow:none;transform:none}.parent-simple-mode .goal-card::before,.parent-simple-mode .card-topline,.parent-simple-mode .card-eyebrow,.parent-simple-mode .card-description,.parent-simple-mode .mobile-edit-toggle,.parent-simple-mode .card-history{display:none!important}.parent-simple-mode .goal-card h3{min-height:0;margin:0;font-family:"Avenir Next",Avenir,system-ui,sans-serif;font-size:20px;font-style:normal;letter-spacing:-.025em}.parent-simple-mode .card-progress{margin-top:13px}.parent-simple-mode .progress-track{height:9px;border:0;background:#e4e8e6;box-shadow:none}.parent-simple-mode .progress-track i{background:#567c73;box-shadow:none}.parent-simple-mode .edit-panel{display:block!important;margin-top:16px;padding-top:16px;border-top:1px solid #e1e5e3}.parent-simple-mode .note-input,.parent-simple-mode .number-input{border-color:#d4dad7;background:#fff}.parent-simple-mode .quick-buttons button,.parent-simple-mode .save-manual{border:1px solid #c9d2ce;border-radius:9px;background:#eef2f0;color:#26322f;box-shadow:none}.parent-simple-mode .quick-buttons button.plus,.parent-simple-mode .quick-buttons button.boost{background:#304d48;color:#fff}.parent-simple-mode .quick-buttons button:active,.parent-simple-mode .save-manual:active{transform:none;box-shadow:none}.parent-simple-mode dialog{border-radius:12px!important;box-shadow:0 20px 65px rgba(20,31,28,.2)!important}.parent-simple-mode dialog::backdrop{background:rgba(26,35,33,.42)!important;backdrop-filter:none!important}.parent-simple-mode dialog .kicker,.parent-simple-mode .quest-editor-kicker,.parent-simple-mode .gift-editor-kicker{letter-spacing:.08em}.parent-simple-mode .family-dialog h2,.parent-simple-mode .quest-dialog h2,.parent-simple-mode .super-gift-dialog h2{font-family:"Avenir Next",Avenir,system-ui,sans-serif;font-style:normal;letter-spacing:-.035em}.parent-simple-mode .quest-library,.parent-simple-mode .gift-library{background:#f4f6f5}.parent-simple-mode .primary-button,.parent-simple-mode .quest-save-button,.parent-simple-mode .gift-save-button{border-radius:9px;box-shadow:none}
@media(max-width:760px){.parent-view-toggle{min-height:44px;padding:7px 9px;font-size:9px}.simple-parent-dashboard{width:calc(100% - 24px);margin-top:18px;padding:18px 14px;border-radius:14px}.simple-parent-heading{align-items:flex-start;gap:12px;padding-bottom:15px}.simple-parent-heading h1{font-size:25px}.simple-parent-heading>div>span{font-size:10px}.simple-parent-progress{min-width:90px}.simple-parent-progress span{font-size:7px}.simple-parent-progress strong{font-size:23px}.simple-parent-summary{grid-template-columns:1fr;gap:7px;margin-top:13px}.simple-parent-summary article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:11px}.simple-parent-summary strong{grid-row:1/3;grid-column:2;margin:0;font-size:19px}.simple-parent-summary small{margin-top:3px}.simple-parent-actions{grid-template-columns:1fr;gap:7px;margin-top:12px}.simple-parent-actions button{min-height:58px}.parent-simple-mode .topbar{padding-inline:10px}.parent-simple-mode .brand strong{font-size:12px}.parent-simple-mode .top-actions{gap:4px}.parent-simple-mode .profile-switch-button,.parent-simple-mode .logout-button{width:42px}.parent-simple-mode .objectives{padding:32px 12px 55px}.parent-simple-mode .section-heading{grid-template-columns:minmax(0,1fr) auto}.parent-simple-mode .section-heading h2{font-size:29px}.parent-simple-mode .cards-grid{grid-template-columns:1fr}.parent-simple-mode .goal-card{padding:17px}.parent-simple-mode .edit-panel{margin-top:14px;padding-top:14px}.parent-simple-mode .family-dialog,.parent-simple-mode .quest-dialog,.parent-simple-mode .super-gift-dialog{border-radius:0!important}}
.parent-simple-mode .overall-summary{display:none}
/* Adult point entry: addition first, absolute correction explicitly separated. */
.points-help,.points-preview{margin:12px 0 8px;font-size:12px;line-height:1.5;color:var(--muted)}
.points-add-form{margin-top:15px}.edit-panel .points-add-form label,.edit-panel .points-correction-form label{display:block;margin-bottom:7px;font-size:12px;font-weight:700;line-height:1.4}
.points-entry-row{display:flex;align-items:stretch;gap:8px}.points-entry-row input{width:84px;min-width:0;min-height:46px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:16px}
.points-entry-row button{flex:1;min-width:0;min-height:46px;padding:10px 12px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:#fff;font:inherit;font-size:13px;font-weight:750;line-height:1.3;cursor:pointer;touch-action:manipulation}
.points-entry-row button:disabled{opacity:.45;cursor:default}.points-preview{min-height:36px;margin:7px 0 0}
.points-correction{margin-top:14px;padding-top:7px;border-top:1px solid var(--line)}.points-correction summary{min-height:44px;padding:12px 0;color:var(--muted);font-size:12px;cursor:pointer}.points-correction>p{margin:0 0 12px;font-size:12px;line-height:1.5;color:#804431}.points-correction .save-manual{background:#fff;color:#804431;border-color:#d4bdb5;box-shadow:none}
.points-feedback{margin:12px 0 0;padding:10px 12px;border-radius:9px;background:#edf5ef;color:#28543c;font-size:13px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}.points-feedback.is-error{background:#fff0ec;color:#923c29}.points-feedback[hidden]{display:none}
.parent-history{margin-top:14px;border-top:1px solid #e1e5e3}.parent-history summary{min-height:44px;padding:13px 0;color:#56665f;font-size:12px;cursor:pointer}.parent-history ol{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto}.parent-history li{display:grid;gap:5px;padding:10px 0;border-top:1px solid #e9edea;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.parent-history small,.parent-history-empty{color:#68716e;font-size:11px}
.simple-quest-validation{margin-top:22px;padding-top:18px;border-top:1px solid #e0e4e2}.simple-quest-validation h2{margin:0 0 12px;font-size:17px;font-weight:650}.simple-quest-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e8edea}.simple-quest-row>div:first-child{min-width:0}.simple-quest-row strong{display:block;font-size:13px;overflow-wrap:anywhere}.simple-quest-row small{display:block;margin-top:5px;color:#68716e;font-size:11px}.simple-quest-buttons{display:flex;flex-wrap:wrap;gap:7px;flex-shrink:0}.simple-quest-buttons button{min-height:44px;padding:9px 13px;border:1px solid #304d48;border-radius:8px;background:#304d48;color:#fff;font:inherit;font-size:12px;cursor:pointer}.simple-quest-buttons button.secondary{background:#fff;color:#52645d;border-color:#ccd6d0}.simple-quest-buttons button:disabled{opacity:.5}
.parent-simple-mode .add-points-button{background:#304d48;border-color:#304d48}.parent-simple-mode .points-correction .save-manual{background:#fff;color:#804431;border-color:#d4bdb5}.parent-simple-mode .edit-panel>label{font-size:12px}
#simple-quest-list{max-height:320px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.category-bonus{margin:10px 0 0;padding:9px 11px;border-radius:9px;background:#edf5ef;color:#28543c;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.category-bonus b{display:block}.points-bonus-rule{margin:0 0 10px;color:var(--muted);font-size:12px;line-height:1.5}.console-screen strong{font-size:clamp(28px,4vw,42px)}.road-status strong{font-size:clamp(24px,5vw,40px);overflow-wrap:anywhere}.simple-parent-progress strong{font-size:clamp(21px,3vw,29px)}
@media(max-width:760px){.edit-panel>.points-help{font-size:12px}.simple-quest-row{align-items:flex-start;flex-direction:column}.simple-quest-buttons{width:100%}.simple-quest-buttons button{flex:1}.points-entry-row input{width:76px}.points-entry-row button{min-height:48px}.edit-panel .quick-buttons button{min-height:48px;font-size:19px}}
@media(max-width:760px){.parent-simple-mode .brand>span:last-child{display:none}.parent-simple-mode .child-switcher{max-width:78px}.parent-simple-mode .section-heading{display:block}}

/* Explorateur des goûts — the family palette, with a small space expedition. */
.food-explorer{position:relative;width:min(1180px,calc(100% - 40px));margin:28px auto 12px;padding:30px 24px 22px;border:2px solid #294d47;border-radius:28px;background:radial-gradient(ellipse at 80% 0,rgba(229,185,77,.16),transparent 50%),#142e2b;color:#fffaf0;overflow:hidden;isolation:isolate}
.food-explorer[hidden]{display:none}.food-explorer::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.3;background-image:radial-gradient(#fff 1px,transparent 1px),radial-gradient(#e5b94d 1px,transparent 1px);background-size:59px 73px,113px 89px;background-position:7px 12px,24px 31px;pointer-events:none}
.food-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.food-heading .kicker{margin:0 0 10px;color:#e5b94d;font-size:10px;letter-spacing:.12em}.food-heading h2{margin:0;font-size:clamp(28px,4vw,46px);line-height:1.05;letter-spacing:-.045em;font-weight:900}.food-heading h2 em{display:block;color:#e5b94d;font-style:normal}.food-heading>div>p:last-child{margin:13px 0 0;font-size:13px;line-height:1.5;color:#c6d5ca}.food-passport{flex:none;padding:15px 19px;border:1px solid #5c7967;border-radius:16px;background:#203c35;transform:rotate(3deg);text-align:center}.food-passport>span,.food-passport>b{display:block;font-size:9px;letter-spacing:.04em}.food-passport strong{display:block;color:#e5b94d;font-size:42px;line-height:1.3}.food-passport small{font-size:20px;color:#afc4b4}
.food-orbit-map{position:relative;display:flex;justify-content:space-around;gap:14px;max-width:650px;margin:28px auto 25px}.food-orbit-map::before{content:"";position:absolute;top:23px;left:8%;right:8%;border-top:2px dashed #6c8175;z-index:-1}.food-orbit-map>span{text-align:center}.food-orbit-map i{display:grid;place-items:center;width:48px;height:48px;border:2px solid var(--planet);border-radius:50%;background:#193630;font-size:25px;font-style:normal;box-shadow:0 0 18px color-mix(in srgb,var(--planet) 22%,transparent)}.food-orbit-map .visited i{color:#152e29;background:var(--planet)}.food-orbit-map b{display:block;margin-top:6px;color:#a8b9ad;font-size:10px}
.food-install{display:grid;grid-template-columns:1.5fr 1fr .8fr;gap:14px;padding:18px;margin-bottom:22px;border:1px solid #5c7967;border-radius:16px;background:#f3f6ee;color:#203930}.food-install>div{grid-column:1/-1}.food-install strong{font-size:15px}.food-install p{margin:6px 0 0;font-size:12px;line-height:1.5}.food-install label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700}.food-install select,.food-note-label input{min-width:0;width:100%;height:48px;padding:9px 11px;border:1px solid #c9d4cb;border-radius:9px;background:#fff;color:#24352c;font:inherit;font-size:16px}.food-install button{align-self:end;min-height:48px;padding:10px;border:0;border-radius:10px;background:#304d48;color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.food-mission-grid{display:grid;grid-template-columns:repeat(5,minmax(215px,1fr));gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding:5px 3px 18px;scrollbar-color:#688877 #142e2b;scrollbar-width:thin}.food-mission{position:relative;display:flex;flex-direction:column;min-width:0;padding:16px;border:2px solid var(--planet);border-radius:20px;background:linear-gradient(160deg,color-mix(in srgb,var(--planet) 14%,#fffaf0),#fffaf0 48%);color:#203930;scroll-snap-align:start;box-shadow:0 5px 0 color-mix(in srgb,var(--planet) 50%,#182d27);animation:food-card-arrive .5s both;animation-delay:calc(var(--mission-order)*70ms)}.food-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:28px}.food-card-top span{font-size:9px;font-weight:900;white-space:nowrap}.food-card-top b{font-size:8px;text-align:right;line-height:1.4;text-transform:uppercase}.food-mission.explored .food-card-top b{color:#2b7054}.food-mission h3{margin:4px 0 0;font-size:21px;letter-spacing:-.04em;line-height:1.08;min-height:46px}.food-description{margin:12px 0;font-size:12px;line-height:1.55;flex:1}.food-planet{position:relative;display:grid;place-items:center;height:124px;margin:7px 0}.food-planet::before{content:"";position:absolute;width:95px;height:95px;border-radius:50%;background:radial-gradient(circle at 30% 20%,#fff,var(--planet) 55%,color-mix(in srgb,var(--planet) 50%,#243c30));box-shadow:inset -9px -10px 16px #1b33242b,0 12px 20px #20393018}.food-planet i{position:absolute;width:142px;height:49px;border:2px solid color-mix(in srgb,var(--planet) 70%,#354b3e);border-radius:50%;transform:rotate(-25deg)}.food-planet span{position:relative;font-size:51px;filter:drop-shadow(0 7px 5px #20393038);animation:food-float 4s ease-in-out infinite;animation-delay:calc(var(--mission-order)*-.7s)}.food-planet b{position:absolute;right:6px;top:15px;color:var(--planet);font-size:25px;animation:food-star 3s ease-in-out infinite}.food-reward{margin:4px 0 12px;padding:8px;border-radius:8px;background:color-mix(in srgb,var(--planet) 20%,#fff);font-size:11px;font-weight:800;line-height:1.4}
.food-start,.food-review button,.food-launch,.food-send{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:11px;border:2px solid #203930;border-radius:10px;background:#304d48;color:#fff;font:inherit;font-size:12px;font-weight:850;line-height:1.4;box-shadow:0 3px 0 #172d25;cursor:pointer;touch-action:manipulation}.food-start span{margin-left:auto;font-size:21px}.food-start:active,.food-launch:active,.food-send:active{transform:translateY(2px);box-shadow:none}.food-edit,.food-back{min-height:44px;padding:10px 0;border:0;background:transparent;color:#566d61;font:inherit;font-size:11px;text-decoration:underline;cursor:pointer}.food-card-state{font-size:12px;font-weight:800;line-height:1.5}.food-attempt-summary{font-size:12px;line-height:1.5;overflow-wrap:anywhere}.food-review{display:grid;gap:8px}.food-review button:last-child{background:transparent;color:#304d48;box-shadow:none;border:1px solid #a8b9ad}.food-journal{border-top:1px solid #cbd6cd;margin-top:14px;font-size:12px}.food-journal summary{padding:13px 0;min-height:44px;cursor:pointer;font-weight:750}.food-journal ol{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto}.food-journal li{padding:10px 0;border-top:1px dashed #cbd6cd}.food-journal p{margin:5px 0;line-height:1.5;overflow-wrap:anywhere}.food-journal time,.food-journal>small{font-size:10px;color:#63766b}
.food-fear-guide{padding:2px 0;border-top:1px solid #4d6558}.food-fear-guide summary{padding:15px 0;min-height:48px;font-size:13px;font-weight:750;cursor:pointer}.food-fear-guide>p{margin:12px 0;font-size:12px;color:#c6d5ca;line-height:1.5}.food-fear-legend{display:flex;justify-content:space-between;gap:10px}.food-fear-legend span{font-size:25px;text-align:center}.food-fear-legend b{display:block;font-size:10px;line-height:1.4;margin-top:6px}
.food-mission-dialog{width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:24px;background:#fffaf0;color:#203930;overflow:auto;overscroll-behavior:contain}.food-mission-dialog::backdrop{background:#102a24cf;backdrop-filter:blur(6px)}.food-mission-dialog form{position:relative;padding:30px 25px}.food-dialog-close{position:absolute;right:12px;top:10px;width:44px;height:44px;border:0;border-radius:50%;background:#e8eee5;color:#203930;font-size:25px;cursor:pointer}.food-mission-dialog .kicker{max-width:calc(100% - 35px);font-size:10px}.food-dialog-icon{font-size:52px;margin:15px 0}.food-mission-dialog h2{margin:0;font-size:30px;line-height:1.12;letter-spacing:-.04em}.food-mission-dialog p{font-size:13px;line-height:1.6}.food-tip{padding:12px;border-left:3px solid var(--planet);background:#f0f3e9}.food-fear-field,.food-reaction-field{min-width:0;margin:22px 0 18px;padding:0;border:0}.food-fear-field legend,.food-reaction-field legend{font-size:16px;font-weight:800}.food-fear-field>p{color:#65786b;margin:6px 0 12px}.food-fear-scale{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.food-fear-scale label,.food-reaction-field label{position:relative;cursor:pointer}.food-fear-scale input,.food-reaction-field input{position:absolute;width:1px;height:1px;opacity:0}.food-fear-scale span{display:grid;place-items:center;min-height:49px;border:2px solid hsl(var(--fear-hue) 40% 72%);border-radius:12px;background:hsl(var(--fear-hue) 58% 94%);color:#263c30;font-size:20px;font-weight:800}.food-fear-scale input:checked+span{border:3px solid #203930;background:hsl(var(--fear-hue) 62% 74%);box-shadow:0 3px 0 #203930;transform:translateY(-2px)}.food-fear-scale input:focus-visible+span,.food-reaction-field input:focus-visible+span{outline:3px solid #507cba;outline-offset:3px}.food-reaction-field{display:grid;gap:8px}.food-reaction-field legend{margin-bottom:12px}.food-reaction-field span{display:block;min-height:46px;padding:12px;border:1px solid #c9d4cb;border-radius:10px;font-size:14px}.food-reaction-field input:checked+span{background:#e1ecdf;border:2px solid #304d48}.food-note-label{display:grid;gap:7px;font-size:12px;font-weight:700}.food-kind-note{color:#65786b}.food-before-recap{padding:10px;border-radius:10px;background:#edf2e9}.food-inline-error{grid-column:1/-1;color:#ab3e30!important;background:#ffefea;padding:10px;border-radius:8px}.food-inline-error[hidden],.food-before-step[hidden],.food-after-step[hidden]{display:none}.food-explorer button:disabled,.food-mission-dialog button:disabled{opacity:.5;cursor:wait}
@keyframes food-float{50%{transform:translateY(-7px) rotate(5deg)}}@keyframes food-star{50%{transform:scale(1.3) rotate(20deg);opacity:.5}}@keyframes food-card-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.parent-simple-mode .food-explorer{background:#fff;color:#26322f;border:1px solid #d8dedb;border-radius:16px;box-shadow:none;max-width:1080px}.parent-simple-mode .food-explorer::before,.parent-simple-mode .food-orbit-map,.parent-simple-mode .food-planet,.parent-simple-mode .food-dialog-icon{display:none}.parent-simple-mode .food-heading h2{font-size:25px}.parent-simple-mode .food-heading h2 em{display:inline;color:inherit}.parent-simple-mode .food-heading p,.parent-simple-mode .food-fear-guide>p{color:#68716e}.parent-simple-mode .food-passport{background:#f4f6f5;border-color:#d8dedb;transform:none}.parent-simple-mode .food-passport strong{color:#304d48;font-size:28px}.parent-simple-mode .food-mission-grid{grid-template-columns:repeat(auto-fit,minmax(235px,1fr));overflow:visible;scroll-snap-type:none}.parent-simple-mode .food-mission{border:1px solid #d8dedb;border-radius:12px;background:#fff;box-shadow:none}.parent-simple-mode .food-mission h3{min-height:0;font-size:18px;margin-top:10px}.parent-simple-mode .food-card-top b{display:none}.parent-simple-mode .food-start,.parent-simple-mode .food-review button,.parent-simple-mode .food-launch,.parent-simple-mode .food-send{box-shadow:none}.parent-simple-mode .food-fear-guide{border-color:#d8dedb}.parent-simple-mode .food-mission-dialog{background:#fff}
@media(max-width:760px){.food-explorer{width:calc(100% - 24px);padding:21px 14px 15px;border-radius:20px}.food-heading{align-items:flex-start;gap:10px}.food-heading .kicker{font-size:8px}.food-heading h2{font-size:29px}.food-heading>div>p:last-child{font-size:12px}.food-passport{padding:10px;max-width:110px}.food-passport>span,.food-passport>b{font-size:8px;line-height:1.5}.food-passport strong{font-size:31px}.food-mission-grid{grid-template-columns:repeat(5,minmax(245px,80vw));gap:12px}.food-mission h3{font-size:24px}.food-description{font-size:13px}.food-install{grid-template-columns:1fr;padding:14px;gap:12px}.food-install>div{grid-column:auto}.food-install button{width:100%}.food-fear-legend{gap:5px}.food-fear-legend b{font-size:9px}.food-mission-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.food-mission-dialog form{padding:calc(20px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom))}.food-dialog-close{top:calc(10px + env(safe-area-inset-top))}.food-fear-scale{gap:7px}.food-fear-scale span{min-height:46px}.parent-simple-mode .food-mission-grid{grid-template-columns:minmax(0,1fr)}.parent-simple-mode .food-heading h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){.food-explorer *,.food-mission-dialog *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep navigation compact; full action names belong in the menu, not pseudo-labels. */
.topbar>.brand{flex:1;min-width:0;overflow:hidden}
.topbar .brand-mark{flex:0 0 auto}
.topbar .brand>span:last-child{min-width:0;overflow:hidden}
.topbar .brand strong,.topbar .brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .top-actions{flex:0 0 auto;min-width:0}
.topbar .child-switcher{width:clamp(100px,30vw,150px);min-width:0;max-width:150px;min-height:44px;font-size:16px}
.app-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 15px;border:1px solid var(--line);border-radius:999px;background:var(--green-dark);color:#fff;font:inherit;font-size:14px;font-weight:750;cursor:pointer;white-space:nowrap}
.app-menu-toggle svg{flex:none}
.app-menu-toggle[hidden]{display:none}
.app-menu-dialog{position:fixed;inset:0;width:min(440px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--paper);color:var(--ink);overflow:auto;overscroll-behavior:contain;box-shadow:0 24px 80px #17272733}
.app-menu-dialog::backdrop{background:#17272766}
.app-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.app-menu-heading>div{min-width:0}
.app-menu-heading p{margin:0 0 5px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.app-menu-heading h2{margin:0;font-size:26px;letter-spacing:-.04em}
.app-menu-close{flex:none;min-width:44px;min-height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font:inherit;font-size:27px;cursor:pointer}
.app-menu-actions{display:grid;gap:18px}
.app-menu-group{display:grid;gap:8px}
.app-menu-group[hidden]{display:none}
.app-menu-group-title{margin:0 0 2px 4px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.app-menu-actions button,.parent-simple-mode .app-menu-actions button{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;max-width:none;min-height:56px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit;font-size:16px;font-weight:650;line-height:1.3;text-align:left;white-space:normal;cursor:pointer;box-shadow:none;transform:none;animation:none;transition:none}
.app-menu-actions button:hover,.app-menu-actions button:active{background:var(--mint);transform:none;box-shadow:none}
.app-menu-actions button::after{content:none}
.app-menu-actions button[hidden]{display:none!important}
.app-menu-label{display:grid;gap:2px;min-width:0}
.app-menu-label strong{font-size:16px;font-weight:750}
.app-menu-label small{color:var(--muted);font-size:13px;font-weight:500;line-height:1.35}
.app-menu-switch{position:relative;flex:none;width:46px;height:28px;border-radius:14px;background:#d5ddd6;transition:background .2s ease}
.app-menu-switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #17272740;transition:transform .2s ease}
#parent-view-toggle[aria-pressed=true] .app-menu-switch{background:var(--green-dark)}
#parent-view-toggle[aria-pressed=true] .app-menu-switch::after{transform:translateX(18px)}
.parent-simple-mode .app-menu-switch,.parent-simple-mode .app-menu-switch::after{transition:none}
@media(prefers-reduced-motion:reduce){.app-menu-switch,.app-menu-switch::after{transition:none}}
.app-menu-actions>#logout-button{justify-content:center;min-height:48px;border-color:transparent;background:transparent;color:#94463c;font-weight:750}
@media(max-width:640px){
  .topbar,.parent-simple-mode .topbar{padding-left:max(15px,env(safe-area-inset-left));padding-right:max(15px,env(safe-area-inset-right))}
  .topbar .brand-mark{width:32px;height:32px}
  .topbar .brand>span:last-child{display:flex}
  .topbar .brand strong{font-size:13px}
  .app-menu-toggle{gap:6px;padding:10px 12px}
  .app-menu-dialog{inset:auto 0 0;width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - 20px);margin:0;border-radius:24px 24px 0 0;padding:22px max(20px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
}

/* Parent reconnu : grandes touches et retour visuel local, sans déplacer la page. */
.shared-parent-entry{grid-template-columns:minmax(0,1fr) minmax(280px,400px);row-gap:18px}
.shared-entry-heading,.entry-adult-profiles{grid-column:1}
.entry-adult-profiles[hidden]{display:none}
.entry-pin-form{grid-column:2;grid-row:1/3;width:100%;max-width:480px;min-width:0;justify-self:center}
.entry-pin-display{height:20px;gap:16px;margin:4px 0 20px}
.entry-pin-display i{width:12px;height:12px}
.entry-pin-keypad{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.entry-pin-keypad button{position:relative;width:100%;height:68px;min-height:56px;border-radius:19px;border-color:#dce2dc;background:#fff;font-size:29px;font-weight:600;overflow:visible;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 0 rgba(28,60,48,.05)}
.entry-pin-keypad button:focus-visible{outline:3px solid #dfb74e;outline-offset:3px}
.entry-pin-keypad button:active{background:#dcece5;transform:scale(.96)}
.entry-pin-keypad .entry-pin-action{font-size:13px;background:#e9eeea;border-color:transparent;color:#48635b;box-shadow:none}
.entry-pin-keypad [data-entry-pin-action="delete"]{font-size:25px}
.entry-pin-help{margin-top:13px;font-size:11px;color:#66746d}
.entry-pin-error{max-width:100%;margin-top:12px;font-size:13px}
.entry-pin-submit{min-height:44px;font-size:14px}
.entry-pin-form.calm-keypad button{transition:none}
.entry-pin-form.calm-keypad button:active{transform:none}
.pin-tap-burst{position:absolute;inset:0;z-index:2;pointer-events:none}
.pin-tap-star{position:absolute;left:50%;top:50%;width:11px;height:11px;background:#dfb74e;clip-path:polygon(50% 0,62% 34%,98% 35%,70% 58%,80% 94%,50% 73%,20% 94%,30% 58%,2% 35%,38% 34%);animation:entry-pin-spark .48s ease-out both}
.pin-tap-star:nth-child(2n){width:8px;height:8px;background:#37796b}
@keyframes entry-pin-spark{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0)}20%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--spark-x)),calc(-50% + var(--spark-y))) scale(.35) rotate(var(--spark-turn))}}
@media(max-width:760px){
  .shared-profile-shell{display:flex;flex-direction:column;min-height:100dvh}
  .shared-parent-entry{flex:0 0 auto;gap:10px;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}
  .shared-entry-heading{max-width:430px}
  .shared-entry-kicker,.shared-entry-heading>p:last-child{display:none}
  .shared-entry-heading h1{font-size:28px;line-height:1.2;overflow-wrap:anywhere}
  .entry-adult-profiles{max-width:480px}
  .entry-adult-profiles button{min-height:48px}
  .entry-adult-profiles button>b{font-size:13px}
  .entry-adult-profiles button>small{font-size:8px}
  .entry-pin-display{height:16px;margin:2px 0 12px}
  .entry-pin-keypad{gap:6px}
  .entry-pin-keypad button{height:clamp(44px,7dvh,60px);min-height:44px;border-radius:16px;font-size:26px}
  .entry-pin-help{display:block;margin-top:9px;font-size:10px}
  .shared-entry-divider{flex:0 0 1px}
  .shared-child-entry{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 12px max(10px,env(safe-area-inset-bottom))}
  .shared-child-heading h2{margin:7px 0 0;font-size:26px;line-height:1.1}
  .shared-child-heading>p:last-child,.shared-child-entry .profile-footnote{display:none}
  .shared-child-entry .profile-grid{width:100%;max-width:480px;flex-shrink:0;gap:10px;margin:12px auto 0;padding:4px 6px 8px}
  .shared-child-entry .profile-card{flex:0 0 156px;width:156px;min-height:66px;display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:12px;padding:9px 12px;border:1px solid #ffffff30;border-radius:18px;background:#ffffff0d;text-align:left}
  .shared-child-entry .profile-grid.single-child .profile-card{flex-basis:240px;max-width:100%}
  .shared-child-entry .profile-avatar{width:46px;height:46px;border-radius:14px;font-size:24px;box-shadow:4px 4px 0 var(--yellow)}
  .shared-child-entry .profile-card strong{min-width:0;overflow-wrap:anywhere;font-size:15px;line-height:1.2}
  .shared-child-entry .profile-card small{display:none}
  .shared-child-entry .profile-help-links{margin-top:4px;gap:4px 14px}
  .shared-child-entry .profile-help-links a,.shared-child-entry .profile-help-links button{color:#c1d4cc;font-size:11px}
}
@media(max-height:640px) and (max-width:760px){
  .shared-parent-entry{gap:8px;padding-top:max(10px,env(safe-area-inset-top));padding-bottom:12px}
  .shared-entry-heading h1{font-size:25px}
  .entry-pin-display{margin-bottom:9px}
  .shared-child-entry{padding-top:18px}
  .shared-child-heading .profile-kicker{display:none}
  .shared-child-heading h2{margin-top:0;font-size:23px}
  .shared-child-entry .profile-grid{margin-top:8px}
}
@media(prefers-reduced-motion:reduce){.pin-tap-burst{display:none}.entry-pin-keypad button:active{transform:none}}

/* Les toasts informent sans jamais bloquer les onglets ou boutons qu’ils recouvrent. */
.fun-toast{pointer-events:none}
/* Bienvenue adulte : plein écran, même direction artistique que le chargement (fond qui tourne). */
.welcome-splash{position:fixed;z-index:1100;inset:0;display:grid;place-items:center;overflow:hidden;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 46%,#24564f 0,#101e1d 40%,#060d0c 80%);color:#fff;text-align:center;font-family:"Avenir Next",Avenir,system-ui,sans-serif;isolation:isolate;cursor:pointer;-webkit-tap-highlight-color:transparent;animation:welcome-in .3s ease-out both}
.welcome-splash.leaving{animation:welcome-out .45s cubic-bezier(.7,0,.9,.35) forwards}
.welcome-splash::before{content:"";position:absolute;z-index:5;inset:0;background:repeating-linear-gradient(0deg,transparent 0 4px,rgba(0,0,0,.2) 4px 6px);pointer-events:none;animation:boot-scan .28s linear infinite}
.welcome-rays{position:absolute;z-index:0;left:50%;top:50%;width:200vmax;height:200vmax;margin:-100vmax 0 0 -100vmax;background:repeating-conic-gradient(from 0deg,rgba(229,185,77,.2) 0 6deg,transparent 6deg 18deg);-webkit-mask-image:radial-gradient(circle,#000 0,transparent 58%);mask-image:radial-gradient(circle,#000 0,transparent 58%);animation:welcome-spin 7s linear infinite}
.welcome-rays.reverse{background:repeating-conic-gradient(from 9deg,rgba(92,143,184,.16) 0 3deg,transparent 3deg 24deg);animation-duration:11s;animation-direction:reverse}
.welcome-ring{position:absolute;z-index:1;left:50%;top:50%;width:62vmin;height:62vmin;margin:-31vmin 0 0 -31vmin;border:2px solid rgba(229,185,77,.42);border-radius:50%;box-shadow:0 0 0 7vmin rgba(229,185,77,.05),0 0 0 14vmin rgba(233,113,97,.04),0 0 90px rgba(92,143,184,.3);animation:welcome-ring 1.2s cubic-bezier(.1,.82,.2,1) both,boot-reactor 1.6s 1.2s ease-in-out infinite}
.welcome-ring.dashed{width:80vmin;height:80vmin;margin:-40vmin 0 0 -40vmin;border:2px dashed rgba(255,255,255,.16);box-shadow:none;animation:welcome-ring 1.4s .08s cubic-bezier(.1,.82,.2,1) both,welcome-spin 14s linear infinite}
.welcome-sparks{position:absolute;z-index:2;inset:0;pointer-events:none}
.welcome-sparks i{position:absolute;left:50%;top:50%;width:34vmin;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,#e5b94d 60%,#fff);transform-origin:0 50%;opacity:0;animation:welcome-spark .9s calc(.18s + var(--d)) cubic-bezier(.1,.8,.2,1) both}
.welcome-content{position:relative;z-index:6;display:grid;justify-items:center;gap:8px;max-width:520px}
.welcome-kicker{margin:0;color:#e5b94d;font-size:11px;font-weight:900;letter-spacing:.3em;animation:welcome-pop .45s .08s both}
.welcome-mark{width:88px;height:88px;margin:10px 0 4px;display:grid;place-items:center;border-radius:50% 48% 52% 46%;background:var(--green,#2f6c63);color:#fff;font-size:40px;font-weight:900;box-shadow:0 0 0 9px rgba(255,255,255,.06),0 0 46px rgba(229,185,77,.4);animation:welcome-mark .75s .04s cubic-bezier(.1,.92,.16,1.25) both}
.welcome-title{margin:0;font-size:clamp(38px,12vw,84px);line-height:.92;font-weight:900;letter-spacing:-.05em;text-transform:uppercase;text-shadow:0 8px 30px rgba(0,0,0,.45);animation:welcome-slam .72s .16s cubic-bezier(.1,.92,.16,1) both}
.welcome-title em{display:block;margin-top:4px;color:#e5b94d;font-style:italic;overflow-wrap:anywhere}
.welcome-sub{max-width:310px;margin:8px 0 0;color:rgba(255,255,255,.8);font-size:15px;line-height:1.4;animation:welcome-pop .45s .5s both}
.welcome-skip{margin:16px 0 0;color:rgba(255,255,255,.42);font-size:10px;font-weight:800;letter-spacing:.24em;animation:welcome-pop .4s .9s both}
@keyframes welcome-in{from{opacity:0}to{opacity:1}}
@keyframes welcome-out{to{opacity:0;transform:scale(1.08);filter:blur(6px)}}
@keyframes welcome-spin{to{transform:rotate(360deg)}}
@keyframes welcome-ring{from{opacity:0;transform:scale(.15)}60%{opacity:1}to{opacity:1;transform:scale(1)}}
@keyframes welcome-slam{from{opacity:0;transform:scale(2.3);filter:blur(14px) brightness(2)}55%{opacity:1;transform:scale(.94);filter:none}to{transform:scale(1)}}
@keyframes welcome-mark{from{opacity:0;transform:scale(.2) rotate(-50deg)}to{opacity:1;transform:scale(1) rotate(-7deg)}}
@keyframes welcome-pop{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes welcome-spark{0%{opacity:0;transform:rotate(var(--a)) translateX(4vmin) scaleX(.1)}25%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateX(38vmin) scaleX(1)}}
@media(prefers-reduced-motion:reduce){.welcome-splash{display:none!important}}
/* Archivage des quêtes : balayage vers la droite dans le jeu, boutons dans « Gérer », annulation possible. */
.weekly-missions{position:relative}
.custom-quest-card.swipe-archivable{touch-action:pan-y;-webkit-user-select:none;user-select:none}
.custom-quest-card.swiping{z-index:2;box-shadow:0 14px 30px rgba(23,39,39,.18)}
.custom-quest-card.archiving{pointer-events:none}
.quest-swipe-bg{position:absolute;z-index:1;display:flex;align-items:center;gap:10px;padding-left:20px;border-radius:15px;background:#6f7f79;color:#fff;font-size:14px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;pointer-events:none;opacity:calc(.4 + var(--swipe,0) * .6)}
.quest-swipe-bg span{font-size:22px;transform:scale(calc(.7 + var(--swipe,0) * .5))}
.quest-swipe-bg.ready{background:#214e49}
.quest-swipe-hint{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-style:normal;font-weight:700;letter-spacing:0;text-transform:none}
.undo-bar{position:fixed;z-index:130;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));width:min(420px,calc(100% - 24px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 16px;border-radius:16px;background:#172727;color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.28);font-size:14px;font-weight:700;opacity:0;transform:translate(-50%,16px);transition:opacity .2s ease,transform .2s ease}
.undo-bar.visible{opacity:1;transform:translate(-50%,0)}
.undo-bar span{min-width:0;overflow-wrap:anywhere}
.undo-bar button{flex:none;min-height:44px;padding:8px 16px;border:0;border-radius:12px;background:#e5b94d;color:#172727;font:inherit;font-weight:900;cursor:pointer}
.parent-simple-mode .undo-bar{transition:none}
@media(prefers-reduced-motion:reduce){.undo-bar{transition:none}}
.quest-library-actions{grid-column:2/-1;display:flex;gap:6px}
.quest-library-actions button{flex:1;min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.quest-library-actions [data-archive="0"]{border-color:var(--green);background:var(--green);color:#fff}
.quest-library-archived{margin:14px 2px 6px;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
/* Explorateur des goûts : planètes de la diététicienne, variantes à explorer et contrat de l’équipage. */
.food-orbit-map{flex-wrap:wrap;row-gap:10px}
.food-group-title{margin:26px 0 10px;color:#e5b94d;font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.food-variants{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none}
.food-variants li{padding:5px 9px;border:1px dashed color-mix(in srgb,var(--planet) 55%,#6c8175);border-radius:999px;color:#cfdcd2;font-size:12px;font-weight:700}
.food-variants li.explored{border-style:solid;background:var(--planet);color:#152e29}
.food-parent-tip{margin:10px 0 0;padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.08);color:#dfe8e1;font-size:12px;line-height:1.4}
.food-charter{margin:4px 0 18px;padding:16px 18px;border:1px solid rgba(229,185,77,.45);border-radius:18px;background:linear-gradient(135deg,rgba(229,185,77,.14),rgba(117,169,139,.1))}
.food-charter .kicker{margin:0 0 10px;color:#e5b94d}
.food-charter ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.food-charter li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:start}
.food-charter li>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.12);font-size:20px}
.food-charter strong{display:block;color:#fff;font-size:15px}
.food-charter p{margin:2px 0 0;color:#dfe8e1;font-size:14px;line-height:1.4}
.food-variant-field{min-width:0;margin:18px 0 6px;padding:0;border:0}
.food-variant-field legend{margin-bottom:10px;font-size:16px;font-weight:800}
.food-variant-field>div{display:flex;flex-wrap:wrap;gap:8px}
.food-variant-field label{position:relative;cursor:pointer}
.food-variant-field input{position:absolute;width:1px;height:1px;opacity:0}
.food-variant-field span{display:flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid #c9d4cb;border-radius:999px;font-size:14px}
.food-variant-field input:checked+span{border-color:var(--planet);background:color-mix(in srgb,var(--planet) 22%,#fff);font-weight:800}
.food-variant-field input:focus-visible+span{outline:3px solid #507cba;outline-offset:3px}
@media(max-width:760px){.food-mission-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(245px,80vw);overflow-x:auto}}
/* Suivi diététique : partage d’un enfant avec la diététicienne par code, retrait possible. */
.practitioner-dialog{width:min(520px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:22px;background:var(--paper);color:var(--ink);overflow:auto}
.practitioner-dialog::backdrop{background:#17272766}
.practitioner-sheet{position:relative;padding:22px 22px 6px}
.practitioner-link{padding-top:6px;padding-bottom:22px;border-top:1px solid var(--line)}
.practitioner-close{position:absolute;top:14px;right:14px;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:24px;cursor:pointer}
.practitioner-sheet .kicker{margin:0 0 6px;color:var(--green);font-size:11px;font-weight:900;letter-spacing:.14em}
.practitioner-sheet h2{margin:0 48px 8px 0;font-size:22px;line-height:1.2}
.practitioner-intro,.practitioner-empty{color:var(--muted);font-size:14px;line-height:1.45}
.practitioner-notice{padding:10px 12px;border-radius:12px;background:var(--mint);color:var(--green-dark);font-size:14px;font-weight:700}
.practitioner-list{display:grid;gap:10px;margin:12px 0;padding:0;list-style:none}
.practitioner-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.practitioner-list small{display:block;color:var(--muted);font-size:12px}
.practitioner-list p{margin:4px 0 0;font-size:14px}
.practitioner-list button,.practitioner-link button,.practitioner-proposal button,.practitioner-pending button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-weight:800;cursor:pointer}
.practitioner-link h3{margin:16px 0 4px;font-size:17px}
.practitioner-link label,.practitioner-proposal label{display:grid;gap:6px;margin:12px 0;font-size:14px;font-weight:700}
.practitioner-link select,.practitioner-link input,.practitioner-proposal select{min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:16px}
.practitioner-link button[type=submit],.practitioner-proposal button[type=submit]{width:100%;border-color:var(--green);background:var(--green);color:#fff}
.practitioner-error{color:#94463c;font-size:14px;font-weight:700}
.practitioner-proposal{margin:12px 0;padding:14px;border:2px solid var(--green);border-radius:16px;background:var(--mint)}
.practitioner-proposal p{margin:4px 0;font-size:15px;line-height:1.4}
.practitioner-who small{display:block;color:var(--muted);font-size:12px}
.practitioner-actions{display:grid;gap:8px}
.practitioner-pending{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.practitioner-pending li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;font-size:14px}
/* Grand objectif choisi par la famille : la console reste pour un jeu vidéo, sinon une médaille porte son image. */
.goal-emoji{display:none}
.console-shape.is-medal .joy{display:none}
.console-shape.is-medal .console-screen{width:236px;height:236px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fffaf0,#f6d7a7 58%,#e5b94d);box-shadow:inset 0 0 0 8px rgba(255,255,255,.45),0 0 0 10px var(--coral)}
.console-shape.is-medal .goal-emoji{display:block;margin-bottom:2px;font-size:58px;line-height:1}
.console-shape.is-medal .console-screen strong{font-size:40px}
/* Démarrage et connexion : visuel neutre Family Quest (petite planète) plutôt qu'une console. */
.boot-mini-joy{display:none}.boot-mini-console b{width:46px;height:46px;border-radius:50%}
.auth-joy{display:none}.auth-screen{width:150px;height:150px;border-radius:50%}
.goal-picker{min-width:0;margin:12px 0 0;padding:0;border:0}
.goal-picker legend{margin-bottom:6px;padding:0;color:var(--muted);font-size:12px;font-weight:900}
.goal-kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.goal-picker .goal-kind{position:relative;display:grid;justify-items:center;align-content:center;gap:2px;min-height:66px;margin:0;padding:8px 4px;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font-size:inherit;text-align:center;text-transform:none;cursor:pointer}
.goal-kind input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;opacity:0;cursor:pointer}
.goal-kind span{font-size:26px;line-height:1.1}
.goal-kind small{color:var(--ink);font-size:11px;font-weight:800;line-height:1.2}
.goal-kind:has(input:checked){border-color:var(--green);background:var(--mint);box-shadow:2px 3px 0 var(--green)}
.goal-kind:has(input:focus-visible){outline:3px solid var(--coral);outline-offset:2px}
.goal-ideas{margin-top:8px}
.goal-ideas summary{display:flex;align-items:center;min-height:44px;color:var(--green);font-size:13px;font-weight:900;cursor:pointer}
.goal-ideas div{display:flex;flex-wrap:wrap;gap:8px}
.goal-ideas button{min-height:44px;padding:8px 12px;border:1px dashed var(--green);border-radius:12px;background:var(--mint);color:var(--green-dark);font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.goal-ideas p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
@media(max-width:640px){.console-shape.is-medal .console-screen{width:212px;height:212px}.goal-visual:has(.is-medal) .progress-stamp{right:0;bottom:-26px}}
