/* Nikomedia tutorial library. Shared studio colors and local fonts.
   Design variance 6, motion intensity 3, visual density 4.
   Radius: 4px controls/media, 8px dialog. Layers: header 10, dialog 20, skip link 30. */
@font-face { font-family: Manrope; src: url('assets/fonts/manrope-latin-wght-normal.woff2') format('woff2'); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('assets/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
:root {
  color-scheme: dark;
  --bg-primary: #101110; --bg-secondary: #1a1c1a; --bg-tertiary: #242724;
  --text-primary: #f0f0e8; --text-secondary: #b3b8ae; --text-muted: #9ba294;
  --accent-primary: #f57b42; --accent-warm: #f57b42; --accent-hover: #ff945f;
  --line: #3e443b; --glass-border: #3e443b;
  --font-body: Manrope, 'Segoe UI', sans-serif; --font-display: var(--font-body);
  --font-mono: 'IBM Plex Mono', monospace;
  --gutter: clamp(20px, 5vw, 80px); --container-max: 1400px;
  --ease-out-expo: cubic-bezier(.22, 1, .36, 1);
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 102px; -webkit-font-smoothing: antialiased; scrollbar-color: #626b5b var(--bg-primary); }
body { min-width: 320px; background: var(--bg-primary); color: var(--text-primary); font: 15px/1.65 var(--font-body); }
a { color: inherit; text-decoration: none; text-underline-offset: 4px; }
a, button, input, textarea { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .4; }
img, video { display: block; max-width: 100%; }
svg { flex-shrink: 0; }
:focus-visible { outline: 2px solid var(--accent-warm); outline-offset: 5px; }
::selection { background: var(--accent-warm); color: #101110; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 12px; left: 16px; z-index: 30; padding: 12px 20px; background: var(--accent-warm); color: #101110; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
/* Header */
.nav { position: sticky; top: 0; z-index: 10; height: 80px; padding-inline: var(--gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px; background: var(--bg-primary); border-bottom: 1px solid var(--line); }
.nav-logo, .footer-logo { font-size: 25px; font-weight: 750; letter-spacing: -.075em; line-height: 1; }
.nav-logo::after, .footer-logo::after { content: '.'; color: var(--accent-warm); }
.nav-links { list-style: none; display: flex; gap: 36px; padding: 0; }
.nav-links a { min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; font-weight: 600; }
.nav-links a:hover, .nav-links li:first-child a { color: var(--accent-warm); }
.nav-mobile-btn { display: none; min-height: 44px; padding: 8px 14px; color: var(--text-primary); background: transparent; border: 1px solid var(--line); border-radius: 4px; }
/* Full-width kinetic opening. The canvas has no rectangular image ground. */
.hero { padding: 0; }
.kinetic-stage { position: relative; isolation: isolate; height: clamp(550px, calc(100svh - 220px), 720px); overflow: hidden; }
.hero-atmosphere { position: absolute; inset: 0; z-index: -2; background: radial-gradient(ellipse at 77% 45%, #242821 0, #171b1740 36%, transparent 64%); }
.hero-scene { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
#hero-canvas, #hero-canvas canvas { width: 100%; height: 100%; display: block; }
.hero-poster { position: absolute; inset: 0; }
.hero-poster img { width: 100%; height: 100%; object-fit: cover; }
.scene-ready .hero-poster { visibility: hidden; }
.scene-fallback .scene-controls { display: none; }
.hero-content { position: relative; width: 58%; padding: clamp(58px, 8vh, 100px) 0 70px var(--gutter); }
.hero-badge { color: var(--text-secondary); font: 11px/1.6 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 26px; }
.hero h1 { font: 650 clamp(82px, 9.4vw, 146px)/.99 var(--font-display); letter-spacing: -.075em; }
.hero h1 span { color: var(--accent-warm); }
.hero-content > p { max-width: 40ch; margin-top: 27px; color: var(--text-secondary); font-size: 15px; line-height: 1.75; text-wrap: pretty; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 50px; padding: 13px 20px; border: 1px solid transparent; border-radius: 4px; font-size: 12px; font-weight: 700; line-height: 1.5; transition: background 160ms, border-color 160ms, transform 160ms; }
.btn-primary { background: var(--accent-warm); color: #151711; }
.btn-primary:hover { background: var(--accent-hover); }
.btn-glass { border-color: #667060; color: var(--text-primary); background: transparent; }
.btn-glass:hover { background: var(--bg-tertiary); border-color: var(--text-secondary); }
.btn:active { transform: scale(.98); }
.btn > span { font-size: 20px; line-height: 1; font-weight: 400; }
.scene-caption { position: absolute; right: var(--gutter); top: 34px; display: flex; flex-direction: column; gap: 4px; text-align: right; color: var(--text-muted); font: 10px/1.6 var(--font-mono); }
.scene-caption span:first-child { color: var(--text-primary); }
.scene-controls { position: absolute; right: var(--gutter); bottom: 28px; display: flex; gap: 9px; visibility: hidden; }
.scene-ready .scene-controls { visibility: visible; }
.scene-controls button { min-height: 42px; padding: 9px 14px; border-radius: 4px; border: 1px solid #656b5f; background: #101110bb; color: var(--text-secondary); font: 10px/1.6 var(--font-mono); }
.scene-controls button:hover, .scene-controls button[aria-pressed="true"] { border-color: var(--accent-warm); color: var(--accent-warm); }
.patreon-feature { display: flex; align-items: center; justify-content: space-between; gap: 30px; background: var(--accent-warm); color: #151711; padding: 26px var(--gutter); }
.patreon-heading { display: flex; align-items: center; gap: 25px; }
.patreon-heading h2 { font-size: clamp(22px, 2.2vw, 34px); font-weight: 700; letter-spacing: -.04em; line-height: 1.2; }
.patreon-heading p { margin-top: 6px; font-size: 12px; }
.patreon-link { display: inline-flex; justify-content: space-between; align-items: center; gap: 35px; padding: 16px 22px; min-width: 205px; min-height: 54px; border-radius: 4px; background: #151711; color: #f0f0e8; font-size: 13px; font-weight: 600; white-space: nowrap; transition: transform 180ms, background 180ms; }
.patreon-link span { font-size: 23px; line-height: 1; color: var(--accent-warm); }
.patreon-link:hover { background: #30382a; transform: translateY(-2px); }
.patreon-link:focus-visible { outline-color: #151711; }
.hero-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-inline: var(--gutter); padding-block: 19px; border-bottom: 1px solid var(--line); }
.hero-stats { display: flex; gap: 40px; }
.hero-stat { display: flex; align-items: baseline; gap: 10px; }
.hero-stat .number { font-size: 23px; font-weight: 600; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.hero-stat .label { color: var(--text-secondary); font-size: 11px; }
.hero-contact { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; color: var(--text-secondary); font-size: 12px; }
.hero-contact:hover { color: var(--accent-warm); }
/* Library controls */
.section { max-width: calc(var(--container-max) + var(--gutter) * 2); margin-inline: auto; padding: 78px var(--gutter); }
.section-header { margin-bottom: 32px; }
.section-title { font-size: clamp(30px, 3.6vw, 50px); font-weight: 550; line-height: 1.15; letter-spacing: -.055em; }
.section-desc { max-width: 60ch; color: var(--text-secondary); margin-top: 14px; font-size: 14px; }
.filters-container { display: grid; grid-template-columns: minmax(240px, 1fr) auto; gap: 20px 28px; padding-bottom: 26px; }
.search-wrapper { position: relative; }
.search-input { width: 100%; min-height: 50px; padding: 12px 48px 12px 17px; border: 1px solid var(--line); border-radius: 4px; background: var(--bg-secondary); color: var(--text-primary); font-size: 13px; }
.search-input::placeholder { color: var(--text-muted); }
.search-input::-webkit-search-cancel-button { display: none; }
.search-input:focus { border-color: var(--accent-warm); }
.search-clear { position: absolute; right: 4px; top: 3px; width: 44px; height: 44px; background: transparent; color: var(--text-secondary); border: 0; visibility: hidden; }
.search-clear.visible { visibility: visible; }
.sort-bar { display: flex; align-items: center; gap: 12px; }
.sort-label { color: var(--text-muted); font: 11px var(--font-mono); }
.sort-buttons { display: flex; gap: 4px; }
.sort-btn { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 12px; min-height: 44px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--text-secondary); font-size: 11px; }
.sort-btn svg { display: none; }
.sort-btn:hover { color: var(--text-primary); background: var(--bg-tertiary); }
.sort-btn.active { color: var(--text-primary); border-color: var(--line); background: var(--bg-tertiary); }
.filter-pills { display: flex; flex-wrap: wrap; gap: 7px; grid-column: 1 / -1; }
.filter-pill { min-height: 40px; padding: 8px 13px; color: var(--text-secondary); background: transparent; border: 1px solid var(--line); border-radius: 4px; font-size: 11px; transition: color 160ms, background 160ms; }
.filter-pill:hover { color: var(--text-primary); background: var(--bg-tertiary); }
.filter-pill.active { color: #151711; background: var(--accent-warm); border-color: var(--accent-warm); }
/* Existing rig offers and voluntary support */
.promo-banner { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.promo-card { display: flex; align-items: center; gap: 15px; padding: 18px 20px; background: var(--bg-secondary); border: 1px solid var(--line); border-radius: 4px; transition: border-color 160ms; }
.promo-card:hover { border-color: var(--accent-warm); }
.promo-text { flex: 1; }
.promo-text strong { display: block; font-size: 12px; font-weight: 650; }
.promo-text > span { display: block; color: var(--text-muted); font-size: 10px; margin-top: 3px; }
.promo-price { font: 16px var(--font-mono); white-space: nowrap; }
.promo-cta { color: var(--accent-warm); font-size: 11px; white-space: nowrap; }
.donate-banner { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 0 0; }
.donate-banner-text { color: var(--text-muted); font-size: 11px; }
.donate-banner-btn { padding: 8px 0 8px 16px; min-height: 44px; background: transparent; color: var(--accent-warm); font-size: 11px; }
.donate-banner-btn:hover { background: transparent; color: var(--accent-hover); }
.donate-banner-btn svg { width: 15px; height: 15px; }
.library-results { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 24px 0 22px; padding-top: 22px; border-top: 1px solid var(--line); font: 11px/1.6 var(--font-mono); color: var(--text-secondary); }
.library-results > span { color: var(--text-muted); }
/* Media stays 16:9. Titles use native buttons for keyboard users. */
.tutorials-grid { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px 24px; }
.tutorial-card { min-width: 0; display: flex; flex-direction: column; cursor: pointer; border-bottom: 1px solid var(--line); padding-bottom: 20px; }
.tutorial-card.card-in-motion { position: relative; background: var(--bg-primary); transform-origin: center 25%; border-color: transparent; }
.card-in-motion .card-body { opacity: var(--card-copy-opacity, 1); }
.card-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-tertiary); border-radius: 4px; }
.card-media > img, .card-media > video { width: 100%; height: 100%; object-fit: cover; }
.card-media > video { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.card-media > img { transition: transform 260ms var(--ease-out-expo); }
.tutorial-card:hover .card-media > img { transform: scale(1.025); }
.card-play-icon { position: absolute; right: 14px; bottom: 14px; display: grid; place-items: center; width: 38px; height: 38px; color: #151711; background: var(--accent-warm); border-radius: 50%; pointer-events: none; }
.card-play-icon svg { width: 17px; height: 17px; fill: currentColor; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .tutorial-card:hover .card-media > video.is-playing { opacity: 1; } }
.card-body { display: flex; flex: 1; flex-direction: column; padding-top: 17px; }
.card-categories, .modal-categories { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.card-category { color: var(--accent-warm); font: 10px/1.65 var(--font-mono); }
.card-title { margin-top: 10px; font-size: 17px; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; }
.card-open { border: 0; padding: 0; background: transparent; text-align: left; color: inherit; font: inherit; letter-spacing: inherit; }
.card-open:hover { color: var(--accent-warm); }
.card-desc { color: var(--text-secondary); margin-top: 10px; font-size: 12px; line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.card-desc a { text-decoration: underline; }
.card-meta { margin-top: auto; padding-top: 17px; display: flex; flex-wrap: wrap; gap: 5px 14px; color: var(--text-muted); font: 10px/1.6 var(--font-mono); }
.card-meta-item { white-space: nowrap; }
.pagination { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 14px 0; }
.pagination-info { color: var(--text-muted); font: 11px/1.6 var(--font-mono); }
.pagination-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; }
.pagination-btn { min-width: 40px; min-height: 44px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 4px; background: transparent; color: var(--text-secondary); font-size: 11px; }
.pagination-btn:hover:not(:disabled) { border-color: var(--accent-warm); color: var(--accent-warm); }
.pagination-btn.active { background: var(--accent-warm); color: #151711; border-color: var(--accent-warm); }
.pagination-ellipsis { align-self: center; padding: 4px; }
.empty-state, .loader { grid-column: 1 / -1; text-align: center; padding: 54px 24px; background: var(--bg-secondary); border-radius: 4px; color: var(--text-secondary); }
.empty-state svg { width: 44px; height: 44px; margin-bottom: 12px; }
.empty-state h3 { color: var(--text-primary); margin-bottom: 8px; font-size: 21px; }
.empty-state p, .loader > span { font-size: 13px; }
.loading-skeleton { width: min(100%, 500px); height: 130px; margin: 0 auto 20px; background: var(--bg-tertiary); border-radius: 4px; }
.loader-spinner { width: 20px; height: 20px; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; }
@media (prefers-reduced-motion: no-preference) { .loader-spinner { animation: spin .8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } }
/* Contact */
.contact-section { border-top: 1px solid var(--line); padding-block: 70px 90px; }
.contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(32px, 8vw, 120px); }
.contact-info h3 { font-weight: 550; font-size: 22px; letter-spacing: -.035em; margin-bottom: 15px; }
.contact-info > p { max-width: 41ch; color: var(--text-secondary); font-size: 13px; }
.contact-links { display: grid; gap: 18px; margin-top: 30px; }
.contact-link { display: flex; gap: 16px; align-items: center; color: var(--text-secondary); }
.contact-link:hover { color: var(--accent-warm); }
.contact-link-icon { display: grid; place-items: center; width: 42px; height: 42px; flex-shrink: 0; border: 1px solid var(--line); border-radius: 4px; color: var(--accent-warm); }
.contact-link-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.contact-form { display: grid; gap: 19px; align-content: start; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-group { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.form-group label { font-size: 12px; font-weight: 600; }
.form-input, .form-textarea { width: 100%; padding: 13px 15px; border: 1px solid var(--line); border-radius: 4px; background: var(--bg-secondary); color: var(--text-primary); font-size: 13px; caret-color: var(--accent-warm); }
.form-input::placeholder, .form-textarea::placeholder { color: var(--text-muted); }
.form-textarea { min-height: 150px; resize: vertical; }
.contact-form > .btn { justify-self: start; min-width: 190px; }
.form-status { display: none; }
.form-status.success, .form-status.error { display: block; padding: 12px 16px; border: 1px solid var(--line); border-radius: 4px; font-size: 13px; background: var(--bg-secondary); }
.form-status.success { color: #b9dca8; }
.form-status.error { color: #ffb3a5; }
/* Tutorial detail dialog */
.modal-overlay { position: fixed; inset: 0; z-index: 20; display: flex; justify-content: center; align-items: center; padding: 28px; visibility: hidden; opacity: 0; pointer-events: none; }
.modal-overlay.active { visibility: visible; opacity: 1; pointer-events: auto; }
.modal-backdrop { position: absolute; inset: 0; background: #000c; }
.modal { position: relative; width: min(920px, 100%); max-height: calc(100dvh - 56px); overflow-y: auto; overscroll-behavior: contain; background: var(--bg-secondary); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 24px 100px #0009; }
.modal-close { position: absolute; right: 12px; top: 12px; z-index: 1; width: 44px; height: 44px; border: 1px solid #73776e; border-radius: 4px; background: #101110e8; color: #fff; font-size: 19px; }
.modal-close:hover { color: var(--accent-warm); }
.modal-video-container { background: #080908; width: 100%; aspect-ratio: 16 / 9; }
.modal-video-container video { width: 100%; height: 100%; object-fit: contain; }
.modal-body { padding: 30px; }
.modal-categories { margin-bottom: 16px; }
.modal-meta-item { color: var(--text-secondary); font: 11px/1.6 var(--font-mono); }
.modal-title { font-size: clamp(24px, 3vw, 36px); line-height: 1.2; font-weight: 600; letter-spacing: -.035em; }
.modal-desc { display: block; margin-top: 18px; color: var(--text-secondary); font-size: 13px; line-height: 1.85; overflow-wrap: anywhere; }
.modal-desc a { text-decoration: underline; }
.modal-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.modal-donate { border-top: 1px solid var(--line); padding-top: 18px; margin-top: 24px; font-size: 12px; }
.modal-donate a { color: var(--accent-warm); }
.random-bar { display: flex; justify-content: flex-end; padding: 12px 25px; border-bottom: 1px solid var(--line); }
.random-bar .btn { min-height: 44px; }
.footer { border-top: 1px solid var(--line); background: var(--bg-secondary); padding: 30px var(--gutter); }
.footer-content { max-width: var(--container-max); margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.footer-copy { color: var(--text-muted); font-size: 11px; }
.footer-socials { display: flex; gap: 9px; }
.footer-social { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 4px; }
.footer-social svg { width: 17px; height: 17px; fill: currentColor; }
.footer-social:hover { border-color: var(--accent-warm); color: var(--accent-warm); }
/* Compact layouts */
@media (max-width: 1100px) {
  .filters-container { grid-template-columns: 1fr; gap: 14px; }
  .sort-bar { flex-wrap: wrap; }
  .promo-card { flex-wrap: wrap; gap: 8px 14px; }
  .promo-text { flex-basis: 65%; }
}
@media (max-width: 767px) {
  html { scroll-padding-top: 88px; }
  .nav { height: 68px; }
  .nav-logo { font-size: 23px; }
  .nav-mobile-btn { display: block; }
  .nav-links { position: absolute; display: none; top: 67px; left: 0; right: 0; padding: 16px var(--gutter) 24px; flex-direction: column; gap: 5px; background: var(--bg-secondary); border-bottom: 1px solid var(--line); }
  .nav-links.open { display: flex; }
  .nav-links a { width: 100%; padding-block: 10px; font-size: 17px; }
  .section { padding-block: 48px; }
  .section-header { margin-bottom: 26px; }
  .section-desc { font-size: 13px; }
  .sort-label { width: 100%; }
  .sort-buttons { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); }
  .sort-btn { padding-inline: 8px; }
  .filter-pills { gap: 6px; }
  .filter-pill { font-size: 10px; padding-inline: 10px; }
  .promo-banner { grid-template-columns: 1fr; gap: 10px; }
  .promo-card { padding: 15px; }
  .promo-text { flex-basis: auto; }
  .promo-cta { font-size: 10px; }
  .donate-banner { align-items: flex-start; }
  .donate-banner-text { max-width: 25ch; padding-top: 10px; }
  .donate-banner-btn { white-space: nowrap; gap: 7px; padding-left: 0; }
  .library-results { margin-top: 16px; font-size: 10px; }
  .library-results > span { display: none; }
  .tutorials-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 18px; }
  .card-title { font-size: 15px; }
  .contact-grid { grid-template-columns: 1fr; gap: 36px; }
  .contact-links { grid-template-columns: 1fr; }
  .modal-overlay { padding: 12px; }
  .modal { max-height: calc(100dvh - 24px); }
  .modal-body { padding: 22px 18px; }
  .modal-actions { flex-direction: column; }
  .footer-content { flex-wrap: wrap; gap: 20px; }
  .footer-copy { order: 3; width: 100%; }
}
@media (max-width: 480px) {
  .tutorials-grid { grid-template-columns: 1fr; }
  .card-title { font-size: 18px; }
  .card-category { font-size: 10px; }
  .card-desc { font-size: 13px; }
  .form-row { grid-template-columns: 1fr; }
  .promo-text strong { font-size: 11px; }
  .promo-price { font-size: 14px; }
  .promo-cta { margin-left: auto; }
  .pagination-buttons { gap: 4px; }
  .pagination-btn { min-width: 36px; padding-inline: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .card-in-motion { transform: none !important; pointer-events: auto !important; }
  .card-in-motion .card-body { opacity: 1 !important; }
}

/* Header art direction on smaller screens. */
@media (min-width: 768px) and (max-height: 820px) {
  .hero-content { padding-top: 45px; }
  .hero h1 { font-size: clamp(80px, 8.2vw, 119px); }
  .hero-content > p { margin-top: 22px; }
  .hero-badge { margin-bottom: 20px; }
}
@media (min-width: 768px) and (max-width: 1050px) {
  .hero-content { width: 60%; }
  .hero h1 { font-size: 92px; }
  .hero-content > p { max-width: 34ch; font-size: 13px; }
  .scene-caption { font-size: 9px; }
}
@media (max-width: 767px) {
  .kinetic-stage { display: flex; flex-direction: column; height: auto; padding-bottom: 0; overflow: hidden; }
  .hero-content { order: 0; width: 100%; padding: 34px var(--gutter) 0; }
  .hero-badge { font-size: 9px; margin-bottom: 19px; }
  .hero h1 { font-size: clamp(65px, 16.5vw, 110px); line-height: .98; }
  .hero-content > p { font-size: 13px; max-width: 42ch; margin-top: 23px; }
  .hero-actions { margin-top: 23px; gap: 9px; }
  .hero-actions .btn { padding: 12px 14px; font-size: 11px; gap: 12px; }
  .hero-scene { position: relative; order: 1; flex-shrink: 0; width: 100%; height: 335px; margin-top: 0; }
  .hero-atmosphere { background: radial-gradient(ellipse at 50% 72%, #30372d80, transparent 42%); }
  .scene-caption { top: auto; bottom: 31px; left: 20px; right: auto; text-align: left; font-size: 9px; }
  .scene-caption span:last-child { display: none; }
  .scene-controls { bottom: 17px; right: 20px; }
  .scene-controls button { min-height: 40px; font-size: 9px; padding: 9px 12px; }
  .patreon-feature { padding: 23px var(--gutter); align-items: stretch; flex-direction: column; gap: 20px; }
  .patreon-heading { gap: 16px; }
  .patreon-symbol { width: 30px; height: 30px; }
  .patreon-heading h2 { font-size: 24px; max-width: 20ch; }
  .patreon-heading p { font-size: 11px; max-width: 32ch; }
  .patreon-link { width: 100%; padding: 13px 18px; min-height: 49px; }
  .hero-bottom { gap: 12px; padding-block: 15px; }
  .hero-stats { width: 100%; justify-content: space-between; gap: 16px; }
  .hero-stat { flex-direction: column; gap: 0; }
  .hero-stat .label { margin: 0; font-size: 10px; }
  .hero-contact { display: none; }
}
@media (max-width: 380px) {
  .hero h1 { font-size: 61px; }
  .hero-scene { height: 315px; }
  .hero-badge { letter-spacing: .025em; }
  .hero-actions .btn { padding-inline: 12px; gap: 8px; }
}
