Files
giftsite/styles.css
Oli Passey 9dddb35ac9 initial
2025-12-10 18:16:14 +00:00

636 lines
10 KiB
CSS

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 10px;
}
.container {
width: 100%;
max-width: 800px;
}
.screen {
display: none;
background: white;
border-radius: 20px;
padding: 20px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
animation: slideIn 0.5s ease;
}
@media (min-width: 768px) {
.screen {
padding: 40px;
}
body {
padding: 20px;
}
}
.screen.active {
display: block;
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Code Entry Screen */
.gift-box {
width: 100px;
height: 100px;
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
margin: 0 auto 30px;
border-radius: 10px;
position: relative;
animation: bounce 2s infinite;
}
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
.ribbon {
position: absolute;
width: 20px;
height: 100%;
background: #ffd700;
left: 50%;
transform: translateX(-50%);
}
.bow {
position: absolute;
width: 50px;
height: 30px;
background: #ffd700;
top: -10px;
left: 50%;
transform: translateX(-50%);
border-radius: 50%;
}
h1 {
text-align: center;
color: #333;
margin-bottom: 10px;
font-size: 1.8em;
word-wrap: break-word;
}
@media (min-width: 768px) {
h1 {
font-size: 2.5em;
}
}
.subtitle {
text-align: center;
color: #666;
margin-bottom: 30px;
font-size: 1em;
padding: 0 10px;
}
@media (min-width: 768px) {
.subtitle {
font-size: 1.1em;
padding: 0;
}
}
.code-input-container {
display: flex;
flex-direction: column;
gap: 15px;
align-items: center;
margin-bottom: 10px;
}
.code-input {
width: 180px;
padding: 12px;
font-size: 1.8em;
text-align: center;
border: 3px solid #667eea;
border-radius: 10px;
letter-spacing: 8px;
transition: all 0.3s;
}
@media (min-width: 768px) {
.code-input {
width: 200px;
padding: 15px;
font-size: 2em;
letter-spacing: 10px;
}
}
.code-input:focus {
outline: none;
border-color: #764ba2;
box-shadow: 0 0 20px rgba(102, 126, 234, 0.3);
}
.btn-primary, .btn-confirm {
padding: 12px 30px;
font-size: 1em;
font-weight: bold;
color: white;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border: none;
border-radius: 50px;
cursor: pointer;
transition: all 0.3s;
text-transform: uppercase;
}
@media (min-width: 768px) {
.btn-primary, .btn-confirm {
padding: 15px 40px;
font-size: 1.2em;
}
}
.btn-primary:hover, .btn-confirm:hover {
transform: translateY(-2px);
box-shadow: 0 10px 30px rgba(102, 126, 234, 0.4);
}
.error-message {
color: #f5576c;
text-align: center;
min-height: 20px;
font-weight: bold;
}
/* Reveal Screen */
.gift-title {
text-align: center;
color: #764ba2;
margin-bottom: 20px;
font-size: 1.3em;
word-wrap: break-word;
padding: 0 10px;
}
@media (min-width: 768px) {
.gift-title {
font-size: 1.8em;
margin-bottom: 30px;
padding: 0;
}
}
.gift-details {
margin: 20px 0;
}
@media (min-width: 768px) {
.gift-details {
margin: 30px 0;
}
}
.gift-section {
background: #f8f9fa;
padding: 15px;
border-radius: 10px;
margin-bottom: 20px;
}
@media (min-width: 768px) {
.gift-section {
padding: 20px;
}
}
.gift-section.highlight {
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
color: white;
}
.gift-section h3 {
margin-bottom: 10px;
font-size: 1.2em;
word-wrap: break-word;
}
@media (min-width: 768px) {
.gift-section h3 {
font-size: 1.5em;
}
}
.gift-section p {
font-size: 0.95em;
line-height: 1.6;
word-wrap: break-word;
}
@media (min-width: 768px) {
.gift-section p {
font-size: 1.1em;
}
}
.brewery-schedule {
background: white;
padding: 10px;
border-radius: 8px;
margin-top: 15px;
}
@media (min-width: 768px) {
.brewery-schedule {
padding: 15px;
}
}
.brewery-schedule h4 {
color: #d32f2f;
margin-bottom: 15px;
font-size: 1em;
word-wrap: break-word;
}
@media (min-width: 768px) {
.brewery-schedule h4 {
font-size: 1.2em;
}
}
.day-schedule {
margin-bottom: 15px;
padding: 8px;
background: #fff3e0;
border-radius: 5px;
border-left: 4px solid #ff6f00;
}
@media (min-width: 768px) {
.day-schedule {
padding: 10px;
}
}
.day-schedule strong {
display: block;
color: #e65100;
margin-bottom: 8px;
font-size: 0.95em;
word-wrap: break-word;
}
@media (min-width: 768px) {
.day-schedule strong {
font-size: 1.1em;
}
}
.day-schedule ul {
list-style: none;
padding-left: 5px;
}
@media (min-width: 768px) {
.day-schedule ul {
padding-left: 10px;
}
}
.day-schedule ul li {
padding: 5px 0;
color: #333;
font-size: 0.9em;
word-wrap: break-word;
}
@media (min-width: 768px) {
.day-schedule ul li {
font-size: 1em;
}
}
.day-schedule ul li:before {
content: "🍺 ";
margin-right: 5px;
}
.camping-details {
background: rgba(0, 0, 0, 0.3);
padding: 15px;
border-radius: 10px;
margin-top: 15px;
}
@media (min-width: 768px) {
.camping-details {
padding: 20px;
}
}
.camping-details h4 {
margin-bottom: 15px;
font-size: 1.1em;
word-wrap: break-word;
}
@media (min-width: 768px) {
.camping-details h4 {
font-size: 1.3em;
}
}
.camping-details ul {
list-style: none;
padding: 0;
}
.camping-details ul li {
padding: 8px;
margin: 8px 0;
background: rgba(255, 255, 255, 0.1);
border-radius: 5px;
font-size: 0.9em;
word-wrap: break-word;
}
@media (min-width: 768px) {
.camping-details ul li {
font-size: 1.05em;
}
}
.video-container {
margin: 30px 0;
text-align: center;
}
.video-container h3 {
margin-bottom: 20px;
color: #f5576c;
font-size: 1.3em;
animation: pulse 1.5s infinite;
word-wrap: break-word;
}
@media (min-width: 768px) {
.video-container h3 {
font-size: 1.8em;
}
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
.videos {
margin: 20px 0;
}
.videos iframe {
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.video-link-box {
background: #1a1a1a;
color: white;
padding: 30px;
border-radius: 10px;
text-align: center;
}
.video-link-box h4 {
color: #ff0000;
margin-bottom: 20px;
font-size: 1.3em;
}
.youtube-link {
display: inline-block;
background: #ff0000;
color: white;
padding: 15px 30px;
text-decoration: none;
border-radius: 5px;
font-weight: bold;
font-size: 1.2em;
transition: all 0.3s;
}
.youtube-link:hover {
background: #cc0000;
transform: scale(1.05);
}
.warning {
color: #ff0000;
font-weight: bold;
font-size: 1em;
margin-top: 20px;
animation: blink 1s infinite;
word-wrap: break-word;
}
@media (min-width: 768px) {
.warning {
font-size: 1.3em;
}
}
@keyframes blink {
0%, 50%, 100% { opacity: 1; }
25%, 75% { opacity: 0.5; }
}
.btn-confirm {
display: block;
margin: 20px auto 0;
background: linear-gradient(135deg, #f5576c 0%, #764ba2 100%);
font-size: 1.1em;
padding: 15px 30px;
}
@media (min-width: 768px) {
.btn-confirm {
margin: 30px auto 0;
font-size: 1.4em;
padding: 20px 50px;
}
}
/* Final Screen */
.hoax-reveal {
text-align: center;
margin-bottom: 20px;
padding: 20px;
background: linear-gradient(135deg, #ffeb3b 0%, #ff9800 100%);
border-radius: 15px;
animation: wiggle 0.5s ease;
}
@media (min-width: 768px) {
.hoax-reveal {
margin-bottom: 40px;
padding: 30px;
}
}
@keyframes wiggle {
0%, 100% { transform: rotate(0deg); }
25% { transform: rotate(-5deg); }
75% { transform: rotate(5deg); }
}
.hoax-title {
font-size: 2em;
color: #333;
margin-bottom: 15px;
word-wrap: break-word;
}
@media (min-width: 768px) {
.hoax-title {
font-size: 3em;
}
}
.hoax-message {
font-size: 1.1em;
color: #333;
font-weight: bold;
margin-bottom: 10px;
word-wrap: break-word;
}
@media (min-width: 768px) {
.hoax-message {
font-size: 1.5em;
}
}
.hoax-subtitle {
font-size: 1em;
color: #555;
font-style: italic;
word-wrap: break-word;
}
@media (min-width: 768px) {
.hoax-subtitle {
font-size: 1.3em;
}
}
.real-gift {
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
padding: 20px;
border-radius: 15px;
text-align: center;
}
@media (min-width: 768px) {
.real-gift {
padding: 40px;
}
}
.spa-icon {
font-size: 3em;
margin-bottom: 20px;
}
@media (min-width: 768px) {
.spa-icon {
font-size: 5em;
}
}
.real-gift h2 {
color: #764ba2;
margin-bottom: 20px;
font-size: 1.5em;
word-wrap: break-word;
}
@media (min-width: 768px) {
.real-gift h2 {
font-size: 2em;
}
}
.spa-description {
font-size: 1em;
color: #333;
margin-bottom: 20px;
word-wrap: break-word;
}
@media (min-width: 768px) {
.spa-description {
font-size: 1.2em;
}
}
.spa-features {
list-style: none;
text-align: left;
max-width: 400px;
margin: 20px auto;
font-size: 0.95em;
}
@media (min-width: 768px) {
.spa-features {
font-size: 1.1em;
}
}
.spa-features li {
padding: 10px;
margin: 5px 0;
background: white;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
word-wrap: break-word;
}
.final-message {
font-size: 1em;
color: #333;
margin-top: 20px;
font-weight: bold;
line-height: 1.6;
word-wrap: break-word;
}
@media (min-width: 768px) {
.final-message {
font-size: 1.2em;
margin-top: 30px;
}
}