/* =================================
   MODERN CSS RESET
   ================================= */
*,
*::before,
*::after {
    box-sizing: border-box;
}

* {
    margin: 0;
    padding: 0;
}

body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

input,
button,
textarea,
select {
    font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

ol,
ul {
    list-style: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* =================================
   CSS CUSTOM PROPERTIES (VARIABLES)
   ================================= */
@font-face {
    font-family: "elloot";
    src: url("/assets/elloot.woff2") format("woff2");
}

/* stylelint-disable-next-line at-rule-no-unknown */
@view-transition {
    navigation: auto;
}

:root {
    /* Typography */
    --font-family-primary: "Inter", sans-serif;
    --font-family-handwriting: "elloot", Inter, sans-serif;
    --font-size-base: 1.1rem;
    --font-size-small: 0.85rem;
    --font-size-large: 1.15rem;
    --line-height-base: 1.8;
    --line-height-tight: 1.3;
    --line-height-loose: 1.75;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* Font features */
    font-feature-settings:
        "liga" 1,
        "calt" 1,
        "ss01" 1,
        "ss04" 1;

    /* Color scheme */
    color-scheme: light dark;

    /* Colors */
    --black: #000;
    --white-foreground: #feffff;
    --white-background: #fcfffe;
    --white-body-text: #e0e2e1;
    --dark-accent: #3daab7;
    --light-accent: #44ddd3;
    --main-accent: #35d2be;
    --accent-gradient: linear-gradient(
        76deg,
        hsla(186, 52%, 48%, 1) 0%,
        hsla(172, 65%, 52%, 1) 100%
    );
    --light-gray: #cecece;
    --gray: #555;
    --gray-dark: #999;
    --dark-gray: var(--gray-dark);
    --gray-background: #232323;
    --black-gray-background: #1e1e1e;
    --component-background-gray: #f1f1f1;
    --component-background-gray-dark: #3c3c3c;

    /* Spacing */
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-xxl: 3rem;

    /* Border radius */
    --radius-sm: 0.5rem;
    --radius-md: 0.75rem;
    --radius-lg: 1rem;
    --radius-xl: 1.8rem;

    /* Transitions */
    --transition: 0.3s ease;
    --transition-fast: 0.2s ease-out;
    --transition-smooth: 0.4s cubic-bezier(0.4, 0, 0.2, 1);

    /* Shadows */
    --shadow-sm: 0 0.3125rem 0.9375rem rgba(0, 0, 0, 0.07);
    --shadow-md: 0 0.5rem 1.875rem rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 0.625rem 1.5625rem rgba(0, 0, 0, 0.12);

    /*Hover*/
    --accent-hover-shadow: 0 0rem 1rem rgba(53, 210, 190, 0.5);

    /* Layout */
    --container-width: 60rem;
    --nav-height: 3.125rem;

    /* Gradients */
    --gradient-height: 100%; /* one place to change height */
    --grad-dark: #19578d;
    --grad-mid: #33bfc2;
    --grad-light: #35d2bc;
    --mask-stop: 0%;
    --grain-opacity: 0.35;
    --grain-size: 32px;
}

/* =================================
   BASE STYLES
   ================================= */
html {
    font-family: var(--font-family-primary);
}

body {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-normal);
    line-height: var(--line-height-base);
    background-color: light-dark(
        var(--white-background),
        var(--black-gray-background)
    );
    color: light-dark(var(--black), var(--white-body-text));
}

/* =================================
   TYPOGRAPHY
   ================================= */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-family-handwriting);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-tight);
    margin-bottom: 0.625rem;
    color: light-dark(var(--black), var(--white-background));
}

h1 {
    font-size: 2rem;
}
h2 {
    font-size: 1.2rem;
}
h3 {
    font-size: 1.1rem;
}
h4 {
    font-size: 1rem;
}
h5 {
    font-size: 0.9rem;
}
h6 {
    font-size: 0.8rem;
}

p {
    margin-block: 1em;
    color: light-dark(var(--black), var(--white-body-text));
}

strong,
b {
    font-weight: var(--font-weight-bold);
}

i,
em {
    font-style: italic;
}

blockquote {
    border-left: 3px solid var(--main-accent);
    padding-left: var(--spacing-lg);
}

/* =================================
   LINKS AND BUTTONS
   ================================= */
a {
    color: light-dark(var(--black), var(--white-body-text));
    text-decoration: underline;
    transition: color var(--transition);
}

a:hover {
    color: var(--main-accent);
}

.no-underline {
    text-decoration: none;
}

.button {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: var(--spacing-sm) 0.8rem;
    font-size: 1rem;
    color: var(--white-background);
    background: var(--accent-gradient);
    border: none;
    border-radius: 0.8rem;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    width: fit-content;
    transition: all var(--transition);
}

@supports (corner-shape: squircle) {
    .button {
        corner-shape: squircle;
        border-radius: 4rem;
    }
}

.button:hover {
    color: var(--main-accent);
    background: transparent;
    transform: translateY(-2px);
    /*box-shadow: 0 2px 8px rgba(67, 182, 149, 0.15);*/
    box-shadow: var(--accent-hover-shadow);
}

.button i {
    font-size: 1rem;
}

/* =================================
   SOCIAL & CONTACT LISTS
   ================================= */

/* Base list */
.link-list {
    list-style: none;
    margin: var(--spacing-md) 0;
    padding: 0;
}

/* Layout variants */
.link-list--compact {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.6rem;
    align-items: center;
}

.link-list--full {
    display: grid;
    gap: var(--spacing-sm);
}

.link-list--subtle {
    display: grid;
    gap: var(--spacing-sm);
}

/* Items */
.link-list__item {
    margin: 0;
    padding: 0;
}

