:root {
    --ink: #202a26;
    --paper: #f3efe5;
    --paper-deep: #e9e3d7;
    --terracotta: #b76345;
    --terracotta-dark: #91462f;
    --sage: #849287;
    --line: rgba(32, 42, 38, .16);
    --white: #fffdf8;
    --max: 1240px;
    --radius: 3px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: Inter, "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input { font: inherit; }
.skip-link { position: fixed; top: -80px; left: 20px; z-index: 1000; background: var(--ink); color: var(--paper); padding: 12px 18px; }
.skip-link:focus { top: 16px; }
:focus-visible { outline: 3px solid var(--terracotta); outline-offset: 3px; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(243, 239, 229, .9);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--line);
}
.nav-shell { max-width: var(--max); height: 80px; margin: auto; padding: 0 26px; display: flex; align-items: center; gap: 48px; }
.brand { width: 104px; flex: 0 0 auto; }
.brand img { width: 100%; height: auto; }
.site-nav { display: flex; align-items: center; gap: 32px; margin-left: auto; }
.site-nav a, .nav-actions a { text-decoration: none; font-size: 13px; font-weight: 650; }
.site-nav a { position: relative; padding: 30px 0; }
.site-nav .live-dot { width: 7px; height: 7px; margin-left: 6px; display: inline-block; border-radius: 50%; background: var(--terracotta); box-shadow: 0 0 0 4px rgba(183, 99, 69, .12); }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 22px; height: 2px; background: var(--terracotta); transition: right .25s ease; }
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { right: 0; }
.nav-actions { display: flex; align-items: center; gap: 14px; }
.language-switcher { position: relative; }
.language-switcher summary { display: flex; gap: 7px; align-items: center; cursor: pointer; list-style: none; font-size: 12px; font-weight: 750; padding: 10px; }
.language-switcher summary::-webkit-details-marker { display: none; }
.language-menu { position: absolute; top: 46px; right: 0; width: 152px; padding: 7px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 18px 50px rgba(32,42,38,.14); }
.language-menu a { display: block; padding: 10px 12px; }
.language-menu a:hover, .language-menu a[aria-current="true"] { background: var(--paper-deep); }
.menu-button { display: none; }

