.grain-overlay{position:relative;overflow:hidden}.grain-overlay:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' /%3E%3C/svg%3E");opacity:.04;mix-blend-mode:overlay;pointer-events:none;z-index:1}.grain-overlay>*{position:relative;z-index:2}.glass-modal{background:rgba(255,255,255,.85);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 32px 0 rgba(0,0,0,.1),inset 0 0 0 1px rgba(255,255,255,.1)}.dark .glass-modal{background:rgba(26,26,26,.85);border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 32px 0 rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.05)}.glass-card{background:rgba(255,255,255,.7);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);border:1px solid rgba(255,255,255,.2)}.dark .glass-card{background:rgba(30,30,30,.7);border:1px solid rgba(255,255,255,.1)}.icon-button,.touch-target{min-width:44px;min-height:44px;padding:12px}.icon-button{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s cubic-bezier(.4,0,.2,1)}.icon-button:hover{transform:scale(1.05)}.icon-button:active{transform:scale(.95)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.animate-bounce-in,.animate-fade-in,.animate-pulse,.animate-scale-in,.animate-slide-down,.animate-slide-up{animation:none!important}.animate-fade-in{opacity:1!important}}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.bento-item{background:rgba(255,255,255,.5);backdrop-filter:blur(10px);border-radius:1rem;padding:1.5rem;border:1px solid rgba(255,255,255,.2);transition:all .3s cubic-bezier(.4,0,.2,1)}.dark .bento-item{background:rgba(30,30,30,.5);border:1px solid rgba(255,255,255,.1)}.bento-item:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.1)}.bento-item-large{grid-row:span 2}.bento-item-large,.bento-item-wide{grid-column:span 2}.bento-item-tall{grid-row:span 2}@media (max-width:768px){.bento-grid{grid-template-columns:1fr}.bento-item-large,.bento-item-tall,.bento-item-wide{grid-column:span 1;grid-row:span 1}}.modal-backdrop{position:absolute;inset:0;background-color:rgba(0,0,0,.5)}.dark .modal-backdrop{background-color:rgba(0,0,0,.75)}.btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:white;font-weight:600;padding:.75rem 1.5rem;border-radius:.75rem;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px rgba(99,102,241,.3)}.btn-primary:hover{box-shadow:0 8px 24px rgba(99,102,241,.4);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:rgba(255,255,255,.9);color:#1f2937;font-weight:600;padding:.75rem 1.5rem;border-radius:.75rem;border:2px solid #e5e7eb;transition:all .2s cubic-bezier(.4,0,.2,1)}.dark .btn-secondary{background:rgba(30,30,30,.9);color:#f3f4f6;border-color:#374151}.btn-secondary:hover{background:rgba(249,250,251,1);border-color:#d1d5db}.dark .btn-secondary:hover{background:rgba(55,65,81,.9);border-color:#4b5563}:focus-visible{outline:2px solid #6366f1;outline-offset:2px;border-radius:4px}.dark :focus-visible{outline-color:#8b5cf6}.modal-scroll{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent}.modal-scroll::-webkit-scrollbar{width:8px}.modal-scroll::-webkit-scrollbar-track{background:transparent}.modal-scroll::-webkit-scrollbar-thumb{background-color:rgba(156,163,175,.5);border-radius:4px}.modal-scroll::-webkit-scrollbar-thumb:hover{background-color:rgba(156,163,175,.7)}.dark .modal-scroll::-webkit-scrollbar-thumb{background-color:rgba(75,85,99,.5)}.dark .modal-scroll::-webkit-scrollbar-thumb:hover{background-color:rgba(75,85,99,.7)}.hover-lift{transition:transform .2s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-2px)}.hover-glow{transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.hover-glow:hover{box-shadow:0 8px 24px rgba(99,102,241,.3)}.hover-scale{transition:transform .2s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.02)}