html {
  scroll-behavior: smooth;
}

* {
    box-sizing: border-box;
}

:root {
    --palette-dark-midnight-black: #101116;
    --palette-dark-charcoal: #1C1D25;
    --palette-dark-slate-velvet: #292A35;
    --palette-dark-muted-silver: #A9ABB9;
    --palette-dark-swan-white: #F5F1ED;
    --palette-dark-champagne-gold: #C7AA83;
    --palette-dark-dusty-rose: #B98796;
    --palette-dark-ballet-pink: #D8B8C3;
    --palette-dark-ice-blue: #A8C4D6;
    --palette-dark-deep-burgundy: #633B4C;
    --palette-dark-border: #383943;

    --palette-light-warm-ivory: #FAF8F5;
    --palette-light-porcelain: #F1EDE9;
    --palette-light-soft-dove: #E3E0E1;
    --palette-light-silver-grey: #B8B8C1;
    --palette-light-ink-charcoal: #292832;
    --palette-light-rose-taupe: #B99BA1;
    --palette-light-muted-mauve: #A98291;
    --palette-light-hover-accent: #B98796;
    --palette-light-soft-champagne: #D5BE9E;
    --palette-light-powder-blue: #C5D7E2;
    --palette-light-plum: #65495B;
    --palette-light-secondary-text: #77717A;
    --palette-light-link: #8B6578;

    --color-background: var(--palette-light-warm-ivory);
    --color-surface: var(--palette-light-porcelain);
    --color-surface-alt: var(--palette-light-soft-dove);
    --color-primary: var(--palette-light-plum);
    --color-primary-hover: var(--palette-light-hover-accent);
    --color-secondary: var(--palette-light-powder-blue);
    --color-accent: var(--palette-light-muted-mauve);
    --color-text: var(--palette-light-ink-charcoal);
    --color-text-muted: var(--palette-light-secondary-text);
    --color-border: var(--palette-light-soft-dove);
    --color-link: var(--palette-light-link);
    --color-link-hover: var(--palette-light-plum);
    --color-highlight: var(--palette-light-soft-champagne);
    --color-focus: var(--palette-light-muted-mauve);
    --color-on-primary: var(--palette-light-warm-ivory);
    --color-on-accent: var(--palette-light-ink-charcoal);
    --color-hover-surface: rgb(185 135 150 / 14%);
    --color-homepage-hover: var(--palette-light-soft-champagne);
    --color-hero-background: var(--palette-light-ink-charcoal);
    --color-hero-text: var(--palette-light-warm-ivory);
    --color-footer-background: var(--palette-light-plum);
    --color-footer-border: var(--palette-light-soft-champagne);
    --color-footer-text: var(--palette-light-warm-ivory);
    --color-success: #35634D;
    --color-warning: #80600E;
    --color-error: #9B3945;
    --color-overlay: rgb(41 40 50 / 58%);
    --color-shadow: rgb(41 40 50 / 12%);

    --content-width: 1320px;
    color-scheme: light;
}

:root[data-theme="dark"] {
    --color-background: var(--palette-dark-midnight-black);
    --color-surface: var(--palette-dark-charcoal);
    --color-surface-alt: var(--palette-dark-slate-velvet);
    --color-primary: var(--palette-dark-champagne-gold);
    --color-primary-hover: var(--palette-dark-ballet-pink);
    --color-secondary: var(--palette-dark-ice-blue);
    --color-accent: var(--palette-dark-dusty-rose);
    --color-text: var(--palette-dark-swan-white);
    --color-text-muted: var(--palette-dark-muted-silver);
    --color-border: var(--palette-dark-border);
    --color-link: var(--palette-dark-ice-blue);
    --color-link-hover: var(--palette-dark-ballet-pink);
    --color-highlight: var(--palette-dark-champagne-gold);
    --color-focus: var(--palette-dark-dusty-rose);
    --color-on-primary: var(--palette-dark-midnight-black);
    --color-on-accent: var(--palette-dark-midnight-black);
    --color-hover-surface: rgb(216 184 195 / 14%);
    --color-homepage-hover: var(--palette-dark-ballet-pink);
    --color-hero-background: var(--palette-dark-midnight-black);
    --color-hero-text: var(--palette-dark-swan-white);
    --color-footer-background: var(--palette-dark-midnight-black);
    --color-footer-border: var(--palette-dark-champagne-gold);
    --color-footer-text: var(--palette-dark-swan-white);
    --color-overlay: rgb(16 17 22 / 76%);
    --color-shadow: rgb(0 0 0 / 35%);
    color-scheme: dark;
}

.cormorant-sc-regular {
  font-family: "Cormorant SC", serif;
  font-weight: 400;
  font-style: normal;
}

body {
    margin: 0;
}

img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}

a,
button,
input,
select,
textarea {
    font: inherit;
}

.container {
    width: min(100%, 1200px);
    margin: 0 auto;
}

.button {
    display: inline-block;
    padding: 0.8rem 1.6rem;
    border: 1px solid var(--color-text);
    color: var(--color-text);
    text-decoration: none;
    transition: background 0.3s ease,
                color 0.3s ease;
}

.button:hover {
    background: var(--color-text);
    color: var(--color-on-primary);
}

.theme-toggle {
    min-height: 36px;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    white-space: nowrap;
}

