*{margin:0;padding:0;box-sizing:border-box}:root{--gradient-purple: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-blue: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);--gradient-pink: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-orange: linear-gradient(135deg, #fa709a 0%, #fee140 100%);--gradient-green: linear-gradient(135deg, #30cfd0 0%, #330867 100%);--color-bg: #0a0a0f;--color-surface: rgba(22, 22, 31, .8);--color-surface-elevated: rgba(30, 30, 45, .9);--color-text: #ffffff;--color-text-muted: #a0a0b8;--color-accent: #667eea;--shadow-soft: 0 2px 12px rgba(0, 0, 0, .15);--shadow-medium: 0 8px 32px rgba(0, 0, 0, .2);--shadow-large: 0 16px 48px rgba(0, 0, 0, .3);--shadow-glow-purple: 0 8px 32px rgba(102, 126, 234, .25);--shadow-glow-blue: 0 8px 32px rgba(79, 172, 254, .25);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}body{background:var(--color-bg);color:var(--color-text);min-height:100vh;position:relative;overflow-x:hidden}body:before,body:after{content:"";position:fixed;border-radius:50%;filter:blur(80px);opacity:.4;pointer-events:none;animation:float 25s ease-in-out infinite;z-index:0}body:before{top:-15%;left:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(102,126,234,.3) 0%,rgba(79,172,254,.15) 40%,transparent 70%);animation-delay:0s}body:after{bottom:-15%;right:-10%;width:450px;height:450px;background:radial-gradient(circle,rgba(245,87,108,.2) 0%,rgba(240,147,251,.15) 40%,transparent 70%);animation-delay:-12s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}#root{min-height:100vh;width:100%;position:relative;z-index:1}h1{font-size:2.25rem;font-weight:800;line-height:1.1;letter-spacing:-.04em}h2{font-size:1.5rem;font-weight:700;line-height:1.2;letter-spacing:-.03em}p{line-height:1.6;letter-spacing:-.01em}a{color:var(--color-accent);text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1)}a:active{opacity:.7}button{font-family:inherit;cursor:pointer;border:none;outline:none;font-weight:600;letter-spacing:-.01em;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-glass{background:#ffffff0f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text);padding:var(--space-3) var(--space-5);font-weight:600;position:relative;overflow:hidden}.btn-glass:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}.btn-glass:active{transform:scale(.97);background:#ffffff1a}.btn-accent{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:var(--radius-md);color:#fff;padding:var(--space-3) var(--space-6);font-weight:700;box-shadow:0 4px 16px #667eea4d;position:relative;overflow:hidden}.btn-accent:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 50%);pointer-events:none}.btn-accent:active{transform:scale(.97);box-shadow:0 2px 8px #667eea66}input,select,textarea{font-family:inherit;font-size:16px;outline:none;letter-spacing:-.01em}::selection{background:#667eea4d;color:#fff}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff05}::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:4px;transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:#667eea80}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}body:before,body:after{animation:none!important}}@media(min-width:1024px){.btn-glass:hover{border-color:#fff3;background:#ffffff1a;transform:translateY(-2px)}.btn-accent:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}}@media(min-width:768px){:root{font-size:17px}h1{font-size:3rem}h2{font-size:2rem}}@media(min-width:1024px){:root{font-size:18px}h1{font-size:3.5rem}body:before,body:after{filter:blur(120px);opacity:.5}}@supports (padding: env(safe-area-inset-top)){body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}}.home-page{min-height:100dvh;min-height:100vh;padding:var(--space-3);display:flex;flex-direction:column;animation:fadeIn .8s cubic-bezier(.4,0,.2,1)}@supports (min-height: 100dvh){.home-page{min-height:100dvh}}.hero{text-align:center;padding:var(--space-3) 0 var(--space-2);flex-shrink:0}.title{font-size:2rem;font-weight:900;margin-bottom:0;animation:slideUp 1s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:.1em}.title-hild{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;letter-spacing:.02em}.title-outils{font-family:Playfair Display,Georgia,serif;font-style:italic;background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700;letter-spacing:.01em}.categories-container{flex:1;display:flex;flex-direction:column;gap:var(--space-4);padding-bottom:var(--space-4)}.category-section{animation:fadeIn .6s ease backwards}.category-section:nth-child(1){animation-delay:.1s}.category-section:nth-child(2){animation-delay:.2s}.category-section:nth-child(3){animation-delay:.3s}.category-section:nth-child(4){animation-delay:.4s}.category-section:nth-child(5){animation-delay:.5s}.category-title{display:flex;align-items:center;gap:var(--space-2);font-size:.9rem;font-weight:700;color:var(--color-text-muted);margin-bottom:var(--space-2);padding-left:var(--space-1)}.category-emoji{font-size:1rem}.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.tool-card{background:#ffffff0a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);padding:var(--space-3) var(--space-2);text-align:center;text-decoration:none;color:var(--color-text);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;min-height:70px}.tool-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,transparent 50%);pointer-events:none;border-radius:inherit}.tool-card:active{transform:scale(.95);background:#ffffff14}.tool-icon{font-size:1.5rem;margin-bottom:var(--space-1);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.tool-card h3{font-size:.7rem;font-weight:600;color:#fff;margin:0;line-height:1.2}.tool-card p{display:none;font-size:.75rem;color:var(--color-text-muted);margin:var(--space-1) 0 0}.badge{position:absolute;top:2px;right:2px;background:var(--gradient-pink);color:#fff;padding:1px 4px;border-radius:var(--radius-full);font-size:.45rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;box-shadow:var(--shadow-soft);z-index:2}.recos-section{padding-top:var(--space-4);border-top:1px solid rgba(255,255,255,.06);animation:fadeIn .6s ease backwards;animation-delay:.6s}.recos-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.recos-title{display:flex;align-items:center;gap:var(--space-2);font-size:.9rem;font-weight:700;color:var(--color-text-muted)}.reco-add-btn{width:28px;height:28px;border-radius:50%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--color-text-muted);font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.reco-add-btn:active{transform:scale(.9)}.reco-form{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-3);background:#ffffff0a;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.08);animation:fadeIn .3s ease}.reco-input{width:100%;padding:var(--space-2) var(--space-3);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--color-text);font-size:.85rem;font-family:inherit;outline:none;transition:border-color .2s ease}.reco-input:focus{border-color:var(--color-accent)}.reco-input::placeholder{color:var(--color-text-muted);opacity:.5}.reco-form-row{display:flex;gap:var(--space-2);align-items:center}.reco-author-input{flex:1;min-width:0}.reco-emoji-picker{display:flex;gap:2px;flex-shrink:0}.reco-emoji-btn{width:26px;height:26px;font-size:.8rem;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.reco-emoji-btn.selected{background:#667eea33;border-color:#667eea66}.reco-submit-btn{padding:var(--space-2) var(--space-4);background:var(--gradient-purple);border:none;border-radius:var(--radius-sm);color:#fff;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.reco-submit-btn:disabled{opacity:.4;cursor:not-allowed}.reco-submit-btn:not(:disabled):active{transform:scale(.97)}.recos-list{display:flex;flex-direction:column;gap:var(--space-2)}.reco-card{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background:#ffffff08;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.06);transition:border-color .2s ease}.reco-emoji{font-size:1.2rem;flex-shrink:0;margin-top:1px}.reco-content{flex:1;min-width:0}.reco-text{font-size:.8rem;color:var(--color-text);line-height:1.4;margin-bottom:var(--space-1)}.reco-author{font-size:.7rem;color:var(--color-text-muted);font-weight:600}.reco-date{margin-left:var(--space-2);font-weight:400;opacity:.5}.reco-delete{width:20px;height:20px;font-size:.6rem;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;opacity:.3;transition:opacity .2s ease;flex-shrink:0}.reco-delete:hover{opacity:.8}.home-footer{text-align:center;padding:var(--space-3) 0;margin-top:auto}.home-footer p{font-size:.65rem;color:var(--color-text-muted);margin:0;opacity:.4}@media(min-width:640px){.home-page{padding:var(--space-6)}.hero{padding:var(--space-6) 0 var(--space-4)}.title{font-size:3rem}.categories-container{gap:var(--space-6)}.category-title{font-size:1.1rem;margin-bottom:var(--space-3)}.category-emoji{font-size:1.25rem}.tools-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.tool-card{border-radius:var(--radius-lg);padding:var(--space-4);min-height:100px}.tool-icon{font-size:2rem;margin-bottom:var(--space-2)}.tool-card h3{font-size:.85rem}.tool-card p{display:block}.badge{top:var(--space-2);right:var(--space-2);padding:2px 6px;font-size:.55rem}.recos-title{font-size:1.1rem}.reco-text{font-size:.85rem}.reco-add-btn{width:32px;height:32px}}@media(min-width:1024px){.home-page{max-width:1200px;margin:0 auto;padding:var(--space-8)}.hero{padding:var(--space-8) 0 var(--space-6)}.title{font-size:4rem}.categories-container{gap:var(--space-8)}.category-title{font-size:1.25rem;margin-bottom:var(--space-4)}.tools-grid{grid-template-columns:repeat(6,1fr);gap:var(--space-4)}.tool-card{border-radius:var(--radius-xl);padding:var(--space-5);min-height:130px;transition:all .4s cubic-bezier(.4,0,.2,1)}.tool-card:hover{transform:translateY(-6px) scale(1.03);border-color:#667eea4d;background:#ffffff14;box-shadow:0 12px 40px #667eea26,0 4px 16px #0003}.tool-card:hover .tool-icon{transform:scale(1.15)}.tool-icon{font-size:2.5rem;transition:transform .4s ease}.tool-card h3{font-size:.95rem}.tool-card p{font-size:.8rem}.badge{padding:3px 8px;font-size:.6rem}.home-footer p{font-size:.75rem}.recos-section{max-width:600px;margin:0 auto;width:100%}.recos-title{font-size:1.25rem}.reco-card:hover{border-color:#667eea33}.reco-add-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.reco-submit-btn:not(:disabled):hover{transform:translateY(-1px)}.reco-emoji-btn:hover{background:#ffffff14}}@media(min-width:1400px){.home-page{max-width:1400px}.tools-grid{gap:var(--space-5)}.tool-card{min-height:150px;padding:var(--space-6)}.tool-icon{font-size:3rem}.tool-card h3{font-size:1.1rem}}.dice-roller{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;padding:var(--space-2) 0 var(--space-3);gap:var(--space-3);animation:fadeIn .6s ease}.dice-color-4,.dice-color-4 .cube-face{--dc: #f5576c}.dice-color-6,.dice-color-6 .cube-face{--dc: #667eea}.dice-color-8,.dice-color-8 .cube-face{--dc: #30cfd0}.dice-color-10,.dice-color-10 .cube-face{--dc: #fa709a}.dice-color-12,.dice-color-12 .cube-face{--dc: #fee140}.dice-color-20,.dice-color-20 .cube-face{--dc: #764ba2}.dice-color-100,.dice-color-100 .cube-face{--dc: #4facfe}.dice-bg-4{background:linear-gradient(135deg,#f5576c,#c73e53)!important;box-shadow:0 8px 32px #f5576c59!important}.dice-bg-6{background:linear-gradient(135deg,#667eea,#4c5cc4)!important;box-shadow:0 8px 32px #667eea59!important}.dice-bg-8{background:linear-gradient(135deg,#30cfd0,#25a5a6)!important;box-shadow:0 8px 32px #30cfd059!important}.dice-bg-10{background:linear-gradient(135deg,#fa709a,#c85a7b)!important;box-shadow:0 8px 32px #fa709a59!important}.dice-bg-12{background:linear-gradient(135deg,#fee140,#c9b133)!important;box-shadow:0 8px 32px #fee14059!important;color:#1a1a2e!important}.dice-bg-20{background:linear-gradient(135deg,#764ba2,#5a3880)!important;box-shadow:0 8px 32px #764ba259!important}.dice-bg-100{background:linear-gradient(135deg,#4facfe,#3d8ace)!important;box-shadow:0 8px 32px #4facfe59!important}.dice-text-4{color:#f5576c}.dice-text-6{color:#667eea}.dice-text-8{color:#30cfd0}.dice-text-10{color:#fa709a}.dice-text-12{color:#fee140}.dice-text-20{color:#764ba2}.dice-text-100{color:#4facfe}.carousel-wrapper{width:100%;overflow:hidden;padding:var(--space-2) 0}.carousel{display:flex;gap:var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;padding:var(--space-4) calc(50vw - 48px);-webkit-overflow-scrolling:touch;scrollbar-width:none}.carousel::-webkit-scrollbar{display:none}.carousel-item{scroll-snap-align:center;flex-shrink:0;width:88px;height:88px;border-radius:var(--radius-xl);background:var(--color-surface);border:2px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .35s cubic-bezier(.4,0,.2,1);padding:0}.carousel-item:active{transform:scale(.93)}.carousel-item.selected{transform:scale(1.12);border-color:#ffffff40;box-shadow:0 0 30px #ffffff1a}.die-3d-stage{width:52px;height:52px;perspective:180px}.die-3d{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateX(-20deg) rotateY(30deg);transition:transform .6s cubic-bezier(.4,0,.2,1)}.carousel-item.selected .die-3d{animation:gentleSpin 5s linear infinite}.die-3d-face{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:6px;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:1.5px solid rgba(255,255,255,.15);font-size:.8rem;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--dc, #667eea),rgba(0,0,0,.2))}.die-3d-front{transform:translateZ(26px)}.die-3d-back{transform:rotateY(180deg) translateZ(26px)}.die-3d-right{transform:rotateY(90deg) translateZ(26px)}.die-3d-left{transform:rotateY(-90deg) translateZ(26px)}.die-3d-top{transform:rotateX(90deg) translateZ(26px)}.die-3d-bottom{transform:rotateX(-90deg) translateZ(26px)}@keyframes gentleSpin{0%{transform:rotateX(-20deg) rotateY(0)}to{transform:rotateX(-20deg) rotateY(360deg)}}.shape-d4{clip-path:polygon(50% 8%,6% 92%,94% 92%);background:#f5576c33}.shape-d6{border-radius:10px;background:#667eea33}.shape-d8{clip-path:polygon(50% 4%,96% 50%,50% 96%,4% 50%);background:#30cfd033}.shape-d10{clip-path:polygon(50% 2%,92% 38%,76% 96%,24% 96%,8% 38%);background:#fa709a33}.shape-d12{clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);background:#fee14033}.shape-d20{clip-path:polygon(50% 4%,96% 50%,50% 96%,4% 50%);background:#764ba233}.shape-d100{border-radius:50%;background:#4facfe33}.dice-stage{width:100%;max-width:500px;flex:1;min-height:100px;display:flex;align-items:center;justify-content:center;perspective:600px;padding:0 var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.stage-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);animation:fadeIn .5s ease}.placeholder-die{width:120px;height:120px;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:900;color:var(--color-text-muted);opacity:.3}.stage-hint{font-size:.95rem;color:var(--color-text-muted);opacity:.4;margin:0}.rolling-container{display:flex;justify-content:center}.rolling-die{width:80px;height:80px;perspective:400px;animation:dieEntrance .3s ease backwards}.die-cube{width:100%;height:100%;position:relative;transform-style:preserve-3d;animation:roll3d .6s cubic-bezier(.2,0,.3,1) infinite}.cube-face{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;color:#fff;border-radius:var(--radius-md);backface-visibility:hidden;background:linear-gradient(135deg,var(--dc, #667eea),rgba(0,0,0,.3));border:2px solid rgba(255,255,255,.15)}.cube-face.front{transform:translateZ(40px)}.cube-face.back{transform:rotateY(180deg) translateZ(40px)}.cube-face.right{transform:rotateY(90deg) translateZ(40px)}.cube-face.left{transform:rotateY(-90deg) translateZ(40px)}.cube-face.top{transform:rotateX(90deg) translateZ(40px)}.cube-face.bottom{transform:rotateX(-90deg) translateZ(40px)}@keyframes roll3d{0%{transform:rotateX(0) rotateY(0) rotate(0)}25%{transform:rotateX(270deg) rotateY(180deg) rotate(90deg)}50%{transform:rotateX(540deg) rotateY(360deg) rotate(180deg)}75%{transform:rotateX(810deg) rotateY(540deg) rotate(270deg)}to{transform:rotateX(1080deg) rotateY(720deg) rotate(360deg)}}@keyframes dieEntrance{0%{opacity:0;transform:scale(.4) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.results-display{display:flex;justify-content:center}.result-die{animation:resultBounce .6s cubic-bezier(.34,1.56,.64,1) backwards}@keyframes resultBounce{0%{opacity:0;transform:scale(0) rotate(180deg)}60%{transform:scale(1.1) rotate(-5deg)}to{opacity:1;transform:scale(1) rotate(0)}}.d6-face{width:90px;height:90px;background:linear-gradient(145deg,#1e1e35,#16162a);border:2px solid rgba(102,126,234,.4);border-radius:var(--radius-lg);position:relative;box-shadow:0 10px 30px #00000080,inset 0 1px #ffffff14}.d6-dot{position:absolute;width:18%;height:18%;background:radial-gradient(circle,#fff,#667eea);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #667eeab3}.poly-shape{width:90px;height:90px;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.15);box-shadow:0 10px 30px #00000080}.result-die .shape-d4{background:linear-gradient(145deg,#f5576c59,#f5576c26);border-color:#f5576c80}.result-die .shape-d8{background:linear-gradient(145deg,#30cfd059,#30cfd026);border-color:#30cfd080}.result-die .shape-d10{background:linear-gradient(145deg,#fa709a59,#fa709a26);border-color:#fa709a80}.result-die .shape-d12{background:linear-gradient(145deg,#fee14059,#fee14026);border-color:#fee14080}.result-die .shape-d20{background:linear-gradient(145deg,#764ba259,#764ba226);border-color:#764ba280}.result-die .shape-d100{background:linear-gradient(145deg,#4facfe59,#4facfe26);border-color:#4facfe80}.poly-value{font-size:1.8rem;font-weight:900;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.5)}.roll-btn{width:calc(100% - var(--space-8) * 2);max-width:400px;padding:var(--space-5) var(--space-8);border:none;border-radius:var(--radius-xl);color:#fff;font-size:1.4rem;font-weight:800;letter-spacing:.02em;min-height:64px;cursor:pointer;transition:all .3s ease}.roll-btn:active:not(:disabled){transform:scale(.97)}.roll-btn.is-rolling{animation:btnPulse .8s ease-in-out infinite;pointer-events:none}.roll-btn:disabled{opacity:.7;cursor:not-allowed}@keyframes btnPulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.roll-history-section{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-4)}.roll-history-title{font-size:.85rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0;opacity:.5}.roll-history{display:flex;flex-direction:column;gap:var(--space-2);max-height:240px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;padding-right:var(--space-2)}.roll-history::-webkit-scrollbar{width:4px}.roll-history::-webkit-scrollbar-track{background:transparent}.roll-history::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.history-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);transition:opacity .3s ease}.history-item-latest{animation:historySlideIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes historySlideIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.history-die-badge{display:flex;align-items:center;justify-content:center;width:40px;height:28px;border-radius:var(--radius-md);font-size:.7rem;font-weight:800;color:#fff;flex-shrink:0}.history-value{font-size:1.3rem;font-weight:900;flex:1}.history-index{font-size:.75rem;font-weight:600;color:var(--color-text-muted);opacity:.4}@media(min-width:640px){.carousel-item{width:100px;height:100px}.die-3d-stage{width:60px;height:60px;perspective:200px}.die-3d-face{font-size:.95rem}.die-3d-front{transform:translateZ(30px)}.die-3d-back{transform:rotateY(180deg) translateZ(30px)}.die-3d-right{transform:rotateY(90deg) translateZ(30px)}.die-3d-left{transform:rotateY(-90deg) translateZ(30px)}.die-3d-top{transform:rotateX(90deg) translateZ(30px)}.die-3d-bottom{transform:rotateX(-90deg) translateZ(30px)}.d6-face,.poly-shape{width:110px;height:110px}.poly-value{font-size:2.2rem}.rolling-die{width:100px;height:100px}.cube-face.front{transform:translateZ(50px)}.cube-face.back{transform:rotateY(180deg) translateZ(50px)}.cube-face.right{transform:rotateY(90deg) translateZ(50px)}.cube-face.left{transform:rotateY(-90deg) translateZ(50px)}.cube-face.top{transform:rotateX(90deg) translateZ(50px)}.cube-face.bottom{transform:rotateX(-90deg) translateZ(50px)}.roll-history{max-height:300px}}@media(min-width:1024px){.carousel-item:hover:not(.selected){border-color:#fff3;transform:scale(1.05)}.roll-btn:hover:not(:disabled){transform:translateY(-4px)}.d6-face,.poly-shape{width:120px;height:120px}.poly-value{font-size:2.5rem}.d6-dot{box-shadow:0 0 14px #667eeacc}.history-item:hover{border-color:#ffffff1f}.roll-history{max-height:360px}}.tool-page{height:100dvh;height:100vh;padding:var(--space-3);display:flex;flex-direction:column;overflow:hidden;animation:fadeIn .4s ease}@supports (height: 100dvh){.tool-page{height:100dvh}}.back-button{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);margin-bottom:var(--space-2);font-size:.85rem;font-weight:600;color:var(--color-text);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-full);text-decoration:none;min-height:36px;transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);align-self:flex-start;flex-shrink:0;position:relative;overflow:hidden}.back-button:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none;border-radius:inherit}.back-button:active{transform:scale(.95);background:#ffffff1f}.lang-switch{position:absolute;top:var(--space-3);right:var(--space-3);display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:.8rem;font-weight:600;color:var(--color-text);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-full);cursor:pointer;min-height:32px;transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:10}.lang-switch:active{transform:scale(.95);background:#ffffff1f}@media(min-width:1024px){.tool-page{padding:var(--space-6)}.back-button{padding:var(--space-3) var(--space-5);font-size:.9rem;min-height:42px;margin-bottom:var(--space-4)}.back-button:hover{border-color:#667eea80;transform:translate(-4px);color:var(--color-accent);background:#667eea1a;box-shadow:0 0 20px #667eea26}.back-button:active{transform:translate(-2px) scale(.98)}.lang-switch{top:var(--space-6);right:var(--space-6);padding:var(--space-2) var(--space-4);font-size:.85rem;min-height:36px}.lang-switch:hover{border-color:#667eea80;color:var(--color-accent);background:#667eea1a;box-shadow:0 0 20px #667eea26}}.coin-flipper{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3);gap:var(--space-4);animation:fadeIn .6s ease}.coin-stage{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;perspective:800px}.coin{width:180px;height:180px;position:relative;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.4,0,.2,1)}.coin.flipping{animation:coinFlip 1.6s cubic-bezier(.15,0,.15,1)}@keyframes coinFlip{0%{transform:rotateX(0) scale(1)}to{transform:rotateX(1800deg) scale(1)}}.coin.show-heads{transform:rotateX(0)}.coin.show-tails{transform:rotateX(180deg)}.coin-face{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.coin-heads{transform:translateZ(1px);background:radial-gradient(circle at 35% 30%,#ffe066,gold 25%,#daa520 60%,#b8860b);box-shadow:inset 0 3px 6px #ffffff80,inset 0 -3px 6px #00000040,0 16px 48px #ffd70059}.coin-tails{transform:rotateX(180deg) translateZ(1px);background:radial-gradient(circle at 35% 30%,#f0f0f0,#d4d4d4 25%,#b0b0b0 60%,#909090);box-shadow:inset 0 3px 6px #ffffff80,inset 0 -3px 6px #00000040,0 16px 48px #c0c0c059}.coin-rim{position:absolute;inset:8px;border:2.5px solid rgba(255,255,255,.35);border-radius:50%;pointer-events:none}.coin-rim:after{content:"";position:absolute;inset:6px;border:1.5px solid rgba(255,255,255,.15);border-radius:50%}.coin-emblem{font-size:4.5rem;font-weight:900;line-height:1;z-index:1}.coin-heads .coin-emblem{color:#8b5a00b3;text-shadow:0 2px 0 rgba(255,255,255,.3)}.coin-tails .coin-emblem{color:#505050b3;text-shadow:0 2px 0 rgba(255,255,255,.3)}.coin-detail{font-size:.65rem;font-weight:800;letter-spacing:.2em;z-index:1;margin-top:2px}.coin-heads .coin-detail{color:#8b5a0080}.coin-tails .coin-detail{color:#50505080}.coin-edge{position:absolute;width:100%;height:100%;border-radius:50%;border:4px solid rgba(180,150,50,.6);transform:translateZ(-2px);box-shadow:0 0 0 1px #0000001a,0 0 0 2px #b496324d;pointer-events:none}.coin-shadow{position:absolute;bottom:-30px;left:50%;transform:translate(-50%);width:140px;height:20px;background:radial-gradient(ellipse,rgba(0,0,0,.3) 0%,transparent 70%);border-radius:50%;transition:all 1.6s cubic-bezier(.4,0,.2,1)}.coin-shadow.shadow-flip{animation:shadowFlip 1.6s cubic-bezier(.4,0,.2,1)}@keyframes shadowFlip{0%,to{width:140px;opacity:.7}25%{width:100px;opacity:.5}50%{width:80px;opacity:.4}75%{width:100px;opacity:.5}}.coin-result-area{min-height:48px;display:flex;align-items:center;justify-content:center}.coin-prompt{font-size:1.2rem;font-weight:600;color:var(--color-text-muted);margin:0;animation:subtlePulse 2.5s ease-in-out infinite}@keyframes subtlePulse{0%,to{opacity:.5}50%{opacity:.8}}.coin-flipping-text{font-size:1.3rem;font-weight:700;color:var(--color-text-muted);margin:0;animation:shimmer 1s linear infinite;background:linear-gradient(90deg,var(--color-text-muted),#fff,var(--color-text-muted));background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.coin-result-text{font-size:2rem;font-weight:900;margin:0;animation:resultAppear .5s cubic-bezier(.34,1.56,.64,1)}.coin-result-text.heads{background:linear-gradient(135deg,gold,#daa520);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.coin-result-text.tails{background:linear-gradient(135deg,#d4d4d4,#909090);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.flip-counter{font-size:.9rem;color:var(--color-text-muted);opacity:.4;margin:0}@media(min-width:640px){.coin{width:220px;height:220px}.coin-emblem{font-size:5.5rem}.coin-detail{font-size:.75rem}.coin-result-text{font-size:2.5rem}.coin-shadow{width:170px}}@media(min-width:1024px){.coin{width:260px;height:260px}.coin-emblem{font-size:6.5rem}.coin-result-text{font-size:3rem}.coin-shadow{width:200px}.coin-stage:hover .coin:not(.flipping){transform:scale(1.05) rotateX(5deg)}.coin-stage:active .coin:not(.flipping){transform:scale(.97)}}.flip-history-section{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-4)}.flip-stats{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-xl)}.flip-stat{display:flex;align-items:center;gap:var(--space-2);font-size:.95rem;font-weight:700}.flip-stat-heads{color:gold}.flip-stat-tails{color:#d4d4d4}.flip-stat-divider{color:var(--color-text-muted);opacity:.3;font-weight:600}.flip-stat-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.flip-stat-dot.heads-dot{background:radial-gradient(circle,#ffe066,#daa520);box-shadow:0 0 6px #ffd70080}.flip-stat-dot.tails-dot{background:radial-gradient(circle,#e8e8e8,#909090);box-shadow:0 0 6px #c0c0c066}.flip-history-title{font-size:.85rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0;opacity:.5}.flip-history{display:flex;flex-direction:column;gap:var(--space-2);max-height:220px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;padding-right:var(--space-2)}.flip-history::-webkit-scrollbar{width:4px}.flip-history::-webkit-scrollbar-track{background:transparent}.flip-history::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.flip-history-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);transition:opacity .3s ease}.flip-history-item-latest{animation:flipHistorySlideIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes flipHistorySlideIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.flip-history-indicator{width:24px;height:24px;border-radius:50%;flex-shrink:0}.flip-history-indicator.heads{background:radial-gradient(circle at 35% 30%,#ffe066,#daa520);box-shadow:0 2px 8px #ffd70059}.flip-history-indicator.tails{background:radial-gradient(circle at 35% 30%,#e8e8e8,#909090);box-shadow:0 2px 8px #c0c0c04d}.flip-history-label{font-size:1rem;font-weight:700;flex:1}.flip-history-item.heads .flip-history-label{color:gold}.flip-history-item.tails .flip-history-label{color:#d4d4d4}.flip-history-index{font-size:.75rem;font-weight:600;color:var(--color-text-muted);opacity:.4}@media(min-width:640px){.flip-history{max-height:280px}}@media(min-width:1024px){.flip-history{max-height:340px}.flip-history-item:hover{border-color:#ffffff1f}}.piano-container{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3);gap:var(--space-3);animation:fadeIn .6s ease}.piano-fs-btn{align-self:flex-end;padding:var(--space-2) var(--space-3);background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:1.2rem;line-height:1;min-height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.piano-fs-btn:active{transform:scale(.9);background:#ffffff26}.piano-info{text-align:center;max-width:600px}.piano-title{font-size:2.5rem;font-weight:800;margin-bottom:var(--space-3);background:var(--gradient-pink);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.piano-subtitle{font-size:1.1rem;color:var(--color-text-muted);margin:0}.recording-controls{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.08)}.record-btn,.playback-btn,.clear-btn{padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);min-height:44px}.record-btn{background:var(--gradient-purple);color:#fff;box-shadow:var(--shadow-medium)}.record-btn.recording{background:linear-gradient(135deg,#f5576c,#f093fb);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #f5576c66}50%{box-shadow:0 0 0 12px #f5576c00}}.playback-btn{background:var(--gradient-blue);color:#fff;box-shadow:var(--shadow-medium)}.playback-btn:disabled{opacity:.5;cursor:not-allowed}.clear-btn{background:#ffffff1a;color:var(--color-text);border:1px solid rgba(255,255,255,.2)}.record-btn:active,.playback-btn:active:not(:disabled),.clear-btn:active{transform:scale(.95)}.note-count{padding:var(--space-2) var(--space-4);background:#667eea33;border-radius:var(--radius-full);font-size:.9rem;font-weight:600;color:var(--color-text)}.piano-keyboard{position:relative;display:flex;gap:2px;padding:var(--space-6);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-large);border:1px solid rgba(255,255,255,.08);overflow-x:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.piano-key{position:relative;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:var(--space-3);transition:all .1s ease;font-weight:600}.white-key{width:50px;height:200px;background:linear-gradient(to bottom,#fff,#f5f5f5);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:0 4px 8px #0003,inset 0 -2px 4px #0000001a;color:#333}.white-key:active,.white-key.active{background:linear-gradient(to bottom,#e0e0e0,#d0d0d0);transform:translateY(2px);box-shadow:0 2px 4px #0003,inset 0 2px 6px #0003}.black-key{width:35px;height:130px;background:linear-gradient(to bottom,#1a1a1f,#0a0a0f);border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:0 4px 8px #00000080,inset 0 -2px 4px #ffffff1a;color:#fff;position:absolute;z-index:2;margin-left:-18px}.black-key:nth-of-type(2){left:50px}.black-key:nth-of-type(4){left:152px}.black-key:nth-of-type(7){left:306px}.black-key:nth-of-type(9){left:408px}.black-key:nth-of-type(11){left:510px}.black-key:active,.black-key.active{background:linear-gradient(to bottom,#0a0a0f,#000);transform:translateY(2px);box-shadow:0 2px 4px #00000080,inset 0 2px 6px #00000080}.note-label{font-size:.9rem;font-weight:700;margin-bottom:var(--space-1)}.key-hint{font-size:.7rem;opacity:.6;background:#0000001a;padding:2px 6px;border-radius:var(--radius-sm)}.black-key .key-hint{background:#fff3}.keyboard-hint{text-align:center;font-size:.95rem;color:var(--color-text-muted);padding:var(--space-4);background:#ffffff05;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.05);max-width:600px}.piano-launcher{justify-content:center;gap:var(--space-6)}.piano-play-btn{width:140px;height:140px;border-radius:50%;background:var(--gradient-pink);border:none;color:#fff;font-size:1.8rem;font-weight:900;letter-spacing:.05em;box-shadow:0 12px 40px #f093fb66;cursor:pointer;transition:all .3s ease}.piano-play-btn:active{transform:scale(.93)}.piano-launcher-actions{display:flex;align-items:center;gap:var(--space-3)}.piano-fs-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);z-index:10;background:#0a0a0f99;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.recording-controls-fs{display:flex;gap:var(--space-2);align-items:center}.record-btn-fs,.playback-btn-fs,.clear-btn-fs{padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-md);font-size:.75rem;font-weight:700;color:#fff;cursor:pointer;min-height:30px;transition:all .2s ease}.record-btn-fs{background:var(--gradient-purple)}.record-btn-fs.recording{background:linear-gradient(135deg,#f5576c,#f093fb);animation:pulse 1.5s ease-in-out infinite}.playback-btn-fs{background:var(--gradient-blue)}.playback-btn-fs:disabled{opacity:.5}.clear-btn-fs{background:#ffffff1a;border:1px solid rgba(255,255,255,.2)}.piano-container.fullscreen{position:fixed;inset:0;z-index:9999;background:var(--color-bg);padding:var(--space-3);min-height:unset;gap:var(--space-2);justify-content:center}.piano-container.fullscreen .piano-fs-btn{position:absolute;top:var(--space-2);right:var(--space-2);z-index:10}.piano-container.fullscreen .recording-controls{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.piano-container.fullscreen .record-btn,.piano-container.fullscreen .playback-btn,.piano-container.fullscreen .clear-btn{padding:var(--space-2) var(--space-4);min-height:36px;font-size:.85rem}.piano-container.fullscreen .piano-keyboard{padding:var(--space-3);flex:1;max-height:calc(100vh - 100px);overflow:visible}.piano-container.fullscreen .white-key{height:100%;width:50px}.piano-container.fullscreen .black-key{height:60%}@media(orientation:landscape)and (max-height:500px){.piano-container.fullscreen{padding:var(--space-2);flex-direction:row;gap:var(--space-2)}.piano-container.fullscreen .recording-controls{flex-direction:column;width:auto;padding:var(--space-2)}.piano-container.fullscreen .piano-keyboard{flex:1;max-height:calc(100vh - 16px);padding:var(--space-2)}.piano-container.fullscreen .white-key{width:calc((100vw - 180px)/8);min-width:40px;height:100%}.piano-container.fullscreen .black-key{height:55%;width:calc((100vw - 180px) / 14);min-width:28px}.piano-container.fullscreen .black-key:nth-of-type(2){left:calc((100vw - 180px)/8 + 2px)}.piano-container.fullscreen .black-key:nth-of-type(4){left:calc((100vw - 180px)*.375 + 4px)}.piano-container.fullscreen .black-key:nth-of-type(7){left:calc((100vw - 180px)*.75 + 12px)}.piano-container.fullscreen .black-key:nth-of-type(9){left:calc((100vw - 180px)*1 + 16px)}.piano-container.fullscreen .black-key:nth-of-type(11){left:calc((100vw - 180px)/.8 + 20px)}}@media(min-width:640px){.piano-title{font-size:3rem}.piano-subtitle{font-size:1.25rem}.white-key{width:60px;height:240px}.black-key{width:40px;height:150px;margin-left:-21px}.black-key:nth-of-type(2){left:60px}.black-key:nth-of-type(4){left:182px}.black-key:nth-of-type(7){left:366px}.black-key:nth-of-type(9){left:488px}.black-key:nth-of-type(11){left:610px}}@media(min-width:1024px){.piano-fs-btn:hover{background:#ffffff26;border-color:#ffffff40}.record-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-large)}.playback-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-large)}.clear-btn:hover{background:#ffffff26;border-color:#ffffff4d}.white-key:hover{background:linear-gradient(to bottom,#f8f8f8,#eee)}.black-key:hover{background:linear-gradient(to bottom,#2a2a2f,#1a1a1f)}.white-key{width:70px;height:280px}.black-key{width:45px;height:170px;margin-left:-23px}.black-key:nth-of-type(2){left:70px}.black-key:nth-of-type(4){left:214px}.black-key:nth-of-type(7){left:430px}.black-key:nth-of-type(9){left:574px}.black-key:nth-of-type(11){left:718px}}.piano-community{width:100%;max-width:500px;display:flex;flex-direction:column;gap:var(--space-2)}.piano-community-title{font-size:.85rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0}.piano-community-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:250px;overflow-y:auto;scrollbar-width:thin}.piano-rec-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);animation:scaleIn .2s ease}.piano-rec-info{display:flex;flex-direction:column;gap:2px}.piano-rec-author{font-size:.85rem;font-weight:700;color:var(--color-text)}.piano-rec-meta{font-size:.7rem;color:var(--color-text-muted)}.piano-rec-actions{display:flex;gap:var(--space-2);align-items:center}.piano-rec-like{padding:var(--space-1) var(--space-2);background:none;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all .2s ease;min-width:44px;text-align:center}.piano-rec-like:active{transform:scale(.9)}.piano-rec-like.liked{color:#f5576c;border-color:#f5576c4d;background:#f5576c1a}.piano-rec-play-btn{width:32px;height:32px;background:var(--gradient-blue);border:none;border-radius:var(--radius-sm);color:#fff;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.piano-rec-play-btn:active{transform:scale(.9)}.piano-rec-play-btn:disabled{opacity:.5;cursor:not-allowed}.piano-name-row{display:flex;gap:var(--space-2);width:100%;max-width:300px}.piano-name-input{flex:1;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1.5px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;min-height:36px;transition:border-color .3s ease}.piano-name-input:focus{outline:none;border-color:#f093fb66}.piano-name-input::placeholder{color:var(--color-text-muted);opacity:.5}.piano-name-btn{padding:var(--space-2) var(--space-4);background:var(--gradient-purple);border:none;border-radius:var(--radius-md);color:#fff;font-weight:700;font-size:.85rem;cursor:pointer;transition:all .2s ease}.piano-name-btn:active{transform:scale(.9)}@media(min-width:1024px){.piano-rec-like:hover{border-color:#f5576c66;color:#f5576c}.piano-rec-play-btn:hover:not(:disabled){transform:translateY(-2px)}}.rng-container{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3);gap:var(--space-3);animation:fadeIn .6s ease}.rng-display{width:100%;max-width:400px;aspect-ratio:16 / 9;background:linear-gradient(145deg,#1a1a30,#12122a);border:2px solid rgba(250,112,154,.2);border-radius:var(--radius-2xl);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 60px #0006,inset 0 1px #ffffff0d;overflow:hidden;position:relative}.rng-display:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(250,112,154,.08) 0%,transparent 60%);pointer-events:none}.rng-number{font-size:clamp(3rem,12vw,6rem);font-weight:900;line-height:1;z-index:1;background:linear-gradient(135deg,#fa709a,#fee140);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:numberAppear .4s cubic-bezier(.34,1.56,.64,1)}.rng-number.placeholder{opacity:.15;font-size:clamp(4rem,15vw,8rem);animation:none}.rng-number.scrambling{animation:scramble .08s ease infinite;opacity:.6}@keyframes numberAppear{0%{opacity:0;transform:scale(.7) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes scramble{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.rng-range{display:flex;align-items:flex-end;gap:var(--space-4);width:100%;max-width:400px}.rng-input-group{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.rng-input-group label{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.rng-input{padding:var(--space-3) var(--space-4);background:var(--color-surface);border:2px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);color:var(--color-text);font-size:1.25rem;font-weight:700;text-align:center;min-height:52px;transition:all .3s ease;width:100%}.rng-input:focus{outline:none;border-color:#fa709a80;box-shadow:0 0 0 4px #fa709a1a}.rng-separator{font-size:1rem;font-weight:600;color:var(--color-text-muted);padding-bottom:var(--space-4)}.rng-presets{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.rng-preset{padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1.5px solid rgba(255,255,255,.08);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .3s ease}.rng-preset:active{transform:scale(.93)}.rng-preset.active{background:#fa709a26;border-color:#fa709a66;color:#fa709a}.rng-error{padding:var(--space-3) var(--space-5);background:#f5576c1a;border:1.5px solid rgba(245,87,108,.3);border-radius:var(--radius-lg);color:#f5576c;font-weight:600;font-size:.9rem;text-align:center}.rng-btn{width:100%;max-width:400px;padding:var(--space-5) var(--space-8);background:linear-gradient(135deg,#fa709a,#fee140);border:none;border-radius:var(--radius-xl);color:#1a1a2e;font-size:1.3rem;font-weight:800;min-height:60px;box-shadow:0 8px 32px #fa709a4d;cursor:pointer;transition:all .3s ease}.rng-btn:active:not(:disabled){transform:scale(.97)}.rng-btn.generating{animation:btnPulse .6s ease-in-out infinite;pointer-events:none}.rng-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes btnPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.rng-history{width:100%;max-width:400px;padding:var(--space-5);background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-xl);animation:slideUp .5s ease}.rng-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.rng-history-title{font-size:.85rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.rng-history-clear{padding:var(--space-1) var(--space-3);background:none;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease}.rng-history-clear:active{transform:scale(.93)}.rng-history-items{display:flex;flex-wrap:wrap;gap:var(--space-2)}.rng-history-item{padding:var(--space-2) var(--space-3);background:var(--color-surface-elevated);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);font-size:.95rem;font-weight:700;color:var(--color-text);animation:scaleIn .3s ease backwards}@media(min-width:640px){.rng-display{max-width:450px}.rng-number{font-size:clamp(4rem,14vw,7rem)}}@media(min-width:1024px){.rng-display{max-width:500px}.rng-input:hover{border-color:#ffffff26}.rng-preset:hover:not(.active){border-color:#fff3;color:var(--color-text)}.rng-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 40px #fa709a66}.rng-history-clear:hover{background:#ffffff0d;border-color:#fff3}.rng-history-item:hover{transform:translateY(-2px);background:#ffffff0f}}.cp-container{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;padding:var(--space-2);gap:var(--space-3);overflow-y:auto;animation:fadeIn .6s ease}.cp-display{width:100%;max-width:500px;height:220px;border-radius:var(--radius-2xl);box-shadow:0 16px 48px #0006;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);animation:scaleIn .5s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.cp-display:active{transform:scale(.98)}.cp-info{text-align:center;z-index:1}.cp-hex{font-size:2rem;font-weight:900;margin-bottom:var(--space-2);letter-spacing:.03em}.cp-rgb,.cp-hsl{font-size:.9rem;font-weight:600;opacity:.7;margin-bottom:var(--space-1)}.cp-gen-btn{width:100%;max-width:500px;padding:var(--space-4) var(--space-6);background:var(--gradient-purple);border:none;border-radius:var(--radius-xl);color:#fff;font-size:1.2rem;font-weight:800;min-height:56px;box-shadow:0 8px 32px #667eea4d;cursor:pointer;transition:all .3s ease}.cp-gen-btn:active:not(:disabled){transform:scale(.97)}.cp-gen-btn.generating{opacity:.7;pointer-events:none}.cp-palette-controls{width:100%;max-width:500px;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-xl)}.cp-type-selector{display:flex;gap:var(--space-2);flex-wrap:wrap}.cp-type-btn{padding:var(--space-2) var(--space-3);background:#ffffff0a;border:1.5px solid rgba(255,255,255,.08);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.cp-type-btn:active{transform:scale(.93)}.cp-type-btn.active{background:#f093fb26;border-color:#f093fb66;color:#f093fb}.cp-size-selector{display:flex;align-items:center;gap:var(--space-3)}.cp-size-label{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.cp-size-chips{display:flex;gap:var(--space-1);flex-wrap:wrap}.cp-size-chip{width:32px;height:32px;border-radius:var(--radius-sm);background:#ffffff0a;border:1.5px solid rgba(255,255,255,.08);color:var(--color-text-muted);font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0}.cp-size-chip:active{transform:scale(.9)}.cp-size-chip.active{background:#f093fb33;border-color:#f093fb80;color:#f093fb}.cp-palette-btn{width:100%;padding:var(--space-4) var(--space-6);background:linear-gradient(135deg,#f093fb,#f5576c);border:none;border-radius:var(--radius-lg);color:#fff;font-size:1.1rem;font-weight:800;min-height:52px;box-shadow:0 6px 24px #f093fb4d;cursor:pointer;transition:all .3s ease}.cp-palette-btn:active{transform:scale(.97)}.cp-palette{width:100%;max-width:500px;animation:slideUp .5s ease}.cp-palette-strip{display:flex;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 12px 40px #0006;min-height:120px}.cp-palette-swatch{flex:1;min-height:120px;display:flex;align-items:flex-end;justify-content:center;padding:var(--space-3);cursor:pointer;transition:all .3s ease;animation:scaleIn .4s ease backwards;position:relative}.cp-palette-swatch:active{filter:brightness(.85)}.cp-swatch-label{font-size:.6rem;font-weight:700;letter-spacing:.02em;opacity:.7;transition:opacity .2s ease;text-align:center;word-break:break-all}.cp-save-row{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.cp-save-input{flex:1;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1.5px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;font-weight:500;min-height:40px;transition:border-color .3s ease}.cp-save-input:focus{border-color:#f093fb66}.cp-save-input::placeholder{color:var(--color-text-muted);opacity:.5}.cp-save-btn{padding:var(--space-2) var(--space-5);background:var(--gradient-purple);border:none;border-radius:var(--radius-md);color:#fff;font-size:.85rem;font-weight:700;min-height:40px;cursor:pointer;transition:all .3s ease;white-space:nowrap}.cp-save-btn:active{transform:scale(.95)}.cp-saved-toggle{padding:var(--space-2) var(--space-5);background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .3s ease}.cp-saved-toggle:active{transform:scale(.95);background:#ffffff1a}.cp-saved-list{width:100%;max-width:500px;display:flex;flex-direction:column;gap:var(--space-3);animation:slideUp .3s ease}.cp-saved-item{background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);padding:var(--space-3);transition:all .3s ease}.cp-saved-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.cp-saved-name{font-size:.85rem;font-weight:600;color:var(--color-text)}.cp-saved-delete{width:24px;height:24px;background:none;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.cp-saved-delete:active{background:#f5576c33;border-color:#f5576c66;color:#f5576c}.cp-saved-strip{display:flex;border-radius:var(--radius-md);overflow:hidden;height:40px;cursor:pointer;transition:all .2s ease}.cp-saved-strip:active{transform:scale(.98)}.cp-saved-swatch{flex:1;height:100%}.cp-share-btn{padding:var(--space-2) var(--space-4);background:linear-gradient(135deg,#f093fb,#f5576c);border:none;border-radius:var(--radius-md);color:#fff;font-size:.85rem;font-weight:700;min-height:40px;cursor:pointer;transition:all .3s ease;white-space:nowrap}.cp-share-btn:active{transform:scale(.95)}.cp-share-btn:disabled{opacity:.5}.cp-name-row{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.cp-name-input{flex:1;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1.5px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;min-height:36px;transition:border-color .3s ease}.cp-name-input:focus{outline:none;border-color:#f093fb66}.cp-name-input::placeholder{color:var(--color-text-muted);opacity:.5}.cp-name-btn{padding:var(--space-2) var(--space-4);background:var(--gradient-purple);border:none;border-radius:var(--radius-md);color:#fff;font-weight:700;font-size:.85rem;cursor:pointer}.cp-name-btn:active{transform:scale(.9)}.cp-tabs{display:flex;gap:var(--space-2)}.cp-tab{padding:var(--space-2) var(--space-5);background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .3s ease}.cp-tab:active{transform:scale(.95)}.cp-tab.active{background:#f093fb26;border-color:#f093fb66;color:#f093fb}.cp-community-list{width:100%;max-width:500px;display:flex;flex-direction:column;gap:var(--space-3);animation:slideUp .3s ease;max-height:300px;overflow-y:auto;scrollbar-width:thin}.cp-community-empty{text-align:center;font-size:.9rem;color:var(--color-text-muted);padding:var(--space-6)}.cp-community-item{background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);padding:var(--space-3);transition:all .3s ease}.cp-community-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.cp-community-info{display:flex;flex-direction:column;gap:2px}.cp-community-name{font-size:.85rem;font-weight:600;color:var(--color-text)}.cp-community-author{font-size:.7rem;color:var(--color-text-muted)}.cp-community-actions{display:flex;gap:var(--space-2);align-items:center}.cp-like-btn{padding:var(--space-1) var(--space-3);background:none;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all .2s ease;min-width:44px;text-align:center}.cp-like-btn:active{transform:scale(.9)}.cp-like-btn.liked{color:#f5576c;border-color:#f5576c4d;background:#f5576c1a}.cp-community-strip{display:flex;border-radius:var(--radius-md);overflow:hidden;height:40px;cursor:pointer;transition:all .2s ease}.cp-community-strip:active{transform:scale(.98)}@media(min-width:640px){.cp-display{height:280px}.cp-hex{font-size:2.5rem}.cp-rgb,.cp-hsl{font-size:1rem}.cp-palette-strip{min-height:160px}.cp-swatch-label{font-size:.7rem}}@media(min-width:1024px){.cp-display{height:320px}.cp-display:hover{transform:scale(1.02);box-shadow:0 20px 60px #00000080}.cp-gen-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 40px #667eea66}.cp-palette-btn:hover{transform:translateY(-3px);box-shadow:0 10px 32px #f093fb66}.cp-type-btn:hover:not(.active){border-color:#fff3;color:var(--color-text)}.cp-size-chip:hover:not(.active){border-color:#fff3}.cp-palette-swatch:hover{flex:1.5}.cp-palette-swatch:hover .cp-swatch-label{opacity:1}.cp-hex{font-size:3rem}.cp-palette-strip{min-height:180px}.cp-swatch-label{font-size:.75rem}}.wheel-container{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;padding:var(--space-2);gap:var(--space-3);overflow-y:auto;animation:fadeIn .6s ease}.wheel-stage{position:relative;width:min(260px,45vw);height:min(260px,45vw);flex-shrink:0}.wheel-pointer{position:absolute;top:-12px;left:50%;transform:translate(-50%);z-index:10;width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:28px solid #fff;filter:drop-shadow(0 3px 8px rgba(0,0,0,.5))}.wheel-wrapper{width:100%;height:100%;border-radius:50%;overflow:hidden;box-shadow:0 0 0 6px #ffffff26,0 16px 48px #00000080}.wheel-svg{width:100%;height:100%;display:block}.wheel-winner{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);background:var(--color-surface-elevated);border:2px solid rgba(102,126,234,.3);border-radius:var(--radius-xl);animation:resultAppear .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 8px 32px #667eea33}.winner-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.winner-text{font-size:1.75rem;font-weight:900;background:var(--gradient-purple);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes resultAppear{0%{opacity:0;transform:scale(.5) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.wheel-spin-btn{width:100%;max-width:300px;padding:var(--space-5) var(--space-8);background:var(--gradient-purple);border:none;border-radius:var(--radius-xl);color:#fff;font-size:1.3rem;font-weight:800;min-height:60px;box-shadow:0 8px 32px #667eea59;cursor:pointer;transition:all .3s ease}.wheel-spin-btn:active:not(:disabled){transform:scale(.97)}.wheel-spin-btn.spinning{opacity:.7;pointer-events:none}.wheel-spin-btn:disabled{opacity:.5;cursor:not-allowed}.wheel-options{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-4)}.wheel-add{display:flex;gap:var(--space-2)}.wheel-input{flex:1;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:2px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);color:var(--color-text);font-size:1rem;font-weight:500;min-height:48px;transition:all .3s ease}.wheel-input:focus{outline:none;border-color:#667eea80;box-shadow:0 0 0 4px #667eea1a}.wheel-input::placeholder{color:var(--color-text-muted);opacity:.5}.wheel-add-btn{width:48px;height:48px;background:var(--gradient-purple);border:none;border-radius:var(--radius-lg);color:#fff;font-size:1.5rem;font-weight:700;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.wheel-add-btn:active{transform:scale(.9)}.wheel-add-btn:disabled{opacity:.3;cursor:not-allowed}.wheel-option-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:250px;overflow-y:auto;scrollbar-width:thin}.wheel-option-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);animation:scaleIn .2s ease}.wheel-option-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.wheel-option-text{flex:1;font-size:.95rem;font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wheel-option-remove{width:28px;height:28px;background:none;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.8rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.wheel-option-remove:active{transform:scale(.85);background:#f5576c33;border-color:#f5576c66;color:#f5576c}@media(min-width:640px){.wheel-stage{width:320px;height:320px}}@media(min-width:1024px){.wheel-stage{width:360px;height:360px}.wheel-spin-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 40px #667eea73}.wheel-add-btn:hover:not(:disabled){transform:translateY(-2px)}.wheel-option-remove:hover{background:#f5576c33;border-color:#f5576c66;color:#f5576c}}.recipes-page .recipes-content{flex:1;overflow-y:auto;min-height:0}.recipes-header{text-align:center;margin-bottom:var(--space-4)}.recipes-header h1{font-size:1.75rem;margin-bottom:var(--space-1)}.recipes-subtitle{font-size:.9rem;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.clear-filters-btn{background:none;border:none;color:var(--color-accent);font-size:.8rem;font-weight:600;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:opacity .2s}.clear-filters-btn:hover{opacity:.8}.filter-bar-wrapper{margin-bottom:var(--space-4);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;flex-shrink:0}.filter-bar-wrapper::-webkit-scrollbar{display:none}.filter-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-1);min-width:max-content}.filter-group{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.filter-group-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-right:var(--space-1);white-space:nowrap}.filter-separator{width:1px;height:24px;background:#ffffff1a;flex-shrink:0;margin:0 var(--space-1)}.filter-chip{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .2s ease;border:1px solid rgba(255,255,255,.12);background:var(--color-surface);color:var(--color-text-muted)}.filter-chip:active{transform:scale(.95)}.filter-chip--active{background:var(--gradient-purple);color:#fff;border-color:transparent;box-shadow:0 2px 8px #667eea4d}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3);padding-bottom:var(--space-8);flex:1;overflow-y:auto;min-height:0}.recipe-card{position:relative;border:none;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;text-align:left;padding:0;transition:all .3s ease}.recipe-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.2) 60%,transparent 100%);z-index:1;pointer-events:none;transition:background .3s ease}.recipe-card-content{position:relative;z-index:2;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.recipe-card-type{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ffffffb3}.recipe-card-name{font-size:.95rem;font-weight:700;color:#fff;line-height:1.2;margin:0;text-shadow:0 1px 3px rgba(0,0,0,.5)}.recipe-card-meta{display:flex;align-items:center;gap:var(--space-2);font-size:.75rem}.recipe-card-difficulty{font-weight:700}.recipe-card-time{color:#ffffffb3}.recipe-detail{flex:1;overflow-y:auto;padding-bottom:var(--space-8)}.back-link{display:inline-block;background:none;border:none;color:var(--color-accent);font-size:.9rem;padding:var(--space-2) 0;margin-bottom:var(--space-4);cursor:pointer}.recipe-detail-hero{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:180px;display:flex;align-items:flex-end;margin-bottom:var(--space-4)}.recipe-detail-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.2) 50%,transparent 100%);z-index:1}.recipe-detail-hero-content{position:relative;z-index:2;padding:var(--space-4);width:100%}.recipe-detail-hero-content h2{font-size:1.5rem;color:#fff;margin:0;text-shadow:0 2px 6px rgba(0,0,0,.5)}.recipe-emoji-large{font-size:2.5rem;display:block;margin-bottom:var(--space-1)}.recipe-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3)}.badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;background:var(--color-surface);color:#fff}.badge-type{background:#667eea33;color:var(--color-accent)}.badge-temp,.badge-style{background:#ffffff14}.recipe-category{display:block;text-align:center;font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-4)}.servings-control{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-6);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg)}.servings-control label{font-weight:600;color:var(--color-text-muted)}.servings-control button{width:40px;height:40px;border-radius:50%;background:var(--gradient-purple);color:#fff;font-size:1.25rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer}.servings-control button:active{transform:scale(.9)}.servings-count{font-size:1.5rem;font-weight:700;min-width:40px;text-align:center}.ingredients-section,.instructions-section,.tips-section{margin-bottom:var(--space-6)}.ingredients-section h3,.instructions-section h3,.tips-section h3{font-size:1.1rem;margin-bottom:var(--space-3);color:var(--color-text)}.ingredients-list{list-style:none;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-3)}.ingredients-list li{display:flex;justify-content:space-between;padding:var(--space-3);border-bottom:1px solid rgba(255,255,255,.05)}.ingredients-list li:last-child{border-bottom:none}.ingredient-quantity{color:var(--color-accent);font-weight:600;font-size:.9rem}.ingredient-name{color:var(--color-text)}.instructions-list{padding-left:var(--space-5)}.instructions-list li{margin-bottom:var(--space-3);padding-left:var(--space-2);line-height:1.6;color:var(--color-text-muted)}.instructions-list li::marker{color:var(--color-accent);font-weight:700}.tips-section{background:#667eea1a;padding:var(--space-4);border-radius:var(--radius-lg);border-left:4px solid var(--color-accent)}.tips-section p{color:var(--color-text-muted);font-style:italic}.no-recipes{text-align:center;color:var(--color-text-muted);padding:var(--space-8)}@media(min-width:768px){.recipes-header h1{font-size:2.5rem}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.recipe-card{min-height:200px}.recipe-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0006}.recipe-card:hover .recipe-card-overlay{background:linear-gradient(to top,#000000d9,#0000004d 60%,#0000000d)}.recipe-card-name{font-size:1.05rem}.recipe-detail{max-width:700px;margin:0 auto}.recipe-detail-hero{min-height:260px}.recipe-detail-hero-content h2{font-size:2rem}.filter-chip{font-size:.8rem;padding:var(--space-1) var(--space-4)}.filter-chip:hover:not(.filter-chip--active){border-color:var(--color-accent);color:var(--color-accent)}}.crypto-page .crypto-content{flex:1;overflow-y:auto;min-height:0}.crypto-header{text-align:center;margin-bottom:var(--space-6)}.crypto-header h1{font-size:1.75rem}.prices-section{margin-bottom:var(--space-6)}.prices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.price-card{background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;transition:border-color .2s,transform .2s}.sparkline-container{width:100%;height:40px;margin:var(--space-2) 0}.sparkline-svg{width:100%;height:100%}.crypto-expanded{flex:1;display:flex;flex-direction:column;align-items:center;overflow-y:auto;min-height:0}.crypto-expanded .price-value{font-size:2rem;font-weight:700;margin-bottom:var(--space-2)}.crypto-expanded .price-change{margin-bottom:var(--space-4)}.period-selector{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;justify-content:center}.period-btn{padding:var(--space-1) var(--space-3);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.period-btn:hover{border-color:#ffffff4d;color:var(--color-text)}.period-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.chart-labels{width:100%;max-width:600px}.chart-container{width:100%;aspect-ratio:2 / 1;background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--space-2)}.chart-svg{width:100%;height:100%}.price-header{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3)}.crypto-icon{font-size:1.5rem;font-weight:700}.crypto-info{display:flex;flex-direction:column;align-items:flex-start}.crypto-symbol{font-weight:700;font-size:.9rem}.crypto-name{font-size:.7rem;color:var(--color-text-muted)}.price-value{font-size:1.1rem;font-weight:700;margin-bottom:var(--space-1)}.price-change{font-size:.85rem;font-weight:600;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);display:inline-block}.price-change.positive{color:#4ade80;background:#4ade801a}.price-change.negative{color:#f87171;background:#f871711a}.news-section{flex:1}.news-section h2{font-size:1.25rem;margin-bottom:var(--space-4)}.news-list{list-style:none;background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden}.news-item{border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:flex-start;gap:var(--space-2)}.news-item:last-child{border-bottom:none}.news-bullet{color:var(--color-accent);font-size:1.2rem;line-height:1;padding-top:var(--space-4);padding-left:var(--space-3);flex-shrink:0}.news-item a{display:flex;flex-direction:column;padding:var(--space-4);padding-left:0;color:var(--color-text);transition:background .2s;flex:1;min-width:0}.news-item a:active{background:#ffffff0d}.news-title{font-size:.9rem;line-height:1.4;margin-bottom:var(--space-2)}.news-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-text-muted)}.news-source{color:var(--color-accent)}.crypto-footer{text-align:center;padding:var(--space-4);color:var(--color-text-muted);font-size:.75rem}.loading,.error{text-align:center;padding:var(--space-6);color:var(--color-text-muted);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.crypto-page .loading-spinner{width:28px;height:28px;border:3px solid rgba(102,126,234,.2);border-top-color:var(--color-accent);border-radius:50%;animation:cryptoSpin .8s linear infinite}@keyframes cryptoSpin{to{transform:rotate(360deg)}}.error{color:#f87171}@media(max-width:380px){.prices-grid{grid-template-columns:1fr}.price-card{display:flex;align-items:center;justify-content:space-between;text-align:left}.price-header,.price-value{margin-bottom:0}}@media(min-width:768px){.crypto-header h1{font-size:2.5rem}.prices-grid{gap:var(--space-4);max-width:600px;margin:0 auto}.price-card{padding:var(--space-6)}.price-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.crypto-icon{font-size:2rem}.price-value{font-size:1.5rem}.news-section{max-width:700px;margin:0 auto}.news-item a:hover{background:#ffffff0d}.news-title{font-size:1rem}.crypto-expanded .price-value{font-size:2.5rem}.chart-labels{max-width:700px}.period-btn{padding:var(--space-2) var(--space-4);font-size:.9rem}}.france-news-page .france-news-list{overflow-y:auto;min-height:0}.news-header{text-align:center;margin-bottom:var(--space-4);flex-shrink:0}.news-header h1{font-size:1.5rem;margin-bottom:var(--space-1)}.update-time{font-size:.75rem;color:var(--color-text-muted)}.france-map-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0}.france-map-svg{width:100%;max-width:400px;max-height:60vh;flex-shrink:1}.france-region{fill:#667eea4d;stroke:#fff3;stroke-width:1.5;cursor:pointer;transition:fill .2s ease}.france-region:hover,.france-region.hovered{fill:#667eeab3}.region-tooltip-text{pointer-events:none}.map-hint{font-size:.8rem;color:var(--color-text-muted);margin-top:var(--space-2);text-align:center}.france-news-content{flex:1;display:flex;flex-direction:column;min-height:0}.back-link{background:none;border:none;color:var(--color-accent);font-size:.9rem;padding:var(--space-2) 0;margin-bottom:var(--space-3);cursor:pointer;flex-shrink:0}.region-news-title{font-size:1.2rem;text-align:center;margin-bottom:var(--space-3);color:var(--color-accent);flex-shrink:0}.france-news-list{list-style:none;background:var(--color-surface);border-radius:var(--radius-lg);overflow-y:auto;flex:1;min-height:0}.france-news-item{border-bottom:1px solid rgba(255,255,255,.05)}.france-news-item:last-child{border-bottom:none}.france-news-item a{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--color-text);transition:background .2s}.france-news-item a:active{background:#ffffff0d}.france-news-title{font-size:.85rem;line-height:1.3;flex:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.france-news-source{font-size:.7rem;color:var(--color-accent);white-space:nowrap;flex-shrink:0}.news-footer{text-align:center;padding:var(--space-3);color:var(--color-text-muted);font-size:.7rem;flex-shrink:0}@media(min-width:768px){.news-header h1{font-size:2rem}.france-map-svg{max-width:500px}.france-region:hover{fill:#667eeacc;stroke:#ffffff80}.france-news-list{max-width:700px;margin:0 auto}.france-news-item a{padding:var(--space-4) var(--space-5)}.france-news-item a:hover{background:#ffffff0d}.france-news-title{font-size:.95rem;-webkit-line-clamp:1}.france-news-source{font-size:.8rem}}.translate-page .translate-boxes{overflow-y:auto;min-height:0}.translate-header{text-align:center;margin-bottom:var(--space-4)}.translate-header h1{font-size:1.5rem}.language-selector{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4)}.lang-select{flex:1;max-width:140px;padding:var(--space-3);background:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;cursor:pointer}.lang-select:focus{border-color:var(--color-accent)}.swap-button{width:44px;height:44px;border-radius:50%;background:var(--color-surface);border:1px solid rgba(255,255,255,.1);color:var(--color-accent);font-size:1.25rem;display:flex;align-items:center;justify-content:center}.swap-button:active{transform:scale(.9)}.translate-boxes{display:flex;flex-direction:column;gap:var(--space-3);flex:1}.text-box{position:relative;background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);min-height:120px}.translate-input{width:100%;min-height:120px;padding:var(--space-4);padding-right:var(--space-10);background:transparent;border:none;color:var(--color-text);font-size:1rem;resize:none;line-height:1.5}.translate-input::placeholder{color:var(--color-text-muted)}.clear-btn{position:absolute;top:var(--space-2);right:var(--space-2);width:32px;height:32px;border-radius:50%;background:#ffffff1a;color:var(--color-text-muted);font-size:.9rem;display:flex;align-items:center;justify-content:center}.translate-btn{width:100%;padding:var(--space-4);background:var(--gradient-purple);border-radius:var(--radius-md);color:#fff;font-size:1rem;font-weight:600}.translate-btn:disabled{opacity:.5;cursor:not-allowed}.translate-btn:not(:disabled):active{transform:scale(.98)}.result-box{padding:var(--space-4);min-height:120px}.translation-result{color:var(--color-text);line-height:1.5}.translation-result:empty:before,.result-box p:only-child:not(.error-text){color:var(--color-text-muted)}.error-text{color:#f87171}.copy-btn{position:absolute;bottom:var(--space-2);right:var(--space-2);width:40px;height:40px;border-radius:var(--radius-sm);background:#ffffff1a;font-size:1rem;display:flex;align-items:center;justify-content:center}.copy-btn:active{background:#fff3}.translate-footer{text-align:center;padding:var(--space-3);color:var(--color-text-muted);font-size:.7rem}@media(min-width:768px){.translate-header h1{font-size:2rem}.translate-boxes{max-width:600px;margin:0 auto}.lang-select{max-width:180px;font-size:.95rem}.swap-button:hover{background:var(--color-accent);color:#fff}.translate-btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-purple)}.text-box,.translate-input{min-height:150px}}.movies-page .movies-content{flex:1;overflow-y:auto;min-height:0}.movies-header{text-align:center;margin-bottom:var(--space-4);flex-shrink:0}.movies-header h1{font-size:1.5rem;margin-bottom:var(--space-1)}.movies-subtitle{font-size:.85rem;color:var(--color-text-muted)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);gap:var(--space-3);color:var(--color-text-muted)}.loading-spinner{width:32px;height:32px;border:3px solid rgba(102,126,234,.2);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.movies-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);padding-bottom:var(--space-6)}.movie-card{background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);padding:0;cursor:pointer;text-align:center;transition:transform .3s cubic-bezier(.4,0,.2,1),border-color .3s ease,box-shadow .3s ease;overflow:hidden;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.movie-card:active{transform:scale(.97)}.movie-poster{position:relative;aspect-ratio:2/3;overflow:hidden;background:var(--color-surface)}.movie-poster img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.poster-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface)}.poster-placeholder-emoji{font-size:2.5rem}.poster-placeholder-title{font-size:.7rem;color:var(--color-text-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.movie-rating{position:absolute;top:var(--space-2);right:var(--space-2);padding:2px 8px;border-radius:var(--radius-full);font-size:.7rem;font-weight:700;color:#000;line-height:1.4}.movie-title{font-size:.8rem;font-weight:600;color:var(--color-text);line-height:1.3;padding:var(--space-2) var(--space-2) 0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.movie-release-date{font-size:.7rem;color:var(--color-text-muted);padding:var(--space-1) var(--space-2) var(--space-3)}.movie-detail{flex:1;overflow-y:auto}.back-link{background:none;border:none;color:var(--color-accent);font-size:.9rem;padding:var(--space-2) 0;margin-bottom:var(--space-3);cursor:pointer;display:inline-block;transition:opacity .2s ease}.back-link:hover{opacity:.8}.movie-detail-content{border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);border:1px solid rgba(255,255,255,.06);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.movie-backdrop{position:relative;width:100%;height:200px;overflow:hidden;background:var(--color-surface)}.movie-backdrop img{width:100%;height:100%;object-fit:cover}.movie-backdrop-empty{display:flex;align-items:center;justify-content:center;font-size:3rem}.movie-backdrop-overlay{position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to top,var(--color-surface) 0%,transparent 100%);pointer-events:none}.movie-detail-info{padding:var(--space-4) var(--space-4) var(--space-6)}.movie-detail-info h2{font-size:1.4rem;margin-bottom:var(--space-3);line-height:1.3}.movie-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}.movie-rating-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.8rem;font-weight:700;color:#000}.movie-date{color:var(--color-text-muted);font-size:.85rem}.movie-runtime{color:var(--color-text-muted);font-size:.85rem;padding:var(--space-1) var(--space-2);background:#ffffff0f;border-radius:var(--radius-sm)}.movie-genres{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.genre-tag{padding:var(--space-1) var(--space-3);background:#667eea1f;border:1px solid rgba(102,126,234,.2);border-radius:var(--radius-full);font-size:.75rem;color:var(--color-accent)}.movie-overview{color:var(--color-text-muted);line-height:1.7;font-size:.9rem;margin-bottom:var(--space-4)}.movie-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.movie-action-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);font-size:.85rem;font-weight:600;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid transparent;cursor:pointer}.movie-action-btn:active{transform:scale(.96)}.imdb-btn{background:#fbbf2426;color:#fbbf24;border-color:#fbbf244d}.imdb-btn:hover{background:#fbbf2440;box-shadow:0 4px 16px #fbbf2433}.trailer-btn{background:#f8717126;color:#f87171;border-color:#f871714d}.trailer-btn:hover{background:#f8717140;box-shadow:0 4px 16px #f8717133}.movies-footer{text-align:center;padding:var(--space-3);color:var(--color-text-muted);font-size:.7rem;flex-shrink:0}@media(min-width:600px){.movies-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-4)}}@media(min-width:768px){.movies-header h1{font-size:2rem}.movies-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-4);max-width:900px;margin:0 auto}.movie-card{transition:transform .3s cubic-bezier(.4,0,.2,1),border-color .3s ease,box-shadow .3s ease}.movie-card:hover{transform:translateY(-6px);border-color:#667eea4d;box-shadow:0 8px 32px #667eea26}.movie-card:hover .movie-poster img{transform:scale(1.05)}.movie-title{font-size:.85rem}.movie-detail-content{max-width:600px;margin:0 auto}.movie-detail-info h2{font-size:1.6rem}.movie-backdrop{height:250px}}@media(min-width:1200px){.movies-grid{max-width:1000px}.movie-detail-content{max-width:700px}.movie-backdrop{height:300px}}.exhibitions-page .exhibitions-content{flex:1;overflow-y:auto;min-height:0}.exhibitions-header{text-align:center;margin-bottom:var(--space-4)}.exhibitions-header h1{font-size:1.5rem;margin-bottom:var(--space-1)}.exhibitions-subtitle{font-size:.85rem;color:var(--color-text-muted)}.exhibitions-list{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-6)}.expo-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);text-align:left;cursor:pointer;transition:all .3s ease}.expo-card:active{transform:scale(.98)}.expo-image{width:60px;height:60px;border-radius:var(--radius-md);overflow:hidden;flex-shrink:0;background:#ffffff0d}.expo-image img{width:100%;height:100%;object-fit:cover}.expo-placeholder-small{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.expo-content{flex:1;min-width:0}.expo-content h3{font-size:.9rem;font-weight:600;color:var(--color-text);margin-bottom:var(--space-1);line-height:1.2}.expo-museum-small{font-size:.75rem;color:var(--color-accent);margin-bottom:var(--space-1)}.expo-dates{font-size:.7rem;color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-2)}.ending-soon{background:#f87171;color:#000;padding:2px 6px;border-radius:var(--radius-sm);font-size:.6rem;font-weight:700}.expo-price{font-size:.85rem;font-weight:700;color:var(--color-text);white-space:nowrap}.expo-detail{flex:1;overflow-y:auto}.expo-detail-content{text-align:center;padding-bottom:var(--space-6)}.carousel-container{width:100%;margin-bottom:var(--space-4);border-radius:var(--radius-lg);overflow:hidden}.carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.carousel-track::-webkit-scrollbar{display:none}.carousel-image{width:100%;flex-shrink:0;aspect-ratio:3/2;object-fit:cover;scroll-snap-align:start}.carousel-dots{display:flex;justify-content:center;gap:6px;padding:var(--space-2) 0}.carousel-dot{width:8px;height:8px;border-radius:50%;background:#fff3;transition:background .3s ease,transform .3s ease}.carousel-dot.active{background:var(--color-accent);transform:scale(1.3)}.expo-detail h2{font-size:1.5rem;margin-bottom:var(--space-2)}.expo-museum{font-size:1rem;color:var(--color-accent);margin-bottom:var(--space-3)}.expo-meta{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.expo-meta-item{font-size:.85rem;color:var(--color-text-muted)}.expo-stats{display:flex;justify-content:center;gap:var(--space-6);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.08)}.expo-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.expo-stat-value{font-size:1.5rem;font-weight:700;color:var(--color-accent)}.expo-stat-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.expo-info{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.expo-info-row{display:flex;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:.85rem;gap:var(--space-3)}.expo-info-row:last-child{border-bottom:none}.expo-info-row span:last-child{text-align:right;flex-shrink:1}.expo-label{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.expo-description{color:var(--color-text-muted);line-height:1.6;margin-bottom:var(--space-4);text-align:left;font-size:.9rem}.expo-highlights{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4);text-align:left}.expo-highlights h3{font-size:.95rem;font-weight:600;margin-bottom:var(--space-3);color:var(--color-text)}.expo-highlights ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.expo-highlights li{font-size:.85rem;color:var(--color-text-muted);padding-left:var(--space-3);position:relative;line-height:1.4}.expo-highlights li:before{content:"";position:absolute;left:0;top:.45em;width:6px;height:6px;border-radius:50%;background:var(--color-accent)}.expo-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.expo-link{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--gradient-purple);border-radius:var(--radius-md);color:#fff;font-weight:600;transition:all .3s ease;text-decoration:none;flex:1;justify-content:center;min-width:140px}.expo-maps-link{background:linear-gradient(135deg,#4ade80,#22c55e)}.expo-link:active{transform:scale(.97)}.exhibitions-footer{text-align:center;padding:var(--space-3);color:var(--color-text-muted);font-size:.7rem}@media(min-width:768px){.exhibitions-header h1{font-size:2rem}.exhibitions-list{max-width:600px;margin:0 auto}.expo-card{padding:var(--space-4)}.expo-card:hover{border-color:var(--color-accent);transform:translate(4px)}.expo-image{width:80px;height:80px}.expo-content h3{font-size:1rem}.expo-detail-content{max-width:500px;margin:0 auto}.carousel-container{max-width:500px;margin-left:auto;margin-right:auto;margin-bottom:var(--space-4)}.expo-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-purple)}}.weather-page .weather-content{flex:1;overflow-y:auto;min-height:0}.weather-header{text-align:center;margin-bottom:var(--space-4)}.weather-header h1{font-size:1.5rem}.city-selector{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6)}.city-btn{padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:.85rem;font-weight:500;transition:all .3s ease}.city-btn.active{background:var(--gradient-purple);color:#fff;border-color:transparent}.city-btn:active{transform:scale(.95)}.current-weather{text-align:center;padding:var(--space-6);background:var(--color-surface);border-radius:var(--radius-xl);margin-bottom:var(--space-6)}.weather-icon-large{font-size:5rem;display:block;margin-bottom:var(--space-2)}.temp-display{margin-bottom:var(--space-2)}.temp-value{font-size:4rem;font-weight:700;line-height:1}.temp-feels{display:block;font-size:.9rem;color:var(--color-text-muted);margin-top:var(--space-1)}.weather-description{font-size:1.1rem;color:var(--color-text);margin-bottom:var(--space-4);text-transform:capitalize}.weather-details{display:flex;justify-content:center;gap:var(--space-6)}.detail-item{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted)}.detail-icon{font-size:1.25rem}.forecast-section{margin-bottom:var(--space-4)}.forecast-section h2{font-size:1.1rem;margin-bottom:var(--space-3);color:var(--color-text-muted)}.forecast-list{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-2);-webkit-overflow-scrolling:touch}.forecast-day{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-lg);min-width:70px}.forecast-date{font-size:.75rem;color:var(--color-text-muted);text-transform:capitalize}.forecast-icon{font-size:1.5rem}.forecast-temps{display:flex;flex-direction:column;align-items:center;font-size:.85rem}.temp-max{font-weight:700;color:var(--color-text)}.temp-min{color:var(--color-text-muted)}.weather-footer{text-align:center;padding:var(--space-3);color:var(--color-text-muted);font-size:.7rem}.loading,.error{text-align:center;padding:var(--space-8);color:var(--color-text-muted)}@media(min-width:768px){.weather-header h1{font-size:2rem}.city-btn{font-size:.95rem;padding:var(--space-3) var(--space-5)}.city-btn:hover:not(.active){border-color:var(--color-accent);color:var(--color-accent)}.current-weather{max-width:400px;margin-left:auto;margin-right:auto}.weather-icon-large{font-size:6rem}.temp-value{font-size:5rem}.forecast-section{max-width:500px;margin-left:auto;margin-right:auto}.forecast-list{justify-content:center}.forecast-day{min-width:80px;padding:var(--space-4)}.forecast-day:hover{background:var(--color-surface-elevated)}}.guitar-page{height:100dvh;height:100vh;display:flex;flex-direction:column;background:#1a1a1a;overflow:hidden;position:relative}.guitar-back-button{position:absolute;top:var(--space-3);left:var(--space-3);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#00000080;border-radius:50%;color:#fff;font-size:1.5rem;z-index:100;text-decoration:none}.guitar-soundhole{flex:1;display:flex;position:relative;background:radial-gradient(circle at center,#2a2018,#1a1410);overflow:hidden}.soundhole-ring{position:absolute;border-radius:50%;border:2px solid;pointer-events:none;left:50%;top:50%;transform:translate(-50%,-50%)}.soundhole-ring.outer{width:90%;height:90%;max-width:400px;max-height:400px;border-color:#8b5a2b4d}.soundhole-ring.middle{width:80%;height:80%;max-width:350px;max-height:350px;border-color:#d2b48c33}.soundhole-ring.inner{width:70%;height:70%;max-width:300px;max-height:300px;border-color:#8b5a2b33}.soundhole-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40%;height:40%;max-width:180px;max-height:180px;background:radial-gradient(circle,#0a0805,#000);border-radius:50%;box-shadow:inset 0 0 30px #000c;pointer-events:none}.string-hold-area{width:70px;display:flex;flex-direction:column;justify-content:center;padding:var(--space-2);gap:var(--space-2);z-index:10}.string-hold-btn{flex:1;max-height:60px;border-radius:var(--radius-md);background:#282828cc;border:2px solid var(--string-color);color:var(--string-color);font-size:.75rem;font-weight:700;transition:all .15s ease}.string-hold-btn.held{background:var(--string-color);color:#000;transform:scale(.95);box-shadow:0 0 20px var(--string-color)}.strum-area{flex:1;display:flex;flex-direction:column;justify-content:center;padding:var(--space-4) var(--space-6);gap:0;touch-action:none;cursor:crosshair}.guitar-string{flex:1;display:flex;align-items:center;position:relative}.guitar-string:before{content:"";position:absolute;left:0;right:0;height:var(--string-thickness);background:linear-gradient(90deg,var(--string-color) 0%,rgba(255,255,255,.8) 50%,var(--string-color) 100%);box-shadow:0 0 4px var(--string-color);transition:all .1s ease;opacity:.4}.guitar-string.held:before{opacity:1;height:calc(var(--string-thickness) * 1.5);box-shadow:0 0 10px var(--string-color)}.guitar-string.vibrating:before{animation:vibrate .05s linear infinite}@keyframes vibrate{0%,to{transform:translateY(-2px)}50%{transform:translateY(2px)}}.guitar-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-4);background:#000c}.note-count{font-size:.8rem;color:var(--color-text-muted)}@media(min-width:768px){.string-hold-area{width:100px}.string-hold-btn{font-size:.9rem}.strum-area{padding:var(--space-6) var(--space-8)}.control-btn{width:60px;height:60px}.control-btn:hover:not(:disabled){transform:scale(1.05);border-color:#fff}}@media(orientation:landscape)and (max-height:500px){.guitar-controls{padding:var(--space-2)}.control-btn{width:40px;height:40px}.string-hold-area{width:60px;padding:var(--space-1)}.string-hold-btn{font-size:.65rem}}.world-news-header{text-align:center;margin-bottom:var(--space-4);flex-shrink:0}.world-news-header h1{font-size:1.5rem;margin-bottom:var(--space-1)}.world-news-subtitle{font-size:.85rem;color:var(--color-text-muted)}.world-regions-container{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-4);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.world-regions-container::-webkit-scrollbar{width:4px}.world-regions-container::-webkit-scrollbar-track{background:transparent}.world-regions-container::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}.region-section{background:var(--color-surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .25s ease}.region-section:hover{border-color:#ffffff1a}.region-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:none;border:none;color:var(--color-text);cursor:pointer;font-size:1rem;font-weight:600;font-family:inherit;transition:background .2s ease;-webkit-tap-highlight-color:transparent}.region-header:active{background:#ffffff0a}.region-header-left{display:flex;align-items:center;gap:var(--space-2)}.region-icon{font-size:1.25rem}.region-name{letter-spacing:.01em}.region-count{font-size:.7rem;font-weight:500;color:var(--color-text-muted);background:#ffffff0f;padding:2px 8px;border-radius:var(--radius-full)}.region-chevron{font-size:.8rem;color:var(--color-text-muted);transition:transform .25s ease;display:inline-block}.region-chevron.open{transform:rotate(90deg)}.region-countries-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--space-2);padding:0 var(--space-3) var(--space-3);animation:regionReveal .25s ease}@keyframes regionReveal{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.country-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);font-family:inherit;transition:background .2s ease,border-color .2s ease,transform .15s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent}.country-card:active{transform:scale(.96);background:#667eea26;border-color:#667eea66}.country-card-flag{font-size:2rem;line-height:1}.country-card-name{font-size:.72rem;font-weight:500;text-align:center;line-height:1.2;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.country-news{flex:1;overflow-y:auto;min-height:0}.back-link{background:none;border:none;color:var(--color-accent);font-size:.9rem;padding:var(--space-2) 0;margin-bottom:var(--space-4);cursor:pointer;font-family:inherit}.country-header{text-align:center;margin-bottom:var(--space-4)}.country-flag-large{font-size:4rem;display:block;margin-bottom:var(--space-2)}.country-header h2{font-size:1.5rem}.country-news-list{list-style:none;background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden}.country-news-item{border-bottom:1px solid rgba(255,255,255,.05)}.country-news-item:last-child{border-bottom:none}.country-news-item a{display:flex;flex-direction:column;padding:var(--space-4);color:var(--color-text);transition:background .2s}.country-news-item a:active{background:#ffffff0d}.country-news-item .news-title{font-size:.95rem;line-height:1.4;margin-bottom:var(--space-2)}.country-news-item .news-source{font-size:.75rem;color:var(--color-accent)}.world-news-footer{text-align:center;padding:var(--space-3);color:var(--color-text-muted);font-size:.7rem;flex-shrink:0}.loading{text-align:center;padding:var(--space-6);color:var(--color-text-muted)}@media(min-width:768px){.world-news-header h1{font-size:2rem}.world-regions-container{max-width:700px;margin:0 auto;width:100%}.region-countries-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-3);padding:0 var(--space-4) var(--space-4)}.region-header{padding:var(--space-4) var(--space-5);font-size:1.05rem}.region-header:hover{background:#ffffff0a}.country-card{padding:var(--space-4) var(--space-3)}.country-card:hover{background:#667eea1a;border-color:#667eea59;box-shadow:0 0 16px #667eea1f;transform:translateY(-2px)}.country-card:active{transform:translateY(0) scale(.98)}.country-card-flag{font-size:2.5rem}.country-card-name{font-size:.78rem}.country-news{max-width:600px;margin:0 auto}.country-news-item a:hover{background:#ffffff0d}}@media(min-width:1200px){.world-regions-container{max-width:850px}.region-countries-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.onthisday-page .events-list{overflow-y:auto;min-height:0}.onthisday-header{text-align:center;margin-bottom:var(--space-4)}.onthisday-header h1{font-size:1.5rem}.date-selector{display:flex;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-3)}.date-input{padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text);font-size:1rem;cursor:pointer;color-scheme:dark}.date-input:focus{border-color:var(--color-accent);outline:none}.today-btn{padding:var(--space-3) var(--space-4);background:var(--gradient-purple);border:none;border-radius:var(--radius-md);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:transform .2s;white-space:nowrap}.today-btn:active{transform:scale(.95)}.selected-date-display{text-align:center;font-size:1.5rem;font-weight:700;color:var(--color-accent);margin-bottom:var(--space-6)}.events-list{flex:1;display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-6)}.event-card{display:flex;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);border-left:3px solid var(--color-accent)}.event-year{font-size:1.25rem;font-weight:700;min-width:60px;flex-shrink:0}.event-content{flex:1;display:flex;gap:var(--space-2)}.event-icon{font-size:1rem;flex-shrink:0}.event-description{font-size:.9rem;line-height:1.5;color:var(--color-text-muted);margin:0}.onthisday-footer{text-align:center;padding:var(--space-3);color:var(--color-text-muted);font-size:.7rem}.loading{text-align:center;padding:var(--space-8);color:var(--color-text-muted)}@media(min-width:768px){.onthisday-header h1{font-size:2rem}.date-input{font-size:1.1rem;padding:var(--space-3) var(--space-5)}.today-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-purple)}.selected-date-display{font-size:2rem}.events-list{max-width:600px;margin:0 auto}.event-card{padding:var(--space-5)}.event-card:hover{border-left-width:5px;transform:translate(4px)}.event-year{font-size:1.5rem;min-width:80px}.event-description{font-size:1rem}}.drums-page{height:100dvh;height:100vh;display:flex;flex-direction:column;background:#141418;overflow:hidden;position:relative}.drums-back-button{position:absolute;top:var(--space-3);left:var(--space-3);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#00000080;border-radius:50%;color:#fff;font-size:1.5rem;z-index:100;text-decoration:none}.drums-container{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-2);padding-top:56px}.drums-kit{position:relative;width:100%;max-width:540px;aspect-ratio:1}.kit-stands{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.drum-piece{position:absolute;border:none;background:none;padding:0;margin:0;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2;transition:transform .08s ease-out,filter .08s ease-out;outline:none;-webkit-tap-highlight-color:transparent}.drum-piece:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:4px;border-radius:50%}.drum-svg{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}.drum-kick{width:30%;height:30%;left:50%;top:72%;transform:translate(-50%,-50%)}.drum-snare{width:18%;height:18%;left:33%;top:58%;transform:translate(-50%,-50%)}.drum-hihat{width:16%;height:16%;left:16%;top:38%;transform:translate(-50%,-50%)}.drum-hihat-open{width:14%;height:14%;left:16%;top:58%;transform:translate(-50%,-50%)}.drum-tom1{width:16%;height:16%;left:39%;top:32%;transform:translate(-50%,-50%)}.drum-tom2{width:17%;height:17%;left:61%;top:32%;transform:translate(-50%,-50%)}.drum-crash{width:20%;height:20%;left:24%;top:12%;transform:translate(-50%,-50%)}.drum-ride{width:24%;height:24%;left:78%;top:14%;transform:translate(-50%,-50%)}.drum-piece.active{transform:translate(-50%,-50%) scale(.92);filter:brightness(1.5)}.drum-piece.active .drum-svg{filter:drop-shadow(0 0 12px rgba(255,255,200,.4)) drop-shadow(0 4px 8px rgba(0,0,0,.5))}.piece-label{position:absolute;bottom:-2px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:none;z-index:3}.piece-name{font-size:.55rem;font-weight:700;color:#ffffffd9;text-transform:uppercase;letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.8);white-space:nowrap}.piece-key{font-size:.5rem;font-weight:600;color:#fff9;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);padding:0 4px;border-radius:3px;pointer-events:none;font-family:monospace;text-shadow:none}.drums-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-4);background:#000000d9;border-top:1px solid rgba(255,255,255,.06)}.control-btn{width:50px;height:50px;border-radius:50%;background:var(--color-surface);border:2px solid rgba(255,255,255,.2);color:#fff;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.control-btn:active{transform:scale(.9)}.control-btn:disabled{opacity:.3;cursor:not-allowed}.record-btn{border-color:#f87171}.record-dot{width:12px;height:12px;background:#f87171;border-radius:50%;margin-right:4px}.stop-btn{border-color:#fbbf24;animation:pulse 1s infinite}.stop-square{width:12px;height:12px;background:#fbbf24;margin-right:4px}@keyframes pulse{0%,to{box-shadow:0 0 #fbbf2466}50%{box-shadow:0 0 0 8px #fbbf2400}}.play-btn{border-color:#4ade80}.play-btn:not(:disabled):active{background:#4ade80;color:#000}.share-btn{border-color:#60a5fa}.hit-count{font-size:.8rem;color:var(--color-text-muted)}@media(min-width:640px){.drums-kit{max-width:600px}.piece-name{font-size:.7rem}.piece-key{font-size:.6rem;padding:1px 5px}.control-btn{width:60px;height:60px}}@media(min-width:1024px){.drums-kit{max-width:680px}.drum-piece:hover{filter:brightness(1.12)}.drum-piece:hover .drum-svg{filter:drop-shadow(0 0 6px rgba(255,255,200,.2)) drop-shadow(0 4px 8px rgba(0,0,0,.5))}.control-btn:hover:not(:disabled){transform:scale(1.05);border-color:#fff}.piece-name{font-size:.75rem}.piece-key{font-size:.65rem;padding:1px 6px}}@media(orientation:landscape)and (max-height:500px){.drums-container{padding:var(--space-1);padding-top:48px}.drums-kit{max-width:none;max-height:62vh;aspect-ratio:1.2}.drums-controls{padding:var(--space-2)}.control-btn{width:40px;height:40px}.piece-name{font-size:.45rem}.piece-key{display:none}}@media(max-width:380px){.drums-kit{max-width:100%}.piece-name{font-size:.45rem}.piece-key{font-size:.4rem;padding:0 3px}}.fridge-page{overflow-y:auto!important;overflow-x:hidden}.fridge-page .fridge-selector{min-height:0}.fridge-page .recipe-suggestion{overflow-y:auto;min-height:0}.fridge-header{text-align:center;margin-bottom:var(--space-4);flex-shrink:0}.fridge-header h1{font-size:1.5rem;margin-bottom:var(--space-1)}.fridge-subtitle{font-size:.85rem;color:var(--color-text-muted)}.fridge-selector{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.fridge-svg-container{display:flex;justify-content:center;align-items:center;width:100%;max-width:260px;flex-shrink:0}.fridge-svg{width:100%;height:auto;max-height:40vh}.fridge-ingredient{cursor:pointer;outline:none}.fridge-ingredient circle{transition:fill .25s ease,stroke .25s ease,stroke-width .25s ease}.fridge-ingredient:hover circle{fill:#667eea33;stroke:#667eea80;stroke-width:1.5}.fridge-ingredient.selected circle{fill:#667eea59;stroke:#667eeacc;stroke-width:2}.fridge-ingredient:focus-visible circle{stroke:#c8d2ffe6;stroke-width:2.5}.ingredients-panel{display:flex;flex-direction:column;gap:var(--space-4);width:100%}.ingredient-category h3{font-size:.8rem;font-weight:600;color:var(--color-text-muted);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.ingredients-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ingredient-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:2px solid rgba(255,255,255,.08);border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease}.ingredient-btn.selected{background:var(--gradient-purple);border-color:transparent}.ingredient-btn:active{transform:scale(.95)}.ingredient-emoji{font-size:1rem}.ingredient-name{font-size:.8rem;color:var(--color-text)}.fridge-actions{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;flex-shrink:0}.clear-btn{padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:.85rem}.selected-count{font-size:.85rem;color:var(--color-text-muted)}.carousel-section{padding-bottom:var(--space-6)}.carousel-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4)}.carousel-header h2{font-size:1.2rem;font-weight:700}.carousel-count{font-size:.85rem;color:var(--color-text-muted)}.carousel-wrapper{position:relative}.recipe-carousel{display:flex;gap:var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:var(--space-2) var(--space-1);scrollbar-width:none;-ms-overflow-style:none}.recipe-carousel::-webkit-scrollbar{display:none}.carousel-arrow{display:none}.recipe-card{flex:0 0 220px;scroll-snap-align:start;background:#16161fb3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--space-4);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;text-align:center;color:var(--color-text)}.recipe-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,transparent 50%);pointer-events:none;border-radius:inherit}.recipe-card:active{transform:scale(.97)}.card-match-bar{position:absolute;top:0;left:0;right:0;height:3px;background:#ffffff0f;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden}.card-match-bar-fill{height:100%;background:var(--gradient-purple);border-radius:inherit;transition:width .4s ease}.card-emoji{font-size:2.5rem;display:block;margin-bottom:var(--space-2);margin-top:var(--space-1)}.card-name{font-size:.9rem;font-weight:700;margin-bottom:var(--space-2);line-height:1.3;min-height:2.4em}.card-meta{display:flex;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-2);font-size:.75rem}.card-time{color:var(--color-text-muted)}.card-difficulty{font-weight:600}.card-match{display:flex;justify-content:center;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2)}.card-match-text{font-size:.85rem;font-weight:600;color:var(--color-text)}.card-match-pct{font-size:.75rem;color:var(--color-accent);font-weight:700}.card-ingredient-dots{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-available{background:#4ade80;box-shadow:0 0 4px #4ade8066}.dot-missing{background:#ffffff26}.no-recipes{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted);font-size:.95rem}.recipe-suggestion{flex:1}.recipe-header{text-align:center;margin-bottom:var(--space-6)}.recipe-emoji-large{font-size:4rem;display:block;margin-bottom:var(--space-2)}.recipe-header h2{font-size:1.5rem;margin-bottom:var(--space-3)}.recipe-meta-row{display:flex;justify-content:center;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.recipe-time{font-size:.85rem;color:var(--color-text-muted)}.recipe-difficulty-badge{font-size:.85rem;font-weight:600}.recipe-match-badge{font-size:.85rem;color:var(--color-accent);font-weight:600;background:#667eea1f;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.recipe-match-bar-container{max-width:200px;margin:0 auto;height:6px;background:#ffffff14;border-radius:var(--radius-full);overflow:hidden}.recipe-match-bar-fill{height:100%;background:var(--gradient-purple);border-radius:var(--radius-full);transition:width .5s ease}.recipe-section{margin-bottom:var(--space-5)}.recipe-section h3{font-size:1rem;margin-bottom:var(--space-3)}.ingredient-summary{font-size:.85rem;color:var(--color-accent);margin-bottom:var(--space-3);font-weight:600}.recipe-ingredients{list-style:none;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-3)}.recipe-ingredients li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid rgba(255,255,255,.05);transition:opacity .2s ease}.recipe-ingredients li:last-child{border-bottom:none}.recipe-ingredients li.ingredient-available{color:var(--color-text)}.recipe-ingredients li.ingredient-missing{color:var(--color-text-muted);opacity:.65}.recipe-ingredients li.ingredient-extra{color:var(--color-text-muted);opacity:.5;font-style:italic}.ingredient-status-icon{font-size:.85rem;flex-shrink:0;width:1.2em;text-align:center}.ingredient-display-name{font-size:.9rem}.recipe-steps{padding-left:var(--space-5)}.recipe-steps li{margin-bottom:var(--space-3);line-height:1.5;color:var(--color-text-muted)}.recipe-steps li::marker{color:var(--color-accent);font-weight:700}@media(min-width:768px){.fridge-header h1{font-size:2rem}.fridge-selector{flex-direction:row;align-items:flex-start;max-width:800px;margin:0 auto}.fridge-svg-container{width:45%;max-width:320px;position:sticky;top:var(--space-4)}.fridge-svg{max-height:none}.ingredients-panel{width:55%;overflow-y:auto}.ingredient-btn{padding:var(--space-3) var(--space-4)}.ingredient-btn:hover:not(.selected){border-color:var(--color-accent)}.ingredient-name{font-size:.9rem}.fridge-actions{max-width:800px;margin:0 auto}.carousel-arrow{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:40px;height:40px;border-radius:50%;background:#16161fd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);color:var(--color-text);font-size:1.5rem;cursor:pointer;transition:all .2s ease;line-height:1}.carousel-arrow:hover{background:#667eea33;border-color:#667eea80;box-shadow:0 0 16px #667eea33}.carousel-arrow-left{left:-16px}.carousel-arrow-right{right:-16px}.recipe-card{flex:0 0 240px}.recipe-card:hover{border-color:#667eea66;transform:translateY(-4px);box-shadow:0 12px 32px #00000040,0 0 20px #667eea1a}.recipe-card:hover:active{transform:translateY(-2px) scale(.98)}.carousel-section{max-width:800px;margin:0 auto}.recipe-suggestion{max-width:500px;margin:0 auto}}@media(min-width:1024px){.fridge-selector{max-width:900px}.fridge-svg-container{max-width:360px}.ingredients-panel{gap:var(--space-5)}.ingredient-btn{padding:var(--space-3) var(--space-5)}.ingredient-name{font-size:.95rem}.fridge-actions,.carousel-section{max-width:900px}.recipe-card{flex:0 0 260px}.carousel-arrow-left{left:-24px}.carousel-arrow-right{right:-24px}}.workout-page .workout-content{flex:1;overflow-y:auto;min-height:0}.workout-header{text-align:center;margin-bottom:var(--space-4)}.workout-header h1{font-size:1.5rem;margin-bottom:var(--space-1)}.workout-subtitle{font-size:.85rem;color:var(--color-text-muted)}.body-selector{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.body-svg-container{display:flex;justify-content:center;align-items:center;width:100%;max-width:220px;flex-shrink:0;padding:var(--space-3)}.body-svg{width:100%;height:auto;max-height:400px;filter:drop-shadow(0 0 12px rgba(102,126,234,.15))}.body-silhouette{transition:fill .3s ease}.body-zone{cursor:pointer;transition:fill .2s ease,stroke .2s ease,stroke-width .2s ease,filter .2s ease;outline:none}.body-zone:hover{fill:#667eea66!important;stroke:#a0b4ff80!important;filter:drop-shadow(0 0 3px rgba(102,126,234,.3))}.body-zone:focus-visible{stroke:#c8d2ffe6!important;stroke-width:1!important}.body-zone-cardio:hover path{fill:#ea6666b3!important;stroke:#ff9696cc!important}.body-detail-lines{pointer-events:none}.body-parts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);width:100%}.body-part-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);background:var(--color-surface);border:2px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s ease}.body-part-btn.selected{background:var(--gradient-purple);border-color:transparent}.body-part-btn:active{transform:scale(.95)}.part-emoji{font-size:1.8rem}.part-name{font-size:.85rem;font-weight:600;color:var(--color-text)}.workout-actions{display:flex;gap:var(--space-3);position:sticky;bottom:0;padding:var(--space-4) 0;background:var(--color-bg)}.clear-btn{padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:.85rem}.generate-btn{flex:1;padding:var(--space-4);background:var(--gradient-purple);border-radius:var(--radius-md);color:#fff;font-size:1rem;font-weight:600}.generate-btn:active{transform:scale(.98)}.workout-list{flex:1;overflow-y:auto;min-height:0}.back-link{background:none;border:none;color:var(--color-accent);font-size:.9rem;padding:var(--space-2) 0;margin-bottom:var(--space-4);cursor:pointer}.workout-title{display:flex;justify-content:space-between;align-items:center;font-size:1.25rem;margin-bottom:var(--space-4)}.exercise-count{font-size:.8rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full)}.exercises-list{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-6)}.exercise-card{padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);border-left:4px solid var(--color-accent)}.exercise-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.exercise-emoji{font-size:1.5rem;flex-shrink:0}.exercise-gif{width:auto;height:80px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;background:#667eea14}.exercise-info{flex:1;min-width:0}.exercise-info h3{font-size:1rem;margin-bottom:var(--space-1)}.exercise-reps{font-size:.8rem;font-weight:600;color:var(--color-accent)}.exercise-description{font-size:.85rem;color:var(--color-text-muted);line-height:1.4}.workout-footer{text-align:center;padding:var(--space-3);color:var(--color-text-muted);font-size:.7rem}@media(min-width:768px){.workout-header h1{font-size:2rem}.body-selector{flex-direction:row;align-items:flex-start;max-width:720px;margin:0 auto var(--space-4)}.body-svg-container{width:40%;max-width:260px;position:sticky;top:var(--space-4)}.body-svg{max-height:480px}.body-parts-grid{width:60%;grid-template-columns:repeat(2,1fr)}.body-part-btn{padding:var(--space-5)}.body-part-btn:hover:not(.selected){border-color:var(--color-accent);transform:translateY(-4px)}.part-emoji{font-size:2.2rem}.part-name{font-size:.95rem}.workout-actions{max-width:720px;margin:0 auto}.generate-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-purple)}.workout-list{max-width:700px;margin:0 auto}.exercise-card:hover{border-left-width:6px;transform:translate(4px)}.exercise-gif{height:80px}}@media(min-width:1024px){.body-selector{max-width:800px}.body-svg-container{max-width:300px}.body-parts-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.body-part-btn{padding:var(--space-6)}.part-emoji{font-size:2.5rem}.part-name{font-size:1rem}}.wordle-page{align-items:center;gap:0;padding-bottom:env(safe-area-inset-bottom,0px);user-select:none;-webkit-user-select:none}.wordle-title{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text);text-align:center;margin-bottom:var(--space-1);flex-shrink:0}.game-lang-selector{display:flex;gap:6px;justify-content:center;align-items:center;flex-wrap:wrap;margin-bottom:var(--space-2);flex-shrink:0}.game-lang-pill{display:flex;align-items:center;justify-content:center;width:36px;height:30px;border-radius:var(--radius-sm);border:2px solid transparent;background:#ffffff14;cursor:pointer;transition:background-color .15s,border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent;padding:0}.game-lang-pill:active{transform:scale(.92)}.game-lang-pill.game-lang-active{background:#ffffff2e;border-color:#4ade80}.game-lang-flag{font-size:1.1rem;line-height:1}.wordle-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);background:var(--color-text);color:var(--color-bg);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;z-index:100;animation:toastIn .3s ease;pointer-events:none}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.wordle-board{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;width:100%}.wordle-grid{display:flex;flex-direction:column;gap:5px;align-items:center}.grid-row{display:flex;gap:5px}.grid-row.shake{animation:shakeRow .5s ease}@keyframes shakeRow{0%,to{transform:translate(0)}10%,50%,90%{transform:translate(-4px)}30%,70%{transform:translate(4px)}}.tile{width:56px;height:56px;position:relative;perspective:500px}.tile .tile-front,.tile .tile-back{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;letter-spacing:.02em;border-radius:4px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:background-color .1s,border-color .1s}.tile .tile-front{background:var(--color-surface);border:2px solid rgba(255,255,255,.12);color:var(--color-text)}.tile.filled .tile-front{border-color:#ffffff4d}.tile .tile-back{background:#ffffff26;border:2px solid transparent;color:var(--color-text);transform:rotateX(180deg)}.tile.correct .tile-back{background:#4ade80;color:#000}.tile.present .tile-back{background:#fbbf24;color:#000}.tile.absent .tile-back{background:#ffffff26}.tile.flip{animation:flipTile .5s ease forwards}@keyframes flipTile{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.tile.flip .tile-front{animation:hideFront .5s ease forwards}.tile.flip .tile-back{animation:showBack .5s ease forwards}@keyframes hideFront{0%,49.9%{opacity:1}50%,to{opacity:0}}@keyframes showBack{0%,49.9%{opacity:0}50%,to{opacity:1}}.tile.correct:not(.flip) .tile-front,.tile.present:not(.flip) .tile-front,.tile.absent:not(.flip) .tile-front{opacity:0}.tile.correct:not(.flip) .tile-back,.tile.present:not(.flip) .tile-back,.tile.absent:not(.flip) .tile-back{opacity:1}.tile.filled .tile-front{animation:popIn .1s ease}@keyframes popIn{0%{transform:scale(.9)}50%{transform:scale(1.05)}to{transform:scale(1)}}.wordle-keyboard{width:100%;max-width:500px;display:flex;flex-direction:column;gap:5px;padding:var(--space-2) 0;flex-shrink:0}.keyboard-row{display:flex;gap:4px;justify-content:center}.key{min-width:30px;height:50px;border-radius:var(--radius-sm);background:#ffffff26;color:var(--color-text);font-size:.85rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 var(--space-1);flex:1;max-width:42px;border:none;cursor:pointer;transition:background-color .2s,transform .1s;-webkit-tap-highlight-color:transparent}.key:active{transform:scale(.93)}.key-wide{flex:1.5;max-width:65px;font-size:.7rem;letter-spacing:.02em}.key.correct{background:#4ade80;color:#000}.key.present{background:#fbbf24;color:#000}.key.absent{background:#ffffff14;color:#fff6}.stats-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeOverlay .3s ease;padding:var(--space-4)}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}.stats-modal{background:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:360px;position:relative;animation:scaleIn .3s ease;box-shadow:var(--shadow-medium)}.stats-close{position:absolute;top:var(--space-3);right:var(--space-3);background:none;border:none;color:var(--color-text-muted);font-size:1.5rem;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.stats-close:active{opacity:.6}.stats-title{text-align:center;font-size:1.2rem;font-weight:700;margin-bottom:var(--space-4);color:var(--color-text)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);margin-bottom:var(--space-4)}.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-number{font-size:1.6rem;font-weight:800;color:var(--color-text)}.stat-label{font-size:.65rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;text-align:center}.stats-answer{text-align:center;font-size:.9rem;color:var(--color-text-muted);margin-bottom:var(--space-2)}.stats-answer strong{color:var(--color-text);letter-spacing:.1em}.stats-won{color:#4ade80}.stats-definition{text-align:center;font-size:.8rem;color:var(--color-text-muted);margin-bottom:var(--space-4);line-height:1.5;font-style:italic;padding:0 var(--space-2)}.stats-definition-label{font-style:normal;font-weight:700;color:var(--color-text);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.stats-definition-loading{font-style:normal;color:var(--color-text-muted);opacity:.5}.share-button{width:100%;padding:var(--space-3) var(--space-4);background:#4ade80;color:#000;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:700;cursor:pointer;transition:transform .15s,opacity .15s}.share-button:active{transform:scale(.97);opacity:.85}@media(min-width:768px){.tile{width:62px;height:62px}.tile .tile-front,.tile .tile-back{font-size:1.75rem}.wordle-title{font-size:1.6rem;margin-bottom:var(--space-2)}.game-lang-pill{width:40px;height:34px}.game-lang-flag{font-size:1.25rem}.game-lang-selector{gap:8px;margin-bottom:var(--space-3)}.key{height:56px;font-size:.95rem;max-width:46px;border-radius:var(--radius-sm)}.key-wide{max-width:75px;font-size:.8rem}}@media(min-width:1024px){.game-lang-pill:hover{background:#ffffff26}.game-lang-pill.game-lang-active:hover{background:#ffffff38}.key:hover{background:#ffffff40}.key.correct:hover{background:#6ee7a0}.key.present:hover{background:#fcd34d}.key.absent:hover{background:#ffffff1f}.stats-close:hover{background:#ffffff1a;color:var(--color-text)}.share-button:hover{opacity:.9;transform:translateY(-1px)}}@media(max-width:380px){.tile{width:50px;height:50px}.tile .tile-front,.tile .tile-back{font-size:1.3rem}.key{height:44px;font-size:.78rem;min-width:26px}.key-wide{font-size:.65rem}.wordle-title{font-size:1.2rem}.game-lang-pill{width:32px;height:26px}.game-lang-flag{font-size:.95rem}.game-lang-selector{gap:4px}}@media(prefers-reduced-motion:reduce){.tile.flip,.tile.flip .tile-front,.tile.flip .tile-back,.tile.filled .tile-front,.grid-row.shake,.wordle-toast,.stats-overlay,.stats-modal{animation-duration:.01ms!important}}.sudoku-page{align-items:center;gap:var(--space-2);overflow:hidden;user-select:none;-webkit-user-select:none}.sudoku-header{text-align:center;flex-shrink:0}.sudoku-header h1{font-size:1.35rem;margin-bottom:var(--space-2)}.difficulty-selector{display:flex;gap:var(--space-2);justify-content:center}.diff-btn{padding:var(--space-2) var(--space-4);font-size:.8rem;font-weight:600;color:var(--color-text-muted);background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease}.diff-btn.active{color:#fff;background:var(--gradient-purple);border-color:transparent;box-shadow:var(--shadow-glow-purple)}.diff-btn:active{transform:scale(.95)}.sudoku-controls-bar{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-shrink:0}.timer{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text);background:var(--color-surface);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);min-width:60px;text-align:center}.control-btn{padding:var(--space-2) var(--space-3);font-size:.75rem;font-weight:600;color:var(--color-text-muted);background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;white-space:nowrap}.control-btn.active{color:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 8px #667eea33}.control-btn:disabled{opacity:.35;cursor:default}.control-btn:active:not(:disabled){transform:scale(.95)}.sudoku-grid-wrapper{display:flex;justify-content:center;align-items:center;flex:1;min-height:0}.sudoku-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));width:min(100%,85vw);aspect-ratio:1 / 1;max-height:100%;background:#ffffff08;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);overflow:hidden}.sudoku-cell{display:flex;align-items:center;justify-content:center;border-right:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);cursor:pointer;position:relative;transition:background .15s ease;min-width:0;min-height:0;overflow:hidden}.sudoku-cell:nth-child(9n){border-right:none}.sudoku-cell:nth-last-child(-n+9){border-bottom:none}.sudoku-cell.box-left{border-left:2px solid rgba(255,255,255,.3)}.sudoku-cell.box-top{border-top:2px solid rgba(255,255,255,.3)}.sudoku-cell.highlighted{background:#667eea0f}.sudoku-cell.same-number{background:#667eea26}.sudoku-cell.selected{background:#667eea2e;box-shadow:inset 0 0 0 2px var(--color-accent),0 0 12px #667eea40;z-index:1}.cell-value{font-size:1.15rem;font-weight:600;line-height:1}.sudoku-cell.given .cell-value{color:var(--color-text);font-weight:700}.sudoku-cell.user-entered .cell-value{color:var(--color-accent)}.sudoku-cell.error .cell-value{color:#f87171}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:1px}.note{display:flex;align-items:center;justify-content:center;font-size:.45rem;font-weight:600;color:var(--color-text-muted);line-height:1}.note.visible{color:var(--color-accent)}.sudoku-numpad{display:flex;justify-content:center;gap:var(--space-2);flex-shrink:0;flex-wrap:wrap;max-width:400px;margin:0 auto;padding:var(--space-1) 0}.numpad-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:var(--color-text);background:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:50%;cursor:pointer;transition:all .15s ease}.numpad-btn:active{background:var(--gradient-purple);border-color:transparent;transform:scale(.9)}.numpad-btn.eraser{color:#f87171;font-size:.9rem}.sudoku-congrats{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:100;animation:fadeIn .4s ease}.congrats-inner{text-align:center;background:var(--color-surface-elevated);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-large);max-width:320px}.congrats-emoji{font-size:3rem;display:block;margin-bottom:var(--space-3)}.congrats-inner h2{font-size:1.5rem;margin-bottom:var(--space-2)}.congrats-inner p{font-size:.9rem;color:var(--color-text-muted);margin-bottom:var(--space-5)}.congrats-btn{padding:var(--space-3) var(--space-6);font-size:.95rem;font-weight:600;color:#fff;background:var(--gradient-purple);border:none;border-radius:var(--radius-md);cursor:pointer;transition:transform .15s ease}.congrats-btn:active{transform:scale(.95)}@media(min-width:768px){.sudoku-header h1{font-size:1.75rem}.sudoku-grid{width:min(100%,520px)}.cell-value{font-size:1.35rem}.note{font-size:.5rem}.numpad-btn{width:44px;height:44px;font-size:1.15rem}.diff-btn{font-size:.85rem;padding:var(--space-2) var(--space-5)}.diff-btn:hover:not(.active){border-color:var(--color-accent);color:var(--color-text)}.control-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-text)}.numpad-btn:hover{border-color:var(--color-accent);transform:translateY(-2px)}.congrats-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-purple)}}@media(min-width:1024px){.sudoku-page{gap:var(--space-3)}.sudoku-header h1{font-size:2rem}.sudoku-controls-bar{gap:var(--space-4)}.timer{font-size:1.1rem}.control-btn{font-size:.85rem;padding:var(--space-2) var(--space-4)}.sudoku-grid{width:min(100%,580px)}.cell-value{font-size:1.5rem}.note{font-size:.55rem}.numpad-btn{width:52px;height:52px;font-size:1.3rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.paris-page .paris-title{font-size:1.5rem;text-align:center;margin-bottom:var(--space-3);flex-shrink:0}.paris-search{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);flex-shrink:0}.paris-input{flex:1;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-full);color:var(--color-text);font-size:.9rem;outline:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:border-color .3s ease}.paris-input::placeholder{color:var(--color-text-muted)}.paris-input:focus{border-color:var(--color-accent)}.paris-search-btn{padding:var(--space-3) var(--space-5);background:var(--gradient-purple);border:none;border-radius:var(--radius-full);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .3s ease}.paris-search-btn:disabled{opacity:.6;cursor:not-allowed}.paris-search-btn:active{transform:scale(.95)}.paris-radius{margin-bottom:var(--space-3);flex-shrink:0}.paris-radius-label{display:block;font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-2);text-align:center}.paris-radius-label strong{color:var(--color-accent);font-weight:700}.paris-slider{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:#ffffff1a;border-radius:var(--radius-full);outline:none}.paris-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-accent);cursor:pointer;box-shadow:0 0 10px #667eea66;transition:transform .2s ease}.paris-slider::-webkit-slider-thumb:active{transform:scale(1.2)}.paris-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-accent);border:none;cursor:pointer;box-shadow:0 0 10px #667eea66}.paris-days{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-2);margin-bottom:var(--space-3);flex-shrink:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}.paris-days::-webkit-scrollbar{display:none}.paris-day-pill{padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:.8rem;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .3s ease;flex-shrink:0}.paris-day-pill.active{background:var(--gradient-purple);color:#fff;border-color:transparent}.paris-day-pill:active{transform:scale(.95)}.paris-categories{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-2);margin-bottom:var(--space-3);flex-shrink:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}.paris-categories::-webkit-scrollbar{display:none}.paris-cat-chip{padding:var(--space-1) var(--space-3);background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:.75rem;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .3s ease;flex-shrink:0}.paris-cat-chip.active{background:#667eea33;color:var(--color-accent);border-color:var(--color-accent)}.paris-cat-chip:active{transform:scale(.95)}.paris-results{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-6)}.paris-empty{text-align:center;padding:var(--space-8);color:var(--color-text-muted);font-size:.9rem}.place-card{display:flex;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .3s ease}.place-icon{font-size:1.5rem;flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border-radius:var(--radius-md)}.place-info{flex:1;min-width:0}.place-top-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.place-name{font-size:.9rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.place-distance{font-size:.8rem;font-weight:700;color:var(--color-accent);white-space:nowrap;flex-shrink:0}.place-meta{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-1);flex-wrap:wrap}.place-category{font-size:.7rem;color:var(--color-text-muted)}.place-price{font-size:.7rem;color:var(--color-text-muted);font-weight:600}.place-rating{font-size:.65rem;color:#fbbf24;letter-spacing:1px}.place-description{font-size:.75rem;color:var(--color-text-muted);line-height:1.4;margin-bottom:var(--space-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.place-bottom-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap}.place-status{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);white-space:nowrap}.place-status.open{background:#4ade8026;color:#4ade80}.place-status.closed{background:#f8717126;color:#f87171}.place-address{font-size:.65rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(min-width:768px){.paris-page .paris-title{font-size:2rem}.paris-search{max-width:600px;margin-left:auto;margin-right:auto;margin-bottom:var(--space-4)}.paris-radius{max-width:400px;margin-left:auto;margin-right:auto;margin-bottom:var(--space-4)}.paris-days,.paris-categories{justify-content:center;margin-bottom:var(--space-4)}.paris-results{max-width:650px;margin-left:auto;margin-right:auto}.paris-day-pill:hover:not(.active){border-color:var(--color-accent);color:var(--color-accent)}.paris-cat-chip:hover:not(.active){border-color:#667eea66;color:var(--color-accent)}.place-card:hover{border-color:#667eea4d;transform:translate(4px)}.paris-search-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow-purple)}.paris-input{font-size:1rem}}.roulette-page{position:relative;overflow-y:auto;overflow-x:hidden;gap:var(--space-3);align-items:center}.roulette-page h2{font-size:1.1rem;text-align:center;color:var(--color-text-muted);margin-bottom:var(--space-2)}.roulette-wheel-container{position:relative;width:min(80vw,380px);height:min(80vw,380px);flex-shrink:0;perspective:900px}.roulette-wheel-wrapper{position:relative;width:100%;height:100%;transform:rotateX(8deg);transform-style:preserve-3d}.roulette-wheel{width:100%;height:100%;transition:transform .1s linear;filter:drop-shadow(0 8px 32px rgba(0,0,0,.5))}.roulette-wheel.spinning{transition:none}.ball-orbit{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ball-orbit.animating{animation:none}.roulette-ball{position:absolute;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#e0e0e0 40%,#a0a0a0 80%,#707070);box-shadow:0 0 4px #fffc,0 2px 6px #0006,inset 0 -2px 4px #0003;top:50%;left:50%;transform-origin:0 0;pointer-events:none;opacity:0;transition:opacity .3s ease}.roulette-ball.visible{opacity:1}.roulette-result{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-height:60px}.result-number{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;font-size:1.5rem;font-weight:800;color:#fff;border:3px solid rgba(255,255,255,.3);box-shadow:0 4px 20px #0000004d;animation:scaleIn .4s ease}.result-number.red{background:#c0392b}.result-number.black{background:#1a1a2e;border-color:#ffffff26}.result-number.green{background:#27ae60}.result-text{font-size:.85rem;color:var(--color-text-muted);font-weight:600}.result-win{color:#2ecc71;font-weight:700;font-size:1rem;animation:scaleIn .3s ease}.result-loss{color:#e74c3c;font-weight:700;font-size:1rem;animation:scaleIn .3s ease}.betting-panel{width:100%;max-width:480px;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.balance-display{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:#ffffff0a;border-radius:var(--radius-full);font-weight:700;font-size:1.1rem;color:gold}.balance-display .coin-icon{font-size:1.2rem}.chip-selector{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap}.chip-btn{width:52px;height:52px;border-radius:50%;font-size:.8rem;font-weight:800;color:#fff;border:3px dashed rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative;cursor:pointer}.chip-btn:after{content:"";position:absolute;inset:4px;border-radius:50%;border:2px solid rgba(255,255,255,.2);pointer-events:none}.chip-10{background:#2980b9}.chip-25{background:#27ae60}.chip-50{background:#e74c3c}.chip-100{background:#2c3e50}.chip-btn.selected{transform:scale(1.15);border-color:gold;box-shadow:0 0 16px #ffd70066}.chip-btn:active{transform:scale(.95)}.bet-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.bet-btn{padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);font-size:.75rem;font-weight:700;color:var(--color-text);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all .2s ease;text-align:center;min-height:40px;display:flex;align-items:center;justify-content:center}.bet-btn.selected{border-color:var(--color-accent);background:#667eea33;box-shadow:0 0 12px #667eea33}.bet-btn.bet-red{border-left:3px solid #c0392b}.bet-btn.bet-black{border-left:3px solid #555}.bet-btn.bet-green{border-left:3px solid #27ae60}.bet-btn:active{transform:scale(.96)}.number-bet-row{display:flex;gap:var(--space-2);align-items:center}.number-input{flex:1;padding:var(--space-2) var(--space-3);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--color-text);font-size:1rem;font-weight:600;text-align:center;min-height:40px}.number-input:focus{border-color:var(--color-accent);outline:none}.spin-btn{width:100%;padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-size:1.1rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#c0392b,#8e1e1e);border:none;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 4px 20px #c0392b4d;transition:all .3s ease;position:relative;overflow:hidden}.spin-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 50%);pointer-events:none}.spin-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.spin-btn:active:not(:disabled){transform:scale(.97);box-shadow:0 2px 10px #c0392b66}.roulette-history{display:flex;gap:var(--space-1);justify-content:center;flex-wrap:wrap;min-height:28px}.history-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:800;color:#fff;border:1px solid rgba(255,255,255,.15)}.history-dot.red{background:#c0392b}.history-dot.black{background:#1a1a2e}.history-dot.green{background:#27ae60}@media(min-width:768px){.roulette-wheel-container{width:min(45vw,420px);height:min(45vw,420px)}.betting-panel{padding:var(--space-5)}.chip-btn{width:58px;height:58px;font-size:.85rem}.bet-options{grid-template-columns:repeat(3,1fr)}.bet-btn{font-size:.8rem;padding:var(--space-2) var(--space-3)}}@media(min-width:1024px){.roulette-page{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:var(--space-8);padding-top:var(--space-6)}.roulette-page .back-button,.roulette-page .lang-switch{position:absolute}.roulette-page>h2{width:100%}.roulette-wheel-container{width:450px;height:450px}.betting-panel{max-width:380px;position:sticky;top:var(--space-6)}.spin-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 28px #c0392b66}.chip-btn:hover{transform:scale(1.1)}.bet-btn:hover{background:#ffffff1a;border-color:#fff3}}
