/* Luce e insegna: decorazioni senza influenza sul layout o sul focus. */
.brand { position: relative; perspective: 900px; }
.brand-face { position: relative; display: block; transform-origin: 50% 15%; filter: drop-shadow(0 5px 7px #00000030); }
.brand-unlit { filter: brightness(.58) saturate(.65); }
.brand-lit { position: absolute; inset: 0; width: 100%; opacity: 1; transition: opacity 1200ms var(--ease-state); }
.brand-power { position: absolute; inset: 0; opacity: 1; transition: opacity 1200ms var(--ease-state); pointer-events: none; }
.brand-glow { position: absolute; left: 50%; top: 25%; width: 28%; aspect-ratio: 1; transform: translate(-50%, -50%); pointer-events: none; background: radial-gradient(circle, #ffe0a5b0, #efb45e45 35%, transparent 70%); mix-blend-mode: screen; }
.sign-trace { position: absolute; inset: 0; width: 100%; height: 100%; color: #ffe0a5; opacity: 0; pointer-events: none; }
.sign-trace path { stroke: currentColor; stroke-width: 5; stroke-linejoin: round; }
.hero-light { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 12%, #e9ba6618, transparent 50%); pointer-events: none; }
.header-art { overflow: hidden; }
.hero-light { opacity: 1; transition: opacity 1200ms var(--ease-state); }
.sign-off .brand-lit, .sign-off .brand-power, .sign-off .hero-light { opacity: 0; }
.motion-replay { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 4px; padding: 6px 14px; border: 0; border-radius: 999px; background: #09291fa0; color: var(--gold); font-size: 12px; }
.motion-replay:hover { color: var(--paper); background: var(--green); }
.motion-replay span { font-size: 18px; }
.motion-replay[aria-pressed="false"] span { opacity: .35; }
.pub-entry { display: none; position: absolute; z-index: 3; inset: 0; align-content: center; justify-items: center; gap: 8px; color: var(--gold); background: radial-gradient(ellipse at center, #214b3a, var(--green-deep) 80%); pointer-events: none; }
.entry-lantern { width: 56px; height: 70px; filter: drop-shadow(0 0 12px #e4b35a30); }
.entry-flame { fill: #ffe0a5; }
.pub-entry span { font-size: 10px; letter-spacing: .25em; text-transform: uppercase; }
.entry-active .pub-entry { display: grid; }
.entry-leaving .pub-entry { opacity: 0; transition: opacity 220ms var(--ease-out); }
.category-link { transition: color 450ms var(--ease-state), background-color 450ms var(--ease-state), border-color 450ms var(--ease-state), box-shadow 450ms var(--ease-state); }
.category-link:active { box-shadow: inset 0 0 0 2px #d3b77870; }
.ingredients-details summary span { transition: transform 450ms var(--ease-state); }
.menu-controls { transition: background-color 450ms var(--ease-state), box-shadow 450ms var(--ease-state); }
@media (prefers-reduced-motion: no-preference) {
    .entry-active .entry-line { animation: trace-draw 450ms var(--ease-out) both; }
    .entry-active .entry-flame { animation: lamp-warm 400ms var(--ease-out) both; }
    .section-arrive::after { content: ''; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 2px #ad865140; pointer-events: none; animation: section-settle 900ms ease-in-out both; }
    .brand-glow { animation: lamp-breathe 6s ease-in-out infinite; animation-play-state: paused; }
    .lantern-alive .brand-glow { animation-play-state: running; }
    .hero-enter .brand-face { animation: sign-arrive 1400ms var(--ease-out) both; }
    .hero-enter .sign-trace { animation: trace-fade 1400ms ease both; }
    .hero-enter .sign-trace path { animation: trace-draw 1150ms var(--ease-out) both; }
    .hero-enter .header-place, .hero-enter .masthead h1 { animation: welcome-arrive 1100ms 240ms var(--ease-state) both; }
}
@media (min-width: 900px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    .hero-depth .brand-face { transform: rotateX(var(--sign-rx, 0deg)) rotateY(var(--sign-ry, 0deg)); transition: transform 800ms var(--ease-out); }
    .hero-depth .hero-light { transform: translate(var(--light-x, 0px), var(--light-y, 0px)); transition: transform 800ms var(--ease-out), opacity 1200ms var(--ease-state); }
}
@keyframes sign-arrive { 0% { opacity: .15; transform: translateY(24px) rotateX(-10deg) scale(.94); } 65% { opacity: 1; transform: translateY(-3px) rotateX(2deg) scale(1.01); } 100% { opacity: 1; transform: none; } }
@keyframes welcome-arrive { from { opacity: .6; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes lamp-warm { from { opacity: .1; } to { opacity: 1; } }
@keyframes trace-draw { from { stroke-dasharray: 1; stroke-dashoffset: 1; } to { stroke-dasharray: 1; stroke-dashoffset: 0; } }
@keyframes trace-fade { 0% { opacity: 0; } 20%, 65% { opacity: .7; } 100% { opacity: 0; } }
@keyframes lamp-breathe { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
@keyframes section-settle { 0%, 100% { opacity: 0; } 20%, 60% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .pub-entry { display: none !important; }
    .brand-face, .hero-light, .section-illustration { transform: none !important; }
    .sign-trace { display: none; }
    .hero-enter .brand-face, .hero-enter .header-place, .hero-enter .masthead h1, .hero-enter .brand-glow, .hero-enter .hero-light { opacity: 1; animation: none; }
    .section-arrive::after { content: none; }
}
