This commit is contained in:
commit
59bb5a38a3
132 files changed
+19435
No files matched your search
@@ -0,0 +1,251 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
/*
|
||||
* Gestaltung: Modemagazin trifft italienischen Sommer.
|
||||
* Putz-Weiss (plaster) als Grund, Anthrazit (ink) fuer Schrift und dunkle
|
||||
* Flaechen, Pompeji-Rot (rosso) als sparsam eingesetzter Akzent.
|
||||
* Kontraste (gegen plaster): ink 14.6:1, stone 5.3:1, rosso 6.7:1.
|
||||
*/
|
||||
@theme {
|
||||
--color-plaster: #f2ece3;
|
||||
--color-paper: #faf7f1;
|
||||
--color-ink: #23211f;
|
||||
--color-stone: #676058;
|
||||
--color-line: #d8cec0;
|
||||
--color-rosso: #8e3b2b;
|
||||
--color-rosso-deep: #6f2c20;
|
||||
--color-sand: #c9b79c;
|
||||
|
||||
--font-display: var(--font-bodoni), "Bodoni 72", "Didot", Georgia, serif;
|
||||
--font-sans: var(--font-hanken), "Helvetica Neue", Arial, sans-serif;
|
||||
|
||||
--ease-editorial: cubic-bezier(0.22, 1, 0.36, 1);
|
||||
}
|
||||
|
||||
@layer base {
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
scroll-padding-top: 5rem;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--color-plaster);
|
||||
color: var(--color-ink);
|
||||
font-family: var(--font-sans);
|
||||
font-size: 1.0625rem;
|
||||
line-height: 1.6;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: var(--color-rosso);
|
||||
color: var(--color-paper);
|
||||
}
|
||||
|
||||
/* Sichtbarer Fokus fuer Tastaturbedienung, nie nur ueber Farbe. */
|
||||
:focus-visible {
|
||||
outline: 2px solid var(--color-rosso);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
|
||||
.on-dark :focus-visible {
|
||||
outline-color: var(--color-paper);
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
html {
|
||||
scroll-behavior: auto;
|
||||
}
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@layer components {
|
||||
.container-edge {
|
||||
width: 100%;
|
||||
max-width: 88rem;
|
||||
margin-inline: auto;
|
||||
padding-inline: 1rem;
|
||||
}
|
||||
@media (min-width: 48rem) {
|
||||
.container-edge {
|
||||
padding-inline: 2.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.display {
|
||||
font-family: var(--font-display);
|
||||
font-weight: 400;
|
||||
letter-spacing: -0.01em;
|
||||
line-height: 1.02;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-family: var(--font-display);
|
||||
font-weight: 400;
|
||||
font-size: clamp(2.25rem, 1.4rem + 3.6vw, 4.25rem);
|
||||
line-height: 1.02;
|
||||
letter-spacing: -0.015em;
|
||||
}
|
||||
|
||||
.prose-body {
|
||||
max-width: 38rem;
|
||||
}
|
||||
.prose-body p + p {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
min-height: 3rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-weight: 600;
|
||||
font-size: 1rem;
|
||||
border-radius: 999px;
|
||||
transition:
|
||||
background-color 180ms var(--ease-editorial),
|
||||
color 180ms var(--ease-editorial),
|
||||
transform 180ms var(--ease-editorial);
|
||||
}
|
||||
.btn:active {
|
||||
transform: scale(0.98);
|
||||
}
|
||||
.btn-primary {
|
||||
background: var(--color-rosso);
|
||||
color: var(--color-paper);
|
||||
}
|
||||
.btn-primary:hover {
|
||||
background: var(--color-rosso-deep);
|
||||
}
|
||||
.btn-primary:disabled {
|
||||
background: var(--color-stone);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.btn-quiet {
|
||||
border: 1px solid currentColor;
|
||||
}
|
||||
.btn-quiet:hover {
|
||||
background: var(--color-ink);
|
||||
color: var(--color-paper);
|
||||
border-color: var(--color-ink);
|
||||
}
|
||||
|
||||
.field-label {
|
||||
display: block;
|
||||
font-size: 0.9375rem;
|
||||
font-weight: 600;
|
||||
margin-bottom: 0.375rem;
|
||||
}
|
||||
.field {
|
||||
width: 100%;
|
||||
min-height: 3rem;
|
||||
padding: 0.625rem 0.875rem;
|
||||
background: var(--color-paper);
|
||||
border: 1px solid #b3a794;
|
||||
border-radius: 0.5rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.field:focus-visible {
|
||||
outline-offset: 0;
|
||||
border-color: var(--color-ink);
|
||||
}
|
||||
.field[aria-invalid="true"] {
|
||||
border-color: var(--color-rosso);
|
||||
}
|
||||
|
||||
.draft-flag {
|
||||
display: inline-block;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
padding: 0.125rem 0.5rem;
|
||||
border-radius: 999px;
|
||||
background: #efe0b8;
|
||||
color: #5c4712;
|
||||
}
|
||||
}
|
||||
|
||||
/* Masthead: der eine laute Moment der Seite. */
|
||||
.masthead {
|
||||
font-family: var(--font-display);
|
||||
font-weight: 500;
|
||||
font-size: clamp(4.25rem, 21vw, 19rem);
|
||||
line-height: 0.8;
|
||||
letter-spacing: -0.035em;
|
||||
font-variation-settings: "opsz" 96;
|
||||
}
|
||||
|
||||
/*
|
||||
* Einzige orchestrierte Eroeffnung: Masthead steigt auf, das Leitbild setzt
|
||||
* sich, die Cover-Lines folgen. Reines CSS, kein JavaScript noetig; bei
|
||||
* reduzierter Bewegung greift die Regel in @layer base.
|
||||
*/
|
||||
@keyframes hero-rise {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(0.18em);
|
||||
clip-path: inset(0 0 100% 0);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
clip-path: inset(0 0 0 0);
|
||||
}
|
||||
}
|
||||
@keyframes hero-settle {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: scale(1.035);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
@keyframes hero-fade {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
.hero-rise {
|
||||
animation: hero-rise 1.1s var(--ease-editorial) both;
|
||||
}
|
||||
.hero-image {
|
||||
overflow: hidden;
|
||||
}
|
||||
.hero-image > * {
|
||||
animation: hero-settle 1.5s var(--ease-editorial) 0.15s both;
|
||||
}
|
||||
.hero-fade {
|
||||
animation: hero-fade 0.9s var(--ease-editorial) 0.5s both;
|
||||
}
|
||||
|
||||
/* Mobile Buchungsleiste: Inhalt am Seitenende nie verdecken. */
|
||||
body:has(.mobile-book-bar[data-visible="true"]) footer {
|
||||
padding-bottom: 6rem;
|
||||
}
|
||||
@media (min-width: 64rem) {
|
||||
body:has(.mobile-book-bar[data-visible="true"]) footer {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
dialog.booking-dialog::backdrop {
|
||||
background: rgb(35 33 31 / 0.55);
|
||||
backdrop-filter: blur(2px);
|
||||
}
|
||||
Reference in new issue
Block a user