.button { min-height: 48px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; border: 1px solid transparent; border-radius: var(--radius); text-decoration: none; font-size: 13px; font-weight: 750; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button img { width: 18px; }
.button-small { min-height: 42px; padding: 0 16px; }
.button-dark { background: var(--ink); color: var(--paper); }
.button-primary { background: var(--terracotta); color: var(--white); }
.button-primary img, .button-paper img { filter: brightness(0) invert(1); }
.button-paper { background: var(--paper); color: var(--ink); }
.button-paper img { filter: none; }
.text-link { font-size: 13px; font-weight: 750; text-underline-offset: 5px; }
.button-row { display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.eyebrow { margin: 0 0 24px; display: flex; align-items: center; gap: 10px; font-size: 11px; letter-spacing: .15em; font-weight: 800; }
.eyebrow span { width: 27px; height: 1px; background: var(--terracotta); }
.eyebrow.light { color: var(--paper); }
.eyebrow.light span { background: var(--paper); }

.hero { min-height: 710px; max-width: var(--max); margin: auto; padding: 80px 26px 90px; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 70px; overflow: hidden; }
.hero h1, .inner-hero h1, .legal-hero h1 { margin: 0; font-size: clamp(58px, 6.2vw, 98px); line-height: .93; letter-spacing: -.065em; font-weight: 750; }
.hero h1 em { color: var(--terracotta); font-style: normal; }
.hero-lead { max-width: 580px; margin: 32px 0; font-size: clamp(18px, 1.6vw, 23px); line-height: 1.5; color: rgba(32,42,38,.75); }
.live-note { margin-top: 44px; display: flex; align-items: center; gap: 9px; font-size: 12px; }
.live-note i { width: 8px; height: 8px; border-radius: 50%; background: #4f8b68; box-shadow: 0 0 0 5px rgba(79,139,104,.14); }
.live-note span { color: rgba(32,42,38,.58); }
.hero-product { position: relative; min-width: 0; }
.hero-emblem { position: absolute; width: 360px; right: -180px; top: -150px; opacity: .045; }
.map-window { position: relative; width: min(100%, 520px); margin-left: auto; background: var(--white); border: 1px solid var(--line); box-shadow: 20px 28px 0 var(--paper-deep); }
.map-topline { height: 54px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.map-topline img { width: 19px; }
.map-canvas { position: relative; height: 315px; overflow: hidden; background-color: #dfe4dc; background-image: linear-gradient(24deg, transparent 47%, rgba(32,42,38,.08) 48%, rgba(32,42,38,.08) 49%, transparent 50%), linear-gradient(113deg, transparent 47%, rgba(32,42,38,.08) 48%, rgba(32,42,38,.08) 49%, transparent 50%); background-size: 86px 86px, 110px 110px; }
.water { position: absolute; height: 145%; width: 72px; top: -20%; background: #aebdc0; transform: rotate(21deg); }
.water-a { left: 43%; }.water-b { left: 58%; width: 20px; }
.road { position: absolute; display: block; height: 2px; width: 70%; background: rgba(255,255,255,.75); transform: rotate(-17deg); }
.road-a { left: -10%; top: 38%; }.road-b { right: -12%; top: 66%; transform: rotate(12deg); }.road-c { left: 12%; top: 83%; transform: rotate(-4deg); }
.pin { position: absolute; z-index: 3; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50% 50% 50% 3px; transform: rotate(-45deg); background: var(--terracotta); color: var(--white); box-shadow: 0 7px 18px rgba(32,42,38,.18); }
.pin img { width: 18px; transform: rotate(45deg); filter: brightness(0) invert(1); }
.pin-a { left: 20%; top: 25%; }.pin-b { right: 21%; top: 17%; background: var(--ink); }.pin-c { left: 34%; bottom: 17%; }.pin-d { right: 10%; bottom: 24%; background: var(--ink); }
.map-city { position: absolute; left: 18px; bottom: 16px; display: flex; flex-direction: column; padding: 10px 12px; background: rgba(255,253,248,.88); backdrop-filter: blur(8px); font-size: 11px; }
.map-city span { color: rgba(32,42,38,.6); margin-top: 3px; }
.event-drawer { padding: 16px 18px 10px; }
.event-drawer > p { margin: 0 0 8px; font-size: 10px; letter-spacing: .12em; font-weight: 800; text-transform: uppercase; }
.mini-event { min-height: 64px; display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 11px; border-top: 1px solid var(--line); }
.mini-icon { width: 32px; height: 32px; display: grid; place-items: center; background: var(--paper); }
.mini-icon img { width: 17px; }.mini-event div { display: flex; flex-direction: column; gap: 3px; }.mini-event small { font-size: 9px; color: rgba(32,42,38,.58); }.mini-event strong { font-size: 12px; }.mini-event > b { font-size: 11px; }

.stats-strip { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); }
.stats-strip div { min-height: 140px; padding: 30px 7vw; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid var(--line); }
.stats-strip div:last-child { border: 0; }.stats-strip strong { font-size: 32px; letter-spacing: -.04em; }.stats-strip span { margin-top: 6px; font-size: 12px; color: rgba(32,42,38,.65); }
.section-shell { max-width: var(--max); margin: auto; padding: 110px 26px; }
.section-heading { max-width: 760px; margin-bottom: 56px; }.section-heading h2, .city-heading h2, .organizer-copy h2, .final-cta h2, .pricing-note h2 { margin: 0; font-size: clamp(40px, 4.7vw, 68px); line-height: 1; letter-spacing: -.055em; }.section-heading > p:last-child { max-width: 620px; margin: 24px 0 0; font-size: 18px; line-height: 1.55; color: rgba(32,42,38,.68); }
.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.feature-card { min-height: 300px; padding: 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,253,248,.35); }
.feature-top { display: flex; justify-content: space-between; align-items: flex-start; }.feature-top span { width: 52px; height: 52px; display: grid; place-items: center; background: var(--terracotta); color: var(--white); }.feature-top img { width: 24px; filter: brightness(0) invert(1); }.feature-top small { color: rgba(32,42,38,.45); font-family: ui-monospace, monospace; }.feature-card h3 { margin: 62px 0 13px; font-size: 24px; letter-spacing: -.03em; }.feature-card p { max-width: 420px; margin: 0; line-height: 1.6; color: rgba(32,42,38,.65); }

.city-section { background: var(--ink); color: var(--paper); }.city-heading { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: 60px; margin-bottom: 55px; }.city-heading > p { margin: 0 0 4px; max-width: 500px; color: rgba(243,239,229,.66); line-height: 1.65; }.city-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 34px; }.city-card { background: var(--paper); color: var(--ink); }.city-card-visual { position: relative; height: 210px; overflow: hidden; padding: 20px; background: var(--terracotta); }.city-card-visual.visual-2 { background: #738279; }.city-card-visual.visual-3 { background: #8a674f; }.city-card-visual span { font: 700 11px ui-monospace, monospace; color: var(--paper); }.city-card-visual img { position: absolute; width: 210px; opacity: .16; right: -35px; bottom: -70px; }.city-card-body { padding: 24px; }.city-card-body small { font: 750 10px ui-monospace, monospace; letter-spacing: .12em; color: var(--terracotta); }.city-card-body h3 { min-height: 58px; margin: 13px 0 28px; font-size: 22px; line-height: 1.25; letter-spacing: -.025em; }.city-card-body > div { padding-top: 15px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); font-size: 11px; }.city-card-body span { display: flex; align-items: center; gap: 6px; }.city-card-body img { width: 15px; }

.steps-grid { border-top: 1px solid var(--line); }.step { min-height: 150px; padding: 30px 0; display: grid; grid-template-columns: 150px 1fr; align-items: center; border-bottom: 1px solid var(--line); }.step > span { font: 700 12px ui-monospace, monospace; color: var(--terracotta); }.step div { display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: center; }.step h3 { margin: 0; font-size: 28px; letter-spacing: -.035em; }.step p { margin: 0; max-width: 520px; color: rgba(32,42,38,.65); line-height: 1.6; }
.organizer-section { min-height: 620px; display: grid; grid-template-columns: 1fr 1fr; background: var(--terracotta); color: var(--paper); overflow: hidden; }.organizer-art { position: relative; min-height: 520px; background: var(--paper-deep); overflow: hidden; }.organizer-art > img { position: absolute; width: 62%; left: 17%; top: 17%; opacity: .12; }.poster { position: absolute; width: 185px; height: 235px; padding: 22px; font-size: 30px; line-height: .92; letter-spacing: -.05em; font-weight: 800; box-shadow: 14px 17px 0 rgba(32,42,38,.13); }.poster-a { left: 18%; top: 19%; background: var(--ink); color: var(--paper); transform: rotate(-7deg); }.poster-b { right: 17%; bottom: 14%; background: var(--terracotta); color: var(--paper); transform: rotate(8deg); }.organizer-copy { padding: 85px max(40px, 7vw); align-self: center; }.organizer-copy h2 { max-width: 570px; }.organizer-copy > p:not(.eyebrow) { max-width: 550px; margin: 27px 0 35px; font-size: 18px; line-height: 1.6; color: rgba(243,239,229,.78); }
.final-cta { display: grid; grid-template-columns: 90px 1fr auto; gap: 38px; align-items: center; }.final-cta > img { width: 74px; opacity: .2; }.final-cta h2 { font-size: clamp(34px, 4vw, 57px); }.final-cta p { max-width: 640px; color: rgba(32,42,38,.65); line-height: 1.6; }

.inner-hero, .legal-hero { max-width: var(--max); margin: auto; padding: 115px 26px 75px; text-align: center; }.inner-hero .eyebrow, .legal-hero .eyebrow { justify-content: center; }.inner-hero h1, .legal-hero h1 { max-width: 980px; margin: auto; font-size: clamp(55px, 7vw, 92px); }.inner-hero > p:not(.eyebrow), .legal-hero > p:not(.eyebrow) { max-width: 720px; margin: 28px auto 0; font-size: 19px; line-height: 1.6; color: rgba(32,42,38,.68); }.beta-badge { margin-top: 30px; display: inline-block; padding: 8px 11px; background: var(--terracotta); color: var(--white); font: 750 10px ui-monospace, monospace; letter-spacing: .12em; }
.pricing-grid { padding-top: 25px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }.price-card { position: relative; min-height: 610px; padding: 34px; display: flex; flex-direction: column; border: 1px solid var(--line); background: rgba(255,253,248,.45); }.price-card.featured { background: var(--terracotta); color: var(--white); border-color: var(--terracotta); transform: translateY(-14px); }.price-card > small { font: 700 11px ui-monospace, monospace; opacity: .55; }.price-card h2 { margin: 46px 0 8px; font-size: 28px; }.price-card > p { min-height: 48px; margin: 0; opacity: .7; line-height: 1.5; }.price { display: block; margin: 36px 0; font-size: clamp(38px, 4vw, 54px); letter-spacing: -.055em; }.price-card ul { margin: 0 0 34px; padding: 27px 0 0; border-top: 1px solid currentColor; border-color: rgba(32,42,38,.14); list-style: none; }.price-card.featured ul { border-color: rgba(255,255,255,.25); }.price-card li { display: flex; gap: 9px; margin: 14px 0; font-size: 13px; line-height: 1.4; }.price-card li img { width: 17px; }.price-card.featured li img { filter: brightness(0) invert(1); }.price-card .button { margin-top: auto; }.plan-marker { position: absolute; top: 23px; right: 23px; padding: 7px 9px; background: var(--paper); color: var(--ink); font: 750 9px ui-monospace, monospace; }.pricing-note { padding-top: 20px; display: grid; grid-template-columns: 55px 1fr; gap: 28px; align-items: start; }.pricing-note > img { width: 48px; padding: 12px; background: var(--ink); filter: brightness(0) invert(1); }.pricing-note h2 { font-size: 32px; }.pricing-note p { max-width: 790px; color: rgba(32,42,38,.68); line-height: 1.65; }.faq-section { padding-top: 25px; }.faq-list { border-top: 1px solid var(--line); }.faq-list details { border-bottom: 1px solid var(--line); }.faq-list summary { min-height: 84px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; font-size: 18px; font-weight: 700; }.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary span { font-size: 26px; font-weight: 300; transition: transform .2s; }.faq-list details[open] summary span { transform: rotate(45deg); }.faq-list p { max-width: 800px; margin: -5px 0 26px; line-height: 1.65; color: rgba(32,42,38,.66); }

.legal-hero { border-bottom: 1px solid var(--line); }.legal-hero time { display: block; margin-top: 24px; font: 700 11px ui-monospace, monospace; color: var(--terracotta); }.legal-layout { padding-top: 70px; display: grid; grid-template-columns: 220px minmax(0, 760px); gap: 95px; justify-content: center; }.legal-layout aside { position: sticky; top: 118px; height: max-content; display: flex; flex-direction: column; gap: 13px; padding: 20px 0; border-top: 1px solid var(--ink); }.legal-layout aside strong { margin-bottom: 10px; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }.legal-layout aside a { width: max-content; color: rgba(32,42,38,.58); text-decoration: none; font-size: 13px; }.legal-layout aside a[aria-current="page"] { color: var(--terracotta); font-weight: 750; }.legal-copy section { margin-bottom: 56px; scroll-margin-top: 110px; }.legal-copy h2 { margin: 0 0 20px; font-size: 27px; letter-spacing: -.03em; }.legal-copy p { margin: 0 0 15px; font-size: 16px; line-height: 1.75; color: rgba(32,42,38,.72); }

.site-footer { background: var(--ink); color: var(--paper); }.footer-top { max-width: var(--max); margin: auto; padding: 75px 26px; display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 50px; }.footer-brand img { width: 130px; }.footer-brand p { margin-top: 23px; color: rgba(243,239,229,.58); }.footer-top > div:not(.footer-brand) { display: flex; flex-direction: column; gap: 12px; }.footer-top strong { margin-bottom: 8px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }.footer-top a { color: rgba(243,239,229,.64); text-decoration: none; font-size: 13px; }.footer-top a:hover { color: var(--paper); }.footer-bottom { max-width: var(--max); margin: auto; padding: 22px 26px; display: flex; justify-content: space-between; border-top: 1px solid rgba(243,239,229,.14); color: rgba(243,239,229,.45); font: 10px ui-monospace, monospace; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }.reveal.is-visible { opacity: 1; transform: none; }.delay-1 { transition-delay: .12s; }

@media (max-width: 980px) {
    .nav-shell { gap: 20px; }.site-nav { gap: 18px; }.site-nav a { font-size: 12px; }.nav-actions .button { display: none; }
    .hero { grid-template-columns: 1fr; padding-top: 65px; }.hero-text { max-width: 760px; }.hero-product { width: 100%; }.map-window { margin: 0 auto; }
    .city-heading { grid-template-columns: 1fr; gap: 25px; }.city-cards { grid-template-columns: 1fr 1fr; }.city-card:last-child { display: none; }
    .organizer-section { grid-template-columns: 1fr; }.organizer-art { min-height: 430px; }.organizer-copy { padding: 75px 8vw; }
    .final-cta { grid-template-columns: 70px 1fr; }.final-cta .button-row { grid-column: 2; }
    .pricing-grid { grid-template-columns: 1fr; max-width: 680px; }.price-card { min-height: auto; }.price-card.featured { transform: none; }.price-card > p { min-height: auto; }
    .legal-layout { grid-template-columns: 170px minmax(0, 680px); gap: 55px; }
}

@media (max-width: 720px) {
    .nav-shell { height: 68px; padding: 0 18px; }.brand { width: 88px; }.menu-button { margin-left: auto; width: 42px; height: 42px; padding: 10px; display: flex; flex-direction: column; justify-content: center; gap: 6px; border: 0; background: transparent; }.menu-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }.menu-button i { width: 21px; height: 2px; background: var(--ink); transition: transform .2s; }.menu-button[aria-expanded="true"] i:first-of-type { transform: translateY(4px) rotate(45deg); }.menu-button[aria-expanded="true"] i:last-of-type { transform: translateY(-4px) rotate(-45deg); }
    .site-nav { position: absolute; left: 0; right: 0; top: 68px; padding: 20px 18px 28px; display: none; flex-direction: column; align-items: stretch; gap: 0; background: var(--paper); border-bottom: 1px solid var(--line); }.site-nav.is-open { display: flex; }.site-nav a { padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 14px; }.site-nav a::after { display: none; }.nav-actions { margin-left: 0; }.language-menu { right: -5px; }
    .hero { min-height: 0; padding: 58px 18px 70px; gap: 60px; }.hero h1 { font-size: clamp(49px, 14vw, 68px); }.hero-lead { font-size: 17px; }.map-window { box-shadow: 10px 13px 0 var(--paper-deep); }.map-canvas { height: 270px; }.mini-event { grid-template-columns: 34px 1fr auto; }
    .stats-strip { grid-template-columns: 1fr; }.stats-strip div { min-height: 105px; padding: 22px 25px; border-right: 0; border-bottom: 1px solid var(--line); }.stats-strip div:last-child { border-bottom: 0; }
    .section-shell { padding: 78px 18px; }.section-heading { margin-bottom: 40px; }.section-heading h2, .city-heading h2, .organizer-copy h2 { font-size: 42px; }.section-heading > p:last-child { font-size: 16px; }
    .feature-grid { grid-template-columns: 1fr; }.feature-card { min-height: 260px; padding: 27px; }.feature-card h3 { margin-top: 44px; }
    .city-cards { grid-template-columns: 1fr; }.city-card:last-child { display: block; }.city-card-visual { height: 190px; }
    .step { grid-template-columns: 50px 1fr; align-items: start; }.step div { grid-template-columns: 1fr; gap: 10px; }.step h3 { font-size: 23px; }
    .organizer-art { min-height: 390px; }.poster { width: 145px; height: 190px; font-size: 24px; }.organizer-copy { padding: 70px 18px; }
    .final-cta { grid-template-columns: 1fr; gap: 20px; }.final-cta > img { width: 50px; }.final-cta .button-row { grid-column: 1; }
    .inner-hero, .legal-hero { padding: 80px 18px 55px; }.inner-hero h1, .legal-hero h1 { font-size: 51px; }.inner-hero > p:not(.eyebrow), .legal-hero > p:not(.eyebrow) { font-size: 16px; }
    .pricing-grid { padding-top: 20px; }.price-card { padding: 28px; }.pricing-note { grid-template-columns: 1fr; }.faq-list summary { font-size: 16px; }
    .legal-layout { grid-template-columns: 1fr; gap: 45px; padding-top: 45px; }.legal-layout aside { position: static; flex-direction: row; flex-wrap: wrap; gap: 16px; }.legal-layout aside strong { width: 100%; }.legal-copy h2 { font-size: 23px; }
    .footer-top { padding: 58px 18px; grid-template-columns: 1fr 1fr; }.footer-brand { grid-column: 1/-1; margin-bottom: 15px; }.footer-top > div:last-child { grid-column: 1/-1; }.footer-bottom { padding: 20px 18px; flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
    .reveal { opacity: 1; transform: none; }
}