/* Links (shared) */
.link-list__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    border: none;
    background: transparent;
    color: light-dark(var(--black), var(--white-body-text));
    padding: 0.3rem 0.4rem;
    border-radius: var(--radius-md);
    transition:
        transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow var(--transition-smooth),
        background-color var(--transition),
        color var(--transition);
    font-size: 1rem;
}

/* Icons */
.link-list__link i {
    font-size: 1rem;
    color: var(--main-accent);
}

/* Hover/Focus - ensure smooth transitions for all link types */
.link-list__link:hover,
.link-list__link.is-static:hover {
    color: inherit;
}

/* Keep platform name and handle their original colors on hover */
.link-list__link:hover .platform-name {
    color: light-dark(var(--black), var(--white-body-text));
}

.link-list__link:hover .platform-handle {
    color: light-dark(var(--gray), var(--gray-dark));
}

.link-list__link:focus-visible {
    outline: 2px solid var(--main-accent);
    outline-offset: 2px;
    box-shadow: var(--accent-hover-shadow);
}

/* Full mode: card-like items */
.link-list--full .link-list__item {
    background-color: light-dark(
        var(--white-background),
        var(--gray-background)
    );
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition:
        box-shadow var(--transition),
        transform var(--transition);
}

/* Full mode: card-like items get a clearer card lift on hover. Keep the link
   itself inert so we don't apply two transforms. */
.link-list--full .link-list__item:hover {
    box-shadow: var(--accent-hover-shadow);
    transform: translateY(-0.25rem) scale(1.02);
}

/* Ensure the inner link doesn't apply its own translate/scale when inside full mode */
.link-list--full .link-list__link:hover,
.link-list--full .link-list__link.is-static:hover {
    transform: none;
    box-shadow: none;
}

.link-list--full .link-list__link {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.6rem 0.85rem;
    border-radius: var(--radius-lg);
    text-align: left;
}

/* Subtle mode: same layout as full but gentler hover */
.link-list--subtle .link-list__item {
    background-color: light-dark(
        var(--white-background),
        var(--gray-background)
    );
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition:
        box-shadow var(--transition),
        transform var(--transition);
}

.link-list--subtle .link-list__item:hover {
    transform: translateY(-0.2rem) scale(1.01);
    box-shadow: var(--shadow-md);
}

.link-list--subtle .link-list__link {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.8rem;
    width: 100%;
    padding: 0.7rem 0.9rem;
    border-radius: var(--radius-lg);
    text-align: left;
}

.link-list--subtle .link-list__link .label {
    display: flex;
    flex-direction: column;
    gap: 0;
    line-height: 1.3;
}

/* For contact items, don't use flex-direction column */
.link-list--subtle[data-kind="contact"] .link-list__link .label {
    display: inline;
    line-height: 1.5;
}

.link-list--subtle .platform-name {
    font-weight: 500;
    font-size: 1rem;
    color: light-dark(var(--black), var(--white-body-text));
}

.link-list--subtle .platform-handle {
    font-size: 0.9rem;
    color: light-dark(var(--gray), var(--gray-dark));
}

/* Ensure the inner link doesn't apply its own transform when inside subtle mode */
.link-list--subtle .link-list__link:hover,
.link-list--subtle .link-list__link.is-static:hover {
    transform: none;
    box-shadow: none;
    color: inherit;
}

/* Keep platform name and handle their original colors on hover in subtle mode */
.link-list--subtle .link-list__link:hover .platform-name {
    color: light-dark(var(--black), var(--white-body-text));
}

.link-list--subtle .link-list__link:hover .platform-handle {
    color: light-dark(var(--gray), var(--gray-dark));
}

/* Compact mode: pill chips */
.link-list--compact .link-list__link {
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
    padding: 0.35rem 0.7rem;
    border-radius: var(--radius-xl);
    transition:
        transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow var(--transition-smooth),
        background-color var(--transition),
        color var(--transition);
}

/* Compact mode hover - maintain smooth transitions */
.link-list--compact .link-list__link:hover,
.link-list--compact .link-list__link.is-static:hover {
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
    transform: translateY(-0.2rem) scale(1.02);
    box-shadow: var(--accent-hover-shadow);
    color: inherit;
}

/* Home page socials strip container */
.home-socials {
    margin-top: var(--spacing-md);
}
.home-socials .link-list {
    margin: 0.4rem 0 0 0;
}

/* Now Apps cards */
.now-apps {
    display: grid;
    gap: var(--spacing-sm);
    margin: 0.6rem 0 var(--spacing-md) 0;
}

.now-app {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    padding: 0.9rem 0.75rem;
    border-radius: var(--radius-lg);
    background-color: light-dark(
        var(--white-background),
        var(--gray-background)
    );
    box-shadow: var(--shadow-sm);
    transition:
        transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow var(--transition-smooth),
        background-color var(--transition),
        color var(--transition);
    text-decoration: none;
    color: inherit;
}

.now-app:hover {
    color: inherit;
}

/* Now Songs as clickable cards */
.now-song {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.6rem 0.85rem;
    border-radius: var(--radius-lg);
    background-color: light-dark(
        var(--white-background),
        var(--gray-background)
    );
    box-shadow: var(--shadow-sm);
    transition:
        transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow var(--transition-smooth),
        background-color var(--transition),
        color var(--transition);
    text-decoration: none;
    color: inherit;
}

.now-song:hover {
    transform: translateY(-0.2rem) scale(1.01);
    box-shadow: var(--shadow-md);
    color: inherit;
}

.now-app:hover {
    transform: translateY(-0.25rem) scale(1.01);
    box-shadow: var(--shadow-md);
}

.now-app__icon {
    flex: 0 0 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
}

.now-app__icon i {
    font-size: 1.15rem;
    color: var(--main-accent);
}