.theme-toggle:hover {
    border-color: var(--color-accent);
    background: var(--color-accent);
    color: var(--color-on-accent);
}

/* Header & Top-Nav */
header {
    position: relative;
    z-index: 2;
}

.homepage-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
}

.header {
    width: 100%;
    z-index: 10;
}

.main-header {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 2rem;
    padding: 1.25rem 2rem;
    margin: auto;
}

.wordmark {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    text-align: center;
    text-decoration: none;
    color: inherit;
    white-space: nowrap;
}

.wordmark p {
    margin: 0;
    font-size: 1.2rem;
    line-height: 1.3;
}

.wordmark p::first-line {
    font-weight: 600;
}

.nav-bar {
    display: flex;
    align-items: center;
    gap: 1.75rem;
}

.nav-bar a,
.header-links a {
    font-size: 0.9rem;
    text-decoration: none;
    color: inherit;
}

.header-links {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    grid-column: 3;
    justify-self: end;
}

/* Hero */
.hero-cta-viewport {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.hero {
    position: relative;
    flex: 1 0 auto;
    min-height: 0;
    overflow: hidden;
}

.hero-image {
    position: absolute;
    inset: 0;
    margin: 0;
}

.hero-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Dark overlay for text contrast */

.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgb(41 40 50 / 62%) 0%,
        rgb(41 40 50 / 20%) 10%,
        transparent 30%
    );
    pointer-events: none;
}

.hero-copy {
    position: absolute;
    z-index: 2;
    top: 33%;
    left: max(5%, calc((100% - 1200px) / 2));
    transform: translateY(-50%);
    max-width: 650px;
    padding: 0 1.5rem;
    color: white;
}

.hero-copy h1 {
    margin: 0 0 1rem;
    font-size: clamp(3rem, 6vw, 6rem);
    line-height: 1;
    font-weight: 500;
    letter-spacing: -0.04em;
}

.hero-copy p {
    font-size: clamp(1rem, 1.5vw, 1.25rem);
    letter-spacing: 0.08em;
}

.hero-actions {
    position: absolute;
    z-index: 2;
    top: 62%;
    left: max(5%, calc((100% - 1200px) / 2));
    transform: none;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 0 1.5rem;
}

.hero-actions .button {
    color: white;
    border-color: white;
}

.hero-actions .button:first-child {
    background: white;
    color: var(--color-text);
}

.hero-actions .button:hover {
    background: var(--color-primary);
    color: var(--color-text);
    border-color: var(--color-primary);
}

:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 3px;
}

/* ========================================
   CTA STRIP
======================================== */

/* SECTION LABEL */

.cta-heading {
    text-align: center;
    margin-bottom: 1.5rem;
}

.cta-heading p {
    margin: 0;

    color: var(--color-text-muted);
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

/* HORIZONTAL LAYOUT */

.cta-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    max-width: 1200px;
    margin: auto;
}

/* INDIVIDUAL LINKS */

.cta-link {
    min-height: 160px;
    padding: 1.6rem clamp(1.25rem, 2.5vw, 2.25rem);
    border: 1px solid var(--color-border);
    background: var(--color-background);
    cursor: pointer;
    text-align: left;
    transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.cta-link + .cta-link {
    border-left: 1px solid var(--color-border);
}

.cta-title {
    font-size: 1.05rem;
    font-weight: 650;
}

.cta-description {
    line-height: 1.6;
}

.cta-link::after {
    content: "\2192";
    align-self: flex-end;
    margin-top: auto;
    color: var(--color-link);
    font-size: 1.15rem;
    transition: transform 180ms ease, color 180ms ease;
}

.cta-link:hover,
.cta-link:focus-visible {
    border-color: var(--color-primary);
    background: var(--color-surface-alt);
    color: var(--color-text);
}

.cta-link:hover {
    transform: translateY(-2px);
}

.cta-link:hover .cta-title,
.cta-link:focus-visible .cta-title {
    color: var(--color-link);
}

.cta-link:hover::after,
.cta-link:focus-visible::after {
    color: var(--color-accent);
    transform: translateX(5px);
}

.cta-link:focus-visible {
    outline-offset: 4px;
}

@media (max-width: 800px) {
    .cta-link {
        min-height: 140px;
        align-items: flex-start;
        text-align: left;
    }

    .cta-link + .cta-link {
        border-top: 0;
        border-left: 1px solid var(--color-border);
    }
}

/* SERVICE SECTIONS */

.service-section {
    padding-bottom: 5rem;
}

/* Wide photographic banner */

.service-banner {
    width: 100%;
    aspect-ratio: 2/1;
    margin: 0;
    overflow: hidden;
}

.service-banner img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Main content */

.service-content {
    padding: 3.5rem 1.5rem 0;
}

/* Section heading */

.service-heading {
    max-width: 750px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.service-heading h2 {
    margin: 0 0 0.75rem;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.15;
}

.service-heading p {
    font-size: 1.1rem;
    line-height: 1.6;
}

/* Text and supporting photograph */

.service-grid {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    max-width: 1050px;
    margin: auto;
}

.service-grid > * {
    flex: 1 1 0;
    min-width: 0;
}

.service-grid.reverse {
    flex-direction: row-reverse;
}

.service-copy {
    padding: 1rem 0 0;
    max-width: 480px;
}

.service-copy p {
    margin: 0 0 1rem;
    font-size: 1rem;
    line-height: 1.8;
}

.service-grid > .service-photo {
    flex-grow: .3;
    margin: 0;
}

.service-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
    transition: transform 0.5s ease;
}

/* Text link */

.text-link {
    display: inline-block;
    margin-top: 0.75rem;
    padding-bottom: 0.4rem;
    font-weight: 600;
    text-decoration: none;
}

.text-link:focus-visible {
    outline-offset: 5px;
}

#about {
    padding: 4rem 1.5rem;
}
.about-section {
    display: flex;
    align-items: flex-start;
    gap: 3rem;
}
.about {
    display: flex;
    flex: 1 1 0;
    min-width: 0;
    align-items: flex-start;
    gap: 1.5rem;
}
.profile-picture {
    flex-shrink: 0;
    width: 200px;
    max-width: 35%;
    max-height: none;
    aspect-ratio: 2 / 3;
    margin: 0;
    overflow: hidden;
    border-radius: 0;
    align-self: center;
}
.profile-picture img {
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.4) translateX(-10%);
}
.contact-form {
    flex: 0 0 320px;
}
.contact-form label {
    display: block;
}
.contact-form input:not([type="submit"]),
.contact-form select,
.contact-form textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    margin: 0.4rem 0 1rem;
    padding: 0.75rem;
}

