*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#dceff0;color:#183c50;font-family:'Segoe UI',Arial,sans-serif;-webkit-tap-highlight-color:transparent}body{overscroll-behavior:none}button,a,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #efad56;outline-offset:3px}#game-app{height:100dvh;min-height:320px;position:relative;isolation:isolate}#scene{position:absolute;inset:0;touch-action:none}#scene canvas{display:block;width:100%;height:100%;touch-action:none}.hud-top{position:absolute;top:max(12px,env(safe-area-inset-top));left:14px;right:14px;display:flex;gap:9px;align-items:center;pointer-events:none}.hud-top>*{pointer-events:auto}.round{height:46px;min-width:46px;border:1px solid #ffffffd9;background:#ffffffe8;border-radius:17px;display:grid;place-items:center;font-size:28px;text-decoration:none;box-shadow:0 5px 20px #234f6c10;color:#224b5c}.return{font-size:38px;line-height:1}.location{flex:1;line-height:1.25;text-shadow:0 1px 8px #fff}.location span{display:block;font-size:10px;letter-spacing:1.5px;font-weight:750}.location strong{display:block;font-size:20px;margin-top:4px}.quest-card{position:absolute;top:calc(max(12px,env(safe-area-inset-top)) + 62px);left:16px;max-width:min(325px,calc(100% - 32px));border:1px solid #ffffffea;border-radius:20px;background:#ffffffde;backdrop-filter:blur(12px);padding:13px 17px;text-align:left;box-shadow:0 8px 30px #35676c0f}.quest-card>span{display:block;font-size:12px;color:#54717b}.quest-card>span:first-child{font-size:10px;letter-spacing:1.4px;font-weight:750;color:#508677}.quest-card strong{font-size:17px;display:block;margin:5px 0 6px}.quest-card #quest-track{display:flex;gap:5px;margin-top:9px}.quest-card #quest-track:empty{display:none}.quest-card #quest-track i{height:5px;flex:1;border-radius:8px;background:#cfdfdf}.quest-card #quest-track i.done{background:#3d9d92}.save-status{position:absolute;top:calc(max(12px,env(safe-area-inset-top)) + 60px);right:16px;color:#446977;font-size:11px}.touch-hint{position:absolute;left:20px;right:20px;bottom:244px;text-align:center;font-size:12px;color:#375e6c;text-shadow:0 1px 4px #ffffff}.bottom-hud{position:absolute;left:0;right:0;bottom:max(12px,env(safe-area-inset-bottom));padding:0 16px;pointer-events:none}.bottom-hud button,.bottom-hud #joystick{pointer-events:auto}.toudou-line{max-width:580px;margin:0 auto 10px;display:flex;align-items:center;gap:10px;padding:9px 11px 9px 7px;background:#ffffffe8;backdrop-filter:blur(14px);border:1px solid #fff;border-radius:19px;box-shadow:0 8px 30px #294c6a12}.toudou-line img{width:40px;height:46px;object-fit:contain;flex-shrink:0}.toudou-line p{font-size:13px;line-height:1.4;margin:0;flex:1;max-height:55px;overflow:auto;pointer-events:auto}.toudou-line button{background:#e1f2f2;border:0;border-radius:12px;padding:10px;min-height:44px;font-size:12px;font-weight:650}.touch-controls{max-width:650px;margin:auto;display:flex;align-items:center;justify-content:space-between;position:relative;height:140px}.action-button{border:2px solid #ffffffbd;border-radius:50%;width:98px;height:98px;background:linear-gradient(150deg,#359fb6,#137e98);box-shadow:0 7px 0 #0d60702e,0 12px 30px #183d611c;color:#fff;font-weight:650;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:13px;padding:7px}.action-button span:last-child{font-size:27px}.action-button:active{transform:translateY(3px)}#joystick{width:122px;height:122px;border-radius:50%;position:relative;touch-action:none;user-select:none;background:#ffffff53;border:1px solid #ffffffe8;box-shadow:inset 0 0 30px #c1e0df6b;display:grid;place-items:center}#stick{width:55px;height:55px;border-radius:50%;background:#fffffff0;box-shadow:0 7px 17px #36606b27;border:2px solid #fff;position:absolute;pointer-events:none}.joy-ring{border:1px dashed #79a6b4;width:92px;height:92px;border-radius:50%;opacity:.6}.joy-label{position:absolute;bottom:7px;font-size:10px;letter-spacing:.6px;pointer-events:none;color:#496b79}.recenter{background:#ffffffb8;align-self:flex-end;margin-bottom:14px;height:44px;min-width:44px;font-size:26px}.loading{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#e4f4f7;gap:15px}.loading img{width:130px;height:160px;object-fit:contain}.loading strong{font-size:21px}.loading p{margin:0;max-width:300px;text-align:center}.loading button,.loading a{padding:14px;border-radius:12px;border:0;background:white;color:#185b72}.loading[hidden]{display:none}dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,570px);max-width:100%;max-height:85dvh;border:0;border-radius:30px 30px 0 0;padding:22px 24px calc(24px + env(safe-area-inset-bottom));background:#fcfefc;color:#183c50;box-shadow:0 -12px 70px #183b6a29;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#173e5828;backdrop-filter:blur(3px)}.dialog-grip{height:4px;width:42px;background:#c2d7d7;border-radius:5px;margin:-10px auto 24px}.dialog-close{position:absolute;right:14px;top:15px;background:#eef5f4;box-shadow:none;border:0;font-size:27px}dialog .eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:700;color:#658984;margin:0 48px 9px 0}dialog h1,dialog h2{font-size:27px;line-height:1.2;letter-spacing:-.7px;margin:0 40px 14px 0;font-weight:700}dialog p{font-size:16px;line-height:1.6;margin:14px 0}dialog .muted{font-size:13px;color:#607982;line-height:1.5}dialog .choices{display:grid;gap:10px;margin:20px 0 0}dialog .choice{border:1px solid #ccdedc;background:#f3f8f6;border-radius:17px;padding:15px 16px;min-height:54px;text-align:left;font-size:15px;line-height:1.45;display:flex;align-items:center;gap:12px;transition:background .15s}.choice .letter{font-size:11px;color:#58827c;background:#e1efeb;width:26px;height:26px;flex:none;border-radius:9px;display:grid;place-items:center}.choice:active{background:#dcefeb}.choice strong{display:block}.primary{background:#1b859a!important;color:white!important;border-color:#1b859a!important;justify-content:center;font-weight:650;text-align:center!important}.secondary{background:white!important}.dialog-avatar{width:62px;height:70px;object-fit:contain;float:right;margin:25px 0 10px 15px}.map-worlds{display:flex;gap:7px;overflow:auto;margin:18px -4px 15px;padding:4px}.map-worlds button{flex:none;padding:11px 14px;border:1px solid #c9dfdc;border-radius:14px;background:#f0f6f3;min-height:44px;font-size:14px}.map-worlds button.active{background:#1b859a;color:white;border-color:#1b859a}.map-list{display:grid;gap:9px}.map-list button{border:1px solid #d6e3df;background:#fff;border-radius:16px;padding:13px 14px;text-align:left;display:flex;align-items:center;gap:12px;min-height:58px}.map-list b{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#e5f0eb;font-size:12px;flex:none}.map-list span{font-size:14px;line-height:1.4}.map-list small{display:block;color:#63827e;font-size:11px;margin-top:3px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #e0eae5;padding:16px 0;font-size:15px}.setting-row input{width:24px;height:24px;accent-color:#16879a;flex:none}.mode-buttons{display:flex;gap:10px;margin:12px 0}.mode-buttons button{flex:1;border:1px solid #c9dfdc;border-radius:14px;background:#eef6f2;padding:13px;font-size:14px;min-height:50px}.mode-buttons button.active{background:#1b859a;color:#fff}.help-links{display:grid;gap:10px;margin:20px 0}.help-links a{display:block;text-align:center;text-decoration:none;border-radius:15px;padding:15px;background:#e4f0ef;color:#185567;font-size:16px;min-height:50px}.exercise-step{display:flex;gap:12px;align-items:flex-start;margin:13px 0;font-size:15px;line-height:1.5}.exercise-step b{flex:none;width:28px;height:28px;border-radius:50%;background:#deeeea;display:grid;place-items:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:800px){.hud-top{left:28px;right:28px;top:24px}.quest-card{left:28px;top:90px}.bottom-hud{padding:0 28px;bottom:24px}.touch-controls{max-width:none}.toudou-line{max-width:470px;position:absolute;left:50%;transform:translateX(-50%);bottom:8px;width:calc(100% - 380px)}.touch-hint{bottom:180px}.recenter{position:absolute;right:126px;bottom:10px}.save-status{top:90px;right:28px}}@media(max-height:550px){.quest-card{top:72px;max-width:270px;padding:10px 14px}.quest-card strong{font-size:15px}.quest-card #quest-instruction{font-size:11px}.quest-card #quest-track{margin-top:5px}.touch-controls{height:110px;max-width:none}#joystick{width:96px;height:96px}.joy-ring{width:75px;height:75px}#stick{width:43px;height:43px}.action-button{width:82px;height:82px}.bottom-hud{bottom:8px}.toudou-line{position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:calc(100% - 260px);margin:0}.toudou-line p{font-size:12px;max-height:48px}.toudou-line img{width:30px;height:36px}.touch-hint{display:none}.recenter{position:absolute;right:100px;bottom:70px}.hud-top{top:8px}dialog{max-height:94dvh}.save-status{display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:799px){.save-status{top:60px;font-size:10px}.location span{font-size:11px}.joy-label{font-size:12px}.quest-card>span:first-child{font-size:11px}}