.now-app__body {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0; /* allow text wrapping */
}

.now-app__title {
    font-weight: var(--font-weight-semibold);
    color: light-dark(var(--black), var(--white-body-text));
    line-height: var(--line-height-tight);
    pointer-events: none;
}

.now-app__desc {
    margin: 0;
    font-size: 0.95rem;
    color: light-dark(var(--gray), var(--gray-dark));
    line-height: var(--line-height-loose);
    pointer-events: none;
}

/* Now Songs previews */
.now-songs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--spacing-sm);
    margin: 0.6rem 0 var(--spacing-md) 0;
}

.now-song__cover {
    flex: 0 0 2.75rem;
    height: 2.75rem;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
}

.now-song__cover i {
    color: var(--main-accent);
    font-size: 1.1rem;
}

.now-song__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 0;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    line-height: 1.3rem;
}

.now-song__title {
    font-weight: var(--font-weight-semibold);
    color: light-dark(var(--black), var(--white-body-text));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
}

.now-song__artist {
    font-size: 0.9rem;
    color: light-dark(var(--gray), var(--gray-dark));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
}

.now-song__actions {
    margin-left: auto;
    display: flex;
    align-items: center;
}

.now-song__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    color: var(--main-accent);
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
    pointer-events: none;
}

/* Updated marker on /now */
.updated {
    margin-top: 0.4rem;
    margin-bottom: 0.6rem;
    font-size: 0.95rem;
    color: light-dark(var(--gray), var(--gray-dark));
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.2rem 0.6rem;
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
    border-radius: var(--radius-xl);
}

/* Individual sections for /now (Socials and Contact) */
.now-section {
    margin: var(--spacing-sm) 0 var(--spacing-md) 0;
}

.now-section h2 {
    margin-bottom: 0.4rem;
}

/* Now content lists use chip styling - see below for .now-content ul and .now-content li */

/* Headings: clean, no underline */

/* =================================
   MARKDOWN WIDGET LISTS (used on /now)
   ================================= */
/* Headings spacing and subtle underline */

.columnRight {
    view-transition-name: column-right;
}

.columnLeft {
    view-transition-name: column-left;
}

.columnRight h3 {
    margin-top: var(--spacing-xl);
    margin-bottom: var(--spacing-sm);
    font-size: 1.4rem;
    padding-bottom: 0;
    border: 0;
}

.columnRight h4 {
    margin-top: var(--spacing-lg);
    margin-bottom: var(--spacing-sm);
    font-size: 1.2rem;
}

/* Turn the lists that follow headings into modern widgets */

/* Two-up grid on wider screens for sublists (apps, etc.) */

/* Smoother hover for link chips (inspired by post previews) */
.link-list__link {
    transition:
        transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow var(--transition-smooth),
        background-color var(--transition),
        color var(--transition);
}

/* Now page: chip-style lists for ALL sections */

.now-content ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.6rem;
    margin: 0.4rem 0 var(--spacing-md) 0;
    padding: 0;
    list-style: none;
}

.now-content li {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
    color: light-dark(var(--black), var(--white-body-text));
    border-radius: var(--radius-xl);
    padding: 0.35rem 0.7rem;
    box-shadow: none;
    transition:
        transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow var(--transition-smooth),
        background-color var(--transition),
        color var(--transition);
    font-size: 1rem;
}

.now-content li:hover {
    transform: translateY(-0.2rem) scale(1.02);
    box-shadow: var(--accent-hover-shadow);
}

.now-content li i {
    color: var(--main-accent);
    min-width: 1.1rem;
    text-align: center;
}

.now-content li a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition);
}

.now-content li a:hover {
    color: var(--main-accent);
}

/* All now-content lists now use chip style - no need for special first-of-type rule */

/* Widget list items (scoped to the now page) */
/* These rules previously targeted .columnRight which could unintentionally
   apply in other contexts. Scope to .now-page so they only affect the Now page
   (or any page that intentionally sets .now-page on the right column). */
