/* Shared additions to the retained Daniel Varga layout. */
:root {
  --surface:#11191d; --surface-alt:#19252b; --ink:#f6f3ed;
  --muted-ink:#bac6ca; --control-border:#738991; --focus:#ffc16c;
  --accent-ink:#ffc16c; --notice-shadow:0 24px 90px #0006;
}
:root[data-theme="light"] {
  --surface:#fffdf8; --surface-alt:#eeebe3; --ink:#182126;
  --muted-ink:#475b64; --control-border:#6b7c82; --focus:#874406;
  --accent-ink:#874406; --notice-shadow:0 24px 90px #17232d26;
}
[hidden] { display:none !important; }
html { scroll-padding-top:120px; }
body { font-size:1rem; }
button, a, summary, input, select, textarea { touch-action:manipulation; }
:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.skip-link { position:fixed; left:16px; top:12px; z-index:200; transform:translateY(-180%); padding:14px 20px; color:var(--ink); background:var(--surface); border:2px solid var(--focus); }
.skip-link:focus { transform:none; }
.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; }
.nav { gap:22px; min-height:90px; height:auto; padding-block:9px; }
.topstrip-inner { gap:12px; }
.topstrip-inner span:last-child { white-space:nowrap; }
.navlinks { gap:20px; }
.navlinks a { font-size:13px; letter-spacing:.035em; min-height:44px; display:flex; align-items:center; }
.navcta { font-size:12px; min-height:44px; }
.header-controls { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.icon-button, .burger { width:44px; height:44px; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--control-border); background:transparent; color:var(--ink); border-radius:0; }
.icon-button:hover, .burger:hover { background:var(--surface-alt); }
.icon-button svg, .burger svg { width:20px; height:20px; }
.theme-sun { display:none; }
[data-theme="dark"] .theme-moon { display:none; }
[data-theme="dark"] .theme-sun { display:block; }
.burger { display:none; }
.mobilemenu { max-height:calc(100dvh - 94px); overflow-y:auto; }
.mobilemenu a { font-size:15px; min-height:48px; }
.button { font-size:12px; white-space:normal; text-align:left; line-height:1.5; padding-block:12px; }
.section-side, .youtube-description, .youtube-heading p, .service p, .step p, .faq details p { font-size:15px; }
.service-ico { stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.service h3 { line-height:1.25; }
.mono, .eyeline { font-size:12px; }
.youtube-meta .eyeline { font-size:11px; }
.thumb-label { top:12px; left:12px; padding:6px 8px; font-size:10px; color:#fff; background:#0b1013db; max-width:calc(100% - 24px); }
.youtube-duration { font-size:11px; }
.youtube-card { align-self:start; border-radius:0; }
.youtube-card:focus-visible { outline:3px solid var(--focus); outline-offset:6px; }
.youtube-card:focus-visible .youtube-thumb { outline:0; }
.youtube-arrow { border-color:var(--control-border); }
.youtube-showcase { margin-bottom:0; }
.hero-meta, .hero-spec { font-size:10px; }
.hero-spec { padding:8px 10px; background:#10232dd9; color:#f6f3ed; max-width:100%; }
.hero-spec span:first-child { color:#ffc16c; }
.hero-copy h1 em { color:#a65307; }
.hero-copy .eyeline { max-width:100%; flex-wrap:wrap; }
.aboutvisual .label { font-size:11px; }
.formhint { font-size:13px; color:var(--muted-ink); }
label { font-size:12px; }
input, select, textarea { font-size:16px; min-height:48px; border-color:var(--control-border); }
input::placeholder, textarea::placeholder { color:var(--muted-ink); opacity:1; }
.field-error { color:#a72619; font-size:13px; line-height:1.5; margin-top:7px; }
[aria-invalid="true"] { border-color:#a72619; }
#formResult { font-size:14px; color:var(--accent-ink); }
.brief-output { margin-top:18px; }
.brief-output textarea { min-height:230px; }
.footer { text-align:center; }
.footer-upper { min-height:0; justify-content:center; align-items:center; padding:42px 0 12px; }
.footerlinks { gap:12px 22px; justify-content:center; }
.footerlinks a, .footer-tools a, .footer-tools button { min-height:44px; display:inline-flex; align-items:center; font-size:13px; }
.footer-tools { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 25px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.text-button { border:0; padding:0; background:none; color:var(--accent-ink); text-decoration:underline; text-underline-offset:4px; font:inherit; cursor:pointer; }
.footerbottom { font-size:11px; line-height:1.8; flex-direction:column; align-items:center; justify-content:center; gap:6px; border:0; }
.site-credit { font-family:var(--sans); text-transform:none; letter-spacing:0; font-size:12px; color:var(--muted-ink) !important; }
.theme-preference { padding-top:10px; font-size:13px; }

/* Native dialogs supply focus containment, Escape and an inert backdrop. */
dialog.site-dialog { position:fixed; inset:0; margin:auto; color:var(--ink); background:var(--surface); border:1px solid var(--control-border); box-shadow:var(--notice-shadow); padding:32px; width:min(620px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; overscroll-behavior:contain; }
dialog.site-dialog::backdrop { background:#081016b8; backdrop-filter:blur(7px); }
dialog.site-dialog:not([open]) { display:none; }
.site-dialog .dialog-kicker { font-size:11px; padding-right:48px; color:var(--accent-ink); }
.site-dialog h2 { font:400 clamp(30px,4vw,42px)/1.15 var(--serif); letter-spacing:-.035em; margin:14px 48px 18px 0; }
.site-dialog h2:focus { outline:none; }
.site-dialog h3 { font-size:18px; margin:26px 0 10px; }
.site-dialog p, .site-dialog li { font-size:15px; line-height:1.75; color:var(--muted-ink); }
.site-dialog p + p { margin-top:14px; }
.site-dialog a { text-decoration:underline; text-underline-offset:4px; }
.dialog-close { position:absolute; right:16px; top:16px; font-size:27px; }
.dialog-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.choice-button { min-height:46px; padding:11px 16px; border:1px solid var(--control-border); background:var(--surface); color:var(--ink); font-size:14px; line-height:1.5; }
.choice-button:hover { background:var(--surface-alt); }
.dialog-actions .choice-button { flex:1 1 auto; }
.choice-primary { color:#17120a; background:#f39a25; border-color:#f39a25; }
.choice-primary:hover { background:#ffb44e; }
.consent-details { margin-top:24px; border-top:1px solid var(--line); padding-top:16px; }
.consent-option { display:grid; grid-template-columns:24px 1fr; align-items:start; gap:12px; color:var(--ink); font:500 16px/1.5 var(--sans); text-transform:none; letter-spacing:0; padding:10px 0; margin:0; cursor:pointer; }
.consent-option input { width:22px; height:22px; min-height:0; margin:2px 0; accent-color:var(--accent-ink); }
.consent-option small { display:block; font-weight:400; font-size:13px; line-height:1.6; color:var(--muted-ink); padding-top:5px; }
.privacy-summary { font-size:13px !important; margin-top:18px; }
.consent-state { color:var(--muted-ink); font-size:13px; }
dialog.video-dialog { width:min(1080px,calc(100% - 32px)); padding:24px; }
.video-dialog h2 { font-size:clamp(30px,4vw,44px); }
.video-dialog .video-modal-head { padding-right:50px; align-items:center; }
.video-modal-link { color:var(--accent-ink); font-size:12px; line-height:1.6; }
.video-stage { position:relative; aspect-ratio:16/9; background:#080b0d; overflow:hidden; border:1px solid var(--control-border); }
.video-stage iframe { position:absolute; width:100%; height:100%; inset:0; border:0; }
.video-gate { min-height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:32px; text-align:center; color:#fff; background:linear-gradient(135deg,#15242b,#091014); }
.video-gate svg { width:32px; height:32px; color:#ffc16c; }
.video-gate p { color:#d0dade; max-width:560px; }
.video-gate strong { color:#fff; }
.video-gate .text-button { color:#ffc16c; min-height:44px; }
.video-description { margin:18px 0 0; border-bottom:1px solid var(--line); padding-bottom:16px; }
.video-description summary { cursor:pointer; font-size:15px; min-height:44px; display:flex; align-items:center; gap:10px; }
.video-description summary::before { content:'+'; color:var(--accent-ink); font-size:22px; }
.video-description[open] summary::before { content:'−'; }
.video-description p { margin-top:8px; }
.video-help { font-size:12px !important; margin-top:14px; }
.video-settings { margin-top:12px; min-height:44px; font-size:13px; }
.notice-status { margin-top:12px; font-size:13px; color:var(--accent-ink); }

/* The original dark palette, adapted to the retained diagonal artwork. */
[data-theme="dark"] .hero { background:linear-gradient(110deg,#090f12 0%,#101b21 50%,#243943 100%); }
[data-theme="dark"] .hero-copy h1 em { color:#f2c989; }
[data-theme="dark"] .personal-logo { filter:url(#logo-transparency) invert(1); }
[data-theme="dark"] .hero-diagonals { opacity:.3; }
[data-theme="dark"] .hero-art { opacity:.72; }
[data-theme="dark"] .hero-art::after { background:linear-gradient(90deg,#0e181e 0%,rgba(14,24,30,.82) 24%,transparent 59%); }
[data-theme="dark"] .hero-sub, [data-theme="dark"] .section-side,
[data-theme="dark"] .youtube-description, [data-theme="dark"] .youtube-heading p,
[data-theme="dark"] .service p, [data-theme="dark"] .step p,
[data-theme="dark"] .aboutcontent p, [data-theme="dark"] .faq details p,
[data-theme="dark"] .contactlead { color:var(--muted-ink); }
[data-theme="dark"] .hero-meta { color:#c1cdd0; }
[data-theme="dark"] .marquee { background:linear-gradient(133deg,#111c21 50%,#263b44 50%,#17242b 83%); }
[data-theme="dark"] .marquee-inner span { color:#c4d0d2; }
[data-theme="dark"] .service { background:linear-gradient(135deg,#152229,#10191e); border-color:#4d616a; }
[data-theme="dark"] .servicesgrid { border-color:#4d616a; }
[data-theme="dark"] .service:hover { background:#20323b; }
[data-theme="dark"] .service-ico { color:#f2c989; }
[data-theme="dark"] .process::before, [data-theme="dark"] .contact::before,
[data-theme="dark"] .footer::before, [data-theme="dark"] .about::before { opacity:.15; }
[data-theme="dark"] .eyeline, [data-theme="dark"] .step-num, [data-theme="dark"] .contactbadge,
[data-theme="dark"] .aboutcontent .signature { color:var(--accent-ink); }
[data-theme="dark"] .field-error { color:#ffb7ac; }
[data-theme="dark"] [aria-invalid="true"] { border-color:#ffb7ac; }
[data-theme="dark"] .footerbottom { color:#bac6ca; }
[data-theme="dark"] .topstrip-inner { color:#c3c6bf; }
[data-theme="dark"] .mobilemenu { color:var(--ink); background:var(--surface); }
[data-theme="dark"] .button.outline { border-color:#8c9fa6; }

@media(max-width:1180px) { .navlinks { gap:13px; } .navlinks a { font-size:12px; } .nav { gap:16px; } .header-controls { gap:10px; } }
@media(max-width:1050px) { .navlinks, .navcta { display:none; } .burger { display:inline-flex; } .header-controls { margin-left:auto; } }
@media(min-width:1051px) { .mobilemenu.open { display:none; } }
@media(max-width:650px) {
  html { scroll-padding-top:96px; }
  .nav { min-height:76px; padding-block:6px; }
  .hero-copy h1 { font-size:clamp(45px,13vw,67px); }
  .hero-copy { padding-bottom:125px; }
  .hero-meta { font-size:9px; flex-wrap:wrap; gap:10px; }
  .hero-spec { font-size:9px; right:auto; left:0; bottom:68px; gap:10px; }
  .hero-sub { font-size:16px; }
  .hero-actions .button { width:100%; max-width:340px; }
  .hero-inner { min-height:710px; }
  .topstrip-inner { font-size:8px; }
  .footer-upper { padding-bottom:24px; }
  .footerbottom { gap:9px; }
  .site-dialog, dialog.site-dialog { padding:24px 20px; }
  .dialog-actions { flex-direction:column; }
  .dialog-actions .choice-button { width:100%; }
  .video-stage { aspect-ratio:auto; min-height:210px; }
  .video-stage.is-playing { aspect-ratio:16/9; min-height:0; }
  .video-gate { padding:24px 18px; }
  .video-dialog .video-modal-head { gap:12px; }
  .video-modal-link { white-space:normal; }
  [data-theme="dark"] .hero-art { opacity:.18; }
  .hero-copy .eyeline { font-size:10px; }
  .aboutvisual .label { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .youtube-card:hover .youtube-poster, .youtube-card:hover .youtube-play, .button:hover { transform:none; }
  .youtube-card:hover .youtube-poster.framed { transform:scale(1.07); }
  .youtube-card:hover .youtube-poster.family-crop { transform:scale(1.42); }
  .youtube-card:hover .youtube-play { transform:translate(-50%,-50%); }
}
/* Very subtle movement for the hero image */
@keyframes hero-image-drift {
  0%,
  100% {
    transform:translate3d(0, 0, 0) scale(1.012);
  }

  50% {
    transform:translate3d(-7px, -5px, 0) scale(1.02);
  }
}

.hero .hero-art img {
  animation:hero-image-drift 18s ease-in-out infinite !important;
  will-change:transform;
}

/* Slightly slower movement on phones */
@media(max-width:650px) {
  .hero .hero-art img {
    animation-duration:22s !important;
  }
}

/* Accessibility: disable movement when requested */
@media(prefers-reduced-motion:reduce) {
  .hero .hero-art img {
    animation:none !important;
    transform:none !important;
    will-change:auto;
  }
}
.header {
  transition: transform 0.28s ease;
  will-change: transform;
}

.header.header-hidden {
  transform: translateY(-100%);
}
