/* Nikomedia. Dark material studio, with all content visible before motion loads. */
html.studio-theme, .studio-theme body {
    color-scheme: dark;
    --page: #101110; --page-soft: #1a1c1a; --surface: #242724; --surface-strong: #323630;
    --ink: #f0f0e8; --ink-soft: #b3b8ae; --line: #3e443b;
    --accent: #f57b42; --accent-hover: #ff945f; --accent-ink: #151711;
    --header: #101110f5; --radius: 4px; --content: 1600px;
    --gutter: clamp(1.25rem, 5vw, 6rem); --studio-ease: cubic-bezier(.22,1,.36,1);
    background: var(--page); scrollbar-color: #667060 var(--page);
}
html.studio-theme { scroll-padding-top: 96px; }
html.studio-theme:not(.js) { scroll-behavior: auto; }
html, body { overflow-x: clip; }
button:disabled { cursor: wait; opacity: .6; }
input, textarea, select { caret-color: var(--accent); }
a { text-underline-offset: .25em; }
.site-header { height: 80px; border-color: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; transition: background 180ms, border-color 180ms; }
.site-header.is-scrolled { border-color: var(--line); }
.wordmark { font-size: 1.7rem; letter-spacing: -.075em; line-height: 1; }
.wordmark::after { content: "."; color: var(--accent); }
.wordmark span { color: var(--ink); }
.desktop-nav { display: flex; gap: clamp(1rem,1.7vw,2rem); font-size: .79rem; font-weight: 560; }
.desktop-nav a { min-height: 44px; display: inline-flex; align-items: center; }
.desktop-nav a[aria-current="page"] { color: var(--accent); }
.desktop-nav .nav-contact { color: var(--ink); gap: 1rem; border-bottom: 1px solid var(--accent); padding-block: .35rem; }
.desktop-nav .nav-patreon { border: 0; border-radius: 0; padding: .35rem 0; color: var(--ink-soft); }
.button { border-radius: 3px; min-height: 52px; gap: 1.8rem; padding: 1rem 1.4rem; font-size: .85rem; }
.button span { font-size: 1.15rem; }
.button-secondary { border-color: #6c7564; }
.text-link { min-height: 44px; gap: .75rem; font-size: .85rem; font-weight: 560; }
.menu-button { display: none; border-radius: 3px; background: transparent; color: var(--ink); min-height: 44px; }
.mobile-menu { overflow-y: auto; }
.mobile-menu a { font-size: clamp(1.7rem,7vw,2.7rem); }
.studio-theme [data-reveal] { opacity: 1; }

/* A real transparent 3D subject sits between far type and foreground rings. */
.studio-hero { height: max(740px,100svh); max-height: 1080px; position: relative; isolation: isolate; overflow: clip; padding-inline: var(--gutter); background: radial-gradient(ellipse at 80% 48%,#45302250,transparent 54%); }
.hero-ground { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero-wire { position: absolute; right: -1%; top: 1%; font-size: min(54vw,850px); font-weight: 650; line-height: 1; letter-spacing: -.12em; color: transparent; -webkit-text-stroke: 1px #5e5341; opacity: .36; user-select: none; }
.hero-grid { position: absolute; bottom: -24%; left: 28%; width: 100%; height: 65%; background-image: linear-gradient(#75604a40 1px,transparent 1px),linear-gradient(90deg,#75604a40 1px,transparent 1px); background-size: 78px 78px; transform: perspective(480px) rotateX(60deg) rotateZ(-18deg); mask-image: radial-gradient(ellipse,#0008,transparent 67%); }
.hero-art { position: absolute; z-index: -1; width: 100%; height: 108%; right: 0; top: -2%; margin: 0; }
.hero-art-inner { width: 100%; height: 100%; mask-image: radial-gradient(ellipse at 55% 50%,#000 30%,transparent 72%); }
.hero-art video { width: 100%; height: 100%; object-fit: cover; }
.has-sculpture .hero-art-inner { mask-image: none; }
.sculpture-poster { width: 80%; height: 100%; margin-left: 30%; object-fit: contain; }
.sculpture-canvas { position: absolute; inset: 0; pointer-events: none; }
.sculpture-canvas canvas { display: block; width: 100%; height: 100%; }
.sculpture-ready .hero-art-inner { visibility: hidden; }
.studio-hero-copy { position: relative; padding-top: clamp(165px,21svh,230px); max-width: 80%; pointer-events: none; }
.studio-hero-copy a { pointer-events: auto; }
.studio-kicker { font-size: .76rem; letter-spacing: .015em; color: #cbd0c2; margin-bottom: 2rem; }
.studio-hero h1 { font-size: clamp(76px,9.7vw,186px); font-weight: 550; letter-spacing: -.079em; line-height: .97; text-wrap: initial; max-width: 12ch; text-shadow: 0 2px 18px #101110a6; }
.studio-hero h1 > span, .studio-hero h1 > em { display: block; }
.studio-hero h1 em { color: var(--accent); font-style: normal; }
.studio-hero-intro { max-width: 32ch; font-size: clamp(.96rem,1.16vw,1.15rem); line-height: 1.7; color: #c2c7bc; margin-top: 2rem; }
.studio-hero-actions { display: flex; gap: 1.8rem; align-items: center; margin-top: 1.7rem; }
.hero-footline { position: absolute; bottom: 1.6rem; left: var(--gutter); right: var(--gutter); display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #4b514344; padding-top: .8rem; z-index: 3; background: linear-gradient(transparent,#101110d9); }
.film-link { display: inline-flex; align-items: center; gap: .9rem; min-height: 44px; color: var(--ink); font-size: .76rem; }
.play-icon { width: 38px; height: 38px; border: 1px solid #818873; border-radius: 50%; display: grid; place-items: center; font-size: .6rem; }
.motion-control { display: inline-flex; align-items: center; min-height: 44px; gap: .7rem; border: 0; background: transparent; color: var(--ink-soft); font-size: .71rem; padding: .5rem 0 .5rem 1rem; cursor: pointer; }
.motion-control[hidden] { display: none; }
.motion-control:hover, .film-link:hover { color: var(--accent); }
.discipline-band { position: relative; z-index: 3; overflow: hidden; padding-block: 1.3rem; margin-top: -1px; background: #1d211c; border-block: 1px solid #4a5143; transform: rotate(-2deg) scale(1.04); }
.discipline-track { display: flex; gap: 4vw; width: max-content; font-size: clamp(2.6rem,5vw,6.2rem); font-weight: 570; line-height: 1; letter-spacing: -.06em; }
.discipline-track span { white-space: nowrap; }
.outline-type { color: transparent; -webkit-text-stroke: 1px #b6b9a9; }

/* The film plates arrive through perspective, then open into a full-width study. */
.exhibition { position: relative; scroll-margin-top: 80px; background: #111310; }
.exhibition-stage { min-height: 790px; position: relative; overflow: clip; padding-block: 5rem 1.5rem; background: radial-gradient(ellipse at 53% 60%,#37402b55,transparent 68%); }
.exhibition-backword { position: absolute; top: 19%; left: -2%; font-size: 26vw; font-weight: 650; letter-spacing: -.08em; line-height: 1; color: #262b23; pointer-events: none; }
.exhibition-heading { position: relative; z-index: 4; }
.exhibition-heading h2 { font-size: clamp(2.8rem,4.8vw,5.5rem); line-height: 1.08; font-weight: 520; }
.exhibition-heading h2 em { font-style: normal; color: var(--accent); }
.exhibition-heading p { margin-top: .8rem; font-size: .85rem; color: var(--ink-soft); }
.material-composition { position: relative; height: clamp(410px,38vw,640px); margin: 1rem var(--gutter) 0; perspective: 1400px; transform-style: preserve-3d; }
.material-frame { position: absolute; display: block; border: 1px solid #748166; background: #11130f; box-shadow: 0 25px 65px #0009; transform-origin: center; }
.material-frame img, .material-frame video { width: 100%; height: 100%; object-fit: cover; }
.material-frame > span { position: absolute; bottom: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.2rem; font-size: .73rem; background: #11150ff2; border-top: 1px solid #596449; }
.material-frame i { font-style: normal; }
.material-frame-main { inset: 3% 11% 0; z-index: 1; transform: scale(.79) rotateY(-12deg) rotateZ(-3deg); }
.material-frame-left { width: 30%; height: 60%; left: -2%; top: 2%; z-index: 2; transform: rotateY(22deg) rotateZ(-9deg); }
.material-frame-right { width: 30%; height: 57%; right: -2%; top: 40%; z-index: 3; transform: rotateY(-24deg) rotateZ(9deg); }
.frame-play { border: 1px solid #69755c; padding: .45rem .8rem; font-size: .6rem; }
.exhibition-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 1.3rem; gap: 2rem; position: relative; z-index: 4; }
.exhibition-bottom p { color: var(--ink-soft); font-size: .73rem; }
.exhibition.is-animated .exhibition-stage { height: calc(100svh - 80px); min-height: 630px; padding-top: 2rem; display: flex; flex-direction: column; }
.exhibition.is-animated .material-composition { flex: 1; min-height: 0; height: auto; }

.selected-projects { padding-block: 4rem 2rem; }
.project-collection { display: grid; align-items: start; }
.project-image { overflow: hidden; aspect-ratio: 4/3; background: var(--surface); }
.project-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 250ms var(--studio-ease); }
.entry-preview { position: relative; }
.entry-preview-link { display: block; width: 100%; height: 100%; }
.entry-preview-link:focus-visible { outline-offset: -4px; }
.entry-preview .entry-loop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: var(--surface); opacity: 0; pointer-events: none; }
.entry-preview .entry-loop.is-ready { opacity: 1; }
.entry-loop-label { position: absolute; bottom: .75rem; right: .75rem; display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding: .35rem .75rem; background: #101110e8; color: var(--accent); font-size: .75rem; }
.entry-preview-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: clamp(56px, 6vw, 76px); aspect-ratio: 1; border: 1px solid #fff9; border-radius: 50%; background: #101110d9; color: #fff; box-shadow: 0 4px 24px #0005; }
.entry-preview-play svg { width: 30px; height: 30px; fill: currentColor; }
.entry-preview-play:hover { background: var(--accent); border-color: var(--accent); color: #101110; }
.entry-preview.is-previewing .entry-preview-play:not(:hover):not(:focus-visible) { opacity: .25; }
.entry-player { display: block; width: 100%; max-height: 80svh; background: #101110; object-fit: contain; }
.project-caption { display: flex; justify-content: space-between; gap: 2rem; margin-top: 1.25rem; align-items: center; }
.project-caption h3 { font-size: 1.6rem; letter-spacing: -.04em; }
.project-item p { margin-top: .75rem; color: var(--ink-soft); }

/* Published teaching content is the primary resource, with a complete visible article. */
.learning-library { padding-block: clamp(4rem,6vw,7rem); position: relative; z-index: 4; }
.library-intro { margin-bottom: 2.6rem; }
.library-intro h2 { font-size: clamp(3.2rem,6.5vw,7.2rem); line-height: 1.04; font-weight: 530; }
.library-intro h2 span { color: var(--accent); }
.library-intro > p { color: var(--ink-soft); max-width: 48ch; font-size: 1rem; margin-top: 1.3rem; }
.tutorial-highlights-heading { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.75rem; }
.tutorial-highlights-heading h3 { font-size: 1.35rem; font-weight: 550; letter-spacing: -.035em; }
.tutorial-highlights-heading p { color: var(--ink-soft); font-size: .85rem; margin-top: .5rem; }
.tutorial-highlights-heading .button { flex-shrink: 0; }
.tutorial-feed-status { padding: 2rem 0; color: var(--ink-soft); }
.tutorial-highlights-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.tutorial-highlights-grid[hidden] { display: none; }
.tutorial-highlight { min-width: 0; border-bottom: 1px solid var(--line); padding-bottom: 1.5rem; }
.tutorial-preview { position: relative; aspect-ratio: 16/9; background: #242820; isolation: isolate; }
.tutorial-preview-link { position: absolute; inset: 0; display: block; }
.tutorial-preview img, .tutorial-preview video { position: absolute; width: 100%; height: 100%; object-fit: contain; }
.tutorial-preview video { opacity: 0; pointer-events: none; }
.tutorial-highlight.is-previewing video { opacity: 1; }
.tutorial-preview-toggle { position: absolute; z-index: 1; right: .65rem; top: .65rem; display: flex; align-items: center; gap: .45rem; min-height: 44px; padding: .55rem .85rem; border: 1px solid #777f6e; border-radius: 3px; background: #101110ed; color: #f2f4ed; font: inherit; font-size: .72rem; cursor: pointer; }
.tutorial-preview-toggle[hidden] { display: none; }
.tutorial-preview-toggle:hover, .tutorial-preview-toggle[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.tutorial-highlight-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--accent); font-size: .68rem; line-height: 1.6; margin-block: 1rem .65rem; }
.tutorial-highlight-meta > :last-child { flex-shrink: 0; color: var(--ink-soft); }
.tutorial-highlight h4 { font-size: clamp(1rem,1.5vw,1.3rem); line-height: 1.4; letter-spacing: -.025em; font-weight: 550; overflow-wrap: anywhere; }
.tutorial-highlight h4 a:hover { color: var(--accent); }
.tutorial-preview-error { color: var(--ink-soft); font-size: .8rem; margin-top: .75rem; }
.has-no-thumbnail .tutorial-preview::before { content: "Cinema 4D"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--ink-soft); font-size: 1.8rem; }
.resource-shelf { display: grid; grid-template-columns: 1fr; margin-top: 4.5rem; gap: 3rem; }
.resource-group { border-top: 1px solid #606b52; padding-top: 1.3rem; }
.resource-title { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.resource-title h3 { font-size: clamp(1.55rem,2.4vw,2.5rem); font-weight: 550; letter-spacing: -.055em; }
.resource-title > span { color: var(--accent); font-size: 1.6rem; }
.resource-group > p { color: var(--ink-soft); font-size: .83rem; margin-top: .85rem; line-height: 1.6; }
.resource-group .resource-empty { font-size: .72rem; color: #a3ac97; }
.library-items { margin-top: .8rem; }
.library-items a { min-height: 44px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: .78rem; padding-block: .6rem; }
.library-items a + a { border-top: 1px solid var(--line); }
.library-items a:hover { color: var(--accent); }
.library-downloads a { justify-content: flex-start; gap: 1rem; padding-block: .9rem; }
.download-thumbnail { width: 120px; height: 80px; flex-shrink: 0; object-fit: cover; border-radius: 4px; background: var(--surface); }
.download-thumbnail-empty { display: grid; place-items: center; color: var(--ink-soft); font-size: 1.5rem; }
.library-downloads .download-title { flex: 1; font-size: .95rem; }
@media (max-width: 480px) { .download-thumbnail { width: 90px; height: 60px; } }

.artist-section { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; align-items: center; border-top: 1px solid var(--line); padding-block: clamp(3rem,5vw,6rem); }
.artist-composition { position: relative; min-height: 540px; padding: 3rem 2rem 4rem; }
.artist-backword { position: absolute; left: -4%; top: 0; font-size: clamp(7rem,16vw,18rem); line-height: 1; font-weight: 650; letter-spacing: -.085em; color: transparent; -webkit-text-stroke: 1px #626b54; }
.artist-portrait { position: relative; width: 72%; aspect-ratio: .92; margin: 1rem 0 0 3%; transform: rotate(-5deg); border: 1px solid #626b54; background: #252922; overflow: hidden; box-shadow: 0 15px 35px #0008; }
.artist-portrait img { width: 100%; height: 100%; object-fit: cover; }
.identity-plate { position: absolute; width: 56%; right: 0; bottom: 1.5rem; transform: rotate(7deg); background: #151811; border: 1px solid #677459; box-shadow: 0 20px 40px #0009; }
.identity-plate img { width: 100%; height: auto; }
.identity-plate span { display: flex; justify-content: space-between; padding: .8rem 1rem; font-size: .68rem; }
.identity-plate i { font-style: normal; }
.artist-copy h2 { font-size: clamp(2.8rem,4.9vw,5.5rem); font-weight: 520; line-height: 1.07; }
.artist-copy h2 em { color: var(--accent); font-style: normal; }
.artist-copy > p { color: var(--ink-soft); max-width: 40ch; margin-top: 1.3rem; font-size: .98rem; line-height: 1.75; }
.artist-copy > .button { margin-top: 1.6rem; }
.artist-support { margin-top: 2rem; border-top: 1px solid var(--line); padding-top: 1.25rem; display: flex; align-items: center; gap: 2rem; }
.artist-support p { max-width: 30ch; color: var(--ink-soft); font-size: .78rem; }
.artist-support .text-link { flex-shrink: 0; font-size: .78rem; }
.site-footer { background: #20261b; border-top: 1px solid #566146; padding: clamp(3rem,5vw,6rem) var(--gutter) 1.5rem; position: relative; isolation: isolate; overflow: hidden; }
.site-footer::before { content: ""; position: absolute; z-index: -1; right: -4%; top: -40%; width: 48vw; height: 48vw; border: 1px solid #63734b; border-radius: 50%; box-shadow: 0 0 0 45px #20261b,0 0 0 46px #3b472d,0 0 0 100px #20261b,0 0 0 101px #354129; }
.footer-main { display: block; border: 0; padding: 0; }
.footer-prelude { color: var(--ink-soft); font-size: .92rem; }
.footer-contact { display: flex; align-items: center; justify-content: space-between; gap: 2rem; font-size: clamp(3.5rem,11.7vw,12rem); letter-spacing: -.075em; font-weight: 520; line-height: 1.2; padding-block: 1rem; }
.footer-contact > span { font-weight: 300; color: var(--accent); transition: transform 200ms var(--studio-ease); }
.footer-contact:hover { color: var(--accent); }
.footer-note { color: var(--ink-soft); font-size: .83rem; }
.footer-bottom { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid #566146; font-size: .71rem; }
.footer-nav a { min-height: 44px; display: inline-flex; align-items: center; }

/* Archive, detail and contact pages keep the same readable visual language. */
.page-hero { padding-top: 10rem; padding-bottom: 3rem; border-bottom: 1px solid var(--line); }
.page-hero h1 { max-width: 15ch; font-size: clamp(3.3rem,7vw,7rem); font-weight: 540; line-height: 1.04; }
.page-hero > p:last-child { color: var(--ink-soft); max-width: 49ch; line-height: 1.8; }
.archive-section { padding-top: 3rem; }
.archive-card { background: transparent; border: 0; border-radius: 0; overflow: visible; }
.archive-card > a { background: transparent; }
.archive-media { border: 1px solid var(--line); border-radius: 3px; overflow: hidden; }
.archive-copy { padding: 1.4rem 0; }
.archive-copy h2 { font-size: 1.7rem; font-weight: 550; }
.archive-copy p { color: var(--ink-soft); }
.archive-filters { flex-wrap: wrap; gap: .75rem; }
/* Portfolio cards share a compact, even grid on both public pages. */
.portfolio-page-hero { min-height: 0; }
.portfolio-grid { position: relative; display: grid; gap: 1.75rem 1.4rem; align-items: start; scroll-margin-top: 8px; }
.portfolio-grid-home { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.portfolio-grid-archive { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.portfolio-grid:focus { outline: none; }
.portfolio-grid > [data-portfolio-card] { grid-column: auto; min-width: 0; margin-top: 0; transform-origin: 50% 75%; }
.portfolio-grid .project-image, .portfolio-grid .archive-media { aspect-ratio: 4/3; }
.portfolio-grid .project-caption { margin-top: .85rem; gap: 1rem; }
.portfolio-grid .project-caption h3, .portfolio-grid .archive-copy h2 { font-size: clamp(1.1rem, 1.5vw, 1.4rem); line-height: 1.3; overflow-wrap: anywhere; }
.portfolio-grid .archive-copy { padding: .85rem 0 0; }
.portfolio-grid .project-excerpt, .portfolio-grid .archive-excerpt { margin-top: .65rem; font-size: .85rem; }
.portfolio-grid .entry-preview-play { width: 52px; }
.portfolio-grid .entry-preview-play svg { width: 25px; height: 25px; }
.portfolio-grid .text-link { margin-top: .6rem; }
.portfolio-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.portfolio-page-count { margin: 0; color: var(--ink-soft); font-size: .8rem; }
.portfolio-page-links { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.portfolio-page-links > a, .portfolio-page-links > span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .5rem .8rem; border: 1px solid var(--line); border-radius: 3px; font-size: .8rem; }
.portfolio-page-links > a:hover { color: var(--accent); border-color: var(--accent); }
.portfolio-page-links [aria-current] { color: var(--page); background: var(--accent); border-color: var(--accent); }
.portfolio-page-links [aria-disabled] { color: var(--ink-soft); opacity: .5; }
.portfolio-page-links > .pagination-gap { min-width: 16px; padding-inline: 0; border-color: transparent; }
@media (max-width: 1100px) {
    .portfolio-grid-home, .portfolio-grid-archive { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
    .portfolio-grid-home, .portfolio-grid-archive { grid-template-columns: minmax(0, 1fr); gap: 1.6rem; }
    .portfolio-pagination { align-items: flex-start; flex-direction: column; }
    .portfolio-page-links { gap: .25rem; }
    .portfolio-page-links > a, .portfolio-page-links > span { padding-inline: .6rem; }
}
.archive-filters a { border-radius: 3px; padding: .7rem 1rem; min-height: 44px; }
.entry-page { --entry-header-height: 80px; padding-top: var(--entry-header-height); }
.entry-back-nav { position: sticky; top: var(--entry-header-height); z-index: 10; padding-block: .5rem; border-bottom: 1px solid var(--line); background: var(--page); }
.entry-back-nav .back-link { min-height: 44px; margin: 0; color: var(--ink); }
.entry-back-nav .back-link:hover { color: var(--accent); }
.entry-page .entry-header { padding-top: clamp(2rem, 4vw, 4rem); }
.entry-page .entry-cover { scroll-margin-top: calc(var(--entry-header-height) - 20px); }
.entry-page .entry-player { max-height: min(80svh, calc(100svh - var(--entry-header-height) - 84px)); }
.entry-header h1 { font-weight: 540; }
.entry-cover img { border-radius: 3px; }
.entry-gallery { margin-top: 1.5rem; }
.gallery-viewport { background: var(--surface); }
.gallery-slide { margin: 0 0 1rem; }
.gallery-slide a { display: block; }
.gallery-slide .gallery-image { display: block; width: 100%; height: auto; max-height: 80svh; object-fit: contain; }
.entry-gallery.is-enhanced .gallery-viewport { touch-action: pan-y pinch-zoom; }
.entry-gallery.is-enhanced .gallery-slide { margin: 0; }
.entry-gallery.is-enhanced .gallery-slide .gallery-image { height: clamp(240px, 65svh, 800px); }
.entry-gallery [hidden] { display: none; }
/* The current artwork supplies the color around the uncropped image. */
.portfolio-image-stage { position: relative; display: block; isolation: isolate; overflow: hidden; background: #101315; }
.portfolio-image-stage > .portfolio-image-backdrop { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; max-height: none; object-fit: cover; border-radius: 0; filter: blur(48px) brightness(.62) saturate(1.2); opacity: .8; transform: scale(1.14); pointer-events: none; user-select: none; }
.portfolio-image-stage::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse at 50% 45%, #080b0e00 15%, #080b0e99 100%); pointer-events: none; }
.portfolio-image-stage > .gallery-image, .portfolio-image-stage > .portfolio-image-original { position: relative; object-fit: contain; }
.portfolio-image-stage:focus-visible { outline-offset: -4px; }
@media (max-width: 540px) {
    .portfolio-image-stage > .portfolio-image-backdrop { filter: blur(28px) brightness(.62) saturate(1.2); }
}
.gallery-controls { display: flex; align-items: center; justify-content: center; gap: 1.5rem; margin-block: 1rem; }
.gallery-controls button { width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 3px; background: var(--surface); color: var(--ink); cursor: pointer; font-size: 1.3rem; }
.gallery-controls p { margin: 0; min-width: 8rem; text-align: center; font-size: .85rem; color: var(--ink-soft); }
.gallery-controls button:hover { border-color: var(--accent); color: var(--accent); }
.gallery-thumbnails { display: flex; gap: .7rem; overflow-x: auto; padding: .3rem; }
.gallery-thumbnails button { flex: 0 0 88px; padding: 3px; border: 2px solid transparent; border-radius: 3px; background: var(--surface); cursor: pointer; }
.gallery-thumbnails button[aria-pressed=true] { border-color: var(--accent); }
.gallery-thumbnails img { display: block; width: 100%; height: 64px; object-fit: contain; }
.gallery-hint { margin-top: .8rem; color: var(--ink-soft); font-size: .8rem; }
.entry-action { border-radius: 3px; }
.contact-form { background: transparent; border: 0; padding: 0; }
.contact-form input, .contact-form textarea { border-radius: 3px; background: #1b1e18; border-color: #6c7564; }
.empty-stage { border-radius: 3px; background: #181c15; }
.film-dialog { width: min(1280px,92vw); max-width: 92vw; max-height: 92svh; padding: 0; border: 1px solid #667357; border-radius: 4px; background: #11150e; color: var(--ink); overflow: auto; }
.film-dialog::backdrop { background: #070a06e8; }
.film-dialog-bar { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: .75rem 1.2rem; }
.film-dialog-bar h2 { font-size: .85rem; letter-spacing: 0; font-weight: 500; }
.film-dialog-bar button { display: inline-flex; gap: 1rem; min-height: 44px; align-items: center; border: 0; background: transparent; color: var(--ink); font-size: .8rem; cursor: pointer; }
.film-dialog-bar button span { font-size: 1.6rem; }
.film-dialog video { width: 100%; max-height: 76svh; object-fit: contain; background: #090c08; }
.film-error { padding: 1.2rem; font-size: .85rem; }
.film-error a { text-decoration: underline; }
body.film-open { overflow: hidden; }
@media (hover:hover) and (pointer:fine) {
    .project-item a:hover img { transform: scale(1.025); }
    .footer-contact:hover > span { transform: translate(8px,-8px); }
    .material-frame:hover, .identity-plate:hover { border-color: var(--accent); }
}
@media (max-width:1100px) {
    .desktop-nav { gap: 1rem; }
    .desktop-nav .nav-patreon { display: none; }
    .studio-hero-copy { max-width: 88%; }
    .studio-hero h1 { font-size: 10vw; }
    .artist-composition { min-height: 470px; padding-inline: 0; }
    .artist-support { display: block; }
    .artist-support .text-link { margin-top: .4rem; }
    .resource-shelf { gap: 2rem; }
}
@media (max-width:850px) {
    .site-header { height: 74px; }
    .entry-page { --entry-header-height: 74px; }
    html:not(.js) .entry-page { --entry-header-height: 0px; }
    .desktop-nav { display: none; }
    .menu-button { display: inline-flex; align-items: center; justify-content: center; padding: .5rem 1rem; }
    .wordmark { font-size: 1.5rem; }
    .studio-hero { height: auto; min-height: 950px; padding-top: 125px; }
    .studio-hero-copy { padding-top: 0; max-width: 100%; }
    .studio-hero h1 { font-size: clamp(65px,12vw,104px); max-width: none; }
    .studio-kicker { margin-bottom: 1.4rem; }
    .studio-hero-intro { margin-top: 1.4rem; }
    .studio-hero-actions { margin-top: 1.3rem; }
    .hero-art { width: 100%; height: 42%; right: 0; top: 55%; }
    .sculpture-poster { width: 100%; margin-left: 0; }
    .hero-wire { top: 45%; font-size: 72vw; right: 5%; }
    .hero-grid { left: 0; bottom: -14%; width: 150%; }
    .hero-footline { bottom: 1.2rem; padding-top: .7rem; }
    .exhibition-stage { min-height: auto; padding-block: 3.5rem 1.7rem; }
    .exhibition-heading h2 { font-size: clamp(2.65rem,7vw,4rem); }
    .exhibition-heading p { font-size: .78rem; }
    .exhibition-backword { top: 36%; }
    .material-composition { height: auto; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: 1.8rem; perspective: none; }
    .material-frame { position: relative; inset: auto; width: auto; height: auto; aspect-ratio: 1.2; transform: none; box-shadow: 0 15px 30px #0005; }
    .material-frame-main { order: -1; grid-column: 1/-1; aspect-ratio: 16/10; transform: rotate(-2deg); margin-bottom: .5rem; }
    .material-frame-left { transform: rotate(-3deg); }
    .material-frame-right { transform: rotate(3deg); }
    .material-frame > span { font-size: .62rem; padding: .75rem; }
    .exhibition-bottom { padding-top: 1.2rem; }
    .exhibition-bottom p { max-width: 27ch; }
    .library-intro h2 { font-size: clamp(3rem,7vw,4.8rem); }
    .tutorial-highlights-grid { gap: 1rem; }
    .tutorial-preview-toggle { right: .35rem; top: .35rem; padding-inline: .55rem; }
    .resource-shelf { gap: 1.5rem; }
    .resource-title h3 { font-size: 1.65rem; }
    .artist-section { gap: 5%; }
    .artist-composition { min-height: 420px; }
    .artist-copy h2 { font-size: 3rem; }
    .artist-copy > p { font-size: .9rem; }
    .page-hero, .entry-header { padding-top: 8rem; }
}
@media (max-width:650px) {
    .tutorial-highlights-grid { grid-template-columns: 1fr; gap: 2rem; }
    .tutorial-highlights-heading { align-items: flex-start; flex-direction: column; }
    .tutorial-highlight h4 { font-size: 1.2rem; }
}
@media (max-width:540px) {
    .studio-hero { min-height: 860px; padding-top: 116px; }
    .studio-hero h1 { font-size: clamp(51px,12.6vw,69px); line-height: 1; letter-spacing: -.069em; overflow-wrap: anywhere; }
    .studio-kicker { font-size: .64rem; letter-spacing: 0; margin-bottom: 1.35rem; }
    .studio-hero-intro { max-width: 30ch; font-size: .89rem; line-height: 1.7; margin-top: 1.25rem; }
    .studio-hero-actions { gap: 1.1rem; }
    .studio-hero-actions .button { min-height: 48px; padding: .85rem 1rem; gap: 1rem; font-size: .76rem; }
    .studio-hero-actions .text-link { font-size: .73rem; gap: .4rem; }
    .hero-art { top: 51%; right: 0; width: 100%; height: 44%; }
    .hero-wire { top: 50%; font-size: 95vw; }
    .hero-footline { bottom: 1.1rem; }
    .film-link { font-size: .64rem; gap: .6rem; }
    .play-icon { width: 32px; height: 32px; }
    .motion-control { font-size: .62rem; gap: .5rem; }
    .discipline-band { padding-block: 1rem; }
    .discipline-track { gap: 2rem; font-size: 2.5rem; }
    .exhibition-heading h2 { font-size: 2.6rem; }
    .exhibition-heading p { max-width: 28ch; font-size: .76rem; }
    .material-composition { gap: .75rem; margin-inline: 1.3rem; }
    .material-frame-main { aspect-ratio: 1.25; }
    .material-frame-left, .material-frame-right { aspect-ratio: 1; }
    .material-frame > span { padding: .65rem .5rem; gap: .3rem; font-size: .53rem; }
    .exhibition-bottom { display: block; }
    .exhibition-bottom p { max-width: none; font-size: .68rem; }
    .exhibition-bottom .text-link { margin-top: .4rem; font-size: .75rem; }
    .learning-library { padding-block: 3rem; }
    .library-intro { margin-bottom: 2rem; }
    .library-intro h2 { font-size: 3.2rem; }
    .library-intro > p { margin-top: 1rem; max-width: 33ch; font-size: .89rem; }
    .resource-shelf { grid-template-columns: 1fr; gap: 1.7rem; margin-top: 3rem; }
    .resource-group { padding-top: 1rem; }
    .resource-title h3 { font-size: 2rem; }
    .resource-group > p { margin-top: .5rem; }
    .artist-section { display: block; padding-block: 2rem 3rem; }
    .artist-composition { width: 100%; min-height: 410px; padding: 2rem 1rem 4rem; margin-bottom: 2rem; }
    .artist-backword { top: .5rem; left: 0; font-size: 28vw; }
    .artist-portrait { width: 71%; }
    .identity-plate { bottom: 1.2rem; width: 53%; right: 1rem; }
    .artist-copy h2 { font-size: 3rem; }
    .artist-copy > p { font-size: .95rem; }
    .artist-support { margin-top: 1.6rem; }
    .artist-support p { max-width: 36ch; }
    .footer-contact { font-size: clamp(2.9rem,11.7vw,4rem); gap: 1rem; padding-block: 1.5rem; }
    .footer-prelude, .footer-note { font-size: .75rem; }
    .footer-bottom { margin-top: 2rem; gap: 1rem; }
    .footer-nav { gap: 1.2rem; }
    .page-hero h1 { font-size: 3.2rem; }
    .film-dialog { max-width: 96vw; width: 96vw; }
    .film-dialog-bar { padding: .5rem .75rem; gap: .5rem; }
    .film-dialog-bar h2 { font-size: .7rem; }
}
@media (prefers-reduced-motion:reduce) {
    html.studio-theme { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto; }
    .project-image img, .footer-contact > span { transition: none; }
}
.motion-disabled [data-reveal] { opacity: 1; transform: none; }


/* Rich text has the same line structure in the editor, summaries and articles. */
.rich-text { overflow-wrap: anywhere; line-height: 1.7; white-space: normal; }
.rich-text p, .archive-copy .rich-text p, .project-item .rich-text p { margin: 0; max-width: none; color: inherit; font-size: inherit; }
.rich-text p + p { margin-top: 0; }
.rich-text p:empty::before { content: '\00a0'; }
.rich-text strong, .rich-text b { font-weight: 750; }
.rich-text em, .rich-text i { font-style: italic; }
.rich-text a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.rich-text a:hover { color: var(--accent-hover); }
.rich-text ul, .rich-text ol { padding-left: 1.55em; margin: .55em 0; }
.rich-text ul { list-style: disc; }
.rich-text ol { list-style: decimal; }
.rich-text li { padding-left: .15em; }
.rich-text blockquote { border-left: 2px solid var(--accent); padding-left: 1em; margin: 1em 0; }
.rich-text h2, .rich-text h3 { margin-block: 1em .4em; font-size: 1.45em; line-height: 1.3; }
.entry-header .entry-summary { max-width: 48ch; margin-top: 1.4rem; color: var(--ink-soft); font-size: clamp(1rem,1.4vw,1.25rem); }
.archive-excerpt { margin: .75rem 0; color: var(--ink-soft); font-size: .88rem; }
.project-excerpt { margin-top: .75rem; color: var(--ink-soft); }
.archive-copy h2 a:hover { color: var(--accent); }
.entry-support { margin-top: 1.8rem; padding-top: 1.3rem; border-top: 1px solid var(--line); }
.entry-support p { margin-bottom: 1rem; color: var(--ink-soft); font-size: .85rem; }
.entry-support .button { gap: .8rem; }

/* Patreon stays visible alongside the main navigation, also at intermediate widths. */
.desktop-nav .nav-patreon { display: inline-flex; gap: .25em; padding: .75rem 1rem; border: 1px solid var(--accent); border-radius: 3px; background: var(--accent); color: var(--accent-ink); font-weight: 750; white-space: nowrap; }
.desktop-nav .nav-patreon > [aria-hidden] { margin-left: .6rem; }
.desktop-nav .nav-patreon:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--accent-ink); }
.mobile-menu .mobile-patreon { background: var(--accent); color: var(--accent-ink); border: 0; padding: 1rem; margin-top: .75rem; font-size: clamp(1.15rem,5.5vw,1.8rem); border-radius: 3px; }
.patreon-callout { display: grid; grid-template-columns: 180px 1fr auto; gap: 2rem; align-items: center; padding: 2rem; margin-bottom: 4.5rem; border: 1px solid #826048; border-left: 4px solid var(--accent); background: #27271f; }
.patreon-callout img { width: 100%; height: auto; border-radius: 3px; }
.patreon-callout h2 { font-size: clamp(1.8rem,2.7vw,3rem); line-height: 1.12; font-weight: 550; }
.patreon-callout p { max-width: 56ch; margin-top: .9rem; font-size: .9rem; color: #c6c9ba; line-height: 1.7; }
.patreon-callout .button { white-space: nowrap; }
.footer-topline { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
@media (min-width:851px) and (max-width:1200px) {
    .desktop-nav { gap: .8rem; font-size: .72rem; }
    .desktop-nav .patreon-nav-prefix { display: none; }
    .desktop-nav .nav-patreon { padding-inline: .75rem; }
}
@media (min-width:851px) and (max-width:950px) {
    .desktop-nav { gap: .6rem; font-size: .68rem; }
    .desktop-nav .nav-contact { gap: .5rem; }
    .wordmark { font-size: 1.5rem; }
}
@media (max-width:1100px) {
    .patreon-callout { grid-template-columns: 135px 1fr; gap: 1.5rem; }
    .patreon-callout .button { grid-column: 2; justify-self: start; }
    .patreon-callout img { grid-row: 1/3; }
}
@media (max-width:540px) {
    .patreon-callout { grid-template-columns: 1fr; margin-inline: var(--gutter); padding: 1.5rem; gap: 1.3rem; margin-bottom: 3rem; }
    .patreon-callout img { width: 110px; grid-row: auto; }
    .patreon-callout .button { grid-column: 1; }
    .patreon-callout h2 { font-size: 2rem; }
    .footer-topline { align-items: flex-start; flex-direction: column; gap: 1.2rem; }
}

/* The app exhibition borrows the actual collection's Archivo, orange and lime. */
@font-face { font-family: 'Archivo Black'; src: url('../fonts/archivo-black.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
.desktop-nav .nav-apps { color: #161b09; background: #c8ff3d; padding: .6rem .9rem; border: 1px solid #dfff8a; border-radius: 999px; gap: .45rem; font-weight: 800; box-shadow: 0 3px 14px #c8ff3d12; }
.desktop-nav .nav-apps:hover { background: #dcff88; color: #161b09; }
.nav-apps > [aria-hidden] { font-size: .9em; }
.mobile-menu .mobile-apps { color: #d5ff72; border-color: #c8ff3d66; }
.studio-hero-actions { flex-wrap: wrap; gap: 1.3rem; }
.button.apps-cta { min-height: 62px; padding: 1.05rem 1.7rem; border: 1px solid #ffa749; border-radius: 999px; background: linear-gradient(110deg,#ff6539,#ff9a21); color: #16130d; font-weight: 800; gap: 2.2rem; box-shadow: 0 10px 30px #ff6c2026; }
.button.apps-cta:hover { background: linear-gradient(110deg,#ff8759,#ffbd52); color: #16130d; }
.apps-section { --apps-lime: #c8ff3d; --apps-orange: #ff713c; position: relative; isolation: isolate; overflow: clip; background: #0c0d15; color: #f3f4f8; border-block: 1px solid #ffffff14; margin-block: 1.2rem 3rem; }
.apps-atmosphere { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: -1; background: radial-gradient(ellipse at 0 0,#ff5b3526,transparent 48%),radial-gradient(ellipse at 98% 75%,#7151e42b,transparent 48%),radial-gradient(ellipse at 55% 40%,#c8ff3d08,transparent 55%); }
.apps-atmosphere::before { content: ''; position: absolute; inset: 0; background: linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(#000,transparent); }
.apps-orbit { position: absolute; width: 650px; height: 650px; right: 3%; top: 12%; border: 1px solid #d2e4a214; border-radius: 50%; transform: rotateX(45deg) rotateZ(-30deg); }
.apps-orbit-two { width: 800px; height: 800px; top: 5%; right: -2%; border-style: dashed; }
.apps-backword { position: absolute; top: 23%; right: -3%; font-family: 'Archivo Black',sans-serif; font-size: clamp(200px,24vw,460px); letter-spacing: -.08em; color: #d3ecad05; -webkit-text-stroke: 1px #dcffc112; }
.apps-inner { padding-block: clamp(3rem,5vw,5.5rem); }
.apps-section-brand { display: flex; align-items: center; gap: .8rem; width: fit-content; font-size: 1.05rem; font-weight: 650; }
.apps-section-brand strong { color: #c8ff3d; }
.apps-monogram { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 12px; background: linear-gradient(110deg,#ff6539,#ff9423 53%,#c8ff3d); color: #11150b; font-family: 'Archivo Black',sans-serif; font-size: 1.45rem; }
.apps-showcase { display: grid; grid-template-columns: .86fr 1.14fr; align-items: center; gap: 6%; }
.apps-copy { position: relative; z-index: 2; padding-block: 2rem; }
.apps-eyebrow { margin-bottom: 1.25rem; color: #c8ff3d; font-size: .72rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.apps-copy h2 { max-width: 12ch; font-family: 'Archivo Black',sans-serif; font-size: clamp(2.9rem,4.4vw,5rem); font-weight: 400; line-height: 1.03; letter-spacing: -.055em; overflow-wrap: anywhere; }
.apps-intro { max-width: 43ch; margin-top: 1.7rem; color: #b9bece; line-height: 1.85; font-size: clamp(.95rem,1.05vw,1.1rem); }
.apps-actions { display: grid; justify-items: start; gap: 1.1rem; margin-top: 2rem; }
.apps-collection-note { font-size: .74rem; color: #a6adbf; }
.apps-composition { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 1.4rem; position: relative; min-width: 0; padding: 3rem 0 5.5rem; perspective: 1200px; }
.app-plane { min-width: 0; position: relative; }
.app-plane-1 { transform: rotate(-7deg); z-index: 6; }
.app-plane-2 { transform: translateY(60px) rotate(6deg); z-index: 2; }
.app-plane-3 { transform: rotate(-4deg); z-index: 4; }
.app-plane-4 { transform: translateY(60px) rotate(5deg); z-index: 5; }
.app-preview-card { position: relative; display: block; border: 1px solid #8a91a455; border-radius: 16px; overflow: hidden; background: #181c28; box-shadow: 0 20px 38px #0006,4px 6px 0 #0b0c17,5px 7px 0 #6d738538; transition: transform 240ms, border-color 240ms; }
.app-thumbnail { aspect-ratio: 16/9; overflow: hidden; background: #07111c; }
.app-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.app-plane-3 .app-thumbnail { background: #002a34; }
.app-plane-3 .app-thumbnail img { object-fit: contain; }
.app-card-copy { padding: 1rem 1.1rem 1.15rem; }
.app-card-copy .app-category { color: #c8ff3d; font-size: .58rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; margin-bottom: .4rem; }
.app-card-copy h3 { display: flex; align-items: center; justify-content: space-between; gap: .5rem; font-size: clamp(.9rem,1.15vw,1.2rem); letter-spacing: -.03em; font-weight: 750; }
.app-card-copy h3 > span { color: #c8ff3d; font-size: .9rem; }
.app-card-copy > p:last-of-type { margin-top: .45rem; color: #b6bed0; font-size: .72rem; line-height: 1.5; }
.app-plane:focus-within { z-index: 10; }
.app-preview-card:focus-visible { outline: 3px solid #c8ff3d; outline-offset: 5px; }
.apps-commission { display: flex; align-items: center; justify-content: space-between; gap: 2rem; position: relative; margin-top: 1rem; padding: 2rem 2.3rem; border: 1px solid #b5c39638; border-radius: 20px; background: linear-gradient(105deg,#c8ff3d0a,transparent 70%),#141921; box-shadow: 0 16px 38px #0003; }
.apps-commission .apps-eyebrow { margin-bottom: .7rem; font-size: .64rem; }
.apps-commission h3 { font-family: 'Archivo Black',sans-serif; font-weight: 400; font-size: clamp(1.5rem,2.2vw,2.2rem); letter-spacing: -.045em; }
.apps-commission h3 + p { margin-top: .7rem; max-width: 56ch; color: #b9bece; font-size: .88rem; line-height: 1.7; }
.button.apps-request { flex-shrink: 0; border: 1px solid #d8ff84; background: #c8ff3d; color: #171d0b; border-radius: 999px; min-height: 56px; font-weight: 800; }
.button.apps-request:hover { background: #dcff88; color: #171d0b; }
@media (hover:hover) and (pointer:fine) {
    .app-preview-card:hover { transform: translateY(-9px) scale(1.025); border-color: #c8ff3da8; }
}
@media (max-width:1200px) and (min-width:851px) {
    .desktop-nav { gap: .65rem; }
    .desktop-nav .nav-apps { padding-inline: .7rem; }
    .apps-showcase { grid-template-columns: .9fr 1.1fr; gap: 4%; }
    .apps-copy h2 { font-size: 3.05rem; }
    .apps-composition { gap: 1rem; }
    .app-card-copy { padding: .8rem; }
    .app-card-copy h3 { font-size: .9rem; }
}
@media (max-width:850px) {
    .apps-showcase { grid-template-columns: 1fr; gap: 2rem; }
    .apps-copy { padding-top: 2.5rem; padding-bottom: 0; }
    .apps-copy h2 { max-width: 17ch; font-size: clamp(2.8rem,7vw,4rem); }
    .apps-intro { max-width: 56ch; }
    .apps-composition { width: 94%; margin-inline: auto; }
    .apps-commission { margin-top: 1.5rem; }
    .app-card-copy h3 { font-size: 1.1rem; }
}
@media (max-width:540px) {
    .studio-hero-actions .hero-apps-link { grid-column: 1 / -1; justify-self: start; }
    .studio-hero-actions { display: grid; grid-template-columns: max-content max-content; max-width: 340px; gap: .7rem 1.3rem; }
    .hero-art { top: 57%; height: 38%; }
    .apps-section { margin-top: 0; }
    .apps-inner { padding-block: 2.5rem; }
    .apps-copy h2 { max-width: 12ch; font-size: clamp(2.5rem,10.4vw,3.3rem); }
    .apps-intro { font-size: .94rem; }
    .apps-composition { display: grid; grid-template-columns: 1fr; gap: 1.1rem; padding: 2.5rem 0 1rem; width: 100%; }
    .app-plane { transform: none; margin-inline: 0 .55rem; }
    .app-plane:nth-child(even) { margin-inline: .55rem 0; }
    .app-preview-card { display: grid; grid-template-columns: 40% 60%; border-radius: 13px; }
    .app-thumbnail { aspect-ratio: auto; min-height: 135px; }
    .app-card-copy { padding: 1rem .8rem; align-self: center; }
    .app-card-copy h3 { font-size: 1rem; line-height: 1.3; }
    .app-card-copy > p:last-of-type { font-size: .71rem; }
    .apps-commission { display: block; padding: 1.5rem; }
    .apps-commission h3 { font-size: 1.8rem; line-height: 1.2; }
    .apps-commission .apps-request { margin-top: 1.5rem; gap: 1rem; padding-inline: 1.3rem; font-size: .8rem; }
}
@media (prefers-reduced-motion:reduce) {
    .app-preview-card { transition: none; }
    .app-preview-card:hover { transform: none; }
}
.motion-disabled .app-preview-card { transition: none; }
.motion-disabled .app-preview-card:hover { transform: none; }

/* A persistent language switch stays outside the collapsible navigation. */
.language-switch { display:flex; gap:.2rem; flex-shrink:0; padding:.2rem; border:1px solid #41443c; border-radius:999px; margin-left:.8rem; }
.language-switch a { display:grid; place-items:center; min-width:2.25rem; min-height:2.25rem; padding:.15rem .35rem; font-size:.72rem; font-weight:700; border-radius:999px; color:#c0c2b7; text-decoration:none; }
.language-switch a[aria-current="true"] { background:#c6ff3a; color:#121510; }
.language-switch a:focus-visible { outline:2px solid #f7793b; outline-offset:3px; }
.site-header .desktop-nav { margin-left:auto; }
@media (max-width:1200px) { .site-header .desktop-nav { display:none; } .site-header .menu-button { display:block; } .site-header .language-switch { margin-left:auto; margin-right:.7rem; } }
@media (max-width:420px) { .language-switch { margin-left:auto; } .language-switch a { min-width:2rem; min-height:2.1rem; } }
