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