*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent-cool: #8ecae6;--dark-grey: #252525;--text-light: #ffffff;--bg-main: #ffffff;--text-main: #1f1f1f;--accent: #bcd7f9;--accent-soft: #003550;--err: var(--brand);--warm: #ffd166;--sky1: #c9e8f7;--sky2: #e8f4fb;--surface: #fff0e6;--text: var(--dark-grey);--muted: var(--brand-soft);--radius: 14px;--card-radius: 18px;--shadow: 0 4px 24px #f0703022;--shadow-md: 0 8px 40px #f0703033;--plunge-chrome-h: 180px;--simon-chrome-h: 200px;--mem-chrome-h: 180px}body.page-memory,body.page-plunge,body.page-simon,body.page-skyfall{overflow:hidden;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;color:var(--text);font-family:Bellota,cursive,sans-serif;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}body.page-plunge{overflow:visible;overscroll-behavior:none}main{display:flex;flex-direction:column;align-items:center;width:100%;flex:1 1 auto;min-height:0;padding:clamp(4px,1dvh,12px) 10px clamp(8px,1.5dvh,18px);padding-left:4px;padding-right:4px;overflow:hidden}body.is-mobile main{position:relative;top:var(--mobile-header-height);left:0;width:100vw;height:calc(100dvh - var(--mobile-header-height));max-height:calc(100dvh - var(--mobile-header-height));min-height:0;overflow:hidden}body.is-desktop main{position:relative;top:0;left:0;width:100vw;height:100dvh;max-height:100dvh;min-height:0;overflow:hidden}body.is-desktop.horizontal-nav main{top:var(--navbar-height, 0);height:calc(100dvh - var(--navbar-height, 0));max-height:calc(100dvh - var(--navbar-height, 0));width:100vw}body.is-desktop:not(.horizontal-nav) main{top:0;left:0;width:calc(100vw - 2 * var(--sidebar-width))}@media(orientation:landscape){body.is-mobile.page-memory main,body.is-mobile.page-plunge main,body.is-mobile.page-simon main,body.is-mobile.page-skyfall main{top:0;left:0;height:100dvh;max-height:100dvh;min-height:0;width:calc(100vw - 2 * var(--sidebar-width));margin-left:0;overflow:hidden}}.page-title{font-family:Leckerli One,cursive;font-size:clamp(1.2rem,5dvh,3.2rem);color:var(--brand);text-align:center;line-height:1;letter-spacing:.01em;flex-shrink:0;padding-top:clamp(7px,1.5dvh,24px);padding-bottom:clamp(3px,1.5dvh,32px);text-shadow:0 2px 16px #f0703018;position:relative;z-index:3}.game-div{position:relative;display:flex;flex-direction:column;align-items:center;flex:1 1 0;min-height:0;width:100%;justify-content:center;gap:clamp(4px,1.2dvh,16px);overflow:hidden}.game-div .scorebar,.game-div #hud,.game-div #simon-status,.game-div #plunge-timer-bar,.game-div .msg,.game-div .btn{flex-shrink:0;margin:0}.game-div .btn:last-of-type{margin-bottom:0}.game-div #memory-grid,.game-div #simon-grid,.game-div #plunge-grid-wrap,.game-div #plunge-grid,.game-div #canvas-wrap{flex-shrink:1;flex-grow:0;margin:0 auto}.jeux-modal-backdrop{position:fixed;inset:0;background:#00000050;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:100;padding:16px}.jeux-modal-backdrop.show{display:flex}.jeux-modal-content{position:relative;background:#fff0f5;border:3px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-md);padding:clamp(16px,3dvh,32px) clamp(20px,5vw,40px) clamp(20px,3dvh,36px);width:fit-content;max-width:min(94vw,440px);max-height:min(82dvh,580px);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;align-items:center;gap:clamp(10px,2dvh,20px);animation:jeux-modalSlideIn .3s cubic-bezier(.2,.9,.3,1);user-select:text;-webkit-user-select:text}.jeux-modal-close{position:sticky;top:0;align-self:flex-end;z-index:1;margin-bottom:-32px;width:32px;height:32px;font-size:1.2rem;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;font-family:Bellota,cursive;user-select:none;-webkit-user-select:none;transition:transform .15s;color:#999!important}.jeux-modal-close:hover{transform:scale(1.1)}.end-title{font-family:Leckerli One,cursive;font-size:clamp(1.4rem,5vw,2.6rem);color:var(--brand);text-align:center;line-height:1.1;margin:clamp(2px,.5dvh,8px) 0 clamp(8px,2dvh,20px);padding:0 8px}.end-rating{font-family:Bellota,cursive;font-size:clamp(.85rem,2.5vw,1.8rem);color:var(--brand);font-weight:900;text-align:center;line-height:1.1;margin:0 0 clamp(4px,1dvh,12px)}.end-stats{display:flex;flex-wrap:nowrap;gap:clamp(8px,2.5vw,18px);justify-content:center;width:100%}.end-stat{display:flex;flex-direction:column;align-items:center;gap:clamp(2px,.5dvh,6px);background:#fff;border:2px solid var(--border);border-radius:14px;padding:clamp(6px,1.8dvh,14px) clamp(4px,1.5vw,24px);box-shadow:0 2px 12px #f0703018;flex:1;min-width:0}.end-stat-val{font-family:Leckerli One,cursive;font-size:clamp(.95rem,4dvh,1.9rem);color:var(--brand);line-height:1;white-space:nowrap}.end-stat-lbl{font-family:Bellota,cursive;font-weight:700;font-size:clamp(.55rem,min(1.4vw,1.4dvh),.82rem);color:var(--warm);text-transform:uppercase;letter-spacing:.05em;text-align:center;white-space:normal;word-break:break-word;overflow-wrap:break-word}@keyframes jeux-modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.title-medal-wrap{display:flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0}.title-medal{width:clamp(28px,5dvh,52px);height:clamp(28px,5dvh,52px);object-fit:contain;pointer-events:none;flex-shrink:0;animation:medalPop .4s cubic-bezier(.22,1,.36,1)}.title-medal--left,.title-medal--right{display:block}@keyframes medalPop{0%{transform:translateY(-50%) scale(.4);opacity:0}to{transform:translateY(-50%) scale(1);opacity:1}}.end-achievement{display:flex;align-items:center;justify-content:center;gap:10px;font-family:Bellota,cursive;font-weight:900;font-size:clamp(.8rem,2.5dvh,1.1rem);text-align:center;width:100%;padding:clamp(6px,1.5dvh,12px) 12px;border-radius:12px;margin-top:clamp(4px,1dvh,10px)}.end-achievement--none{color:var(--brand);background:#f5f5f5;border:2px dashed var(--border);opacity:.75}.end-achievement--medal{background:linear-gradient(135deg,#fff8e7,#fff0cc);border:2px solid var(--warm);color:var(--brand);animation:medalPop .4s cubic-bezier(.22,1,.36,1)}.end-achievement__img{width:clamp(28px,5dvh,44px);height:clamp(28px,5dvh,44px);object-fit:contain;flex-shrink:0}.end-achievement__text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.3}.end-achievement__new{font-size:clamp(.6rem,1.8dvh,.78rem);color:var(--brand);text-transform:uppercase;letter-spacing:.08em;font-weight:900}.scorebar,#hud{flex-shrink:0;display:flex;align-items:center;flex-wrap:nowrap;justify-content:center;font-family:Bellota,cursive;font-weight:700;color:var(--accent-soft);background:#fffb;border:2px solid var(--border);border-radius:100px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;max-width:100%;overflow:hidden;font-size:clamp(.62rem,2.2dvh,.95rem);padding:clamp(3px,.8dvh,7px) clamp(8px,2vw,22px);gap:clamp(4px,1vw,12px)}.score-val,#hud .val{font-family:Leckerli One,cursive;font-size:clamp(.72rem,2.5dvh,1.25rem);color:var(--brand)}.sep,#hud .sep{opacity:.4}.sound-toggle{background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;padding:0 2px;color:var(--accent-soft);opacity:.7;transition:opacity .15s,transform .15s;display:flex;align-items:center;-webkit-user-select:none;user-select:none;flex-shrink:0}.sound-toggle:hover{opacity:1;transform:scale(1.15)}.sound-toggle.muted{opacity:.35}.sound-toggle[aria-pressed=true] .icon-sound-on{display:inline}.sound-toggle[aria-pressed=true] .icon-sound-off,.sound-toggle[aria-pressed=false] .icon-sound-on{display:none}.sound-toggle[aria-pressed=false] .icon-sound-off{display:inline}.msg{flex-shrink:0;font-family:Bellota,cursive;font-size:clamp(.7rem,2.5dvh,2rem);font-weight:900;color:var(--brand);text-align:center;min-height:1.2em;line-height:1.25;padding:0 8px;transition:color .2s}.msg.ok{color:var(--accent-orange)}.msg.err{color:var(--err)}.msg.info{color:var(--brand)}@media(max-height:500px){body.page-memory .msg,body.page-plunge .msg,body.page-simon .msg{display:none}}.btn{flex-shrink:0;font-family:Leckerli One,cursive;font-size:clamp(.7rem,2dvh,1.25rem);padding:clamp(4px,1.2dvh,10px) clamp(12px,3vw,32px);border-radius:100px;border:2px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;box-shadow:0 4px 18px #f0703038;letter-spacing:.02em;white-space:nowrap;text-align:center;margin-bottom:clamp(6px,1.5dvh,16px)}.btn:hover{transform:scale(1.04) translateY(-2px);box-shadow:0 8px 28px #f0703050;background:var(--warm);border-color:var(--warm)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none;box-shadow:none}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}#memory-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(1px,min(.3vw,.3vh),3px);margin:0 auto;align-self:center;justify-self:center;flex-shrink:0;flex-grow:0;overflow:visible}@media(orientation:portrait){#memory-grid{grid-template-columns:repeat(4,1fr);gap:clamp(2px,min(.45vw,.45vh),4px)}}@media(orientation:landscape){#memory-grid{grid-template-columns:repeat(6,1fr);gap:clamp(1px,min(.3vw,.3vh),3px)}}.mem-card{aspect-ratio:1 / 1;border-radius:var(--card-radius);border:2px solid var(--accent);background:transparent;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none;transition:border-color .15s,opacity .3s;will-change:transform}@media(hover:hover)and (pointer:fine){.mem-card:hover:not(.matched):not(.flipped){border-color:var(--accent-soft)}}.mem-card:focus-visible{outline:2px solid var(--accent-orange);outline-offset:1px}.mem-card.matched{border-color:var(--accent-orange);opacity:.72;pointer-events:none}.mem-card .face,.mem-card .back{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:calc(var(--card-radius) - 2px);overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .5s cubic-bezier(.22,1,.36,1);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.mem-card .face{background:url(/jeux/memory/cards.webp) center center / cover no-repeat;transform:perspective(600px) rotateY(0)}.mem-card .back{background:#fff;transform:perspective(600px) rotateY(180deg)}.mem-card.flipped .face,.mem-card.matched .face{transform:perspective(600px) rotateY(-180deg)}.mem-card.flipped .back,.mem-card.matched .back{transform:perspective(600px) rotateY(0)}.mem-card .back img{width:88%;height:88%;object-fit:contain;pointer-events:none;display:block;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}#plunge-timer-bar{flex-shrink:0;height:10px;border-radius:5px;background:#fffb;border:2px solid var(--border);overflow:hidden;width:min(calc(100% - 8px),calc(100dvh - var(--plunge-chrome-h)))}body.is-desktop.horizontal-nav #plunge-timer-bar{width:min(calc(100% - 8px),calc(100dvh - var(--plunge-chrome-h) - var(--navbar-height, 0px)))}body.is-desktop:not(.horizontal-nav) #plunge-timer-bar{width:min(calc(100% - 8px),calc(100dvh - var(--plunge-chrome-h)))}@media(orientation:portrait){body.is-mobile #plunge-timer-bar{width:min(calc(100% - 8px),calc(100dvh - var(--plunge-chrome-h)))}}@media(orientation:landscape){body.is-mobile #plunge-timer-bar{width:min(calc(100% - 8px),calc(100dvh - var(--plunge-chrome-h)))}}#plunge-timer-fill{height:100%;width:0%;background:var(--accent-orange);border-radius:3px;transition:width .1s linear}#plunge-grid-wrap{--plunge-scene-opacity: .85;position:relative;display:block;overflow:visible;isolation:isolate}@media(orientation:portrait){body.is-mobile.page-plunge #plunge-grid-wrap{height:min(calc(100dvh - var(--plunge-chrome-h)),calc(100% - 8px));width:min(calc(100dvh - var(--plunge-chrome-h)),calc(100% - 8px))}}#plunge-grid-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:var(--plunge-scene-opacity);pointer-events:none;z-index:0}#plunge-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,2.5vw,36px);width:100%;height:100%;padding:clamp(8px,1.5vw,20px)}body.page-plunge .game-div .scorebar,body.page-plunge .game-div #plunge-timer-bar,body.page-plunge .game-div .msg,body.page-plunge .game-div .btn{position:relative;z-index:2}body.page-plunge.plunge-bg-crop #plunge-grid-wrap{overflow:hidden;border:2px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow)}body.page-plunge.plunge-hide-circle .hole,body.page-plunge.plunge-hide-circle .hole.up{border-color:transparent;box-shadow:none}body.page-plunge.plunge-hide-circle .hole.plungeed{border-color:var(--err);box-shadow:none}body.page-plunge.plunge-hide-hit-ring .hole.plungeed{border-color:var(--border);box-shadow:inset 0 6px 22px #00000065,inset 0 -2px 6px #7b4a2030,0 5px 14px #00000020}body.page-plunge.plunge-hide-circle.plunge-hide-hit-ring .hole.plungeed{border-color:transparent;box-shadow:none}.hole{width:100%;aspect-ratio:1 / 1;border-radius:50%;border:3px solid var(--border);box-shadow:inset 0 6px 22px #00000065,inset 0 -2px 6px #7b4a2030,0 5px 14px #00000020;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;position:relative;cursor:inherit;-webkit-user-select:none;user-select:none;transition:border-color .12s,box-shadow .12s}.hole:active{cursor:url(/jeux/plunge/CursorFistSmall.webp) 12 12,pointer}.hole.up{border-color:var(--accent);box-shadow:inset 0 6px 22px #00000065,0 0 22px #f0703038}.hole.plungeed{border-color:var(--err);box-shadow:inset 0 6px 22px #00000065,0 0 16px #d9404050}.plunge-face{position:absolute;bottom:-115%;left:50%;transform:translate(-50%);width:72%;height:92%;display:flex;align-items:flex-end;justify-content:center;transition:bottom .22s cubic-bezier(.22,1,.36,1);pointer-events:none;z-index:2}.plunge-face img{width:100%;height:100%;object-fit:contain;object-position:bottom;display:block;filter:drop-shadow(0 -3px 6px #00000060)}.hole.up .plunge-face{bottom:2%}.hole.plungeed .plunge-face{bottom:-115%!important}.plunge-splash{position:absolute;bottom:-30%;left:50%;transform:translate(-50%);width:80%;height:86%;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;z-index:3}.plunge-splash img{width:100%;height:100%;object-fit:contain;display:block}.hole.splash-hit .plunge-splash{animation:plunge-splash-hit .4s ease-out forwards}@keyframes plunge-splash-hit{0%{opacity:0;transform:translate(-50%) scale(.525)}20%{opacity:1}to{opacity:0;transform:translate(-50%) scale(1.15)}}#simon-grid{position:relative;aspect-ratio:1 / 1;width:min(calc(100% - 8px),calc(100dvh - var(--simon-chrome-h)),60dvh);max-width:min(500px,80vw);margin:0 auto;flex-shrink:1;overflow:hidden}body.is-desktop.horizontal-nav #simon-grid{width:min(calc(100% - 8px),calc(100dvh - var(--simon-chrome-h) - var(--navbar-height, 0px)))}body.is-desktop:not(.horizontal-nav) #simon-grid{width:min(calc(100% - 8px),calc(100dvh - var(--simon-chrome-h)))}@media(orientation:portrait){body.is-mobile #simon-grid{width:min(calc(100% - 8px),calc(100dvh - var(--simon-chrome-h)))}}@media(orientation:landscape){body.is-mobile #simon-grid{width:min(calc(100% - 8px),calc(100dvh - var(--simon-chrome-h)))}}#simon-grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .12s;pointer-events:none;display:block;z-index:1}#simon-grid .img-close{opacity:1;z-index:0}#simon-grid .img-top,#simon-grid .img-bottom,#simon-grid .img-left,#simon-grid .img-right{z-index:2}#simon-grid.show-close .img-close,#simon-grid.show-top .img-top,#simon-grid.show-bottom .img-bottom,#simon-grid.show-left .img-left,#simon-grid.show-right .img-right,#simon-grid.show-top .img-close,#simon-grid.show-bottom .img-close,#simon-grid.show-left .img-close,#simon-grid.show-right .img-close{opacity:1}.simon-btn{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;background:transparent;cursor:pointer;border:none;-webkit-user-select:none;user-select:none}.simon-btn[data-i="0"]{clip-path:polygon(50% 50%,0% 0%,100% 0%)}.simon-btn[data-i="1"]{clip-path:polygon(50% 50%,100% 0%,100% 100%)}.simon-btn[data-i="2"]{clip-path:polygon(50% 50%,0% 0%,0% 100%)}.simon-btn[data-i="3"]{clip-path:polygon(50% 50%,0% 100%,100% 100%)}#simon-status{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;min-height:18px}.simon-dot{width:11px;height:11px;border-radius:50%;background:var(--brand-soft);transition:background .15s,transform .15s}.simon-dot.active{background:var(--warm);transform:scale(1.2)}.simon-dot.done{background:var(--accent-orange)}#canvas-wrap{position:relative;flex-shrink:1;flex-grow:0;display:flex;flex-direction:row;justify-content:center;align-items:center;width:100%;margin:0 auto;gap:0}#skyfall-progress-wrap{position:relative;height:100%;width:16px;display:flex;align-items:stretch;pointer-events:none;z-index:2;margin-left:8px;border-radius:10px}canvas{display:block;border-radius:20px;box-shadow:0 8px 40px #e7346530,0 2px 8px #00000015;border:3px solid var(--border)}#skyfall-timer-bar{width:100%;height:100%;min-height:100px;background:#fffb;border:2px solid var(--border);border-radius:16px;overflow:hidden}#skyfall-timer-fill{width:100%;height:0%;background:var(--accent-orange);transform-origin:top;transition:height .1s linear}#touch-controls{display:none;flex-shrink:0;pointer-events:none;opacity:.3;transition:opacity .3s}@media(pointer:coarse){body.is-mobile.game-playing.page-skyfall #touch-controls{display:block;position:fixed;bottom:0;left:0;right:0;height:21dvh;pointer-events:none;z-index:500}body.is-mobile.page-skyfall .touch-btn{pointer-events:auto;position:absolute;bottom:0;top:0;width:49.5%;background:#ffae4533;border:none;border-top:1px solid rgba(255,255,255,.25);color:#ff959580;font-size:clamp(1.4rem,6vw,3rem);line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .08s ease;padding-bottom:env(safe-area-inset-bottom,0px)}body.is-mobile.page-skyfall #btn-left{left:0;border-radius:25px}body.is-mobile.page-skyfall #btn-right{right:0;border-radius:25px}@media(orientation:landscape){body.is-mobile.game-playing.page-skyfall #touch-controls{height:30dvh}}}body.is-mobile #skyfall-overlay.is-active{position:fixed;inset:0;z-index:1000;background:var(--sky1);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:10px}body.is-mobile #skyfall-overlay.is-active #canvas-wrap{flex:1;display:flex;align-items:center;width:100%}body.is-mobile.game-playing #navigation-container,body.is-mobile.game-playing .page-title{display:none}body.is-mobile.game-playing{overflow:hidden!important}@media(orientation:portrait){body.is-mobile #skyfall-overlay.is-active{flex-direction:column;justify-content:center}body.is-mobile.page-skyfall #canvas-wrap{width:100%;height:auto;display:flex;justify-content:center}}@media(orientation:landscape){body.is-mobile #skyfall-overlay.is-active{flex-direction:row;justify-content:center;align-items:center}body.is-mobile.page-skyfall #canvas-wrap{height:100%;width:auto}}#skyfall-overlay.is-active #touch-controls{pointer-events:auto;opacity:1}
