*{margin:0;padding:0;box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}body,html{width:100%;height:100%;overflow:hidden;background:#000;touch-action:none;-webkit-user-select:none;user-select:none}.screen{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .6s ease;display:flex;flex-direction:column;z-index:1}.screen.active{opacity:1;pointer-events:all}#screen-game{z-index:1}#screen-title{z-index:2}#screen-splash{z-index:3}#screen-splash{align-items:center;justify-content:center}.splash-bg{position:absolute;inset:0;background:url('/images/td/splash_bremanie.jpg') center center/cover no-repeat;animation:slowZoom 30s ease-in-out infinite alternate}@keyframes slowZoom{from{transform:scale(1)}to{transform:scale(1.08)}}.vignette-splash{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,.55) 100%),linear-gradient(to bottom,rgba(0,0,0,.4) 0,transparent 30%,transparent 60%,rgba(0,0,0,.7) 100%)}.splash-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;text-align:center;padding:2rem}.ornament{color:#c9a84c;font-size:1.4rem;letter-spacing:.5em;opacity:.8;margin-bottom:.5rem;animation:fadeIn 2s ease forwards}.splash-title{font-family:'Cinzel Decorative',serif;font-weight:900;font-size:clamp(2.8rem, 8vw, 7rem);color:#f5e6b8;letter-spacing:.08em;line-height:1.1;text-shadow:0 0 20px rgba(201,168,76,.9),0 0 60px rgba(201,168,76,.5),0 0 120px rgba(201,168,76,.3),2px 2px 4px rgba(0,0,0,.8);animation:titleAppear 2.5s ease forwards;opacity:0}@keyframes titleAppear{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}.splash-subtitle{font-family:Cinzel,serif;font-weight:400;font-size:clamp(.85rem, 2vw, 1.3rem);color:#d4b483;letter-spacing:.3em;text-transform:uppercase;margin-top:.6rem;margin-bottom:3rem;text-shadow:0 0 20px rgba(0,0,0,.9),1px 1px 3px rgba(0,0,0,.8);animation:fadeIn 3.5s ease forwards;opacity:0}@keyframes fadeIn{0%{opacity:0}40%{opacity:0}100%{opacity:1}}.btn-start{font-family:Cinzel,serif;font-size:clamp(.9rem, 1.8vw, 1.2rem);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#f5e6b8;background:rgba(0,0,0,.5);border:1px solid rgba(201,168,76,.6);padding:.9em 2.8em;cursor:pointer;text-decoration:none;display:inline-block;position:relative;transition:all .3s ease;animation:fadeIn 5s ease forwards;opacity:0}.btn-start::after,.btn-start::before{content:'';position:absolute;inset:-4px;border:1px solid rgba(201,168,76,.2);transition:all .3s ease}.btn-start:hover{background:rgba(201,168,76,.2);border-color:#c9a84c;color:#fff;text-shadow:0 0 15px rgba(201,168,76,.8);box-shadow:0 0 30px rgba(201,168,76,.3)}.btn-start:hover::before{border-color:rgba(201,168,76,.4);inset:-6px}.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.particle{position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;background:radial-gradient(circle,#f5e6b8,rgba(201,168,76,.3));animation:floatPart linear infinite;opacity:0}@keyframes floatPart{0%{transform:translateY(0) translateX(0);opacity:0}10%{opacity:.8}90%{opacity:.4}100%{transform:translateY(-100vh) translateX(var(--drift));opacity:0}}.splash-footer{position:absolute;bottom:1.5rem;width:100%;text-align:center;font-family:Cinzel,serif;font-size:.65rem;color:rgba(212,180,131,.5);letter-spacing:.2em;animation:fadeIn 6s ease forwards;opacity:0}#press-start{position:absolute;inset:0;z-index:100;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:opacity 1.4s ease}#press-start .ps-title{font-family:'Cinzel Decorative',serif;font-weight:900;font-size:clamp(2rem, 6vw, 5rem);color:#f5e6b8;letter-spacing:.1em;text-shadow:0 0 20px rgba(201,168,76,.7),0 0 60px rgba(201,168,76,.3);margin-bottom:3rem;opacity:0;animation:psTitle 2s ease .3s forwards}@keyframes psTitle{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}#press-start .ps-prompt{font-family:Cinzel,serif;font-size:clamp(.75rem, 1.5vw, 1rem);color:#c9a84c;letter-spacing:.35em;text-transform:uppercase;animation:psBlink 1.6s ease-in-out 1.5s infinite both}@keyframes psBlink{0%,100%{opacity:.9}50%{opacity:.2}}#press-start.fade-out{opacity:0;pointer-events:none}#screen-title{align-items:center;justify-content:center;cursor:pointer}#title-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.08) saturate(.4);animation:bgBreath 8s ease-in-out infinite alternate}@keyframes bgBreath{from{filter:brightness(.08) saturate(.4)}to{filter:brightness(.13) saturate(.5)}}#screen-title .vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 20%,rgba(0,0,0,.85) 100%)}.title-stage{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:0;padding:0 2rem;width:100%;max-width:700px}.ornament-line{width:100%;display:flex;align-items:center;gap:1rem}.ornament-line.top{margin-bottom:2rem}.ornament-line.bottom{margin-top:2rem}.ornament-line hr{flex:1;border:none;height:1px;background:linear-gradient(to right,transparent,rgba(201,168,76,.3),rgba(201,168,76,.8),rgba(201,168,76,.3),transparent)}.ornament-line.bottom hr{background:linear-gradient(to left,transparent,rgba(201,168,76,.3),rgba(201,168,76,.8),rgba(201,168,76,.3),transparent)}.ornament-line .diamond{color:#c9a84c;font-size:.6rem;opacity:.8;flex-shrink:0}.title-label{font-family:Cinzel,serif;font-size:clamp(.6rem, 1.8vw, .85rem);font-weight:600;letter-spacing:.55em;text-transform:uppercase;color:rgba(201,168,76,.7);margin-bottom:1rem}.title-main{font-family:'Cinzel Decorative',serif;font-weight:900;font-size:clamp(2.8rem, 10vw, 6.5rem);color:#f5e6b8;letter-spacing:.06em;line-height:1;text-align:center;text-shadow:0 0 30px rgba(201,168,76,.6),0 0 80px rgba(201,168,76,.25),2px 3px 6px rgba(0,0,0,.9)}.title-sub{font-family:Cinzel,serif;font-weight:400;font-size:clamp(.75rem, 2.2vw, 1.1rem);color:#c4a06a;letter-spacing:.22em;text-transform:uppercase;text-align:center;margin-top:1.2rem;text-shadow:0 2px 8px rgba(0,0,0,.8)}.tap-hint{position:absolute;bottom:2.5rem;width:100%;text-align:center;font-family:Cinzel,serif;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(201,168,76,.35);animation:pulse 2.5s ease infinite}@keyframes pulse{0%,100%{opacity:.35}50%{opacity:.7}}#screen-game{font-family:Nunito,sans-serif;background:linear-gradient(135deg,#1a1a2e 0,#16213e 100%)}#screen-game.combat-mode{background:linear-gradient(rgba(10,8,20,.35),rgba(10,8,20,.35)),url('/images/scenes/chapter1_attack.jpg') center center/cover no-repeat}#screen-game.combat-mode.chapter2-mode{background:linear-gradient(rgba(5,15,5,.35),rgba(5,15,5,.35)),url('/images/scenes/forest.jpg') center center/cover no-repeat}#screen-game.combat-mode.chapter4-mode{background:linear-gradient(rgba(2,5,18,.45),rgba(2,5,18,.45)),url('/images/scenes/dark-forest.png') center center/cover no-repeat}#screen-game.combat-mode.chapter5-mode{background:url('/images/scenes/plateau_bois.png') center center/cover no-repeat}#screen-game.combat-mode #game-container{background:0 0}.top-bar{display:none}#game-container{flex:1;min-height:0;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;position:relative;background:linear-gradient(135deg,#1a1a2e 0,#16213e 100%);transition:background .5s}#game-container canvas{max-width:100%;max-height:100%}.hero-portrait{display:none;position:absolute;top:6px;left:6px;width:68px;height:68px;border-radius:50%;border:3px solid #c9a84c;background:#fff;box-shadow:0 0 0 1px rgba(201,168,76,.4),0 4px 16px rgba(0,0,0,.7),0 0 20px rgba(201,168,76,.15);overflow:hidden;z-index:50;flex-shrink:0}.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 10%;transform:scaleX(-1)}#screen-game.combat-mode .hero-portrait{display:block}.stats{position:absolute;top:82px;left:6px;display:none;flex-direction:column;gap:5px;z-index:50;pointer-events:none}#screen-game.combat-mode .stats{display:flex}.stat{display:flex;align-items:center;gap:5px;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);padding:4px 8px 4px 6px;border-radius:14px;border:1px solid rgba(201,168,76,.25);font-weight:700;font-size:.72rem;color:#fff;width:72px}.stat-icon{width:20px;height:20px;object-fit:contain;border-radius:4px}.stat-value{min-width:30px;text-align:center}.combat-badge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:200;pointer-events:none;opacity:0}.combat-badge img{width:220px;height:220px;object-fit:contain;filter:drop-shadow(0 0 30px rgba(255,160,0,.6));transform:scale(.4);transition:none}.combat-badge.show{animation:badgeAnim 1.8s ease forwards}@keyframes badgeAnim{0%{opacity:0}15%{opacity:1}60%{opacity:1}100%{opacity:0}}.combat-badge.show img{animation:badgeScale 1.8s cubic-bezier(.16,1,.3,1) forwards}@keyframes badgeScale{0%{transform:scale(.3)}20%{transform:scale(1.08)}35%{transform:scale(.97)}50%{transform:scale(1)}80%{transform:scale(1)}100%{transform:scale(1.15)}}.result-badge{position:fixed;inset:0;z-index:8050;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0}.result-badge img{width:min(400px,70vw);height:min(400px,70vw);object-fit:contain;transform:scale(.2);transition:none}.result-badge.show{animation:resultAnim 3s ease forwards}@keyframes resultAnim{0%{opacity:0}12%{opacity:1}75%{opacity:1}100%{opacity:0}}.result-badge.show img{animation:resultScale 3s cubic-bezier(.16,1,.3,1) forwards}.result-badge.hold{pointer-events:all;cursor:pointer;animation:holdFadeIn .7s ease forwards}.result-badge.hold img{animation:holdScale .9s cubic-bezier(.16,1,.3,1) forwards}@keyframes holdFadeIn{from{opacity:0}to{opacity:1}}@keyframes holdScale{0%{transform:scale(.2)}75%{transform:scale(1.08)}100%{transform:scale(1)}}@keyframes resultScale{0%{transform:scale(.2)}18%{transform:scale(1.12)}30%{transform:scale(.96)}45%{transform:scale(1.03)}60%,85%{transform:scale(1)}100%{transform:scale(1.08)}}#victory-badge img{filter:drop-shadow(0 0 40px rgba(255,215,0,.9))}#defeat-badge img{filter:drop-shadow(0 0 40px rgba(180,40,40,.9))}.damage-number{position:absolute;font-size:1.2rem;font-weight:800;color:#ff6b6b;text-shadow:0 2px 4px rgba(0,0,0,.5);pointer-events:none;animation:floatUp .8s ease-out forwards;z-index:300}.damage-number.gold{color:gold}@keyframes floatUp{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-40px) scale(.7)}}.buffs{position:absolute;top:55px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:40}.buff-badge{background:rgba(0,0,0,.7);color:#fff;padding:4px 10px;border-radius:12px;font-size:.72rem;font-weight:700;animation:buffPulse 1.5s ease-in-out infinite}.buff-badge.damage{border:1px solid #ff6b6b;color:#ff6b6b}.buff-badge.slow{border:1px solid #87ceeb;color:#87ceeb}@keyframes buffPulse{0%,100%{opacity:.8}50%{opacity:1}}.wave-announce{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px 40px;border-radius:20px;font-size:1.5rem;font-weight:800;box-shadow:0 10px 40px rgba(0,0,0,.4);transition:transform .3s ease-out;z-index:100}.wave-announce.visible{transform:translate(-50%,-50%) scale(1)}.game-over{position:absolute;inset:0;background:rgba(0,0,0,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity .5s}.game-over.visible{opacity:1;pointer-events:auto}.game-over h1{font-size:2.5rem;color:#fff;margin-bottom:10px}.game-over .wave-reached{color:gold;font-size:1.2rem;margin-bottom:30px}.game-over button{background:linear-gradient(135deg,#4ecdc4,#44a08d);border:none;color:#fff;padding:15px 40px;border-radius:30px;font-size:1.1rem;font-weight:700;cursor:pointer;box-shadow:0 5px 20px rgba(78,205,196,.4)}.loader-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#1a1a2e 0,#16213e 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity .5s}.loader-overlay.hidden{opacity:0;pointer-events:none}.loader-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.15);border-top-color:gold;border-radius:50%;animation:spin .8s linear infinite}.loader-text{color:rgba(255,255,255,.7);font-family:Nunito,sans-serif;font-weight:700;font-size:.9rem;margin-top:16px}@keyframes spin{to{transform:rotate(360deg)}}.tower-bar{display:flex;justify-content:center;gap:8px;padding:8px 8px;background:rgba(0,0,0,.4);flex-shrink:0}.tower-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:70px;height:80px;background:rgba(255,255,255,.95);border:3px solid transparent;border-radius:15px;cursor:pointer;transition:all .2s;position:relative}.tower-btn:active{transform:scale(.95)}.tower-btn.selected{border-color:#ff6b6b;background:#fff0f5;box-shadow:0 0 20px rgba(255,107,107,.5)}.tower-btn.disabled{opacity:.4;pointer-events:none}.tower-btn .tower-preview{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:4px;overflow:hidden}.tower-btn .tower-preview img{width:100%;height:100%;object-fit:contain}.tower-btn[data-tower=archer] .tower-preview{background:linear-gradient(135deg,#98d4bb,#7ac4a8)}.tower-btn[data-tower=mage] .tower-preview{background:linear-gradient(135deg,#a6f,#73c)}.tower-btn[data-tower=light] .tower-preview{background:linear-gradient(135deg,#ffe066,#ffb300)}.tower-btn[data-tower=fauconnier] .tower-preview{background:linear-gradient(135deg,#4c8,#285)}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px) rotate(-2deg)}75%{transform:translateX(4px) rotate(2deg)}}.tower-btn.shake{animation:shake .3s ease}.tower-btn .tower-cost{font-size:.75rem;font-weight:800;color:gold;text-shadow:0 1px 2px rgba(0,0,0,.3)}.tower-btn .tower-name{font-size:.65rem;font-weight:600;color:#666}.tower-btn .tower-range{position:absolute;top:5px;right:5px;font-size:.6rem;background:rgba(0,0,0,.6);color:#fff;padding:2px 5px;border-radius:8px}.wave-btn{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);border:none;color:#fff;padding:10px 20px;border-radius:25px;font-weight:700;font-size:.9rem;cursor:pointer;box-shadow:0 4px 15px rgba(255,107,107,.4);transition:transform .2s}.wave-btn:active{transform:scale(.95)}.wave-btn:disabled{opacity:.5}.action-buttons{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;gap:6px;z-index:50}.action-buttons .shop-btn,.action-buttons .speed-btn,.action-buttons .wave-btn{font-size:.75rem;padding:7px 12px;width:100%;text-align:center}.shop-btn{background:linear-gradient(135deg,gold,orange);border:none;color:#333;padding:8px 14px;border-radius:20px;font-weight:800;font-size:.85rem;cursor:pointer;transition:all .2s;box-shadow:0 3px 10px rgba(255,215,0,.3)}.shop-btn:active{transform:scale(.95)}.speed-btn{background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.3);color:#fff;padding:8px 14px;border-radius:20px;font-weight:700;font-size:.85rem;cursor:pointer;transition:all .2s}.speed-btn:active{transform:scale(.95)}.speed-btn.fast{background:rgba(255,215,0,.25);border-color:gold;color:gold}.speed-btn.turbo{background:rgba(255,80,0,.3);border-color:#ff5000;color:#ff5000}.selection-info{position:absolute;bottom:110px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.8);color:#fff;padding:8px 20px;border-radius:20px;font-size:.85rem;font-weight:600;opacity:0;transition:opacity .3s;pointer-events:none}.selection-info.visible{opacity:1}.tower-info{position:absolute;bottom:110px;left:50%;transform:translateX(-50%) translateY(10px);background:rgba(0,0,0,.9);color:#fff;padding:12px 18px;border-radius:16px;font-size:.85rem;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:60;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15)}.tower-xp-bar-container{flex-basis:100%;height:4px;background:rgba(255,255,255,.15);border-radius:2px;overflow:hidden}.tower-xp-bar{height:100%;width:0%;background:#9b59b6;border-radius:2px;transition:width .3s ease}.tower-info.visible{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}.tower-info-stats{display:flex;gap:10px;font-size:.78rem}.tower-info-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.tower-info-stat .label{color:rgba(255,255,255,.5);font-size:.65rem;text-transform:uppercase}.tower-info-stat .value{font-weight:700}.tower-info .tower-info-name{font-weight:800;font-size:.95rem}.sell-btn{background:linear-gradient(135deg,#e74c3c,#c0392b);border:none;color:#fff;padding:8px 14px;border-radius:12px;font-weight:700;font-size:.8rem;cursor:pointer;white-space:nowrap;transition:transform .15s}.sell-btn:active{transform:scale(.92)}.shop-overlay{position:absolute;inset:0;background:rgba(0,0,0,.85);z-index:150;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(5px)}.shop-overlay.visible{opacity:1;pointer-events:auto}.shop-title{color:gold;font-size:1.4rem;font-weight:800;margin-bottom:6px}.shop-items{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:420px}.shop-item{background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.2);border-radius:14px;padding:12px 14px;color:#fff;width:125px;text-align:center;cursor:pointer;transition:all .2s}.shop-item:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.4);transform:translateY(-2px)}.shop-item:active{transform:scale(.95)}.shop-item.disabled{opacity:.35;pointer-events:none}.shop-item .item-icon{font-size:1.8rem}.shop-item .item-name{font-weight:700;font-size:.8rem;margin:4px 0}.shop-item .item-desc{font-size:.65rem;color:rgba(255,255,255,.6);margin-bottom:6px}.shop-item .item-cost{font-weight:800;font-size:.85rem;color:gold}.shop-close{margin-top:10px;background:rgba(255,255,255,.15);border:none;color:#fff;padding:10px 30px;border-radius:20px;font-weight:700;font-size:.9rem;cursor:pointer}.shop-close:active{transform:scale(.95)}@media (min-width:768px){.tower-btn{width:85px;height:90px}.tower-btn .tower-preview{width:50px;height:50px;font-size:1.6rem}.stat{padding:10px 16px;font-size:1rem}}@media (max-width:600px){.tower-bar{gap:5px}.tower-btn{width:58px;height:68px}.tower-btn .tower-preview{width:34px;height:34px;font-size:1.2rem;margin-bottom:2px}.tower-btn .tower-name{display:none}.stat{padding:6px 10px;font-size:.85rem}.stat-icon{width:20px;height:20px}}@media (max-width:360px){.tower-bar{gap:3px;padding:6px 4px}.tower-btn{width:52px;height:62px}.tower-btn .tower-preview{width:28px;height:28px;font-size:1rem}.tower-btn .tower-cost{font-size:.65rem}}#hero-ability-overlay{position:absolute;inset:0;z-index:450;pointer-events:none;background:rgba(0,0,0,0);overflow:hidden}#hero-ability-overlay.active{animation:heroOverlayBg 2.8s ease forwards}@keyframes heroOverlayBg{0%{background:rgba(0,0,0,0)}8%{background:rgba(0,0,0,.65)}70%{background:rgba(0,0,0,.65)}100%{background:rgba(0,0,0,0)}}#hero-ability-overlay img{position:absolute;bottom:-5%;left:-20%;height:76vh;width:auto;transform:translateY(100%) rotate(-4deg);opacity:0}#hero-ability-overlay.active img{animation:heroImgAnim 2.8s cubic-bezier(.22,1,.36,1) forwards}@keyframes heroImgAnim{0%{transform:translateY(100%) rotate(-4deg);opacity:0}7%{transform:translateY(0) rotate(0);opacity:1}68%{transform:translateY(0) rotate(0);opacity:1}100%{transform:translateY(110%) rotate(3deg);opacity:0}}.hero-ability-title{position:absolute;bottom:14%;left:0;right:0;text-align:center;font-family:'Cinzel Decorative',serif;font-size:1.15rem;color:#c8f0c0;text-shadow:0 0 16px rgba(80,220,80,.9),0 2px 6px rgba(0,0,0,.95);letter-spacing:.14em;opacity:0}#hero-ability-overlay.active .hero-ability-title{animation:heroTitleAnim 2.8s ease forwards .2s}@keyframes heroTitleAnim{0%{opacity:0;transform:translateY(10px)}15%{opacity:1;transform:translateY(0)}65%{opacity:1}100%{opacity:0}}#hero-ability-overlay[data-hero=suzanne] img{filter:drop-shadow(0 0 35px rgba(80,230,100,.65));transform:translateX(-30px)}#screen-chapter-select{align-items:center;justify-content:center;z-index:3}.cs-bg{position:absolute;inset:0;background:url('/images/td/splash_bremanie.jpg') center center/cover no-repeat;filter:brightness(.35) blur(3px);transform:scale(1.04)}.cs-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:1.4rem;padding:2rem 1.2rem 1.5rem;width:100%;max-width:520px;max-height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.cs-heading{display:flex;flex-direction:column;align-items:center;gap:.4rem}.cs-ornament{color:#c9a84c;font-size:1rem;letter-spacing:.5em;opacity:.75}.cs-title{font-family:'Cinzel Decorative',serif;font-size:clamp(1.2rem, 3.5vw, 1.9rem);color:#f5e6b8;letter-spacing:.06em;text-align:center;text-shadow:0 0 18px rgba(201,168,76,.8),2px 2px 4px rgba(0,0,0,.9)}.cs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem;width:100%}.cs-card{position:relative;background:linear-gradient(145deg,rgba(201,168,76,.1),rgba(0,0,0,.55));border:1px solid rgba(201,168,76,.35);border-radius:8px;padding:1.1rem .9rem .9rem;text-align:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease;display:flex;flex-direction:column;align-items:center;gap:.25rem}.cs-card:not(.locked):active{transform:scale(.97)}@media (hover:hover){.cs-card:not(.locked):hover{background:linear-gradient(145deg,rgba(201,168,76,.22),rgba(0,0,0,.5));border-color:rgba(201,168,76,.75);transform:translateY(-3px);box-shadow:0 6px 22px rgba(201,168,76,.25)}}.cs-card-num{font-family:Cinzel,serif;font-size:clamp(1.05rem, 2.5vw, 1.35rem);color:#c9a84c;font-weight:700;line-height:1}.cs-card-title{font-family:Cinzel,serif;font-size:clamp(.72rem, 1.8vw, .9rem);color:#f5e6b8;font-weight:600;line-height:1.2}.cs-card-sub{font-family:Cinzel,serif;font-size:clamp(.58rem, 1.3vw, .68rem);color:rgba(212,180,131,.65);letter-spacing:.04em;margin-top:.1rem}.cs-back{font-family:Cinzel,serif;font-size:.8rem;color:rgba(212,180,131,.55);background:0 0;border:none;cursor:pointer;letter-spacing:.18em;padding:.4rem 1rem;transition:color .2s;text-transform:uppercase}.cs-back:hover{color:rgba(245,230,184,.9)}