/* Shared by both klon versions: font, resets, video + booking mechanics */
@font-face { font-family: "Archivo"; src: url("/assets/fonts/archivo-latin.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2192; }
@font-face { font-family: "Archivo"; src: url("/assets/fonts/archivo-latin-ext.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-display: swap; unicode-range: U+0100-02BA; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: "Archivo", system-ui, sans-serif; font-size: 18px; line-height: 1.5; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, video { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, figure, ul, ol, dl, dd { margin: 0; padding: 0; }
ul, ol { list-style: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip { position: fixed; left: 16px; top: -80px; z-index: 40; background: var(--accent); color: #000; padding: 10px 16px; font-weight: 700; }
.skip:focus { top: 12px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.top { position: fixed; z-index: 20; inset: 0 0 auto 0; display: flex; align-items: center; justify-content: space-between; padding: 20px var(--gutter); pointer-events: none; }
.top a { pointer-events: auto; text-decoration: none; }
.brand { color: inherit; display: flex; align-items: center; gap: 10px; font-weight: 750; font-size: 16px; letter-spacing: -.01em; }
.brand img { width: 32px; height: 32px; }
.btn { display: inline-block; white-space: nowrap; font: inherit; font-weight: 700; font-size: 16px; line-height: 1; text-decoration: none; padding: 19px 28px; border: 0; border-radius: 3px; cursor: pointer; background: var(--accent); color: #0a0a0a; transition: transform .3s cubic-bezier(.16,1,.3,1), filter .2s; }
.btn:hover { transform: translateY(-2px); filter: brightness(1.08); }
.vid { position: relative; background: #000; overflow: hidden; }
.vid video { width: 100%; }
.vid--tall video { aspect-ratio: 9 / 16; object-fit: cover; }
.ai-tag { position: absolute; z-index: 1; left: 12px; top: 12px; background: #000; color: #fff; font-size: 12px; font-weight: 650; padding: 4px 8px; border-radius: 2px; }
.play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; cursor: pointer; background: none; transition: opacity .2s; }
.play::after { content: ""; position: absolute; left: 50%; top: 50%; width: 68px; height: 68px; margin: -34px 0 0 -34px; border-radius: 50%; background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%230a0a0a'/%3E%3C/svg%3E") center/38px no-repeat; transition: transform .3s cubic-bezier(.16,1,.3,1); }
.play:hover::after { transform: scale(1.1); }
.is-playing .play { opacity: 0; }
.sound { font: inherit; font-weight: 650; font-size: 15px; background: none; color: inherit; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.digits { display: inline-flex; overflow: hidden; font-variant-numeric: tabular-nums; }
.digit { display: inline-block; height: 1em; line-height: 1; overflow: hidden; }
.digit > span { display: block; transition: transform 1.6s cubic-bezier(.16,1,.3,1); }
.digit b { display: block; font-weight: inherit; height: 1em; }
.strike li span { position: relative; display: inline-block; }
.strike li span::after { content: ""; position: absolute; left: -.5%; right: -.5%; top: 54%; height: .075em; background: var(--accent); transform: scaleX(var(--p, 0)); transform-origin: left; }
.calendar iframe { display: block; width: 100%; height: 860px; border: 0; background: #fff; }
.foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 28px; padding: 26px var(--gutter) 34px; font-size: 14px; }
.foot nav { display: flex; gap: 22px; }
.foot a { color: inherit; text-decoration: none; }
.foot a:hover { text-decoration: underline; }
@media (max-width: 520px) { .brand span { display: none; } .btn { padding: 16px 22px; font-size: 15px; } }
@media (prefers-reduced-motion: reduce) { .digit > span, .btn, .play::after { transition: none; } }