.now-page h2 + ul > li,
.now-page h4 + ul > li {
    background-color: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0.2rem 0;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.now-page h2 + ul > li:hover,
.now-page h4 + ul > li:hover {
    transform: none;
    box-shadow: none;
}

/* Icon sizing inside widget items */
.now-page h2 + ul > li i,
.now-page h4 + ul > li i {
    font-size: 1rem;
    color: var(--main-accent);
    flex: 0 0 auto;
    min-width: 1.25rem; /* keep icons aligned across rows */
    text-align: center;
}

/* Links inside widget items */
.now-page h2 + ul > li a,
.now-page h4 + ul > li a {
    color: light-dark(var(--black), var(--white-body-text));
    text-decoration: none;
    transition: color var(--transition);
}

/* Hover only for links inside the now-page widget lists */
.now-page h2 + ul > li a:hover,
.now-page h4 + ul > li a:hover {
    color: var(--main-accent);
}

/* =================================
   IMAGES AND MEDIA
   ================================= */
img {
    display: flex;
    margin: auto;
    width: 100%;
}

.icon {
    display: inline;
    margin: 0;
    width: 0.8em;
    user-select: none;
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    box-shadow: none !important;
}

.icon-page {
    position: relative;
    width: 1.5em;
    top: 0.32em;
}

.columnLeft .icon {
    width: 2.5rem;
}

.columnRight .icon {
    margin-right: 1rem;
}

.columnRight .homepage-icon {
    margin-left: 1rem;
}

.pfp {
    display: flex;
    margin: auto;
    width: 70%;
    max-width: 15rem;
    aspect-ratio: 1;
    border-radius: 6%;
    box-shadow: var(--shadow-sm);
}

@supports (corner-shape: squircle) {
    .pfp {
        border-radius: 10%;
        corner-shape: squircle;
    }
}

figcaption {
    font-size: 0.9rem;
    text-align: center;
    color: light-dark(var(--gray), var(--gray-dark));
}

hr {
    border: none;
    border-top: 1px solid light-dark(var(--gray), var(--gray-dark));
}

/* =================================
   LAYOUT COMPONENTS
   ================================= */
main {
    margin: auto;
    padding: var(--spacing-lg);
}

.columns {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.columnLeft,
.columnRight {
    padding: 0.3rem 0.625rem;
}

.noMobile {
    display: none;
}

.noDesktop {
    display: inline;
}

/* Headers */
.headerLarge {
    font-size: 3rem;
    font-weight: var(--font-weight-medium);
    margin-bottom: 1.8rem;
    text-align: center;
}

.pageTitle {
    font-size: 2rem;
    font-weight: var(--font-weight-semibold);
}
/* =================================
   NAVIGATION
   ================================= */

header {
    padding-top: 1.6rem;
    position: relative;
}

nav {
    display: flex;
    width: 100%;
    height: var(--nav-height);
    margin: auto;
    margin-bottom: 0.6rem;
    padding: 0.2rem 0 0.6rem 0;
    font-family: var(--font-family-handwriting);
    align-items: center;
    justify-content: space-between;
}

/* Navigation height adjustment for JavaScript-enabled hamburger menu */
.js-hamburger-enabled nav {
    height: 0;
    margin-bottom: 0;
    padding: 0;
}

.nav-logo {
    width: 60%;
    max-width: 32rem;
}

/* Hamburger Menu Styles */
.hamburger {
    display: none;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0.8rem 0.8rem 0.8rem 1.5rem;
    z-index: 1001;
    width: 5rem;
    height: 3.5rem;
    position: absolute;
    top: 1.5rem;
    left: 0.2rem;
}

.js-hamburger-enabled .hamburger {
    display: block;
}

@media (min-width: 62rem) {
    .js-hamburger-enabled .hamburger {
        display: none;
    }
}

.hamburger-box {
    width: 100%;
    height: 100%;
    display: inline-block;
    position: relative;
}

.hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -2px;
}

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
    width: 2rem;
    height: 0.25rem;
    background-color: var(--main-accent);
    border-radius: 0.25rem;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease;
}

.hamburger-inner::before,
.hamburger-inner::after {
    content: "";
    display: block;
}

.hamburger-inner::before {
    top: -0.6rem;
}

.hamburger-inner::after {
    bottom: -0.6rem;
}

/* Hamburger animation */
.hamburger.is-active .hamburger-inner {
    transform: rotate(45deg);
}

.hamburger.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
}

.hamburger.is-active .hamburger-inner::after {
    bottom: 0;
    transform: rotate(-90deg);
}

/* Fullscreen navigation */
.nav-fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: light-dark(var(--white-background), var(--gray-background));
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease-in-out;
}

@media (prefers-color-scheme: dark) {
    .nav-fullscreen {
        background: var(--gray-background);
    }
}

.nav-fullscreen.is-active {
    opacity: 1;
    visibility: visible;
}

.nav-fullscreen-list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
    width: 100%;
}

.nav-fullscreen-list li {
    margin: 1.5rem 0;
}

.nav-fullscreen-list a {
    font-size: 1.8rem;
    text-decoration: none;
    color: light-dark(var(--black), var(--white-body-text));
    padding: 0.5rem 1rem;
    display: inline-block;
    position: relative;
}

.nav-fullscreen-list a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 0.2rem;
    background: var(--accent-gradient);
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.nav-fullscreen-list a:hover::after,
.nav-fullscreen-list a:focus::after {
    width: 100%;
}

/* Desktop navigation - shown by default for noscript fallback */
.ul-nav {
    display: flex;
    height: 100%;
    gap: 0.3rem;
    margin: auto;
    list-style: none;
}

.js-hamburger-enabled .ul-nav {
    display: none;
}

.ul-nav li {
    display: flex;
    padding: var(--spacing-sm);
}

.ul-nav li a {
    position: relative;
    margin: auto;
    color: light-dark(var(--gray), var(--gray-dark));
    text-decoration: none;
    transition: color var(--transition);
}

.ul-nav li a::after {
    content: "";
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--accent-gradient);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-smooth);
}

.ul-nav li a:hover {
    color: var(--main-accent);
}

.ul-nav li a:hover::after {
    transform: scaleX(1);
}

.ul-nav li a:not(:hover)::after {
    transform-origin: right;
}

/* General list styles */
ul {
    list-style-type: disc;
    margin: 0.625rem 0;
    margin-left: 1.875rem;
}

/* =================================
   FOOTER
   ================================= */
footer {
    margin: auto;
    margin-top: 5rem;
    margin-bottom: 6.25rem;
    width: 90%;
    color: var(--white-foreground);
}

footer hr {
    border: none;
}

.footerContainer {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    padding-top: var(--spacing-lg);
    color: var(--white-foreground);
}

.footerContainer a {
    color: var(--white-foreground);
    text-decoration: none;
    transition: color var(--transition);
}

.footerContainer a:hover {
    color: var(--main-accent);
}

.footerLeft {
    text-align: left;
    color: var(--white-foreground);
}

.footerRight {
    text-align: right;
    color: var(--white-foreground);
}

/* =================================
   UTILITY CLASSES
   ================================= */
.highlighted {
    position: relative;
    display: inline;
    padding: 0.1em;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    color: var(--white-foreground);
}

.highlighted::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    bottom: -0.2rem;
    height: 95%;
    background: var(--accent-gradient);
    border-radius: 0.22em;
}

