/* Wick: a dark night lit by one candle. Flat colours; the candle glow is the only light effect. */
.candle-glow { position: fixed; inset: 0; z-index: -1; pointer-events: none; will-change: opacity, transform;
  background: radial-gradient(700px 460px at 50% -40px, rgba(255,154,31,.16), rgba(255,154,31,0) 70%);
  animation: wick-room 5.5s ease-in-out infinite, wick-drift 9s ease-in-out infinite; }
.halo { background: radial-gradient(closest-side, rgba(255,154,31,.42), rgba(255,154,31,0));
  animation: wick-halo 3.3s ease-in-out infinite, wick-drift 7s ease-in-out infinite; }
.flame { transform-box: fill-box; transform-origin: 50% 92%; animation: wick-sway 2.6s ease-in-out infinite; }
.flame-core { transform-box: fill-box; transform-origin: 50% 90%; animation: wick-core 1.9s ease-in-out infinite; }
@keyframes wick-room { 0%,100% { opacity: .86 } 9% { opacity: 1 } 21% { opacity: .8 } 34% { opacity: .96 }
  51% { opacity: .78 } 64% { opacity: 1 } 79% { opacity: .85 } }
@keyframes wick-halo { 0%,100% { opacity: .55 } 14% { opacity: .8 } 29% { opacity: .5 } 48% { opacity: .72 }
  69% { opacity: .46 } 86% { opacity: .68 } }
@keyframes wick-sway { 0%,100% { transform: rotate(-2deg) scale(1,1) } 22% { transform: rotate(1.6deg) scale(.97,1.06) }
  46% { transform: rotate(-1deg) scale(1.03,.95) } 71% { transform: rotate(2.2deg) scale(.98,1.04) } }
@keyframes wick-core { 0%,100% { opacity: .95; transform: scale(1,1) } 33% { opacity: .78; transform: scale(.9,1.08) }
  63% { opacity: 1; transform: scale(1.06,.94) } }
/* the candle's light sways a little with its flame */
@keyframes wick-drift { 0%,100% { transform: translateX(0) rotate(0) } 27% { transform: translateX(10px) rotate(.6deg) }
  55% { transform: translateX(-7px) rotate(-.5deg) } 78% { transform: translateX(5px) rotate(.3deg) } }
/* scroll reveal hides content only when JS runs (html.js is set by the page) */
html.js [data-reveal] { opacity: 0; transform: translateY(12px); transition: opacity .6s ease, transform .6s ease; }
html.js [data-reveal].is-visible { opacity: 1; transform: none; }
.btn-primary:hover { box-shadow: 0 0 22px rgba(255,154,31,.35); }
/* small motion (owner, 30 Sep): cards lift, buttons press, links underline, FAQ answers open softly */
.card-lift { transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
@media (hover: hover) {
  .card-lift:hover { transform: translateY(-2px); border-color: rgba(255,154,31,.3); box-shadow: 0 12px 26px -18px rgba(255,154,31,.6); }
}
.btn-primary, .btn-secondary { transition: box-shadow .2s ease, border-color .2s ease, transform .15s ease; }
.btn-secondary:hover { border-color: rgba(255,154,31,.45); }
.btn-primary:active, .btn-secondary:active { transform: translateY(1px) scale(.97); }
.link-slide { position: relative; }
.link-slide::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: currentColor;
  transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.link-slide:hover::after, .link-slide:focus-visible::after { transform: scaleX(1); }
details[open] > :not(summary) { animation: wick-open .22s cubic-bezier(.2,.8,.2,1); }
@keyframes wick-open { from { opacity: 0; transform: translateY(-4px) scale(.98) } }
@media (prefers-reduced-motion: reduce) {
  .candle-glow, .halo, .flame, .flame-core { animation: none; }
  html.js [data-reveal] { opacity: 1; transform: none; transition: none; }
  details[open] > :not(summary) { animation: none; }
  .card-lift:hover, .btn-primary:active, .btn-secondary:active, .link-slide:hover::after { transform: none; }
  .card-lift, .btn-primary, .btn-secondary, .link-slide::after { transition: none; }
}