.footer {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
}
.footer p {
    margin: 0;
}
.footer-links,
.footer-legal {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}


/* Album and gallery layout */
.gallery-layout {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    margin: 0 auto;
    padding: 0;
    align-items: start;
}

.album-sidebar {
    display: flex;
    position: sticky;
    top: 0;
    flex-direction: column;
    gap: .5rem;
    padding: 0 0.5rem;
}

.album-sidebar h2 {
    margin-bottom: 15px;
}

.album-filter {
    background: none;
    border: none;
    text-align: left;
    padding: 12px;
    cursor: pointer;
    font: inherit;
}

.album-filter:hover,
.album-filter.active {
    background: var(--color-surface-alt);
    font-weight: bold;
}

#gallery {
    min-width: 0;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 2rem;
}

body {
    background: var(--color-background);
    color: var(--color-text);
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

::selection {
    background: var(--color-primary);
    color: var(--color-on-primary);
}

.container {
    width: min(100% - 3rem, var(--content-width));
}

a {
    color: var(--color-link);
    text-underline-offset: 0.2em;
}

a:hover {
    color: var(--color-link-hover);
}

button,
input,
select,
textarea {
    border-radius: 0;
}

button,
input[type="submit"],
input[type="button"] {
    min-height: 48px;
    padding: 0.75rem 1.25rem;
    border: 1px solid var(--color-primary);
    background: var(--color-primary);
    color: var(--color-on-primary);
    cursor: pointer;
    font-weight: 600;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
    border-color: var(--color-primary-hover);
    background: var(--color-primary-hover);
    color: var(--color-on-accent);
}

:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 3px;
}

/* Navigation */
header {
    z-index: 5;
}

.header {
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
}

.main-header {
    width: min(100%, 1440px);
    min-height: 92px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 1.1rem;
    padding: 1.5rem 2rem 1rem;
}

.wordmark {
    order: 0;
    color: var(--color-text);
    text-align: center;
    white-space: nowrap;
}

.wordmark p {
    margin: 0;
    line-height: 1;
}

.wordmark-name,
.wordmark-description {
    display: block;
}

.wordmark-name {
    text-transform: uppercase;
    font-family: "Cormorant SC", Georgia, "Times New Roman", serif;
    font-size: 2.8rem;
    font-weight: 400;
    letter-spacing: 0.015em;
}