/* Univers C'OK satiné — Toudou guide, le joueur incarne un personnage distinct */
html,body{background:#e8f7ff}#game-app{background:radial-gradient(circle at 50% 20%,#fff 0,#e9f9ff 42%,#e7eefc 100%)}#scene{z-index:0}.scene-sheen{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 5%,rgba(255,255,255,.32),transparent 34%),linear-gradient(135deg,rgba(139,235,226,.08),transparent 42%,rgba(198,172,244,.08));mix-blend-mode:screen}.hud-top,.quest-card,.save-status,.touch-hint,.bottom-hud{z-index:4}
.round{border-color:rgba(255,255,255,.92);background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(235,248,255,.88));box-shadow:inset 0 1px 1px #fff,0 9px 24px rgba(53,86,132,.14)}
.player-badge{height:50px;display:flex;align-items:center;gap:7px;padding:3px 12px 3px 3px;border:1px solid rgba(255,255,255,.96);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(235,229,255,.9));box-shadow:inset 0 1px 1px #fff,0 9px 24px rgba(83,65,140,.13)}.player-badge img{width:43px;height:43px;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(74,80,135,.2))}.player-badge span{display:flex;flex-direction:column}.player-badge small{font-size:8px;letter-spacing:1.2px;color:#7560b0;font-weight:800}.player-badge strong{font-size:11px;white-space:nowrap;color:#344e70}
.quest-card{border-color:rgba(255,255,255,.96);background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(238,250,255,.86));box-shadow:inset 0 1px 1px #fff,0 14px 34px rgba(55,73,125,.14)}.quest-card #quest-track i{background:#dce6ef}.quest-card #quest-track i.done{background:linear-gradient(90deg,#55cec2,#967ce0);box-shadow:0 2px 7px rgba(91,107,193,.24)}
.toudou-line{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(231,247,255,.9));border-color:#fff;box-shadow:inset 0 1px 1px #fff,0 12px 34px rgba(42,78,124,.16)}.toudou-line img{filter:drop-shadow(0 6px 8px rgba(39,104,153,.2))}.toudou-line button{background:linear-gradient(135deg,#dff8f4,#e9e2ff);color:#295e78;box-shadow:inset 0 1px 0 #fff}
.action-button{border-color:rgba(255,255,255,.9);background:linear-gradient(145deg,#48d0c4 0%,#269fc4 52%,#7162d1 100%);box-shadow:inset 0 2px 2px rgba(255,255,255,.7),0 8px 0 rgba(58,82,153,.12),0 16px 36px rgba(42,84,149,.24)}#joystick{background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(220,243,255,.5));box-shadow:inset 4px 5px 18px rgba(255,255,255,.7),inset -6px -7px 22px rgba(86,146,184,.15),0 13px 30px rgba(59,92,139,.12)}#stick{background:linear-gradient(145deg,#fff,#dff5f6);box-shadow:inset 1px 1px 1px #fff,0 8px 18px rgba(54,96,121,.24)}
.loading{background:radial-gradient(circle at 50% 34%,#fff 0,#e9faff 45%,#ece8ff 100%)}.loading-cast{position:relative;width:250px;height:190px}.loading-cast img{position:absolute!important;object-fit:contain!important}.loading-cast .loading-toudou{width:145px;height:170px;left:6px;bottom:0;filter:drop-shadow(0 13px 18px rgba(40,111,154,.2))}.loading-cast .loading-player{width:128px;height:145px;right:0;bottom:-1px;filter:drop-shadow(0 13px 18px rgba(81,82,145,.2))}
.player-intro{display:flex;align-items:center;gap:14px;padding:10px 14px;margin:4px 0 16px;border:1px solid #dedaf3;border-radius:18px;background:linear-gradient(135deg,#f5f1ff,#ebfbf8)}.player-intro img{width:74px;height:74px;object-fit:contain;flex:none;filter:drop-shadow(0 7px 8px rgba(75,76,132,.16))}.player-intro p{margin:0;font-size:14px;line-height:1.45}
dialog{background:linear-gradient(160deg,#fff 0%,#f8fcff 55%,#f6f1ff 100%);box-shadow:inset 0 1px 0 #fff,0 -14px 70px rgba(45,58,112,.2)}dialog .choice{background:linear-gradient(145deg,#fff,#eef8f7);box-shadow:inset 0 1px 0 #fff,0 5px 13px rgba(52,86,102,.06)}
@media(max-width:680px){.player-badge span{display:none}.player-badge{width:46px;padding:2px}.player-badge img{width:40px;height:40px}.hud-top{gap:7px}.location strong{font-size:17px}.location span{font-size:8px}.loading-cast{width:220px;height:175px}.loading-cast .loading-toudou{width:130px;height:155px}.loading-cast .loading-player{width:112px;height:130px}}

/* Direction plus réaliste et plus adulte */
html,body{background:#dce6e8;color:#233e49}#game-app{background:radial-gradient(circle at 50% 15%,#f7faf9 0,#dfe9e9 52%,#ccd9dc 100%)}.scene-sheen{background:radial-gradient(circle at 50% 4%,rgba(255,255,255,.2),transparent 30%),linear-gradient(135deg,rgba(112,158,160,.04),transparent 48%,rgba(92,107,130,.05));mix-blend-mode:soft-light}.location{color:#233b45}.location span{color:#56727a}.round{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(230,237,238,.92));border-color:rgba(255,255,255,.86);box-shadow:inset 0 1px 0 #fff,0 8px 22px rgba(45,65,72,.14)}.player-badge{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(229,236,236,.93));border-color:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 8px 22px rgba(45,65,72,.13)}.player-badge small{color:#647b82}.player-badge strong{color:#344c55}.quest-card{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(233,239,239,.92));box-shadow:inset 0 1px 0 #fff,0 13px 30px rgba(37,56,63,.14)}.quest-card>span:first-child{color:#55766f}.quest-card #quest-track i.done{background:linear-gradient(90deg,#638f88,#497686);box-shadow:none}.toudou-line{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(232,239,239,.93));box-shadow:inset 0 1px 0 #fff,0 11px 30px rgba(37,57,64,.15)}.toudou-line button{background:#dce9e7;color:#315c62;box-shadow:none}.action-button{background:linear-gradient(145deg,#568f8a 0%,#347383 58%,#2f5367 100%);box-shadow:inset 0 1px 1px rgba(255,255,255,.5),0 7px 0 rgba(35,58,68,.12),0 15px 32px rgba(32,60,70,.23)}#joystick{background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(213,225,226,.57));box-shadow:inset 3px 4px 15px rgba(255,255,255,.62),inset -5px -6px 18px rgba(67,93,99,.12),0 12px 26px rgba(42,63,69,.11)}.loading{background:radial-gradient(circle at 50% 34%,#f9fbfa 0,#e4ecec 52%,#d6dfe1 100%)}dialog{background:linear-gradient(160deg,#fff 0%,#f3f6f5 100%);color:#253f49;box-shadow:inset 0 1px 0 #fff,0 -14px 65px rgba(35,51,58,.22)}dialog .choice{background:linear-gradient(145deg,#fff,#edf2f1);border-color:#d0dcda;box-shadow:inset 0 1px 0 #fff,0 4px 11px rgba(42,63,66,.06)}.primary{background:#3f7880!important;border-color:#3f7880!important}.player-intro{background:linear-gradient(135deg,#f5f7f6,#e6eeee);border-color:#d4dddd}
