/* Parisian ivory & ink theme, loaded last over style.css / experiences.css / travel.css. Remove the <link> to revert. */
@font-face{font-family:Garamond;src:url('/fonts/serif.ttf') format('truetype');font-weight:300 700;font-display:swap}
@font-face{font-family:Garamond;src:url('/fonts/serif-italic.ttf') format('truetype');font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:Jost;src:url('/fonts/sans.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--ivory:#f6f1e9;--paper:#fbf8f3;--ink:#1a1714;--soft:#6f675e;--hair:#d9d0c3;--camel:#a5774b;--night:var(--ivory);--cream:var(--ink);--accent:color-mix(in srgb,var(--color,var(--camel)) 42%,var(--ink))}
html{color-scheme:light}
body{background:var(--ivory);color:var(--ink);font:300 18px/1.55 Jost,'Helvetica Neue',Arial,sans-serif;letter-spacing:.01em}
body:before{display:none}
h1,h2,h3{font-family:Garamond,Georgia,serif;font-weight:400;color:var(--ink);text-shadow:none;letter-spacing:0;text-transform:none}
h1{font-size:clamp(42px,9vw,60px);line-height:1}
h2{font-size:30px;line-height:1.1}
h3{font-size:23px}
a{color:var(--ink)}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--ink)}
.eyebrow,.small,.muted,.field>span,.rank,.station-steps,.kiosk-settings{color:var(--soft)}
.eyebrow,.tag,.hero-kicker,.subtitle,.nav a,.button,.admin-nav button,.experience-tab,.head,.footer{font-family:Jost,sans-serif;text-transform:uppercase;letter-spacing:.2em}
.eyebrow{font-size:12px;font-weight:400}
.small{font-size:15px}
.cyan,.green,.yellow,.amber,.pink,.purple{color:var(--ink)}
.connection{color:#9b3b2e;font-size:14px}

/* Header, nav, footer */
.head{background:var(--ivory);border-bottom:1px solid var(--ink);box-shadow:none;color:var(--ink);font-size:12px;font-weight:400}
.head .brand{color:var(--ink);font-size:14px;font-weight:500;letter-spacing:.32em}
.head time{font-size:12px}
.nav{background:var(--ivory);border-top:1px solid var(--ink);box-shadow:none;gap:0}
.nav a{background:none;border:0;border-top:2px solid transparent;color:var(--soft);font-size:11px;padding:10px 1px}
.nav .number{font-size:10px}
.nav a.active{background:none;color:var(--ink);border-top-color:var(--ink)}
.footer{border-top:1px solid var(--hair);color:var(--soft);font-size:11px}
.footer a{color:var(--ink)}

/* Sections, rules, panels */
.section{border-top:1px solid var(--hair)}
.stripe{height:1px;background:var(--ink);margin:28px 0}
.info,.prompt-card{background:var(--paper);border-left:2px solid var(--camel);color:var(--ink)}
.row{border-bottom-color:var(--hair)}
.row b,.score strong,.timer,.reward .price,.stats strong,.bar-score strong{font-family:Garamond,Georgia,serif;font-weight:500;color:var(--ink)}
.tag{background:none;border:1px solid var(--accent);color:var(--accent);font-size:11px}
.progress,.bar{background:var(--hair)}
.progress i,.bar i{background:var(--ink)}

/* Buttons & fields */
.button{background:transparent;border:1px solid var(--ink);color:var(--ink);box-shadow:none;font-size:13px;font-weight:400;padding:15px 14px}
.button.solid{background:var(--ink);border-color:var(--ink);color:var(--ivory)}
.button.plain{background:transparent;border-color:var(--hair);color:var(--ink)}
.button:active,.tile:active{transform:none;filter:none;opacity:.7}
input,textarea,select{background:var(--paper);color:var(--ink);border:1px solid var(--hair);border-bottom:1px solid var(--ink);font-family:Jost,sans-serif;font-weight:300}
input::placeholder,textarea::placeholder{color:#a69d92}
input.code{color:var(--ink);border-bottom-color:var(--ink)}
label.check input{accent-color:var(--ink)}
dialog{background:var(--paper);color:var(--ink);border:1px solid var(--ink)}
dialog::backdrop{background:#1a171466}
dialog h2{color:var(--ink)}
#toast{background:var(--ink);color:var(--ivory);box-shadow:none;font-size:14px;letter-spacing:.05em}

/* Welcome hero */
.hero.travel-hero{background:var(--paper);border:1px solid var(--ink);box-shadow:none;padding:34px 26px 0;min-height:440px}
.hero.travel-hero:after{display:none}
.hero-kicker{color:var(--soft);font-size:11px}
.travel-hero h1{font-size:clamp(68px,16vw,118px);line-height:.88;letter-spacing:.06em;font-weight:400;color:var(--ink);text-shadow:none}
.travel-hero h1 em{font-style:italic;color:var(--camel)}
.hero-dot{color:var(--ink)}
.travel-hero .subtitle{color:var(--ink);font-size:11px}
.hero-stamp{background:var(--paper);border:1px solid var(--ink);color:var(--ink);font-family:Garamond,Georgia,serif;font-style:italic;font-size:38px;transform:none}
.hero-stamp small{font-family:Jost,sans-serif;font-style:normal;font-size:10px;letter-spacing:.2em}
.event-date{background:none;border:0;border-bottom:1px solid var(--ink);padding:0 0 2px;font-size:13px;letter-spacing:.2em}
.join-panel{background:var(--paper);border:1px solid var(--hair);box-shadow:none}
.score{background:var(--paper);border:1px solid var(--hair);box-shadow:none}
.score span{color:var(--soft)}

/* Tiles, quiz answers, teams */
.tile,.answer{background:var(--paper);color:var(--ink);border:1px solid var(--hair)}
.tile .top,.answer .top{background:none;color:var(--accent);border-bottom:1px solid var(--hair);font-family:Jost,sans-serif;font-size:12px;letter-spacing:.2em}
.tile b{font-family:Garamond,Georgia,serif;font-weight:500}
.answer .text{font-family:Garamond,Georgia,serif}
.answer.dim{background:var(--ivory);color:var(--soft)}
.answer.correct{background:var(--ink);color:var(--ivory)}
.answer.correct .top{background:none;color:var(--ivory)}
.answer.wrong .top{background:none;color:#9b3b2e}
.cats .cat,.cat{color:var(--accent)}

/* Admin & experiences */
.admin-nav button,.experience-tab{min-height:44px;display:inline-flex;align-items:center;background:none;border:1px solid var(--hair);color:var(--soft);font-size:12px}
.admin-nav button.active,.experience-tab.selected{background:var(--ink);border-color:var(--ink);color:var(--ivory)}
.editor,.capture-microphones,.memory-card{border-color:var(--hair);background:var(--paper)}
.stats div{border-top:1px solid var(--ink)}
.stats span{color:var(--soft)}
.ticket{background:var(--paper);border:1px solid var(--ink)}
.ticket strong{color:var(--ink)}
.memory-grid figcaption,.gallery-tv figcaption{background:var(--paper);color:var(--soft)}
.postcard{color:var(--ink);font-family:Garamond,Georgia,serif;font-style:italic}
.capture-placeholder{color:var(--ink)}
.bar-drink{background:var(--paper);color:var(--ink);border:1px solid var(--ink);box-shadow:none}
.bar-drink span{color:var(--camel)}
.bar-undo{background:var(--ink);color:var(--ivory);border-top:0}
.bar-drink-row{border-bottom-color:var(--hair)}
.kiosk-head{background:var(--ivory);border-bottom:1px solid var(--ink);box-shadow:none;color:var(--ink)}
.kiosk-head strong{color:var(--ink)}
.kiosk-stage{border:1px solid var(--ink);box-shadow:none}
.booth-count{font-family:Garamond,Georgia,serif;color:var(--ivory);text-shadow:0 2px 30px #0008}
.kiosk-steps{color:var(--ink)}
.kiosk-note{color:var(--camel)}
#paper-alert{background:var(--camel);color:var(--paper)}
#paper-alert[data-paper="empty"]{background:#9b3b2e}

/* Leftovers from travel.css */
.tile,dialog,#toast{box-shadow:none}
#toast{border:0}
.tile .inside{color:var(--ink)}
.reward{background:var(--paper);border:1px solid var(--hair)}
.mono-link{color:var(--ink)}
.kiosk-stage{background:var(--ink)}

/* TV photo wall + timeline (inline styles in tv.js; `body` prefix outranks them) */
body .projector-wall__page,body .projector-wall__empty{color:var(--soft)}
body .projector-photo,body .projector-story{background:var(--paper);border:1px solid var(--hair);border-top:2px solid var(--ink)}
body .projector-photo img{background:var(--ivory)}
body .projector-photo figcaption{color:var(--ink)}
body .projector-timeline__prompt{background:var(--paper);border-left:2px solid var(--camel)}
body .projector-story__when{color:var(--camel);font-family:Jost,sans-serif;letter-spacing:.15em}
body .projector-story h2{color:var(--ink)}
/* Jost's ascenders/descenders overflow the old 1.0–1.08 line-heights tuned for the pixel font. */
body .projector-story p{line-height:1.4}
body .projector-story h2{line-height:1.15}
/* Casino: European roulette */
.casino-balance{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 14px}.casino-balance div{background:var(--paper);border:1px solid var(--hair);padding:12px}.casino-balance strong{display:block;font-family:Garamond,Georgia,serif;font-size:30px;font-weight:500}.casino-balance span{font:11px Jost,sans-serif;letter-spacing:.14em;color:var(--soft)}
.casino-layout{display:grid;gap:14px}.casino-feed ul{max-height:168px}@media(min-width:900px){.casino-layout{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:'top feed' 'board feed';align-items:start}.casino-top{grid-area:top}.casino-board{grid-area:board}.casino-feed{grid-area:feed;position:sticky;top:12px}.casino-feed ul{max-height:70vh}}
.roulette .hub-number{font:32px Garamond,Georgia,serif;text-anchor:middle;dominant-baseline:central}.hub-number.red{fill:#a8322a}.hub-number.black{fill:var(--ink)}.hub-number.green{fill:#2f6b4a}
.casino-status{font:13px Jost,sans-serif;letter-spacing:.12em;text-align:center;margin:6px 0 10px}.casino-status b{font-size:18px}
.roulette{width:min(280px,80vw);margin:0 auto}.roulette svg{display:block;width:100%;height:auto;overflow:visible}
.rotor{transform-origin:0 0;transform-box:view-box}.rotor.spinning{animation-name:roulette-spin;animation-timing-function:cubic-bezier(.12,.62,.08,1);animation-fill-mode:both}
@keyframes roulette-spin{from{transform:rotate(var(--from))}to{transform:rotate(var(--to))}}
@media(prefers-reduced-motion:reduce){.rotor.spinning{animation-duration:1ms!important}}
.pocket{stroke:var(--paper);stroke-width:.6}.pocket.red{fill:#a8322a}.pocket.black{fill:var(--ink)}.pocket.green{fill:#2f6b4a}
.roulette text{fill:#fff;font:8px Jost,sans-serif;text-anchor:middle;dominant-baseline:central}.hub{fill:var(--paper);stroke:var(--camel);stroke-width:1}.pointer{fill:var(--camel)}
.history{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:12px 0}
.ball{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:50%;color:#fff;font:12px Jost,sans-serif;padding:0 4px}.ball.red{background:#a8322a}.ball.black{background:var(--ink)}.ball.green{background:#2f6b4a}
.chips{display:flex;gap:6px;justify-content:center;margin:12px 0 6px}.chip{min-width:48px;min-height:48px;border-radius:50%;border:1px dashed var(--ink);background:var(--paper);font:13px Jost,sans-serif;color:var(--ink)}.chip.selected{background:var(--ink);color:var(--paper);border-style:solid}
.table{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:6px}.outside-row.six{grid-template-columns:repeat(3,1fr)}
.bet{position:relative;min-height:44px;border:0;color:#fff;font:15px Jost,sans-serif;background:var(--ink)}.bet.red{background:#a8322a}.bet.green{background:#2f6b4a}.bet.zero{grid-column:1/-1}
.bet.outside{background:var(--paper);color:var(--ink);border:1px solid var(--hair);font-size:12px;letter-spacing:.08em}.bet.outside.red{background:#a8322a;color:#fff}.bet.outside.black{background:var(--ink);color:#fff}
.bet:disabled{opacity:.55}.stake{position:absolute;top:2px;right:3px;background:var(--camel);color:#fff;border-radius:9px;padding:0 5px;font-size:10px}
.casino-feed{background:var(--paper);border:1px solid var(--hair);padding:12px}.casino-feed h2{margin:0 0 8px}.casino-feed ul,.casino-feed-admin{list-style:none;margin:0;padding:0;overflow:auto}.casino-feed-admin{max-height:420px}
.casino-feed li,.casino-feed-admin li{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid var(--hair);font-size:14px;overflow-wrap:anywhere}.casino-feed .won,.casino-feed-admin .won{color:#2f6b4a;font-weight:600}.casino-feed .lost,.casino-feed-admin .lost{color:#a8322a}
.bingo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:14px 0}
.bingo-square{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-height:104px;padding:10px 8px;background:var(--paper);border:1px solid var(--hair);color:var(--ink);font:inherit;font-size:14px;line-height:1.25;text-align:left;overflow-wrap:anywhere}
.bingo-square small,.bingo-square b{font-family:Jost,sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.bingo-square.waiting{border-style:dashed;border-color:var(--camel)}
.bingo-square.done{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.arcade-station:not([data-screen="scan"]) .kiosk-stage{display:none}
.arcade-station:not([data-screen="scan"]) .kiosk-body{grid-template-columns:1fr;max-width:900px;margin:0 auto;width:100%}
.arcade-games{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.arcade-game{display:flex;flex-direction:column;gap:8px;min-height:120px;justify-content:center;padding:18px;background:var(--paper);border:1px solid var(--ink);color:var(--ink);font:inherit;text-align:left}
.arcade-game strong{font-family:Garamond,Georgia,serif;font-size:28px;font-weight:500}
.arcade-game span{font-family:Jost,sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.arcade-clock{font-family:Garamond,Georgia,serif;font-size:72px;text-align:center;margin:16px 0;font-variant-numeric:tabular-nums}
.arcade-pad{display:block;width:100%;min-height:42vh;border:0;background:var(--ink);color:var(--ivory);font:inherit;font-family:Jost,sans-serif;font-size:28px;letter-spacing:.2em;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.arcade-pad.wait{background:#b23a3a}.arcade-pad.go{background:#2f8f4e}
.arcade-simon{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:520px;margin:0 auto}
.arcade-simon button{aspect-ratio:1;border:0;background:var(--pad);opacity:.45;touch-action:manipulation}
.arcade-simon button.lit,.arcade-simon button:active:not(:disabled){opacity:1}
.arcade-simon button:disabled{cursor:default;opacity:.45}.arcade-simon button.lit:disabled{opacity:1}
.arcade-points{font-family:Garamond,Georgia,serif;font-size:40px;margin:6px 0 16px}
.arcade-leaders{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 8px}
.arcade-leaders h3{font-size:20px;margin:0 0 4px}.arcade-leaders ol{margin:0;padding-left:22px;font-size:18px}.arcade-leaders li span{color:var(--soft)}
.welcome-camera{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--ink);margin:14px 0 8px}
.hero.travel-hero{min-height:0;padding-bottom:28px}
.booth-points{font-family:Garamond,Georgia,serif;font-size:40px;margin:4px 0 10px}
.station-qr{display:block;width:220px;height:220px;background:#fff;margin:12px 0 6px;image-rendering:pixelated}
