| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| :root { |
| |
| --color-crimson: #8b0000; |
| --color-crimson-dark: #6d0000; |
| --color-crimson-light: #a01010; |
| --color-blush: #ffb6c1; |
| --color-blush-light: #ffd1d9; |
| --color-champagne: #f9f9f9; |
| --color-white: #ffffff; |
|
|
| |
| --color-gold: #d4af37; |
| --color-rose: #ff6b81; |
| --color-pink-soft: #ffe4e9; |
|
|
| |
| --text-primary: #2d2d2d; |
| --text-secondary: #666666; |
| --text-light: #ffffff; |
|
|
| |
| --shadow-soft: 0 4px 20px rgba(139, 0, 0, 0.1); |
| --shadow-medium: 0 8px 32px rgba(139, 0, 0, 0.15); |
| --shadow-heavy: 0 12px 48px rgba(139, 0, 0, 0.2); |
| --shadow-glow: 0 0 40px rgba(255, 182, 193, 0.4); |
| --shadow-focus: 0 0 0 3px rgba(139, 0, 0, 0.3); |
|
|
| |
| --glass-bg: rgba(255, 255, 255, 0.7); |
| --glass-bg-fallback: rgba(255, 255, 255, 0.95); |
| --glass-border: rgba(255, 255, 255, 0.5); |
| --glass-blur: 20px; |
|
|
| |
| --font-heading: 'Playfair Display', Georgia, serif; |
| --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; |
| |
| |
| --font-size-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem); |
| --font-size-sm: clamp(0.875rem, 0.8rem + 0.375vw, 1rem); |
| --font-size-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem); |
| --font-size-lg: clamp(1.125rem, 1rem + 0.625vw, 1.5rem); |
| --font-size-xl: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem); |
| --font-size-2xl: clamp(2rem, 1.5rem + 2.5vw, 4rem); |
|
|
| |
| --space-xs: 0.5rem; |
| --space-sm: 1rem; |
| --space-md: 1.5rem; |
| --space-lg: 2rem; |
| --space-xl: 3rem; |
| --space-2xl: 4rem; |
|
|
| |
| --ease-premium: cubic-bezier(0.4, 0, 0.2, 1); |
| --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55); |
| --ease-smooth: cubic-bezier(0.25, 0.46, 0.45, 0.94); |
| --ease-elastic: cubic-bezier(0.68, -0.6, 0.32, 1.6); |
| |
| |
| --duration-instant: 100ms; |
| --duration-fast: 200ms; |
| --duration-normal: 300ms; |
| --duration-slow: 500ms; |
| --duration-slower: 800ms; |
|
|
| |
| --z-base: 1; |
| --z-notes: 10; |
| --z-notes-dragging: 20; |
| --z-envelope: 50; |
| --z-question: 30; |
| --z-success: 60; |
| --z-overlay: 100; |
| --z-button-evading: 200; |
| --z-modal: 1000; |
| --z-confetti: 9999; |
| |
| |
| --radius-sm: 4px; |
| --radius-md: 8px; |
| --radius-lg: 12px; |
| --radius-xl: 24px; |
| --radius-full: 50px; |
| |
| |
| --gpu-hack: translateZ(0); |
| } |
|
|
| |
| |
| |
| *, |
| *::before, |
| *::after { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
|
|
| html { |
| font-size: 16px; |
| scroll-behavior: smooth; |
| -webkit-text-size-adjust: 100%; |
| } |
|
|
| body { |
| font-family: var(--font-body); |
| font-weight: 400; |
| line-height: 1.6; |
| color: var(--text-primary); |
| background: linear-gradient(135deg, var(--color-champagne) 0%, var(--color-blush-light) 50%, var(--color-pink-soft) 100%); |
| min-height: 100vh; |
| min-height: 100dvh; |
| overflow-x: hidden; |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| } |
|
|
| |
| .dragging { |
| user-select: none; |
| -webkit-user-select: none; |
| cursor: grabbing !important; |
| } |
|
|
| |
| *:focus-visible { |
| outline: 3px solid var(--color-crimson); |
| outline-offset: 2px; |
| box-shadow: var(--shadow-focus); |
| transition: outline-offset var(--duration-fast) var(--ease-premium); |
| } |
|
|
| |
| *:focus:not(:focus-visible) { |
| outline: none; |
| } |
|
|
| |
| @media (prefers-contrast: high) { |
| *:focus-visible { |
| outline-width: 4px; |
| outline-offset: 3px; |
| } |
| } |
|
|
| |
| |
| |
| .noise-overlay { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| pointer-events: none; |
| z-index: var(--z-overlay); |
| opacity: 0.03; |
| background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); |
| background-repeat: repeat; |
| } |
|
|
| |
| |
| |
| #confetti-canvas { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| pointer-events: none; |
| z-index: var(--z-confetti); |
| } |
|
|
| |
| |
| |
| .container { |
| position: relative; |
| width: 100%; |
| min-height: 100vh; |
| min-height: 100dvh; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| padding: var(--space-md); |
| } |
|
|
| |
| |
| |
| |
| .glass-container { |
| background: var(--glass-bg); |
| backdrop-filter: blur(var(--glass-blur)); |
| -webkit-backdrop-filter: blur(var(--glass-blur)); |
| border: 1px solid var(--glass-border); |
| border-radius: var(--radius-xl); |
| box-shadow: var(--shadow-medium); |
| } |
|
|
| |
| @supports not (backdrop-filter: blur(20px)) { |
| .glass-container { |
| background: var(--glass-bg-fallback); |
| box-shadow: var(--shadow-heavy); |
| } |
| } |
|
|
| |
| @supports (-webkit-backdrop-filter: blur(20px)) { |
| .glass-container { |
| -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(180%); |
| } |
| } |
|
|
| |
| |
| |
| section { |
| position: absolute; |
| width: 100%; |
| max-width: 500px; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| text-align: center; |
| transition: opacity 0.6s var(--ease-premium), transform 0.6s var(--ease-premium); |
| } |
|
|
| section.hidden { |
| opacity: 0; |
| pointer-events: none; |
| transform: scale(0.95); |
| } |
|
|
| |
| |
| |
| .envelope-section { |
| z-index: var(--z-envelope); |
| } |
|
|
| .envelope-wrapper { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| gap: var(--space-lg); |
| } |
|
|
| .envelope { |
| position: relative; |
| width: 280px; |
| height: 200px; |
| perspective: 1000px; |
| cursor: pointer; |
| |
| transform: translate3d(0, 0, 0); |
| backface-visibility: hidden; |
| -webkit-backface-visibility: hidden; |
| } |
|
|
| .envelope-body { |
| position: absolute; |
| width: 100%; |
| height: 100%; |
| background: linear-gradient(145deg, var(--color-blush) 0%, var(--color-blush-light) 100%); |
| border-radius: 8px; |
| box-shadow: var(--shadow-medium); |
| overflow: hidden; |
| } |
|
|
| .envelope-body::before { |
| content: ''; |
| position: absolute; |
| bottom: 0; |
| left: 0; |
| width: 100%; |
| height: 60%; |
| background: linear-gradient(145deg, #f8c8d0 0%, var(--color-blush) 100%); |
| clip-path: polygon(0 40%, 50% 0, 100% 40%, 100% 100%, 0 100%); |
| } |
|
|
| .envelope-flap { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 50%; |
| background: linear-gradient(180deg, var(--color-blush-light) 0%, var(--color-blush) 100%); |
| clip-path: polygon(0 0, 50% 100%, 100% 0); |
| transform-origin: top center; |
| transition: transform 0.8s var(--ease-premium); |
| z-index: 2; |
| box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
| |
| will-change: transform; |
| backface-visibility: hidden; |
| -webkit-backface-visibility: hidden; |
| } |
|
|
| .envelope.open .envelope-flap { |
| transform: rotateX(180deg); |
| } |
|
|
| .letter { |
| position: absolute; |
| top: 20%; |
| left: 10%; |
| width: 80%; |
| height: 70%; |
| background: var(--color-white); |
| border-radius: 4px; |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| transform: translate3d(0, 0, 0); |
| transition: transform 0.8s var(--ease-bounce) 0.3s; |
| z-index: 1; |
| will-change: transform; |
| backface-visibility: hidden; |
| -webkit-backface-visibility: hidden; |
| } |
|
|
| .envelope.open .letter { |
| transform: translate3d(0, -60%, 0); |
| } |
|
|
| .letter-content { |
| text-align: center; |
| padding: var(--space-sm); |
| } |
|
|
| .letter-icon { |
| font-size: 2rem; |
| display: block; |
| margin-bottom: var(--space-xs); |
| animation: pulse 2s ease-in-out infinite; |
| } |
|
|
| .letter-text { |
| font-family: var(--font-heading); |
| font-size: 0.9rem; |
| color: var(--text-secondary); |
| font-style: italic; |
| } |
|
|
| |
| .btn-open { |
| position: relative; |
| padding: 16px 48px; |
| font-family: var(--font-body); |
| font-size: 1rem; |
| font-weight: 500; |
| color: var(--text-light); |
| background: linear-gradient(135deg, var(--color-crimson) 0%, var(--color-crimson-light) 100%); |
| border: none; |
| border-radius: 50px; |
| cursor: pointer; |
| overflow: hidden; |
| transition: transform 0.3s var(--ease-bounce), box-shadow 0.3s var(--ease-premium); |
| box-shadow: 0 4px 20px rgba(139, 0, 0, 0.3); |
| min-height: 48px; |
| min-width: 160px; |
| will-change: transform; |
| animation: pulse-shadow 2s ease-in-out infinite; |
| |
| transform: translate3d(0, 0, 0); |
| backface-visibility: hidden; |
| -webkit-backface-visibility: hidden; |
| } |
|
|
| .btn-open:hover { |
| transform: translate3d(0, -2px, 0) scale(1.02); |
| box-shadow: 0 8px 30px rgba(139, 0, 0, 0.4); |
| } |
|
|
| .btn-open:active { |
| transform: translate3d(0, 0, 0) scale(0.98); |
| } |
|
|
| .btn-open:disabled { |
| cursor: not-allowed; |
| opacity: 0.7; |
| } |
|
|
| .btn-open::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: -100%; |
| width: 100%; |
| height: 100%; |
| background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); |
| transition: left 0.5s ease; |
| } |
|
|
| .btn-open:hover::before { |
| left: 100%; |
| } |
|
|
| |
| @keyframes pulse-shadow { |
|
|
| 0%, |
| 100% { |
| box-shadow: 0 4px 20px rgba(139, 0, 0, 0.3), 0 0 0 0 rgba(139, 0, 0, 0.4); |
| } |
|
|
| 50% { |
| box-shadow: 0 4px 20px rgba(139, 0, 0, 0.3), 0 0 0 15px rgba(139, 0, 0, 0); |
| } |
| } |
|
|
| @keyframes pulse { |
|
|
| 0%, |
| 100% { |
| transform: scale(1); |
| } |
|
|
| 50% { |
| transform: scale(1.1); |
| } |
| } |
|
|
| |
| |
| |
| .notes-section { |
| z-index: var(--z-notes); |
| width: 100%; |
| height: 100vh; |
| height: 100dvh; |
| max-width: none; |
| padding: var(--space-md); |
| } |
|
|
| .notes-container { |
| position: relative; |
| width: 100%; |
| height: 100%; |
| max-width: 600px; |
| max-height: 600px; |
| } |
|
|
| .draggable-note { |
| position: absolute; |
| width: 160px; |
| height: 160px; |
| cursor: grab; |
| transition: box-shadow 0.3s var(--ease-premium); |
| will-change: transform; |
| touch-action: none; |
| |
| transform: translate3d(0, 0, 0); |
| backface-visibility: hidden; |
| -webkit-backface-visibility: hidden; |
| } |
|
|
| .draggable-note:active { |
| cursor: grabbing; |
| } |
|
|
| .draggable-note.dragging { |
| transition: box-shadow var(--duration-normal) var(--ease-premium); |
| box-shadow: var(--shadow-heavy), 0 0 30px rgba(139, 0, 0, 0.2); |
| z-index: var(--z-notes-dragging) !important; |
| } |
|
|
| .note-inner { |
| width: 100%; |
| height: 100%; |
| padding: var(--space-md); |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| text-align: center; |
| border-radius: 12px; |
| box-shadow: var(--shadow-medium); |
| } |
|
|
| .note-emoji { |
| font-size: 2.5rem; |
| margin-bottom: var(--space-sm); |
| } |
|
|
| .note-inner p { |
| font-family: var(--font-heading); |
| font-size: 0.95rem; |
| color: var(--text-primary); |
| font-style: italic; |
| line-height: 1.4; |
| } |
|
|
| |
| .note-1 { |
| top: 15%; |
| left: 20%; |
| transform: rotate(-5deg); |
| z-index: 15; |
| } |
|
|
| .note-1 .note-inner { |
| background: linear-gradient(145deg, #fff5f5 0%, #ffe4e9 100%); |
| } |
|
|
| .note-2 { |
| top: 25%; |
| right: 15%; |
| transform: rotate(8deg); |
| z-index: 14; |
| } |
|
|
| .note-2 .note-inner { |
| background: linear-gradient(145deg, #fff8f0 0%, #ffecd9 100%); |
| } |
|
|
| .note-3 { |
| top: 45%; |
| left: 10%; |
| transform: rotate(3deg); |
| z-index: 13; |
| } |
|
|
| .note-3 .note-inner { |
| background: linear-gradient(145deg, #f5fff5 0%, #e4f5e4 100%); |
| } |
|
|
| .note-4 { |
| top: 50%; |
| right: 20%; |
| transform: rotate(-7deg); |
| z-index: 12; |
| } |
|
|
| .note-4 .note-inner { |
| background: linear-gradient(145deg, #f5f5ff 0%, #e4e4f5 100%); |
| } |
|
|
| .note-5 { |
| top: 35%; |
| left: 35%; |
| transform: rotate(2deg); |
| z-index: 16; |
| } |
|
|
| .note-5 .note-inner { |
| background: linear-gradient(145deg, var(--color-blush-light) 0%, var(--color-blush) 100%); |
| } |
|
|
| .hint-text { |
| position: absolute; |
| bottom: 10%; |
| left: 50%; |
| transform: translateX(-50%); |
| font-family: var(--font-body); |
| font-size: 0.9rem; |
| color: var(--text-secondary); |
| opacity: 0.8; |
| animation: fadeInUp 0.6s var(--ease-premium) forwards; |
| text-align: center; |
| width: 100%; |
| padding: 0 var(--space-md); |
| } |
|
|
| @keyframes fadeInUp { |
| from { |
| opacity: 0; |
| transform: translateX(-50%) translateY(20px); |
| } |
|
|
| to { |
| opacity: 0.8; |
| transform: translateX(-50%) translateY(0); |
| } |
| } |
|
|
| |
| |
| |
| .question-section { |
| z-index: var(--z-question); |
| } |
|
|
| .question-container { |
| padding: var(--space-xl) var(--space-lg); |
| max-width: 420px; |
| width: 100%; |
| } |
|
|
| .question-title { |
| font-family: var(--font-heading); |
| font-size: clamp(1.8rem, 6vw, 2.5rem); |
| font-weight: 600; |
| color: var(--color-crimson); |
| margin-bottom: var(--space-sm); |
| line-height: 1.2; |
| } |
|
|
| .question-subtitle { |
| font-family: var(--font-body); |
| font-size: 1rem; |
| color: var(--text-secondary); |
| margin-bottom: var(--space-xl); |
| } |
|
|
| .buttons-wrapper { |
| display: flex; |
| flex-wrap: wrap; |
| gap: var(--space-md); |
| justify-content: center; |
| align-items: center; |
| position: relative; |
| min-height: 80px; |
| } |
|
|
| |
| .btn { |
| position: relative; |
| padding: 16px 40px; |
| font-family: var(--font-body); |
| font-size: 1.1rem; |
| font-weight: 600; |
| border: none; |
| border-radius: 50px; |
| cursor: pointer; |
| transition: all 0.3s var(--ease-bounce); |
| min-height: 48px; |
| min-width: 120px; |
| will-change: transform; |
| |
| transform: translate3d(0, 0, 0); |
| backface-visibility: hidden; |
| -webkit-backface-visibility: hidden; |
| } |
|
|
| |
| .btn-yes { |
| color: var(--text-light); |
| background: linear-gradient(135deg, var(--color-crimson) 0%, var(--color-rose) 100%); |
| box-shadow: 0 4px 20px rgba(139, 0, 0, 0.3); |
| transform-origin: center; |
| } |
|
|
| .btn-yes:hover { |
| transform: scale(1.05); |
| box-shadow: 0 6px 30px rgba(139, 0, 0, 0.4); |
| } |
|
|
| .btn-yes:active { |
| transform: scale(0.98); |
| } |
|
|
| |
| .btn-no { |
| color: var(--text-secondary); |
| background: var(--color-champagne); |
| border: 2px solid #ddd; |
| box-shadow: var(--shadow-soft); |
| transition: background 0.2s var(--ease-premium); |
| position: relative; |
| } |
|
|
| .btn-no:hover { |
| background: #f0f0f0; |
| } |
|
|
| .btn-no.evading { |
| position: fixed !important; |
| transition: left var(--duration-normal) var(--ease-smooth), |
| top var(--duration-normal) var(--ease-smooth), |
| transform var(--duration-normal) var(--ease-smooth); |
| z-index: var(--z-button-evading); |
| } |
|
|
| |
| |
| |
| .success-section { |
| z-index: var(--z-success); |
| } |
|
|
| .success-container { |
| padding: var(--space-xl) var(--space-lg); |
| max-width: 420px; |
| width: 100%; |
| animation: successPop 0.6s var(--ease-bounce) forwards; |
| } |
|
|
| @keyframes successPop { |
| 0% { |
| opacity: 0; |
| transform: scale(0.8); |
| } |
|
|
| 50% { |
| transform: scale(1.05); |
| } |
|
|
| 100% { |
| opacity: 1; |
| transform: scale(1); |
| } |
| } |
|
|
| .success-hearts { |
| font-size: 4rem; |
| margin-bottom: var(--space-md); |
| animation: heartBeat 1s ease-in-out infinite; |
| } |
|
|
| @keyframes heartBeat { |
|
|
| 0%, |
| 100% { |
| transform: scale(1); |
| } |
|
|
| 25% { |
| transform: scale(1.1); |
| } |
|
|
| 50% { |
| transform: scale(1); |
| } |
|
|
| 75% { |
| transform: scale(1.15); |
| } |
| } |
|
|
| .success-title { |
| font-family: var(--font-heading); |
| font-size: clamp(2.5rem, 8vw, 4rem); |
| font-weight: 700; |
| color: var(--color-crimson); |
| margin-bottom: var(--space-sm); |
| } |
|
|
| .success-subtitle { |
| font-family: var(--font-body); |
| font-size: 1.2rem; |
| color: var(--text-primary); |
| margin-bottom: var(--space-sm); |
| } |
|
|
| .success-message { |
| font-family: var(--font-heading); |
| font-size: 1rem; |
| color: var(--text-secondary); |
| font-style: italic; |
| } |
|
|
| |
| |
| |
| ::-webkit-scrollbar { |
| width: 8px; |
| height: 8px; |
| } |
|
|
| ::-webkit-scrollbar-track { |
| background: var(--color-champagne); |
| } |
|
|
| ::-webkit-scrollbar-thumb { |
| background: var(--color-blush); |
| border-radius: 4px; |
| } |
|
|
| ::-webkit-scrollbar-thumb:hover { |
| background: var(--color-crimson); |
| } |
|
|
| |
| * { |
| scrollbar-width: thin; |
| scrollbar-color: var(--color-blush) var(--color-champagne); |
| } |
|
|
| |
| |
| |
| @media screen and (max-width: 768px) { |
| :root { |
| --space-lg: 1.5rem; |
| --space-xl: 2rem; |
| } |
|
|
| .envelope { |
| width: 240px; |
| height: 170px; |
| } |
|
|
| .draggable-note { |
| width: 130px; |
| height: 130px; |
| } |
|
|
| .note-emoji { |
| font-size: 2rem; |
| } |
|
|
| .note-inner p { |
| font-size: 0.85rem; |
| } |
|
|
| |
| .note-1 { |
| top: 5%; |
| left: 5%; |
| } |
|
|
| .note-2 { |
| top: 10%; |
| right: 5%; |
| } |
|
|
| .note-3 { |
| top: 40%; |
| left: 5%; |
| } |
|
|
| .note-4 { |
| top: 45%; |
| right: 5%; |
| } |
|
|
| .note-5 { |
| top: 25%; |
| left: 25%; |
| } |
|
|
| .question-container, |
| .success-container { |
| padding: var(--space-lg); |
| margin: 0 var(--space-sm); |
| } |
|
|
| .buttons-wrapper { |
| flex-direction: column; |
| gap: var(--space-sm); |
| } |
|
|
| .btn { |
| width: 100%; |
| max-width: 200px; |
| } |
| } |
|
|
| @media screen and (max-width: 380px) { |
| .envelope { |
| width: 200px; |
| height: 140px; |
| } |
|
|
| .btn-open { |
| padding: 14px 36px; |
| font-size: 0.9rem; |
| } |
|
|
| .draggable-note { |
| width: 110px; |
| height: 110px; |
| } |
|
|
| .note-inner { |
| padding: var(--space-sm); |
| } |
|
|
| .note-emoji { |
| font-size: 1.5rem; |
| margin-bottom: var(--space-xs); |
| } |
|
|
| .note-inner p { |
| font-size: 0.75rem; |
| } |
| } |
|
|
| |
| |
| |
| |
| @media (prefers-reduced-motion: reduce) { |
| *, |
| *::before, |
| *::after { |
| animation-duration: 0.01ms !important; |
| animation-iteration-count: 1 !important; |
| transition-duration: 0.01ms !important; |
| scroll-behavior: auto !important; |
| } |
| |
| |
| .envelope.open .envelope-flap { |
| transform: rotateX(180deg); |
| transition: none; |
| } |
| |
| .envelope.open .letter { |
| transform: translate3d(0, -60%, 0); |
| transition: none; |
| } |
| } |
|
|
| |
| |
| |
| @media (prefers-contrast: high) { |
| :root { |
| --color-crimson: #990000; |
| --text-primary: #000000; |
| --text-secondary: #333333; |
| } |
| |
| .btn { |
| border: 2px solid currentColor; |
| } |
| |
| .glass-container { |
| background: rgba(255, 255, 255, 0.98); |
| border: 2px solid var(--color-crimson); |
| } |
| } |
|
|
| |
| |
| |
| @media (prefers-color-scheme: dark) { |
| :root { |
| --color-champagne: #1a1a1a; |
| --text-primary: #e0e0e0; |
| --text-secondary: #a0a0a0; |
| --glass-bg: rgba(30, 30, 30, 0.7); |
| --glass-bg-fallback: rgba(30, 30, 30, 0.95); |
| } |
| |
| body { |
| background: linear-gradient(135deg, #1a1a1a 0%, #2d1a1a 50%, #3d1a1a 100%); |
| } |
| } |
|
|
| |
| |
| |
| @media print { |
|
|
| .noise-overlay, |
| #confetti-canvas, |
| .btn { |
| display: none; |
| } |
|
|
| body { |
| background: white; |
| } |
| } |