Files
date-wizard/style.css
T

214 lines
4.4 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ==========================================================================
Date-Planer Shared mobile-first stylesheet
Base color: love-rose, complemented by warm peach and gold tones.
========================================================================== */
:root {
--color-rose: #e0577e;
--color-rose-dark: #b83a5e;
--color-rose-light: #ffd1dc;
--color-peach: #ffb4a2;
--color-gold: #ffd166;
--color-bg: #fff5f7;
--color-bg-gradient: linear-gradient(160deg, #fff5f7 0%, #ffe8ec 45%, #ffe3d6 100%);
--color-text: #4a2c3d;
--color-text-light: #7a5568;
--color-white: #fffdfd;
--font-heading: "Quicksand", "Segoe UI", sans-serif;
--font-body: "Nunito", "Segoe UI", sans-serif;
--radius-lg: 24px;
--radius-md: 16px;
--shadow-soft: 0 8px 24px rgba(184, 58, 94, 0.2);
--shadow-strong: 0 12px 32px rgba(184, 58, 94, 0.32);
}
* {
box-sizing: border-box;
}
html {
min-height: 100%;
}
body {
margin: 0;
min-height: 100vh;
min-height: 100dvh;
display: flex;
flex-direction: column;
font-family: var(--font-body);
font-size: clamp(1rem, 3.6vw, 1.15rem);
line-height: 1.5;
color: var(--color-text);
background: var(--color-bg-gradient);
-webkit-font-smoothing: antialiased;
}
h1,
h2,
h3 {
font-family: var(--font-heading);
font-weight: 700;
margin: 0 0 0.5em;
color: var(--color-rose-dark);
}
h1 {
font-size: clamp(1.75rem, 7vw, 2.5rem);
}
p {
margin: 0 0 1em;
}
.container {
width: 100%;
max-width: 480px;
margin: 0 auto;
padding: 20px 20px 32px;
flex: 1;
}
/* Buttons -------------------------------------------------------------- */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 56px;
padding: 14px 28px;
border: none;
border-radius: var(--radius-lg);
font-family: var(--font-heading);
font-size: clamp(1.05rem, 4.5vw, 1.25rem);
font-weight: 700;
cursor: pointer;
touch-action: manipulation;
transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease, opacity 0.2s ease;
}
.btn:active {
transform: scale(0.96);
}
.btn-yes {
background: linear-gradient(135deg, var(--color-rose) 0%, var(--color-rose-dark) 100%);
color: var(--color-white);
box-shadow: var(--shadow-soft);
}
.btn-no {
background: var(--color-white);
color: var(--color-text-light);
box-shadow: var(--shadow-soft);
}
.btn-primary {
width: 100%;
background: linear-gradient(135deg, var(--color-rose) 0%, var(--color-rose-dark) 100%);
color: var(--color-white);
box-shadow: var(--shadow-soft);
}
.btn-primary:disabled {
background: #e6d3d8;
color: #b39aa4;
box-shadow: none;
cursor: not-allowed;
}
/* Heart-shaped decorative background (reused across pages) -------------- */
.heart-background {
position: fixed;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 0;
pointer-events: none;
}
.heart-shape {
position: relative;
width: 62vmin;
height: 56vmin;
}
.heart-shape::before,
.heart-shape::after {
content: "";
position: absolute;
top: 0;
width: 31vmin;
height: 50vmin;
background: linear-gradient(135deg, var(--color-rose-light) 0%, var(--color-peach) 100%);
border-radius: 31vmin 31vmin 0 0;
opacity: 0.55;
}
.heart-shape::before {
left: 31vmin;
transform: rotate(45deg);
transform-origin: 0 100%;
}
.heart-shape::after {
left: 0;
transform: rotate(-45deg);
transform-origin: 100% 100%;
}
/* Fixed bottom bar for a primary continue action ------------------------- */
body.has-continue-bar main.container {
padding-bottom: calc(110px + env(safe-area-inset-bottom));
}
.continue-bar {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 100;
padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
background: linear-gradient(180deg, rgba(255, 245, 247, 0) 0%, var(--color-bg) 50%);
pointer-events: none;
}
.continue-bar .container {
padding: 0;
max-width: 480px;
}
.continue-bar .btn {
pointer-events: auto;
}
/* Back link --------------------------------------------------------------- */
.back-link {
display: inline-flex;
align-items: center;
gap: 4px;
margin-bottom: 12px;
color: var(--color-text-light);
font-family: var(--font-heading);
font-weight: 700;
text-decoration: none;
}
/* Utility ---------------------------------------------------------------- */
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
}