@supports (corner-shape: squircle) {
    .highlighted::after {
        border-radius: 1.3rem;
        corner-shape: squircle;
    }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* =================================
   POSTS COMPONENTS
   ================================= */
.postsBlock {
    margin-top: 3.125rem;
    padding: var(--spacing-lg) 0;
    border-radius: var(--radius-lg);
    box-sizing: border-box;
}

.postsBlock h2 {
    text-align: center;
    margin-bottom: var(--spacing-lg);
    padding: 0 var(--spacing-lg);
}

.postsContainer {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
    width: 20rem;
    margin: 0.9rem auto 0.625rem auto;
}

.postPreview {
    padding: var(--spacing-md);
    border-radius: var(--radius-lg);
    background-color: light-dark(
        var(--white-background),
        var(--gray-background)
    );
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition:
        transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.postPreview:hover {
    transform: translateY(-0.375rem) perspective(50rem) rotateX(2deg)
        rotateY(-2deg) scale(1.02);
    box-shadow: var(--accent-hover-shadow);
}

.postPreview a {
    color: var(--main-accent);
    text-decoration: none;
}

.postPreviewImage {
    height: 12.5rem;
    margin-bottom: 0.8rem;
    border-radius: var(--radius-md);
    object-fit: cover;
    width: 100%;
}

@supports (corner-shape: squircle) {
    .postPreview {
        border-radius: 2rem;
        corner-shape: squircle;
    }
    .postPreviewImage {
        border-radius: 1rem;
        corner-shape: squircle;
    }
}

.postPreviewTitle {
    font-size: 1.12rem;
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    color: light-dark(var(--black), var(--white-body-text));
}

.postPreviewTitle a {
    color: inherit;
    text-decoration: none;
}

.postPreviewDate {
    font-size: var(--font-size-small);
    color: light-dark(var(--gray), var(--gray-dark));
}

.postPreviewText {
    font-size: 0.813rem;
    margin-top: 0.3rem;
    color: light-dark(var(--gray), var(--gray-dark));
}

.postPreviewSubtitle {
    font-size: 0.83rem;
    font-style: italic;
    color: light-dark(var(--black), var(--white-body-text));
}

/* View More Button */
.postsBlock .viewMoreButton {
    display: block;
    margin-top: var(--spacing-md);
    padding: 0 var(--spacing-lg);
    font-size: 1rem;
    text-align: center;
    text-decoration: none;
    width: auto;
}

.postsBlock .viewMoreButton .viewMoreText {
    position: relative;
    color: var(--main-accent);
    transition: color var(--transition);
}

.postsBlock .viewMoreButton i {
    color: var(--main-accent);
    transition: color var(--transition);
}

.postsBlock .viewMoreButton .viewMoreText::after {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--accent-gradient);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-smooth);
}

.postsBlock .viewMoreButton:hover .viewMoreText,
.postsBlock .viewMoreButton:hover i {
    color: light-dark(var(--black), var(--white-body-text));
}

.postsBlock .viewMoreButton:hover .viewMoreText::after {
    transform: scaleX(1);
}

.postsBlock .viewMoreButton:not(:hover) .viewMoreText::after {
    transform-origin: right;
}

/* =================================
   ARTICLE STYLES
   ================================= */
article {
    margin: 0 auto;
}

article p {
    font-size: var(--font-size-base);
    line-height: 1.7;
    margin-bottom: var(--spacing-lg);
}

article h1 {
    font-size: 1.8rem;
    font-weight: var(--font-weight-semibold);
    margin: var(--spacing-md) 0;
    line-height: var(--line-height-tight);
}

article blockquote h1 {
    font-size: 1.4rem;
    margin: 0;
    line-height: 1.4;
}

article figure {
    margin: var(--spacing-xl) 0;
}

article figure img {
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-sm);
    box-shadow: var(--shadow-sm);
}

@supports (corner-shape: squircle) {
    article figure img {
        border-radius: 1.5rem;
        corner-shape: squircle;
    }
}

