/* why not. : base commune à toutes les pages (générée avec les pages depuis Figma). */
@font-face { font-family: 'why not Texte'; src: url(/assets/fonts/whynot-texte.woff2) format('woff2'); font-weight: 300 800; font-display: swap; }
@font-face { font-family: 'why not Titre'; src: url(/assets/fonts/whynot-titre.woff2) format('woff2'); font-weight: 400 900; font-display: swap; }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
html, body { background: #0B0A0D; color: #F4F1EA; }
body { min-height: 100vh; min-height: 100dvh; -webkit-font-smoothing: antialiased; }
img, svg { display: block; }
button { font: inherit; color: inherit; background: none; border: 0; }

/* Calques Figma */
.wn { position: relative; box-sizing: border-box; margin: 0; min-width: 0; }
:where(a.wn) { display: block; color: inherit; text-decoration: none; }
.wn-texte { font-kerning: normal; overflow-wrap: normal; }
.wn-texte a { color: inherit; text-decoration: inherit; }
.wn-texte > span, .wn-texte > a { position: relative; top: 0.5px; }
.wn-svg > svg { position: absolute; left: 0; top: 0; overflow: visible; }
.wn-photo { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.wn-fond { position: absolute; inset: 0; pointer-events: none; }
.wn-trait { position: absolute; pointer-events: none; box-sizing: border-box; }
.wn-trait-lisse { position: absolute; pointer-events: none; overflow: visible; }
.wn-lignes { display: block; }

/* Éléments touchables : le seul retour est la pression (0,97, 120 ms), jamais le survol */
:where([data-action], a.wn) { cursor: pointer; -webkit-tap-highlight-color: transparent; }
[data-action]:focus-visible, a.wn:focus-visible { outline: 1px solid rgba(244, 241, 234, 0.6); outline-offset: 2px; }

/* Superpositions (toasts, dialogues, menu ⌘K) : centrées, comme réglé dans Figma */
.wn-couche { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; pointer-events: none; }
.wn-couche > .wn-sup { pointer-events: auto; }

/* Transitions entre pages (navigateurs qui le permettent) */
@view-transition { navigation: auto; }
::view-transition-group(root) { animation-duration: var(--vt-duree, 300ms); animation-timing-function: var(--vt-courbe, cubic-bezier(0, 0, 0.58, 1)); }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: var(--vt-duree, 300ms); animation-timing-function: var(--vt-courbe, cubic-bezier(0, 0, 0.58, 1)); }
html.vt-move-in ::view-transition-old(root) { animation: none; }
html.vt-move-in ::view-transition-new(root) { animation: var(--vt-duree, 300ms) var(--vt-courbe, ease-out) both vt-entre; }
html.vt-move-out ::view-transition-new(root) { animation: none; }
html.vt-move-out ::view-transition-old(root) { animation: var(--vt-duree, 300ms) var(--vt-courbe, ease-out) both vt-sort; z-index: 2; }
html.vt-push ::view-transition-new(root) { animation: var(--vt-duree, 300ms) var(--vt-courbe, ease-out) both vt-entre; }
html.vt-push ::view-transition-old(root) { animation: var(--vt-duree, 300ms) var(--vt-courbe, ease-out) both vt-pousse; }
@keyframes vt-entre { from { transform: translate(var(--vt-x, 0), var(--vt-y, 100%)); } }
@keyframes vt-sort { to { transform: translate(var(--vt-x2, 0), var(--vt-y2, 100%)); } }
@keyframes vt-pousse { to { transform: translate(var(--vt-x2, 0), var(--vt-y2, -100%)); } }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation-duration: 1ms !important; }
}