.wordmark-description {
    margin-top: 0.3rem;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 0.56rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.nav-bar,
.header-links {
    gap: clamp(0.8rem, 1.4vw, 1.5rem);
}

.nav-bar {
    column-gap: clamp(1.25rem, 2vw, 2rem);
}

.header-links {
    column-gap: clamp(1.25rem, 2vw, 2rem);
}

.nav-groups {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.nav-groups .nav-bar,
.nav-groups .header-links {
    grid-column: auto;
    justify-self: auto;
}

.nav-separator {
    color: var(--color-text-muted);
    font-size: 0.8rem;
}

.nav-bar a,
.header-links a {
    color: var(--color-text);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: color 160ms ease;
}

.nav-bar a:hover,
.header-links a:hover {
    color: var(--color-accent);
}

.homepage-header {
    color: var(--color-hero-text);
}

.homepage-header .main-header {
    color: var(--color-hero-text);
}

.homepage-header .nav-bar a,
.homepage-header .header-links a,
.homepage-header .wordmark {
    color: var(--color-hero-text);
}

.homepage-header .nav-bar a:hover,
.homepage-header .header-links a:hover {
    color: var(--color-homepage-hover);
}

.homepage-header .theme-toggle {
    border-color: rgb(250 248 245 / 70%);
    color: var(--color-hero-text);
}

.homepage-header .theme-toggle:hover {
    border-color: var(--color-homepage-hover);
    background: var(--color-homepage-hover);
    color: var(--color-on-accent);
}

.homepage-header .nav-separator {
    color: rgb(250 248 245 / 70%);
}

/* Homepage */
.hero-cta-viewport {
    min-height: 100svh;
    background: var(--color-surface);
}

.hero {
    min-height: 72svh;
    background: var(--color-hero-background);
}

.hero-copy {
    top: 54%;
    left: max(4%, calc((100% - var(--content-width)) / 2));
    max-width: 760px;
    padding: 0 1.5rem;
}

.hero-copy h1 {
    max-width: 760px;
    margin-bottom: 1.25rem;
    font-size: clamp(3rem, 7vw, 6.5rem);
    line-height: 0.98;
    font-weight: 600;
    letter-spacing: -0.055em;
}

.hero-copy p {
    margin: 0;
    font-size: clamp(0.8rem, 1.15vw, 1rem);
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.hero-actions {
    top: auto;
    bottom: 11%;
    left: max(4%, calc((100% - var(--content-width)) / 2));
    gap: 0.75rem;
}

.hero-actions .button {
    min-width: 150px;
    padding: 0.8rem 1.25rem;
    border: 1px solid rgb(250 248 245 / 78%);
    background: transparent;
    color: var(--color-hero-text);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-align: center;
    text-transform: uppercase;
}

.hero-actions .button:first-child,
.hero-actions .button:hover {
    border-color: var(--color-hero-text);
    background: var(--color-hero-text);
    color: var(--color-on-accent);
}

.cta-bar {
    padding: 1.5rem;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-background);
}

.cta-heading {
    margin-bottom: 1rem;
}

.cta-heading p {
    color: var(--color-text-muted);
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.16em;
}

.cta-buttons {
    width: min(100%, var(--content-width));
}

.cta-link {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.35rem;
    min-height: 112px;
    padding: 1rem 2.75rem 1rem clamp(1rem, 2vw, 1.75rem);
    border: 0;
    background: transparent;
    color: var(--color-text);
    text-decoration: none;
    text-align: left;
    transition: color 180ms ease, background-color 180ms ease;
}

.cta-link + .cta-link {
    border-left: 1px solid var(--color-border);
}

.cta-title {
    color: var(--color-text);
    font-size: 0.98rem;
    font-weight: 600;
    letter-spacing: 0;
    transition: color 180ms ease;
}

.cta-description {
    max-width: 34ch;
    color: var(--color-text-muted);
    font-size: 0.78rem;
    line-height: 1.5;
    letter-spacing: 0;
}

.cta-link::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 1rem;
    width: 0.9rem;
    height: 0.65rem;
    color: var(--color-accent);
    background: currentColor;
    clip-path: polygon(0 40%, 62% 40%, 62% 0, 100% 50%, 62% 100%, 62% 60%, 0 60%);
    transform: translateY(-50%);
    transition: color 180ms ease, transform 180ms ease;
}

.cta-link:hover,
.cta-link:focus-visible {
    background: var(--color-hover-surface);
}

.cta-link:hover .cta-title,
.cta-link:focus-visible .cta-title {
    color: var(--color-link-hover);
}

.cta-link:hover::after,
.cta-link:focus-visible::after {
    color: var(--color-text);
    transform: translate(4px, -50%);
}

.cta-link:focus-visible {
    outline-offset: 4px;
}

/* Service and booking pages */
.service-section {
    padding: 0 0 6rem;
}

.service-content {
    padding: clamp(3.5rem, 7vw, 6.5rem) 1.5rem 0;
}

.service-heading {
    max-width: 850px;
    margin-bottom: clamp(3rem, 6vw, 5rem);
    text-align: left;
}

.service-heading h1,
.service-heading h2,
.competition-intro h1 {
    margin: 0 0 1rem;
    font-size: clamp(2.4rem, 5vw, 4.5rem);
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: -0.045em;
}

.service-heading p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: clamp(1rem, 1.5vw, 1.2rem);
    line-height: 1.7;
}

.service-grid {
    max-width: 1120px;
    gap: clamp(2.5rem, 7vw, 7rem);
}

.service-copy {
    max-width: 520px;
    padding: 0;
}

.service-copy p {
    color: var(--color-text-muted);
    font-size: 1rem;
    line-height: 1.9;
}

.service-grid > .service-photo {
    flex-grow: 0.55;
    max-width: 480px;
}

.service-photo img {
    aspect-ratio: 4 / 5;
}

#about {
    width: 100%;
    padding: clamp(4rem, 8vw, 8rem) 0;
    border-top: 1px solid var(--color-border);
    position: relative;
}

.particle-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

#about .particle-canvas {
    width: 100%;
}

.about-content {
    position: relative;
    z-index: 1;
}

.about-section {
    align-items: stretch;
    gap: clamp(3rem, 8vw, 8rem);
}

.about {
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3.5rem);
}

.about h2 {
    margin: 0 0 1.25rem;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.1;
    letter-spacing: -0.04em;
}

.about p {
    color: var(--color-text-muted);
    line-height: 1.85;
}

.profile-picture {
    width: min(30%, 260px);
    max-width: none;
    aspect-ratio: 4 / 5;
    border-radius: 0;
}

.profile-picture img {
    transform: none;
}

/* Forms */
.contact-form {
    flex: 0 0 min(34%, 380px);
}