.columnRight img {
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

article figure figcaption {
    font-size: 0.9rem;
    text-align: center;
    color: light-dark(var(--gray), var(--gray-dark));
}

.articleTitle {
    margin-bottom: 0.8rem;
    line-height: 1.2;
}

.articleSubheading {
    font-family: var(--font-family-primary);
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 1.4;
    color: light-dark(var(--gray), var(--gray-dark));
}

.articleByline {
    margin: var(--spacing-md) 0 0.8rem 0;
    font-size: 0.9rem;
    color: light-dark(var(--gray), var(--gray-dark));
}

.articleButtons {
    display: flex;
    flex-direction: row;
    gap: var(--spacing-sm);
    justify-content: right;
    margin-top: var(--spacing-xl);
}

.postList p {
    color: light-dark(var(--gray), var(--gray-dark));
}

.leaflet-badge {
    font-size: 0.75rem;
    color: light-dark(var(--dark-accent), var(--main-accent));
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.leaflet-badge i {
    font-size: 0.7rem;
    color: light-dark(var(--dark-accent), var(--main-accent));
}

.website-badge {
    font-size: 0.75rem;
    color: light-dark(var(--dark-accent), var(--main-accent));
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.website-badge i {
    font-size: 0.7rem;
    color: light-dark(var(--dark-accent), var(--main-accent));
}

.leaflet-badge-inline {
    color: var(--main-accent);
    font-size: 0.9em;
    margin-left: 0.3rem;
}

/* Leaflet post inline elements */
.leaflet-icon {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
    color: var(--main-accent, #4a9);
}

.leaflet-tooltip-container {
    display: inline-block;
}

.leaflet-iframe {
    max-width: 100%;
    border: none;
}

.leaflet-unknown-block {
    padding: 1rem;
    background: var(--main-accent, #f0f0f0);
    border-radius: 0.25rem;
    margin: 1rem 0;
    color: #666;
    font-style: italic;
}

.leaflet-posts-section {
    margin-top: 2rem;
}

/* Leaflet post popup styles - Mobile First */
.leaflet-post-popup {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(4px);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    padding: var(--spacing-md);
    box-sizing: border-box;
}

.leaflet-post-popup-visible {
    opacity: 1;
}

.leaflet-post-popup-container {
    position: relative;
    width: 100%;
    height: 85vh;
    background-color: light-dark(
        var(--white-background),
        var(--gray-background)
    );
    border-radius: var(--radius-xl);
    corner-shape: squircle;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    display: block;
    transform: scale(0.95);
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.leaflet-post-popup-visible .leaflet-post-popup-container {
    transform: scale(1);
}

.leaflet-post-popup-close {
    position: absolute;
    top: var(--spacing-sm);
    right: var(--spacing-sm);
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
}

.leaflet-post-popup-close i {
    font-size: 1rem;
}

.leaflet-post-popup-iframe-wrapper {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.leaflet-post-popup-iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

.leaflet-post-popup-buttons {
    position: absolute;
    bottom: var(--spacing-md);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10001;
    pointer-events: none;
}

.leaflet-post-popup-buttons .button {
    pointer-events: auto;
}

.leaflet-post-popup-open {
    margin: 0;
}

/* Desktop popup styles */
@media (min-width: 769px) {
    .leaflet-post-popup {
        padding: var(--spacing-lg);
    }

    .leaflet-post-popup-container {
        max-width: 45rem;
        height: 80vh;
    }

    .leaflet-post-popup-close {
        top: var(--spacing-md);
        right: var(--spacing-md);
        width: 2.5rem;
        height: 2.5rem;
        min-width: 2.5rem;
    }

    .leaflet-post-popup-close i {
        font-size: 1.2rem;
    }

    .leaflet-post-popup-buttons {
        bottom: var(--spacing-lg);
    }
}

/* Loading skeleton styles */
@keyframes skeleton-pulse {
    0%,
    100% {
        opacity: 0.2;
    }
    50% {
        opacity: 0.4;
    }
}

.postPreview--loading {
    pointer-events: none;
}

/* Smooth transitions for post loading */
.postsContainer .postPreview {
    transition:
        opacity 0.4s ease-in,
        transform 0.3s ease-out;
}

.postPreviewImage--skeleton {
    background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

.postPreviewTitle--skeleton {
    background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
    border-radius: 0.25rem;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
    height: 1.2em;
    width: 80%;
}

.postPreviewDate--skeleton {
    background: light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
    border-radius: 0.25rem;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
    height: 1em;
    width: 40%;
    margin-top: 0.3rem;
}

.postList--loading {
    list-style: none;
}

.skeleton-text {
    display: inline-block;
    background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
    border-radius: 0.25rem;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

/* =================================
   UI COMPONENTS
   ================================= */
.tooltipContainer {
    position: relative;
    display: inline-block;
}

.tooltipContainer .tooltip {
    visibility: hidden;
    width: 9.5rem;
    padding: 0.2rem;
    position: absolute;
    z-index: 1;
    bottom: 140%;
    left: 50%;
    margin-left: -4.75rem;
    background-color: light-dark(var(--gray), var(--white-background));
    color: light-dark(var(--white-background), var(--black));
    text-align: center;
    border-radius: var(--radius-sm);
    opacity: 0;
    transition: opacity var(--transition);
    font-size: 0.9rem;
    line-height: 1.3;
}

.tooltipContainer .tooltip::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -0.3125rem;
    border-width: 0.3125rem;
    border-style: solid;
    border-color: light-dark(var(--gray), var(--white-background)) transparent
        transparent transparent;
}

.tooltipContainer:hover .tooltip {
    visibility: visible;
    opacity: 1;
}

/* Main page text and status container */
.main-page-text {
    /*padding: 1rem;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    background-color: light-dark(var(--component-background-gray), var(--component-background-gray-dark));*/
    position: relative;
    margin-top: 1rem;
    font-size: 1.05rem;
}

.main-page-header {
    margin-bottom: 1.5rem;
    margin-top: -0.5rem;
}

/* =================================
   AUDIO PLAYER COMPONENTS
   ================================= */
.custom-audio-player-container {
    margin: var(--spacing-lg) auto;
    width: 100%;
    padding: var(--spacing-md);
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
    border-radius: var(--radius-md);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.06);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
}

@supports (corner-shape: squircle) {
    .custom-audio-player-container {
        border-radius: 2rem;
        corner-shape: squircle;
    }
}

.custom-audio-player-container.js-enabled audio {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

.custom-audio-player-container:not(.js-enabled)
    .audio-dropdown-toggle
    .toggle-icon,
.custom-audio-player-container:not(.js-enabled) .audio-dropdown-content {
    display: none;
}

.custom-audio-player-container.js-enabled .audio-dropdown-toggle .toggle-icon {
    display: flex;
}

.audio-dropdown-toggle {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    width: 100%;
    padding: 0.2rem 0;
    background: none;
    border: none;
    font-size: 1rem;
    font-weight: var(--font-weight-medium);
    color: light-dark(var(--gray), var(--gray-dark));
    text-align: left;
    cursor: pointer;
    flex-shrink: 0;
    transition: color var(--transition);
}

.audio-dropdown-toggle:hover {
    color: var(--main-accent);
}

.audio-dropdown-toggle .toggle-icon {
    margin-left: auto;
    font-size: 0.9em;
    transition: transform var(--transition);
}

.custom-audio-player-container.is-open .audio-dropdown-toggle .toggle-icon {
    transform: rotate(180deg);
}

.audio-dropdown-content {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    transition:
        max-height 0.4s ease-in-out,
        opacity 0.4s ease-in-out,
        margin-top 0.4s ease-in-out;
}

.custom-audio-player-container.is-open .audio-dropdown-content {
    max-height: 31.25rem;
    opacity: 1;
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-sm);
}

.custom-controls {
    display: none;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.audio-dropdown-content .custom-controls {
    display: flex;
}

.custom-controls button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 1.3em;
    padding: 0.2rem;
    background: none;
    border: none;
    color: var(--main-accent);
    font-size: 1.3rem;
    text-align: center;
    cursor: pointer;
    transition:
        color var(--transition),
        transform 0.2s ease;
}

.custom-controls button:hover {
    color: var(--light-accent);
}

.custom-controls button i {
    display: inline-block;
    width: 1em;
    font-size: inherit;
    text-align: center;
}

.custom-controls .time-display {
    padding: 0 0.2rem;
    font-size: var(--font-size-small);
    color: light-dark(var(--black), var(--white-body-text));
    white-space: nowrap;
    font-feature-settings: "tnum" 1;
}

.progress-bar-container {
    flex-grow: 1;
    height: var(--spacing-sm);
    background-color: light-dark(var(--light-gray), var(--gray));
    border-radius: 0.25rem;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.progress-bar {
    height: 100%;
    width: 0%;
    background: var(--accent-gradient);
    border-radius: 0.25rem;
    transition: width 0.1s linear;
}

.speed-container {
    position: relative;
}

.speed-select {
    min-width: 4.5em;
    padding: 0.4rem 1.5rem 0.4rem 0.9rem;
    font-size: 0.9rem;
    font-weight: var(--font-weight-medium);
    line-height: 1;
    background-color: light-dark(
        var(--component-background-gray),
        var(--component-background-gray-dark)
    );
    color: light-dark(var(--black), var(--white-body-text));
    border: 1px solid light-dark(var(--gray-dark), var(--gray));
    border-radius: var(--radius-sm);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    text-align: left;
    box-sizing: border-box;
    transition:
        border-color var(--transition),
        color var(--transition),
        background-color var(--transition),
        box-shadow var(--transition);
}

.speed-select:hover,
.speed-select:focus {
    border-color: var(--main-accent);
    box-shadow: 0 0 0 2px rgba(var(--main-accent), 0.3);
}

.speed-container::after {
    content: "▾";
    position: absolute;
    right: 0.7rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.9em;
    line-height: 1;
    color: light-dark(var(--gray), var(--gray-dark));
    pointer-events: none;
    z-index: 1;
}

.volume-container {
    display: none;
}

.volume-button {
    display: none !important;
}

.highlighted-segment {
    padding: 0.1em 0.2em;
    background-color: rgba(53, 210, 190, 0.2);
    border-radius: 0.2em;
    transition:
        background 0.15s ease-in-out,
        color 0.15s ease-in-out;
}

.highlighted-segment a {
    color: inherit;
}

.less-left-space {
    margin-left: -0.5rem;
}

.iframe-container {
    width: 100%;
    height: 80rem;
}

.iframe-container iframe {
    border-radius: var(--radius-xl);
}

/* =================================
   RESPONSIVE DESIGN
   ================================= */

/* Footer gradient stack */
.footer-stack {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    height: 27rem;
    background-image: linear-gradient(
        to top,
        light-dark(var(--grad-dark), var(--grad-light)) 0%,
        light-dark(var(--grad-light), var(--grad-dark)) 60%,
        transparent 100%
    );

    background-repeat: no-repeat;
    mask-image: linear-gradient(
        to top,
        rgba(0, 0, 0, 1) 60%,
        rgba(0, 0, 0, 0) 100%
    );
}
.footer-stack::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -1;
    mix-blend-mode: multiply;
    opacity: var(--grain-opacity);
    background-image: url("/images/grain.webp");
    background-repeat: repeat;
    background-size: var(--grain-size);

    mask-image: linear-gradient(
        to top,
        rgba(0, 0, 0, 1) 50%,
        rgba(0, 0, 0, 0) 100%
    );
}

/* Link Prompt Dialog */
.link-prompt-dialog {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.link-prompt-content {
    background: light-dark(var(--white-foreground), var(--gray-background));
    padding: 2rem;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    max-width: 400px;
    width: 90%;
    animation: slideUp 0.3s ease;
}

@keyframes slideUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.link-prompt-content h3 {
    margin-bottom: 1.5rem;
    text-align: center;
    color: light-dark(var(--dark-gray), var(--white-body-text));
}

.link-prompt-buttons {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.link-prompt-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1rem;
    background: var(--accent-gradient);
    color: var(--white-foreground);
    border: none;
    border-radius: var(--radius-md);
    font-size: 1rem;
    font-weight: var(--font-weight-medium);
    cursor: pointer;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.link-prompt-button:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.link-prompt-button:active {
    transform: translateY(0);
}

.link-prompt-button i {
    font-size: 1.2rem;
}

.link-prompt-cancel {
    width: 100%;
    padding: 0.75rem;
    background: transparent;
    color: light-dark(var(--dark-gray), var(--white-body-text));
    border: 1px solid light-dark(var(--light-gray), var(--gray));
    border-radius: var(--radius-md);
    font-size: 0.9rem;
    cursor: pointer;
    transition: background 0.2s ease;
}

.link-prompt-cancel:hover {
    background: light-dark(var(--light-gray), var(--dark-gray));
}

/* Separator Styles */
.link-prompt-separator {
    text-align: center;
    color: light-dark(var(--gray), var(--light-gray));
    font-weight: var(--font-weight-medium);
    margin: 0.5rem 0;
    position: relative;
}

.link-prompt-separator::before,
.link-prompt-separator::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 40%;
    height: 1px;
    background: light-dark(var(--gray), var(--light-gray));
}

.link-prompt-separator::before {
    left: 0;
}

.link-prompt-separator::after {
    right: 0;
}

/* Custom Instance Input Styles */
.custom-instance-inline-container {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
    padding: 0.75rem;
    background: light-dark(var(--light-gray), var(--dark-gray));
    border-radius: var(--radius-md);
    border: 1px solid light-dark(var(--gray), var(--light-gray));
    animation: slideDown 0.2s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.custom-instance-inline-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: light-dark(var(--dark-gray), var(--white-body-text));
    font-size: 0.9rem;
    font-family: inherit;
    padding: 0.25rem;
}

.custom-instance-inline-input::placeholder {
    color: light-dark(var(--gray), var(--light-gray));
}

.custom-instance-go-button {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    white-space: nowrap;
}

/* Dark mode specific adjustments */
@media (prefers-color-scheme: dark) {
    .nav-logo {
        filter: invert(1);
    }
}

/* Desktop styles */
@media only screen and (min-width: 62rem) {
    /* Layout adjustments */
    main,
    nav,
    footer {
        width: var(--container-width);
    }

    /* Restore desktop navigation spacing when JS is enabled */
    .js-hamburger-enabled nav {
        height: var(--nav-height);
        margin-bottom: 0.6rem;
        padding: 0.2rem 0 0.6rem 0;
    }

    /* Restore desktop navigation spacing when JS is enabled */
    .js-hamburger-enabled nav {
        height: var(--nav-height);
        margin-bottom: 0.6rem;
        padding: 0.2rem 0 0.6rem 0;
    }

    .columns {
        flex-direction: row;
    }

    .columnRight {
        margin-left: 0.625rem;
        width: 100%;
    }

    /* Typography scaling */
    .headerLarge {
        font-size: 5rem;
        text-align: left;
    }

    .pageTitle {
        font-size: 3.2rem;
    }

    .articleSubheading {
        font-size: 1.6rem;
        margin-bottom: var(--spacing-md);
    }

    h2 {
        font-size: 1.35rem;
    }
    h3 {
        font-size: 1.2rem;
    }

    /* Navigation */
    .nav-logo {
        width: 32rem;
    }

    /* Show desktop nav and hide hamburger on larger screens */
    .hamburger {
        display: none;
    }

    .nav-fullscreen {
        display: none;
    }

    .ul-nav {
        display: flex;
        height: 100%;
        gap: 0.3rem;
        margin: auto;
        list-style: none;
    }

    /* Images and icons */
    img {
        width: 43.75rem;
    }

    .columnLeft .icon {
        width: 4.5rem;
    }

    .columnLeft .pfp {
        width: 25rem !important;
        display: block !important;
        margin: 0 !important;
        max-width: 25rem !important;
    }

    /* Utilities */
    .noMobile {
        display: inline;
    }

    .noDesktop {
        display: none;
    }

    /* Posts layout */
    .postsBlock {
        margin-top: 5rem;
    }

    .postsBlock h2 {
        text-align: left;
    }

    .postsContainer {
        flex-direction: row;
        width: calc(100% + 6rem);
        margin-left: -3rem;
        padding: 0 var(--spacing-md);
        gap: var(--spacing-md);
        box-sizing: border-box;
    }

    .postPreview {
        width: 1px;
        flex: 1;
        padding: var(--spacing-md);
    }

    .postPreviewImage {
        width: 100%;
        height: 12rem;
    }

    .postsBlock .viewMoreButton {
        width: auto;
        text-align: right;
        float: right;
    }

    /* Article styles */
    article {
        padding: 2rem 3rem 3rem 3rem;
        background-color: light-dark(
            var(--white-foreground),
            var(--gray-background)
        );
        border-radius: var(--radius-lg);
        box-shadow: var(--shadow-md);
        overflow: hidden;
    }

    @supports (corner-shape: squircle) {
        article {
            border-radius: 3rem;
            corner-shape: squircle;
        }
    }

    article p {
        font-size: var(--font-size-large);
        line-height: var(--line-height-loose);
    }

    article h1 {
        font-size: 2rem;
    }

    /* Audio player desktop enhancements */
    .volume-container {
        display: flex;
        align-items: center;
        gap: 0.4rem;
    }

    .volume-slider {
        width: 3rem;
        height: 0.4rem;
        margin: 0;
        padding: 0;
        background: light-dark(var(--light-gray), var(--gray));
        border-radius: 0.2rem;
        outline: none;
        opacity: 0.8;
        cursor: pointer;
        flex-shrink: 0;
        -webkit-appearance: none;
        appearance: none;
        transition: opacity 0.2s ease;
    }

    .volume-slider:hover {
        opacity: 1;
    }

    .volume-slider::-webkit-slider-thumb {
        width: 0.9rem;
        height: 0.9rem;
        background: var(--main-accent);
        border-radius: 50%;
        cursor: pointer;
        -webkit-appearance: none;
        appearance: none;
    }

    .volume-slider::-moz-range-thumb {
        width: 0.9rem;
        height: 0.9rem;
        background: var(--main-accent);
        border-radius: 50%;
        cursor: pointer;
        border: none;
    }

    .custom-controls {
        gap: 0.6rem;
    }

    .volume-button {
        display: inherit !important;
    }

    .custom-controls .time-display {
        font-size: 0.9rem;
    }

    .custom-controls button i {
        width: 1.4em;
    }

    .iframe-container {
        height: 75rem;
    }
    .less-left-space {
        margin-left: -1rem;
    }
    .js-hamburger-enabled .ul-nav {
        display: flex;
        .ul-nav {
            height: 100%;
            gap: 0.3rem;
            margin: auto;
            list-style: none;
        }
    }
}