.contact-form label,
#code-form label {
    margin: 0 0 0.4rem;
    color: var(--color-text);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.contact-form input:not([type="submit"]),
.contact-form select,
.contact-form textarea,
#code-form input {
    height: 48px;
    min-height: 48px;
    margin: 0.25rem 0 1.25rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
}

.contact-form textarea {
    min-height: 130px;
    resize: vertical;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus,
#code-form input:focus {
    border-color: var(--color-accent);
    outline: 1px solid var(--color-accent);
}

.contact-form input[type="submit"] {
    width: 100%;
}

/* Galleries */
.gallery-section {
    width: min(100% - 3rem, var(--content-width));
    margin: 0 auto;
    padding: 1rem 0 clamp(4rem, 8vw, 8rem);
}

.gallery-layout {
    grid-template-columns: 220px minmax(0, 1fr);
    padding: 0;
}

.album-sidebar {
    top: 2rem;
    gap: 0.2rem;
    padding: 0.5rem 0;
}

.album-sidebar h2 {
    margin: 0 1rem .5rem;
    font-size: 1.4rem;
    letter-spacing: -0.025em;
}

.album-filter {
    width: 100%;
    padding: 0.7rem 0.8rem;
    border-left: 2px solid transparent;
    color: var(--color-text-muted);
    font-size: 0.86rem;
    transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}

.album-filter:hover,
.album-filter.active {
    border-left-color: var(--color-accent);
    background: var(--color-surface);
    color: var(--color-text);
    font-weight: 600;
}

.gallery-content {
    min-width: 0;
}

#gallery {
    min-height: 1px;
}

#gallery-empty {
    padding: 3rem 0;
    color: var(--color-text-muted);
}

/* Retouched photo downloads */
#code-panel,
#gallery-panel {
    width: min(100%, 1000px);
    margin: 0 auto;
}

#code-panel h2,
#gallery-panel h2 {
    margin: 0 0 1.25rem;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    line-height: 1.2;
    letter-spacing: -0.03em;
}

#code-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 0 1rem;
    max-width: 720px;
}

#code-form label {
    grid-column: 1 / -1;
}

#code-form input {
    width: 100%;
    margin: 0;
}

#code-error {
    grid-column: 1 / -1;
    margin: 0.75rem 0 0;
    color: var(--color-error);
}

#gallery-title,
#photo-count,
#download-message {
    color: var(--color-text-muted);
}

#shoot-tabs {
    display: flex;
    gap: 0;
    margin: 2rem 0 1.5rem;
    overflow-x: auto;
    border-bottom: 1px solid var(--color-border);
}

.shoot-tab {
    flex: 0 0 auto;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--color-text-muted);
}

.shoot-tab:hover,
.shoot-tab[aria-selected="true"] {
    border-bottom-color: var(--color-accent);
    background: transparent;
    color: var(--color-text);
}

#shoot-content > div:first-of-type {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

#download-all {
    display: inline-block;
    padding: 0.75rem 1rem;
    background: var(--color-primary);
    color: var(--color-on-primary);
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
}

#download-all:hover {
    background: var(--color-primary-hover);
    color: var(--color-on-accent);
}

#download-message {
    margin: 0;
    font-size: 0.88rem;
}

#photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin: 0 0 2rem;
}

.photo-card {
    min-width: 0;
    border-bottom: 1px solid var(--color-border);
}

.photo-preview-trigger {
    display: block;
    width: 100%;
    height: auto;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: var(--color-surface-alt);
}

.photo-preview-trigger:hover {
    background: var(--color-surface-alt);
}

.photo-preview-trigger img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform 240ms ease;
}

.photo-preview-trigger:hover img {
    transform: scale(1.025);
}

.photo-info {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.8rem 0 1rem;
}

.photo-name {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--color-text-muted);
    font-size: 0.76rem;
}

.photo-download {
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
}

#change-code {
    border-color: var(--color-border);
    background: transparent;
    color: var(--color-text);
}

#change-code:hover {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: var(--color-on-primary);
}

#photo-preview {
    width: min(92vw, 1100px);
    max-width: none;
    max-height: 92vh;
    padding: 1rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
}

#photo-preview::backdrop {
    background: var(--color-overlay);
}

#photo-preview > button {
    display: block;
    margin: 0 0 0.75rem auto;
}

#photo-preview figure {
    margin: 0;
}

#photo-preview img {
    width: 100%;
    max-height: 75vh;
    object-fit: contain;
    background: var(--color-hero-background);
}

#photo-preview figcaption {
    padding-top: 0.75rem;
    color: var(--color-text-muted);
    font-size: 0.85rem;
}

/* Competition booking */
.competition-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
    align-items: start;
    gap: 3rem;
    width: min(100% - 3rem, var(--content-width));
    min-height: 65vh;
    margin: 0 auto;
    padding: 0 4rem;
}

.competition-intro h1 {
    max-width: 760px;
}

.competition-page .competition-main {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
    align-items: center;
    gap: clamp(3rem, 7vw, 7rem);
    width: 100%;
    min-height: 72vh;
    padding: clamp(4rem, 8vw, 7rem) max(1.5rem, calc((100% - 1120px) / 2));
    background: linear-gradient(120deg, var(--color-background), var(--color-surface));
}

.competition-page .competition-intro {
    max-width: 620px;
}

.competition-page .competition-intro h1 {
    position: relative;
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
}

.competition-page .competition-intro p {
    max-width: 58ch;
    margin: 0 0 1.25rem;
    color: var(--color-text-muted);
    line-height: 1.85;
}

@media (max-width: 800px) {
    .competition-page .competition-main {
        grid-template-columns: minmax(0, 1fr);
        justify-items: center;
        gap: 2rem;
        min-height: 0;
        padding: 3.5rem 1.5rem;
    }

    .competition-page .competition-intro {
        width: 100%;
    }
}

/* Footer */
footer {
    border-top: 3px solid var(--color-footer-border);
    background: var(--color-footer-background);
    color: var(--color-footer-text);
}

.footer {
    width: min(100% - 3rem, var(--content-width));
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 0;
    padding: 2.5rem 0 1.5rem;
}

.footer p {
    order: 3;
    width: 100%;
    margin: 0;
    padding-top: 1.25rem;
    border-top: 1px solid rgb(250 248 245 / 18%);
    color: rgb(250 248 245 / 68%);
    font-size: 0.78rem;
    text-align: center;
}

.footer-links,
.footer-legal {
    width: 100%;
    justify-content: center;
    gap: 0.8rem 1.75rem;
}

.footer-links a,
.footer-legal a {
    color: rgb(250 248 245 / 86%);
    text-decoration: none;
    transition: color 160ms ease;
}

.footer-links a:hover,
.footer-legal a:hover {
    color: var(--color-highlight);
}

.footer-links {
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgb(250 248 245 / 25%);
}

.footer-links a {
    font-size: 0.78rem;
    font-weight: 600;
}

.footer-legal {
    padding: 1.1rem 0 1.25rem;
}

.footer-legal a {
    color: rgb(250 248 245 / 62%);
    font-size: 0.7rem;
}

@media (max-width: 600px) {
    .footer {
        width: min(100% - 2rem, var(--content-width));
        padding-top: 2rem;
    }

    .footer-links,
    .footer-legal {
        justify-content: flex-start;
        gap: 0.75rem 1.25rem;
    }

    .footer-links {
        padding-bottom: 1rem;
    }

    .footer-legal {
        padding: 1rem 0;
    }

    .footer p {
        padding-top: 1rem;
        text-align: left;
    }
}

@media (max-width: 1100px) {
    .nav-groups {
        flex-direction: column;
        gap: 0.45rem;
    }

    .nav-groups .nav-bar,
    .nav-groups .header-links {
        width: 100%;
        justify-content: center;
    }

    .nav-separator {
        display: none;
    }

    .nav-bar,
    .header-links {
        gap: 0.8rem;
    }

    .nav-bar {
        column-gap: 1.25rem;
    }

    .header-links {
        column-gap: 1.25rem;
    }

    .nav-bar a,
    .header-links a {
        font-size: 0.64rem;
    }

    .wordmark p {
        font-size: 0.58rem;
    }

    .wordmark-name {
        font-size: 2.2rem;
    }

    .about-section {
        gap: 3rem;
    }

    .gallery-layout {
        grid-template-columns: 190px minmax(0, 1fr);
    }
}

@media (max-width: 800px) {
    .container,
    .gallery-section,
    .gallery-layout,
    .competition-main,
    .footer {
        width: min(100% - 2rem, var(--content-width));
    }

    .main-header {
        display: flex;
        flex-direction: column;
        min-height: 0;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.75rem 1.5rem;
        padding: 1rem;
    }

    .wordmark {
        flex: 1 0 100%;
        order: -1;
    }

    .nav-bar,
    .header-links {
        justify-content: center;
        flex-wrap: wrap;
        gap: 0.35rem 1rem;
    }

    .nav-bar {
        column-gap: 1.25rem;
    }

    .header-links {
        column-gap: 1.25rem;
    }

    .hero {
        min-height: 68svh;
    }

    .hero-copy {
        top: 52%;
        left: 0;
        padding: 0 1.5rem;
    }

    .hero-actions {
        bottom: 8%;
        left: 0;
        padding: 0 1.5rem;
    }

    .cta-bar {
        padding: 2rem 1rem;
    }

    .cta-buttons {
        grid-template-columns: 1fr;
    }

    .cta-link {
        min-height: 0;
        padding: 1.1rem 2.5rem 1.1rem 0.25rem;
        align-items: flex-start;
        text-align: left;
    }

    .cta-link + .cta-link {
        border-top: 1px solid var(--color-border);
        border-left: 0;
    }

    .about-section {
        flex-direction: column;
    }

    .about {
        align-items: flex-start;
    }

    .profile-picture {
        width: min(32%, 220px);
        max-width: none;
    }

    .contact-form {
        flex-basis: auto;
        width: min(100%, 560px);
    }

    .gallery-layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .album-sidebar {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.25rem 0.75rem;
    }

    .album-sidebar h2 {
        grid-column: 1 / -1;
        margin-bottom: 0.5rem;
    }

    .competition-main {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .competition-main .contact-form {
        max-width: 560px;
    }

    #photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem;
    }
}

@media (max-width: 520px) {
    body {
        font-size: 15px;
    }

    .main-header {
        gap: 0.75rem;
    }

    .nav-bar,
    .header-links {
        gap: 0.4rem 0.75rem;
    }

    .nav-bar a,
    .header-links a {
        font-size: 0.6rem;
    }

    .hero {
        min-height: 62svh;
    }

    .hero-copy {
        top: 48%;
    }

    .hero-copy h1 {
        font-size: clamp(2.8rem, 13vw, 4.2rem);
    }

    .hero-actions {
        bottom: 7%;
        gap: 0.5rem;
    }

    .hero-actions .button {
        min-width: 0;
        padding: 0.7rem 1rem;
    }

    .service-grid,
    .service-grid.reverse {
        flex-direction: column;
        align-items: stretch;
        gap: 1.5rem;
    }

    .service-grid > .service-photo {
        width: 100%;
        max-width: none;
    }

    .service-photo img {
        max-height: 75vh;
        aspect-ratio: 4 / 3;
    }

    .about {
        flex-direction: column;
    }

    .profile-picture {
        width: min(68%, 260px);
        align-self: flex-start;
    }

    .footer-links,
    .footer-legal {
        align-items: flex-start;
    }

    #code-form {
        grid-template-columns: 1fr;
    }

    #code-form button {
        margin-top: 0.75rem;
    }

    #shoot-content > div:first-of-type {
        align-items: flex-start;
        flex-direction: column;
    }

    #photo-grid {
        grid-template-columns: 1fr;
    }

    .photo-info {
        flex-direction: column;
        gap: 0.35rem;
    }

    .album-sidebar {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Pricing page */
.pricing-page {
    padding-bottom: clamp(4rem, 8vw, 8rem);
}

.pricing-intro {
    padding: clamp(4rem, 10vw, 8rem) 0 3rem;
    text-align: center;
}

.pricing-intro h1 {
    margin: 0.7rem 0 1rem;
    font-family: "Cormorant SC", Georgia, serif;
    font-size: clamp(3rem, 7vw, 5.5rem);
    font-weight: 500;
    letter-spacing: -0.035em;
    line-height: 1;
}

.pricing-lede {
    max-width: 560px;
    margin: 0 auto;
    color: var(--color-text-muted);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

.pricing-scroll-link {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin-top: 1.8rem;
    color: var(--color-text);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.pricing-scroll-link span {
    color: var(--color-accent);
    font-size: 1.1rem;
}

.pricing-section {
    position: relative;
    padding-top: 1.5rem;
}

.pricing-content {
    position: relative;
    z-index: 1;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 1.25rem;
}

.price-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    background: color-mix(in srgb, var(--color-surface) 50%, transparent);
}

.price-card-image {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.price-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.price-card h2 {
    margin: 0 0 0.6rem;
    font-family: "Cormorant SC", Georgia, serif;
    font-size: clamp(2.2rem, 3vw, 3rem);
    font-weight: 500;
    line-height: 1;
}

.price-card-description {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.7;
}

.package-price {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin: 0.6rem 0;
}

.price-amount {
    font-family: "Cormorant SC", Georgia, serif;
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 1;
}

.price-unit {
    color: var(--color-text-muted);
    font-size: 0.8rem;
}

.price-card-divider {
    height: 1px;
    background: var(--color-border);
}

.price-card h3 {
    margin: 1.4rem 0 0.7rem;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.price-card ul {
    display: grid;
    gap: 0.55rem;
    margin: 0 0 2rem;
    padding: 0;
    color: var(--color-text-muted);
    font-size: 0.86rem;
    list-style: none;
}

.package-link {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
}

.package-link span {
    color: var(--color-accent);
}

.pricing-note {
    max-width: 720px;
    margin-top: clamp(4rem, 8vw, 7rem);
    padding: clamp(2rem, 5vw, 3.5rem);
    border: 1px solid var(--color-border);
    text-align: center;
}

.pricing-note h2 {
    margin: 0.5rem 0;
    font-family: "Cormorant SC", Georgia, serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
    line-height: 1.15;
}

.pricing-note > p {
    max-width: 490px;
    margin: 0 auto 1.5rem;
    color: var(--color-text-muted);
}

.pricing-note .button {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: var(--color-on-primary);
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
}

.pricing-note .button:hover {
    border-color: var(--color-primary-hover);
    background: var(--color-primary-hover);
    color: var(--color-on-accent);
}

@media (max-width: 800px) {
    .pricing-grid {
        grid-template-columns: minmax(0, 1fr);
        max-width: 560px;
        margin: 0 auto;
    }

    .price-card-description {
        min-height: 0;
    }
}

/* 404 page */
.not-found-body {
    display: flex;
    min-height: 100vh;
    min-height: 100svh;
    flex-direction: column;
}

.not-found-page {
    position: relative;
    flex: 1;
    display: grid;
    align-items: center;
    padding: clamp(4rem, 9vw, 8rem) 0;
    overflow: hidden;
}

.not-found-content {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: center;
    gap: clamp(2rem, 8vw, 8rem);
}

.not-found-code {
    margin: 0;
    color: var(--color-surface-alt);
    font-family: "Cormorant SC", Georgia, serif;
    font-size: clamp(10rem, 25vw, 23rem);
    font-weight: 500;
    letter-spacing: -0.09em;
    line-height: 0.75;
    text-align: center;
}

.not-found-copy h1 {
    max-width: 600px;
    margin: 0 0 1rem;
    font-family: "Cormorant SC", Georgia, serif;
    font-size: clamp(2.8rem, 6vw, 5rem);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1;
}

.not-found-copy > p {
    max-width: 480px;
    margin: 0;
    color: var(--color-text-muted);
}

.not-found-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 2rem;
}

.not-found-actions .button {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: var(--color-on-primary);
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
}

.not-found-actions .button:hover {
    border-color: var(--color-primary-hover);
    background: var(--color-primary-hover);
    color: var(--color-on-accent);
}

.not-found-secondary-link {
    color: var(--color-text);
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
}

.not-found-secondary-link span {
    margin-left: 0.35rem;
    color: var(--color-accent);
}

.not-found-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.25rem;
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}

.not-found-links a {
    color: var(--color-text-muted);
    font-size: 0.72rem;
    font-weight: 600;
    text-decoration: none;
    text-transform: uppercase;
}

.not-found-links a:hover {
    color: var(--color-link-hover);
}

@media (max-width: 700px) {
    .not-found-page {
        padding: 4rem 0 5rem;
    }

    .not-found-content {
        grid-template-columns: minmax(0, 1fr);
        gap: 2.5rem;
    }

    .not-found-code {
        font-size: clamp(9rem, 42vw, 15rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .particle-canvas {
        display: none;
    }
}

/* Coming soon page */
.coming-soon-body {
    display: flex;
    min-height: 100vh;
    min-height: 100svh;
    flex-direction: column;
    background:
        radial-gradient(ellipse at 50% 48%, var(--color-surface) 0%, var(--color-background) 68%);
}

.coming-soon-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: min(100% - 3rem, var(--content-width));
    margin: 0 auto;
    padding: 1.5rem 0;
}

.coming-soon-header .wordmark {
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
    color: var(--color-text);
    text-align: left;
    text-decoration: none;
}

.coming-soon-header .wordmark-name {
    font-size: 2rem;
}

.coming-soon-header .wordmark-description {
    font-size: 0.5rem;
}

.coming-soon-header .theme-toggle {
    background: transparent;
    color: var(--color-text);
}

.coming-soon-main {
    position: relative;
    display: grid;
    flex: 1;
    place-items: center;
    padding: 3rem 1.5rem;
    overflow: hidden;
    text-align: center;
}

.coming-soon-content {
    min-width: 0;
    position: relative;
    z-index: 1;
    width: min(100%, 1280px);
}

.coming-soon-mark {
    display: grid;
    width: 3.75rem;
    height: 3.75rem;
    place-items: center;
    margin: 0 auto 2.5rem;
    border: 1px solid var(--color-accent);
    border-radius: 50%;
    color: var(--color-accent);
    font-family: "Cormorant SC", Georgia, serif;
    font-size: 1.1rem;
    letter-spacing: 0.08em;
}

.coming-soon-kicker {
    margin: 0 0 1rem;
    color: var(--color-accent);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.coming-soon-content h1 {
    margin: 0;
    font-family: "Cormorant SC", Georgia, serif;
    font-size: clamp(3rem, 8vw, 6.5rem);
    font-weight: 500;
    letter-spacing: -0.035em;
    line-height: 0.98;
}

.coming-soon-message {
    margin: 1.5rem auto 0;
    color: var(--color-text-muted);
    font-size: clamp(0.95rem, 2vw, 1.1rem);
}

.coming-soon-services {
    margin: 2rem auto 0;
}

.coming-soon-services h2 {
    margin: 0 0 1rem;
    color: var(--color-text-muted);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.coming-soon-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.coming-soon-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    min-height: 48px;
    padding: 0.65rem 0.9rem;
    border: 1px solid var(--color-border);
    background: var(--color-background);
    color: var(--color-text);
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease;
}

.coming-soon-links a:last-child {
    overflow-wrap: anywhere;
}

.coming-soon-links a:hover {
    border-color: var(--color-accent);
    background: var(--color-hover-surface);
    color: var(--color-link-hover);
}

.coming-soon-links a span {
    color: var(--color-accent);
}

.coming-soon-rule {
    display: block;
    width: 3rem;
    height: 1px;
    margin: 2.25rem auto 1.25rem;
    background: var(--color-accent);
}

.coming-soon-signoff {
    margin: 2rem 0 0;
    color: var(--color-text-muted);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.coming-soon-signoff span {
    padding: 0 0.4rem;
    color: var(--color-accent);
}

.coming-soon-footer {
    padding: 1.25rem 1rem;
    border-top: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text-muted);
    text-align: center;
}

.coming-soon-footer p {
    margin: 0;
    font-size: 0.68rem;
}

@media (max-width: 700px) {
    .coming-soon-header {
        width: min(100% - 2rem, var(--content-width));
    }

    .coming-soon-header .wordmark-name {
        font-size: 1.65rem;
    }

    .coming-soon-content h1 {
        font-size: 1.8rem;
    }

    .coming-soon-header .theme-toggle {
        min-height: 40px;
        padding: 0.4rem 0.55rem;
    }

    .coming-soon-signoff {
        font-size: 0.58rem;
    }

    .coming-soon-links {
        flex-direction: column;
        align-items: stretch;
    }

    .coming-soon-links a {
        justify-content: center;
    }
}
