/* ============================================================
   Innovation Day — stylesheet
   Θέατρο: μαύρο φόντο, κόκκινο βελούδο, χρυσά λαμπάκια.

   Δομή:
     1. Μεταβλητές   2. Βάση      3. Σκηνικό (φώτα, αυλαία, βελανίδι)
     4. Hero/κάδρο   5. Ενότητες  6. Κουτιά με σχήμα   7. Popup
     8. Χορογραφία
   ============================================================ */

/* ---------- 1. Μεταβλητές ---------- */
:root{
  --bg:        #08070A;
  --surface:   #14100F;
  --line:      #3A2E1E;
  --text:      #F4EBD8;
  --muted:     #A8977C;

  --gold:      #E9C46A;
  --gold-hi:   #FFF0C4;
  --gold-2:    #B8862F;
  --gold-dk:   #6E4E14;

  --velvet:    #8E1116;
  --velvet-hi: #C4262B;
  --velvet-dk: #3B0508;

  /* Πόσο βελούδο μένει ορατό σε κάθε πλευρά αφού ανοίξει η αυλαία. */
  --drape: clamp(24px, 9vw, 190px);

  --radius: 4px;
  --pad: clamp(20px, 5vw, 40px);
  --maxw: 940px;

  --ease:   cubic-bezier(.22,.61,.36,1);
  --stagey: cubic-bezier(.16,.84,.24,1);
  --drapey: cubic-bezier(.72,.02,.24,1);
}

/* ---------- 2. Βάση ---------- */
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* Ηχητική είσοδος: εμφανίζεται μόνο όταν ο browser μπλοκάρει autoplay. */
.sound-gate{
  position:fixed; inset:0; z-index:180; width:100%; height:100%; padding:24px;
  display:grid; place-items:center; border:0; cursor:pointer;
  color:#F7E7BE; background:transparent;
  animation:fadeIn .35s ease both;
}
.sound-gate[hidden]{ display:none; }
.sound-gate__card{
  width:min(88vw,360px); min-height:190px; padding:34px 26px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px;
  border:1px solid rgba(233,196,106,.68); border-radius:18px;
  background:linear-gradient(155deg,rgba(86,34,20,.30),rgba(15,5,8,.38));
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  box-shadow:inset 0 0 0 5px rgba(233,196,106,.04),0 22px 55px rgba(0,0,0,.42);
}
.sound-gate__note{
  display:grid; place-items:center; width:52px; height:52px; margin-bottom:7px;
  border-radius:50%; color:#3B1B0F; background:linear-gradient(135deg,#FFE39A,#D79C27);
  box-shadow:0 0 28px rgba(233,196,106,.38); font-size:1.45rem;
}
.sound-gate strong{ font-family:Georgia,'Times New Roman',serif; font-size:1.7rem; font-weight:600; }
.sound-gate small{ color:#D8BD86; font-size:.74rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.sound-gate.is-leaving{ animation:fadeOut .42s ease forwards; pointer-events:none; }
body.is-overture{ overflow:hidden; }
body.is-sound-gated{ overflow:hidden; }

/* Το περιεχόμενο πάντα μπροστά από την αυλαία, και ποτέ κάτω από το βελούδο. */
#app{
  position:relative; z-index:1;
  max-width:calc(var(--maxw) + 2 * var(--drape));
  margin:0 auto;
  padding:0 max(var(--pad), var(--drape));
}

.ic{ width:1em; height:1em; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- 3. Σκηνικό ---------- */

/* Φώτα αίθουσας: θερμές λίμνες φωτός, χωρίς κίνηση που κουράζει. */
.housel{
  position:fixed; inset:0; z-index:-3;
  background:
    radial-gradient(72vmax 46vmax at 50% -12%, rgba(196,38,43,.20), transparent 62%),
    radial-gradient(52vmax 40vmax at 6% 110%,  rgba(233,196,106,.11), transparent 64%),
    radial-gradient(52vmax 40vmax at 94% 110%, rgba(233,196,106,.09), transparent 64%),
    var(--bg);
  animation:breathe 11s ease-in-out infinite alternate;
}
@keyframes breathe{ from{ opacity:.86; } to{ opacity:1; } }

/* Ο προβολέας.
   ΣΗΜΑΝΤΙΚΟ: inset:0 — ακριβώς το viewport. Με οτιδήποτε άλλο, το ποσοστό
   της ακτινικής βαθμίδας μετριέται σε άλλο πλαίσιο από αυτό του δείκτη
   και ο φωτισμός πέφτει δίπλα από το ποντίκι αντί πάνω του. */
.spotlight{
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  --mx:50%; --my:22%;
  background:radial-gradient(34vmax 27vmax at var(--mx) var(--my),
    rgba(255,236,190,.15), rgba(233,196,106,.05) 44%, transparent 70%);
}

/* Σκόνη μέσα στη δέσμη */
.motes{ position:fixed; inset:0; z-index:-2; pointer-events:none; overflow:hidden; }
.mote{
  position:absolute; bottom:-12px;
  width:var(--sz); height:var(--sz); border-radius:50%;
  background:var(--gold); opacity:0;
  animation:float var(--dur) linear var(--del) infinite;
}
@keyframes float{
  0%   { opacity:0; transform:translate3d(0,0,0); }
  12%  { opacity:.55; }
  85%  { opacity:.35; }
  100% { opacity:0; transform:translate3d(var(--dx),-102vh,0); }
}

.grain{
  position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.26;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}

/* --- Η αυλαία --- */
.curtain{ position:fixed; inset:0; z-index:100; pointer-events:none; }
/* Αφού ανοίξει, πέφτει πίσω από το περιεχόμενο και μένει σαν κάδρο. */
.curtain.is-parked{ z-index:4; }

/* Το βελούδο: φωτορεαλιστική υφή πάνω σε CSS fallback, ώστε η αυλαία να
   παραμένει λειτουργική ακόμη κι αν αργήσει να φορτώσει το asset. */
.curtain__panel{
  position:absolute; top:0; bottom:0; width:52%;
  background:linear-gradient(180deg,#B92329 0%,var(--velvet) 38%,var(--velvet-dk) 100%);
  box-shadow:0 0 90px 22px rgba(0,0,0,.9);
  transition:transform 1.5s var(--drapey);
  will-change:transform;
  overflow:hidden;
}

/* Η ίδια φωτογραφική πλάκα καθρεφτίζεται δεξιά, οπότε ο φωτισμένος ποδόγυρος
   κοιτάζει πάντα προς το άνοιγμα της σκηνής. */
.curtain__panel::before{
  content:''; position:absolute; inset:-1.5%;
  background:url("velvet-curtain-realistic.webp") center / cover no-repeat;
  filter:saturate(.92) contrast(1.04) brightness(.84);
  transform:scale(1.03);
}
.curtain__panel--r::before{ transform:scale(-1.03,1.03); }
.curtain__panel::after{
  content:''; position:absolute; inset:0;
  background:
    var(--edge-lit),
    var(--edge-dark),
    linear-gradient(180deg,rgba(255,155,125,.08),transparent 22%,rgba(0,0,0,.4));
}

/* Η εσωτερική ακμή βλέπει τη σκηνή, άρα πιάνει το φως·
   η εξωτερική χάνεται στο σκοτάδι των παρασκηνίων.
   Η καμπύλη στο border-radius είναι το ύφασμα που μαζεύεται προς τα μέσα. */
.curtain__panel--l{
  left:0;
  border-radius:0 22% 15% 0 / 0 6% 5% 0;
  --edge-lit: linear-gradient(90deg, transparent 70%, rgba(255,138,110,.07) 94%, rgba(255,190,150,.13) 100%);
  --edge-dark:linear-gradient(90deg, rgba(0,0,0,.55), transparent 24%),
              radial-gradient(92% 26% at 100% 0%, rgba(255,170,140,.1), transparent 74%);
}
.curtain__panel--r{
  right:0;
  border-radius:22% 0 0 15% / 6% 0 0 5%;
  --edge-lit: linear-gradient(270deg, transparent 70%, rgba(255,138,110,.07) 94%, rgba(255,190,150,.13) 100%);
  --edge-dark:linear-gradient(270deg, rgba(0,0,0,.55), transparent 24%),
              radial-gradient(92% 26% at 0% 0%, rgba(255,170,140,.1), transparent 74%);
}

/* Ανοιχτή: κάθε φύλλο σταματά αφήνοντας ορατό ένα λωρίδι --drape. */
.curtain.is-open .curtain__panel--l{ transform:translate3d(calc(-100% + var(--drape)),0,0); }
.curtain.is-open .curtain__panel--r{ transform:translate3d(calc( 100% - var(--drape)),0,0); }

/* Το μπορντούρο από πάνω. Δεν ανοίγει ποτέ — κρατάει το κάδρο κλειστό. */
.curtain__valance{
  position:absolute; top:0; left:0; right:0;
  height:clamp(76px,12.5vw,170px);
  /* Το asset έχει πραγματική διαφάνεια: καμία μαύρη ορθογώνια πλάκα κάτω
     από τα drapes. Η ελαφριά υπερκάλυψη κόβει μόνο το κενό της πάνω άκρης. */
  background:url("velvet-valance-transparent-v2.webp") center bottom / 100% 114% no-repeat;
  filter:drop-shadow(0 16px 22px rgba(0,0,0,.42));
}

/* Θερμή λάμψη στην ένωση, λίγο πριν ανοίξει */
.curtain__seam{
  position:absolute; top:0; bottom:0; left:50%; width:2px; margin-left:-1px;
  background:linear-gradient(180deg,transparent,var(--gold) 22%,#fff 50%,var(--gold) 78%,transparent);
  box-shadow:0 0 34px 10px rgba(233,196,106,.6);
  opacity:0;
  transition:opacity .5s ease, transform .5s ease;
}
.curtain.is-lit  .curtain__seam{ opacity:1; transform:scaleX(2.4); }
.curtain.is-open .curtain__seam{ opacity:0; transition-duration:.7s; }

/* ---------- 4. Hero μέσα σε κάδρο με λαμπάκια ---------- */
.hero{
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(70px,12vh,110px) clamp(16px,4.5vw,44px) clamp(76px,11vh,104px);
  position:relative;
  --p:0;
}

.marquee{ position:absolute; inset:clamp(10px,2.4vh,30px) 0; pointer-events:none; }
.marquee__frame{
  position:absolute; inset:0;
  border:1px solid rgba(233,196,106,.5);
  border-radius:var(--radius);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.65), 0 0 60px -14px rgba(233,196,106,.4);
}
/* Τα λαμπάκια είναι τέσσερις στρώσεις μιας ακτινικής βαθμίδας — μία ανά πλευρά —
   και η κίνηση είναι απλή μετατόπιση κατά ένα πλακίδιο. Έτσι «τρέχουν» γύρω-γύρω. */
.marquee__bulbs{
  --gap: clamp(21px,4.2vw,32px);
  --bulb: radial-gradient(circle at 50% 50%,
            var(--gold-hi) 0 1.7px,
            var(--gold) 1.7px 3.5px,
            rgba(233,196,106,.45) 3.5px 5.2px,
            rgba(233,196,106,.13) 5.2px 8px,
            transparent 8.5px);
  position:absolute; inset:0;
  background-image:var(--bulb),var(--bulb),var(--bulb),var(--bulb);
  background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;
  background-position:0 0, 0 100%, 0 0, 100% 0;
  background-size:var(--gap) var(--gap);
  /* Η κίνηση ξαναβάφει ένα στοιχείο ύψους οθόνης σε κάθε frame — ακριβό σε
     φθηνά κινητά. Τρέχει μόνο όσο το hero είναι στο κάδρο (frame-lit από την
     app.js)· αλλού τα λαμπάκια απλώς μένουν αναμμένα. */
  animation:chase 2.6s linear infinite;
  animation-play-state:paused;
}
.hero.frame-lit .marquee__bulbs{ animation-play-state:running; }
@keyframes chase{
  to{ background-position:
        var(--gap) 0,
        calc(var(--gap) * -1) 100%,
        0 calc(var(--gap) * -1),
        100% var(--gap); }
}

.masks{
  width:clamp(112px,22vw,154px); height:auto; aspect-ratio:1;
  margin:-8px 0 18px; display:block; object-fit:contain;
  filter:drop-shadow(0 12px 28px rgba(233,196,106,.28)) drop-shadow(0 4px 5px rgba(0,0,0,.82));
}

.eyebrow{
  margin:0 0 16px;
  font-size:.74rem; font-weight:600; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold-2);
}

.hero__title{
  margin:0;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(3rem,13vw,6rem);
  font-weight:600; line-height:1; letter-spacing:-.01em;
}
/* Το overflow:hidden κόβει και τους κατιόντες χαρακτήρες (ρ, γ, y),
   γι' αυτό ανοίγει μόλις τελειώσει η είσοδος (.is-done από την app.js). */
.hero__title .mask{ display:inline-block; overflow:hidden; vertical-align:bottom; }
.hero__title.is-done .mask{ overflow:visible; }
.hero__title .word{
  display:inline-block;
  background:linear-gradient(175deg,var(--gold-hi) 12%,var(--gold) 46%,var(--gold-2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.hero__tagline{
  margin:18px 0 0; max-width:34ch;
  font-size:clamp(1.02rem,3.4vw,1.22rem);
  color:var(--muted);
}

.hero__meta{
  margin:30px 0 0;
  display:flex; flex-wrap:wrap; gap:10px 22px;
  font-size:.92rem; font-weight:500;
}
.metaline{ display:flex; align-items:center; gap:9px; }
.metaline .ic{ color:var(--gold); font-size:1.05rem; }

/* Parallax με την ανεξάρτητη ιδιότητα `translate`, ώστε να μην ακυρώνει
   τα transform της εμφάνισης (και να μην ακυρώνεται από αυτά). */
.hero__title  { translate:0 calc(var(--p) * -44px); }
.hero__tagline{ translate:0 calc(var(--p) * -28px); }
.hero__meta,
.countdown    { translate:0 calc(var(--p) * -15px); }
.hero__cta    { translate:0 calc(var(--p) *  -7px); }

/* --- Countdown: ψηφία που κυλούν --- */
.countdown{ display:flex; gap:8px; margin:32px 0 0; }
.cd{
  flex:1; min-width:0; padding:13px 6px;
  background:linear-gradient(180deg,rgba(233,196,106,.09),rgba(0,0,0,.25));
  border:1px solid rgba(233,196,106,.28); border-radius:var(--radius);
  text-align:center;
}
.cd b{
  display:block;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.7rem,7.2vw,2.4rem); font-weight:700;
  font-variant-numeric:tabular-nums;
  line-height:1; height:1em;
  color:var(--gold);
}
.cd small{
  display:block; margin-top:9px;
  font-size:.63rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.digit{ display:inline-block; height:1em; overflow:hidden; vertical-align:top; }
.digit__track{
  display:block;
  transform:translate3d(0,calc(var(--n) * -1em),0);
  transition:transform .62s var(--stagey);
}
.digit__track i{ display:block; height:1em; line-height:1; font-style:normal; }
[data-cd="s"] .digit__track{ transition-duration:.36s; }

.countdown__msg{
  margin:24px 0 0; padding:16px 20px;
  border:1px solid rgba(233,196,106,.4); border-radius:var(--radius);
  background:rgba(233,196,106,.09);
  font-weight:600;
}

/* --- Κουμπιά --- */
.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; margin:30px 0 0; }

.btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 26px; border:1px solid transparent; border-radius:999px;
  font:inherit; font-weight:600; font-size:.93rem;
  text-decoration:none; cursor:pointer;
  transition:transform .18s var(--ease), background .18s, border-color .18s;
}
.btn:active{ transform:scale(.97); }
.btn .ic{ font-size:1.05rem; }

.btn--primary{
  background:linear-gradient(135deg,var(--gold-hi),var(--gold) 45%,var(--gold-2));
  color:#251503;
  box-shadow:0 8px 30px -10px rgba(233,196,106,.7);
}
/* Φως που σαρώνει το κουμπί, σαν προβολέας που περνάει από πάνω. */
.btn--primary::after{
  content:''; position:absolute; top:0; bottom:0; width:38%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
  transform:translateX(-220%) skewX(-18deg);
  animation:sweep 5.5s ease-in-out 2.4s infinite;
}
@keyframes sweep{ 0%,72%{ transform:translateX(-220%) skewX(-18deg); } 100%{ transform:translateX(360%) skewX(-18deg); } }

.btn--ghost{ background:rgba(233,196,106,.06); border-color:var(--line); color:var(--text); }
.btn--sm{ padding:9px 18px; font-size:.83rem; }

@media (hover:hover){
  .btn--primary:hover{ transform:translateY(-2px); }
  .btn--ghost:hover{ background:rgba(233,196,106,.14); border-color:var(--gold-2); }
}

.scroll-hint{
  position:absolute; bottom:clamp(26px,5vh,44px); left:50%; margin-left:-12px;
  width:24px; height:38px; border:1.5px solid rgba(233,196,106,.4); border-radius:12px;
}
.scroll-hint span{
  position:absolute; top:8px; left:50%; margin-left:-2px;
  width:4px; height:6px; border-radius:2px; background:var(--gold);
  animation:wheel 1.9s var(--ease) infinite;
}
@keyframes wheel{ 0%{opacity:0;transform:translateY(0)} 30%{opacity:1} 100%{opacity:0;transform:translateY(13px)} }

/* ---------- 5. Ενότητες ---------- */
.section{ padding:clamp(56px,10vw,92px) 0; position:relative; }
.section::before{
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,var(--gold),var(--line) 42%,transparent);
  transform:scaleX(0); transform-origin:left center;
}
.js .section.is-in::before{ transform:scaleX(1); transition:transform 1.15s var(--stagey); }

.h2{
  display:flex; align-items:baseline; gap:14px;
  margin:0 0 32px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.9rem,6.5vw,2.7rem); font-weight:600; letter-spacing:0;
}
.h2__num{
  font-family:'Inter',sans-serif;
  font-size:.72rem; font-weight:700; letter-spacing:.18em;
  color:var(--gold-2);
}

.intro p{
  margin:0 0 18px; max-width:56ch;
  font-size:clamp(1.04rem,3.4vw,1.18rem); color:#D6C9B2;
}
.intro p:first-child{ color:var(--text); font-weight:500; }

.stats{ display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
.stat b{
  display:block;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:2rem; font-weight:700; color:var(--gold); font-variant-numeric:tabular-nums;
}
.stat span{ font-size:.78rem; color:var(--muted); letter-spacing:.06em; }

/* --- Πρόγραμμα --- */
.agenda{ list-style:none; margin:0; padding:0; position:relative; }
.agenda::before{
  content:''; position:absolute; left:7px; top:8px; bottom:8px; width:1px;
  background:linear-gradient(180deg,var(--gold),var(--gold-2) 45%,transparent);
  transform:scaleY(0); transform-origin:top center;
}
.js .is-in .agenda::before{ transform:scaleY(1); transition:transform 1.6s var(--stagey) .15s; }

.agenda li{ position:relative; padding:0 0 26px 34px; }
.agenda li::before{
  content:''; position:absolute; left:2px; top:9px;
  width:11px; height:11px; border-radius:50%;
  background:var(--bg); border:2px solid var(--line);
}
.agenda li.is-key::before{
  border-color:var(--gold); background:var(--gold);
  box-shadow:0 0 0 5px rgba(233,196,106,.14), 0 0 18px 2px rgba(233,196,106,.5);
}
.agenda time{
  display:block; font-size:.78rem; font-weight:700; letter-spacing:.1em;
  color:var(--gold); font-variant-numeric:tabular-nums;
}
.agenda h3{ margin:3px 0 2px; font-size:1.06rem; font-weight:600; }
.agenda p{ margin:0; font-size:.9rem; color:var(--muted); }
.agenda__emphasis{ color:var(--text); font-weight:800; }

/* --- Τοποθεσία --- */
.venue{ display:grid; gap:22px; }
.venue__text h3{ margin:0 0 8px; font-size:1.2rem; font-weight:600; }
.venue address{ font-style:normal; color:var(--muted); line-height:1.8; }
.venue__note{
  margin:16px 0 0; padding-left:14px;
  border-left:2px solid var(--gold-2);
  font-size:.9rem; color:var(--muted);
}
.venue__links{ display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }

.venue__map{
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  background:var(--surface); aspect-ratio:16/11;
}
.venue__map iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(.4) contrast(1.05) brightness(.92); }
.map-placeholder{
  min-height:100%; height:100%; padding:clamp(28px,6vw,54px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  text-align:center; color:var(--muted);
  background:
    radial-gradient(circle at 50% 35%,rgba(233,196,106,.13),transparent 42%),
    repeating-linear-gradient(35deg,transparent 0 34px,rgba(233,196,106,.035) 34px 35px),
    #0E0B0C;
}
.map-placeholder__pin{ color:var(--gold); font-size:2.2rem; line-height:1; }
.map-placeholder strong{ color:var(--text); font-family:Georgia,'Times New Roman',serif; font-size:1.12rem; }
.map-placeholder p{ max-width:34ch; margin:0; font-size:.82rem; line-height:1.55; }

@media (min-width:760px){
  .venue{ grid-template-columns:1fr 1.1fr; align-items:start; gap:34px; }
}

/* ============================================================
   6. Κουτιά με σχήμα

   Κάθε κάρτα είναι δύο στρώσεις: η εξωτερική είναι χρυσή, η εσωτερική
   σκούρα και 2px μικρότερη. Και οι δύο κόβονται με το ΙΔΙΟ clip-path,
   οπότε ό,τι περισσεύει διαβάζεται ως χρυσό περίγραμμα που ακολουθεί
   το σχήμα. (Με border δεν γίνεται — το clip-path θα το έκοβε.)
   ============================================================ */
.card{
  position:relative;
  padding:2px;
  background:linear-gradient(155deg,var(--gold-hi),var(--gold) 30%,var(--gold-2) 62%,var(--gold-dk));
  clip-path:var(--shape);
  transition:transform .32s var(--stagey), filter .32s ease;
}
.card__in{
  display:block; height:100%;
  position:relative;
  padding:24px 20px 52px;
  background:linear-gradient(180deg,#171113,#0B090A);
  clip-path:var(--shape);
}
.card__in .ic{ font-size:1.4rem; color:var(--gold); margin-bottom:12px; display:block; }
.card__in h3{ margin:0 0 6px; font-size:1.02rem; font-weight:600; }
.card__in p{ margin:0; font-size:.89rem; color:var(--muted); }

/* Το κουμπί είναι πραγματικό <button> για πληκτρολόγιο, αλλά ο στόχος
   του κλικ απλώνεται σε όλη την κάρτα μέσω του ::after. */
/* Η ταινία που «κόβεται» στη βάση του εισιτηρίου. */
.card__btn{
  position:absolute; left:14px; right:14px; bottom:9px;
  padding:11px 0 8px; border:0; border-top:1px dashed rgba(233,196,106,.4);
  background:none; cursor:pointer;
  color:var(--gold); font:inherit; font-size:.66rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  display:flex; align-items:center; justify-content:center; gap:9px;
}
.card__btn::before,.card__btn::after{ content:'★'; font-size:.8em; opacity:.65; }
.card__btn:focus{ outline:none; }
/* Ολόκληρη η κάρτα είναι πατήσιμη (το χειρίζεται η app.js), αλλά το
   πληκτρολόγιο και ο screen reader βλέπουν κανονικό <button>. */
.card:has(.card__btn){ cursor:pointer; }

@media (hover:hover){
  .card:hover{ transform:translateY(-6px); filter:brightness(1.14); }
}
.card:has(.card__btn:focus-visible){ filter:brightness(1.25); transform:translateY(-6px); }

/* --- Εισιτήρια ---------------------------------------------------------
   Κάθε κουτί είναι ένα κόμμα εισιτηρίου παλιάς κοπής: διάτρητες ακμές,
   διπλό περίγραμμα, κατακόρυφος αύξων αριθμός στα πλαϊνά και αποκόμμα
   στη βάση. Το σχήμα γίνεται με mask (όχι με clip-path), γιατί οι
   ημικυκλικές εγκοπές θέλουν καμπύλες που το polygon δεν έχει.

   Το mask μπαίνει και στις ΔΥΟ στρώσεις — χρυσή έξω, σκούρα μέσα —
   ώστε το περίγραμμα να ακολουθεί τις εγκοπές αντί να κόβεται. */
.ticket{ --notch:8px; clip-path:none; }
.ticket, .ticket > .card__in{
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-composite:source-in; mask-composite:intersect;
}
/* Αν ο browser δεν ξέρει mask-composite, οι δύο στρώσεις ενώνονται αντί να
   τέμνονται: χάνονται οι εγκοπές, μένει απλό ορθογώνιο. Ανεκτή υποχώρηση. */
.ticket--notch{
  -webkit-mask-image:
    radial-gradient(circle var(--notch) at left  50%, transparent 97%, #000 100%),
    radial-gradient(circle var(--notch) at right 50%, transparent 97%, #000 100%);
          mask-image:
    radial-gradient(circle var(--notch) at left  50%, transparent 97%, #000 100%),
    radial-gradient(circle var(--notch) at right 50%, transparent 97%, #000 100%);
  -webkit-mask-size:100% calc(var(--notch) * 2.7);
          mask-size:100% calc(var(--notch) * 2.7);
}
.ticket--notch > .card__in{
  -webkit-mask-image:
    radial-gradient(circle var(--notch) at left  50%, transparent 97%, #000 100%),
    radial-gradient(circle var(--notch) at right 50%, transparent 97%, #000 100%);
          mask-image:
    radial-gradient(circle var(--notch) at left  50%, transparent 97%, #000 100%),
    radial-gradient(circle var(--notch) at right 50%, transparent 97%, #000 100%);
  -webkit-mask-size:100% calc(var(--notch) * 2.7);
          mask-size:100% calc(var(--notch) * 2.7);
}
/* Κομμένες γωνίες, όπως τα κουπόνια */
.ticket--cut{ clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px); }
.ticket--cut > .card__in{ clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 9px,100% calc(100% - 9px),calc(100% - 9px) 100%,9px 100%,0 calc(100% - 9px),0 9px); }
/* Στρογγυλεμένο, με αποκόμμα */
.ticket--stub{ border-radius:7px; }
.ticket--stub > .card__in{ border-radius:5px; }

.ticket > .card__in{ padding:24px 30px 52px; }

/* Διπλό περίγραμμα — η λεπτή γραμμή μέσα από τη χρυσή ακμή */
.ticket__rule{
  position:absolute; inset:9px 21px;
  border:1px solid rgba(233,196,106,.34);
  pointer-events:none;
}
.ticket--cut .ticket__rule{ inset:11px 15px; border-style:dashed; }
.ticket--stub .ticket__rule{ inset:9px 15px; border-width:1px 1px 1px 0; }

/* Ο αύξων αριθμός, κατακόρυφα στα δύο πλαϊνά */
.ticket__serial{
  position:absolute; top:50%; left:10px;
  writing-mode:vertical-rl; transform:translateY(-50%) rotate(180deg);
  font-size:.56rem; font-weight:700; letter-spacing:.22em;
  color:rgba(233,196,106,.5); font-variant-numeric:tabular-nums;
  pointer-events:none;
}
.ticket__serial--r{ left:auto; right:10px; transform:translateY(-50%); }

/* Το αποκόμμα: η διάτρητη γραμμή που «σκίζεται» */
.ticket__tear{
  position:absolute; top:9px; bottom:9px; left:30px;
  border-left:1px dashed rgba(233,196,106,.4);
  pointer-events:none;
}
.ticket--stub > .card__in{ padding-left:46px; }
.ticket--stub .ticket__serial{ left:13px; }

.info{ display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(232px,1fr)); }

/* Στατιστικά: μικρά κουπόνια */
.stat{ flex:1 1 96px; }
.stat > .card__in{ padding:18px 16px; text-align:center; }
.stat .ticket__rule{ inset:6px 12px; }

/* Ομιλητές: εισιτήρια θεάτρου με κομμένες γωνίες */
.speakers{ display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(172px,1fr)); }
.speaker > .card__in{ padding:26px 22px 52px; text-align:center; }
.speaker.is-static > .card__in{ padding-bottom:28px; }
.speaker .av{
  width:54px; height:54px; margin:0 auto 12px;
  display:grid; place-items:center; border-radius:50%;
  background:linear-gradient(135deg,var(--gold-hi),var(--gold-2));
  color:#251503; font-weight:800; font-size:1.02rem;
}
.speaker h3{ margin:0 0 3px; font-size:.97rem; font-weight:600; }
.speaker p{ margin:0; font-size:.81rem; color:var(--muted); }

/* ---------- 7. Popup ---------- */
.modal{
  border:0; padding:0; background:transparent;
  width:min(92vw,560px); max-height:86vh;
  color:var(--text); overflow:visible;
}
.modal::backdrop{ background:rgba(4,3,5,.84); }
.modal__box{
  position:relative;
  padding:clamp(28px,5.5vw,44px);
  border:2px solid var(--gold-2);
  background:linear-gradient(180deg,#181113,#0A0809);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.8), 0 44px 90px -30px #000,
             0 0 70px -22px rgba(233,196,106,.45);
  max-height:86vh; overflow-y:auto;
}
/* Χρυσές γωνίες, σαν κορνίζα αφίσας */
.modal__box::before,.modal__box::after{
  content:''; position:absolute; width:22px; height:22px; pointer-events:none;
  border:2px solid var(--gold);
}
.modal__box::before{ top:8px; left:8px; border-right:0; border-bottom:0; }
.modal__box::after{ bottom:8px; right:8px; border-left:0; border-top:0; }

.modal__x{
  position:absolute; top:10px; right:14px;
  width:38px; height:38px; padding:0;
  background:none; border:0; cursor:pointer;
  color:var(--muted); font-size:1.7rem; line-height:1;
  transition:color .2s;
}
.modal__x:hover{ color:var(--gold); }

.modal__kicker{
  margin:0 0 8px;
  font-size:.68rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-2);
}
.modal__title{
  margin:0 0 16px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.6rem,5.5vw,2.1rem); font-weight:600; color:var(--gold);
}
.modal__body{ margin:0; font-size:1rem; color:#D6C9B2; }

.modal[open]{ animation:modalIn .48s var(--stagey); }
.modal[open]::backdrop{ animation:fadeIn .35s ease; }
.modal.is-closing{ animation:modalOut .22s ease forwards; }
.modal.is-closing::backdrop{ animation:fadeOut .22s ease forwards; }
@keyframes modalIn{ from{ opacity:0; transform:translateY(28px) scale(.94); } }
@keyframes modalOut{ to{ opacity:0; transform:translateY(12px) scale(.97); } }
@keyframes fadeIn{ from{ opacity:0; } }
@keyframes fadeOut{ to{ opacity:0; } }

/* ---------- RSVP ---------- */
.rsvp{ padding:26px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.rsvp__deadline{ margin:0 0 22px; font-size:.9rem; color:var(--muted); }
.field{ margin-bottom:16px; }
.field label{ display:block; margin-bottom:7px; font-size:.85rem; font-weight:600; }
.field input,.field select,.field textarea{
  width:100%; padding:13px 15px;
  background:rgba(233,196,106,.05); color:var(--text);
  border:1px solid var(--line); border-radius:var(--radius);
  font:inherit; font-size:1rem;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:2px solid var(--gold); outline-offset:1px; border-color:transparent;
}
.field textarea{ min-height:84px; resize:vertical; }
.choice{ display:flex; gap:10px; }
.choice label{
  flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:14px; border:1px solid var(--line); border-radius:var(--radius);
  cursor:pointer; font-weight:600; font-size:.92rem; margin:0;
  transition:border-color .18s, background .18s;
}
.choice input{ position:absolute; opacity:0; pointer-events:none; }
.choice input:checked + span{ color:var(--gold); }
.choice label:has(input:checked){ border-color:var(--gold); background:rgba(233,196,106,.1); }
.rsvp__done{ text-align:center; padding:34px 20px; }
.rsvp__done h3{ margin:0 0 8px; font-size:1.25rem; }
.rsvp__done p{ margin:0; color:var(--muted); }

/* ---------- Footer ---------- */
.footer{ padding:clamp(48px,9vw,72px) 0 clamp(60px,10vh,90px); text-align:center; position:relative; }
.footer::before{
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:scaleX(0);
}
.js .footer.is-in::before{ transform:scaleX(1); transition:transform 1.3s var(--stagey); }
.footer__actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:28px; }
.footer__contact{ margin:0 0 8px; font-size:.9rem; color:var(--muted); }
.footer__contact a{ color:var(--gold); text-decoration:none; }
.footer__sig{ margin:0; font-size:.76rem; color:#6A5C48; letter-spacing:.1em; text-transform:uppercase; }
.footer__legal{ display:flex; flex-wrap:wrap; justify-content:center; gap:9px 22px; margin-top:18px; font-size:.76rem; }
.footer__legal a{ color:#BDA17B; text-underline-offset:4px; }
.footer__legal a:hover{ color:var(--gold); }

/* ---------- Toast ---------- */
.toast{
  position:fixed; left:50%; bottom:26px; z-index:120;
  transform:translate(-50%,180%);
  max-width:min(92vw,420px); padding:14px 22px;
  background:#181113; border:1px solid var(--gold-2); border-radius:999px;
  font-size:.9rem; font-weight:500;
  box-shadow:0 16px 40px -12px rgba(0,0,0,.9);
  transition:transform .42s var(--stagey);
}
.toast.is-on{ transform:translate(-50%,0); }

.noscript{ padding:80px 0; }
.noscript h1{ font-size:2rem; color:var(--gold); }

/* ============================================================
   8. Mobile σκηνοθεσία

   Στο μικρό πλάτος το περιεχόμενο παίρνει περισσότερο χώρο από την αυλαία,
   τα βασικά actions γίνονται άνετοι touch στόχοι και τα πυκνά τετράστηλα
   στοιχεία σπάνε σε καθαρό 2×2 grid.
   ============================================================ */
@media (max-width:600px){
  :root{
    --drape:22px;
    --pad:18px;
    --radius:8px;
  }

  body{
    font-size:15px;
    line-height:1.58;
  }

  #app{
    max-width:none;
    padding-left:max(22px,env(safe-area-inset-left));
    padding-right:max(22px,env(safe-area-inset-right));
  }

  .curtain__valance{
    height:82px;
    background-size:100% 108%;
  }

  .hero{
    min-height:100svh;
    justify-content:flex-start;
    padding:96px 14px 72px;
  }

  .marquee{ inset:14px 0 18px; }
  .marquee__bulbs{
    --gap:26px;
    --bulb:radial-gradient(circle at 50% 50%,
      var(--gold-hi) 0 1.35px,
      var(--gold) 1.35px 3px,
      rgba(233,196,106,.42) 3px 4.6px,
      rgba(233,196,106,.11) 4.6px 7px,
      transparent 7.4px);
  }

  .masks{
    width:clamp(116px,34vw,136px);
    margin:0 0 14px;
  }

  .eyebrow{
    margin-bottom:12px;
    font-size:.68rem;
    letter-spacing:.22em;
  }

  .hero__title{
    max-width:7.5ch;
    font-size:clamp(3rem,15.5vw,3.85rem);
    line-height:.92;
    text-wrap:balance;
  }

  .hero__tagline{
    margin-top:18px;
    max-width:29ch;
    font-size:1rem;
    line-height:1.55;
  }

  .hero__meta{
    display:grid;
    gap:11px;
    margin-top:24px;
    font-size:.88rem;
    line-height:1.45;
  }
  .metaline{ align-items:flex-start; gap:10px; }
  .metaline .ic{ margin-top:.15em; }

  .countdown{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:26px;
  }
  .cd{
    padding:15px 8px 13px;
    border-radius:8px;
    background:linear-gradient(180deg,rgba(233,196,106,.11),rgba(0,0,0,.3));
    box-shadow:inset 0 0 18px rgba(233,196,106,.025);
  }
  .cd b{ font-size:2.15rem; }
  .cd small{ margin-top:8px; font-size:.61rem; }

  .hero__cta{
    display:grid;
    gap:10px;
    margin-top:26px;
    width:100%;
  }
  .btn{
    width:100%;
    min-height:50px;
    padding:12px 18px;
  }
  .scroll-hint{ display:none; }

  .section{ padding:52px 0; }
  .h2{
    gap:10px;
    margin-bottom:26px;
    font-size:2.15rem;
    line-height:1.05;
  }
  .h2__num{ font-size:.66rem; }

  .intro p{
    margin-bottom:16px;
    font-size:1.02rem;
  }

  .stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:28px;
  }
  .stat{ min-width:0; }
  .stat > .card__in{ padding:16px 8px; }
  .stat b{ font-size:1.75rem; }
  .stat span{ font-size:.68rem; }

  .agenda li{ padding:0 0 24px 30px; }
  .agenda h3{ font-size:1rem; line-height:1.4; }
  .agenda p{ font-size:.86rem; }

  .venue{ gap:20px; }
  .venue__text h3{ font-size:1.12rem; line-height:1.4; }
  .venue__links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .venue__map{ aspect-ratio:4/3; border-radius:8px; }

  .info{ grid-template-columns:1fr; gap:12px; }
  .ticket > .card__in{ padding:22px 26px 52px; }

  .speakers{ grid-template-columns:1fr; gap:12px; }
  .speaker > .card__in{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:14px;
    align-items:center;
    padding:20px 26px 52px;
    text-align:left;
  }
  .speaker .av{
    grid-row:1/3;
    margin:0;
  }
  .speaker h3{ align-self:end; }
  .speaker p{ align-self:start; }

  .card__btn{
    min-height:42px;
    padding-top:10px;
  }

  .modal{
    width:calc(100vw - 24px);
    max-height:calc(100dvh - 24px);
    margin:auto;
  }
  .modal__box{
    max-height:calc(100dvh - 24px);
    padding:34px 24px 28px;
    border-radius:16px;
  }
  .modal__body{ font-size:.96rem; }

  .footer{ padding:48px 0 max(64px,calc(44px + env(safe-area-inset-bottom))); }
  .footer__actions{
    display:grid;
    gap:9px;
    justify-content:stretch;
    width:100%;
  }
  .footer__contact{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:2px 8px;
  }

  .toast{
    bottom:max(14px,env(safe-area-inset-bottom));
    width:calc(100vw - 28px);
    padding:13px 16px;
    border-radius:14px;
    text-align:center;
  }
}

/* ============================================================
   12. Το εξώφυλλο του βιβλίου ως σκηνικό για το πρόγραμμα
   ============================================================ */
#agenda{
  width:calc(100vw - (2 * var(--drape)));
  margin-left:50%;
  padding-inline:max(var(--pad),calc((100% - var(--maxw)) / 2));
  transform:translateX(-50%);
  isolation:isolate;
  overflow:hidden;
  border-block:1px solid rgba(233,196,106,.52);
  background:
    linear-gradient(90deg,
      rgba(24,10,7,.88) 0%,
      rgba(28,11,7,.80) 44%,
      rgba(25,10,7,.28) 74%,
      rgba(24,10,7,.50) 100%),
    url("book-cover-agenda.webp") right 5% center / auto 92% no-repeat,
    #25110c;
  box-shadow:inset 0 0 90px rgba(0,0,0,.48),0 28px 70px rgba(0,0,0,.32);
}
#agenda .h2,#agenda .agenda{
  width:min(100%,760px);
  margin-left:0;
  margin-right:auto;
}
#agenda .h2{
  color:#fff7e8;
  text-shadow:0 3px 16px rgba(0,0,0,.65);
}
#agenda .agenda li{
  margin-bottom:8px;
  padding:12px 16px 16px 42px;
  border:1px solid rgba(233,196,106,.12);
  border-radius:12px;
  background:linear-gradient(90deg,rgba(15,7,5,.46),rgba(15,7,5,.14));
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
#agenda .agenda::before{ left:15px; top:22px; bottom:22px; }
#agenda .agenda li::before{ left:10px; top:22px; background:#1c0d09; }
#agenda .agenda h3{ color:#fff7e8; text-shadow:0 2px 9px rgba(0,0,0,.72); }
#agenda .agenda p{ color:#e9d6b8; }

@media (max-width:600px){
  #agenda{
    padding-inline:16px;
    background:
      linear-gradient(180deg,rgba(25,10,7,.28),rgba(25,10,7,.78) 38%,rgba(25,10,7,.94)),
      url("book-cover-agenda.webp") center top / 100% auto no-repeat,
      #24100b;
  }
  #agenda .agenda li{
    padding:12px 12px 15px 38px;
  }
}

.music-toggle{
  position:fixed;
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:90;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:46px;
  padding:10px 16px;
  border:1px solid rgba(233,196,106,.56);
  border-radius:999px;
  color:#fff3d2;
  background:rgba(35,15,10,.90);
  box-shadow:0 12px 30px rgba(0,0,0,.42);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  font:600 .82rem 'Inter',sans-serif;
  cursor:pointer;
}
.music-toggle__icon{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  color:#3b1a0b;
  background:var(--gold);
  font-family:Georgia,serif;
  font-size:1rem;
}
.music-toggle.is-playing .music-toggle__icon{ animation:musicPulse 1.5s ease-in-out infinite; }
@keyframes musicPulse{ 50%{ transform:scale(1.13); box-shadow:0 0 0 6px rgba(233,196,106,.12); } }

@media (max-width:600px){
  .music-toggle{
    right:max(12px,env(safe-area-inset-right));
    bottom:max(12px,env(safe-area-inset-bottom));
    min-height:44px;
    padding:9px 13px;
  }
}

@media (max-width:370px){
  #app{
    padding-left:max(20px,env(safe-area-inset-left));
    padding-right:max(20px,env(safe-area-inset-right));
  }
  .hero{ padding-left:12px; padding-right:12px; }
  .hero__title{ font-size:2.85rem; }
  .stats{ gap:6px; }
  .stat > .card__in{ padding-inline:5px; }
  .venue__links{ grid-template-columns:1fr; }
}

@media (pointer:coarse){
  .btn,.card__btn,.modal__x{ min-height:44px; }
}

/* ============================================================
   9. Χορογραφία

   Το κρύψιμο ισχύει ΜΟΝΟ κάτω από .js — αν η JavaScript δεν τρέξει,
   η σελίδα εμφανίζεται στατική αντί να μείνει λευκή.
   ============================================================ */
.js .act,
.js [data-scene] .anim{ opacity:0; transform:translate3d(0,30px,0); }

.js .hero.is-in .act{
  opacity:1; transform:translate3d(0,0,0);
  transition:opacity .85s var(--stagey) calc(var(--i,0) * 72ms),
             transform .85s var(--stagey) calc(var(--i,0) * 72ms);
}

.js .hero__title .word{ transform:translate3d(0,120%,0) rotate(5deg); opacity:0; }
.js .hero.is-in .hero__title .word{
  transform:translate3d(0,0,0) rotate(0); opacity:1;
  transition:transform 1.05s var(--stagey) calc(.18s + var(--i,0) * 85ms),
             opacity   .7s  var(--stagey) calc(.18s + var(--i,0) * 85ms);
}
.js .hero__title.act{ opacity:1; transform:none; }

.js [data-scene].is-in .anim{
  opacity:1; transform:translate3d(0,0,0);
  transition:opacity .8s var(--stagey) calc(var(--i,0) * 85ms),
             transform .8s var(--stagey) calc(var(--i,0) * 85ms);
}

.js [data-scene] .card.anim{ transform:translate3d(0,36px,0) scale(.95); }
.js [data-scene].is-in .card.anim{ transform:translate3d(0,0,0) scale(1); }

.js .agenda li.anim::before{ transform:scale(0); }
.js .is-in .agenda li.anim::before{
  transform:scale(1);
  transition:transform .5s cubic-bezier(.34,1.56,.64,1) calc(.25s + var(--i,0) * 85ms);
}

/* ---------- Λιγότερη κίνηση, όποτε ζητηθεί ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .js .act,
  .js [data-scene] .anim,
  .js .hero__title .word{ opacity:1 !important; transform:none !important; }
  .hero__title .mask{ overflow:visible; }
  .hero__title,.hero__tagline,.hero__meta,.countdown,.hero__cta{ translate:none !important; }
}

/* ============================================================
   10. Η Σοφία του Αισώπου — εικαστικό βιβλίου και overlay κειμένου
   ============================================================ */
:root{
  --bg:#1b0e09;
  --surface:#2c1810;
  --line:#76502d;
  --text:#fff7e8;
  --muted:#dec7a4;
  --gold:#efc36a;
  --gold-hi:#fff1b9;
  --gold-2:#c58b32;
}

.housel{
  background:
    radial-gradient(70vmax 48vmax at 50% -10%,rgba(181,76,33,.30),transparent 64%),
    radial-gradient(52vmax 38vmax at 6% 108%,rgba(239,195,106,.12),transparent 66%),
    radial-gradient(52vmax 38vmax at 94% 108%,rgba(239,195,106,.10),transparent 66%),
    var(--bg);
}

.hero{
  isolation:isolate;
  min-height:100svh;
  width:calc(100vw - (2 * var(--drape)));
  margin-top:0;
  margin-left:50%;
  padding-top:clamp(72px,10vh,104px);
  padding-bottom:clamp(76px,10vh,104px);
  overflow:hidden;
  transform:translateX(-50%);
  border-radius:0;
  background:#fff8e7;
  box-shadow:0 34px 90px rgba(0,0,0,.34);
}

.hero__art{
  position:absolute;
  inset:0;
  z-index:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#d7a04d;
}
.hero__art img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center top;
}

.people-slider{ display:none; }

@keyframes peopleSlide{
  to{ transform:translateX(calc(-50% - 5px)); }
}

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(180deg,
    transparent 0 78%,
    rgba(218,168,86,.28) 86%,
    rgba(205,143,59,.88) 96%,
    #c98739 100%);
}

.hero .marquee{ position:absolute; z-index:3; }

.hero__overlay{
  position:relative;
  top:-44px;
  z-index:2;
  width:min(100%,650px);
  margin:auto;
  padding:clamp(24px,4.6vw,46px);
  text-align:center;
  color:#3d1b0f;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.hero .scroll-hint{ z-index:2; }

.hero__pretitle{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0 0 13px;
  color:#542512;
  font-family:'GFS Didot','Times New Roman',serif;
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.hero__pretitle::before,.hero__pretitle::after{
  content:"";
  width:28px;
  height:1px;
  background:currentColor;
  opacity:.65;
}

.eyebrow{
  max-width:54ch;
  margin:0 auto 18px;
  color:#5d2c18;
  font-size:.76rem;
  line-height:1.55;
  letter-spacing:.12em;
}

.hero__title{
  font-family:'GFS Didot','Times New Roman',serif;
  font-size:clamp(3.6rem,8.4vw,6.4rem);
  font-weight:400;
  line-height:.9;
  letter-spacing:-.035em;
  text-wrap:balance;
  filter:drop-shadow(0 2px 0 rgba(255,240,196,.72)) drop-shadow(0 9px 16px rgba(80,32,10,.22));
}

.hero__title .word{
  background:linear-gradient(180deg,#743319 4%,#4d1f0f 54%,#2e120a 100%);
  -webkit-background-clip:text;
  background-clip:text;
}

.hero__tagline{
  max-width:42ch;
  margin:20px auto 0;
  color:#432012;
  font-family:'GFS Didot','Times New Roman',serif;
  font-size:clamp(1.18rem,2.8vw,1.48rem);
  font-weight:600;
  line-height:1.34;
  text-wrap:balance;
}

.hero__meta{
  justify-content:center;
  margin-top:26px;
  gap:10px 18px;
}
.metaline{
  padding:7px 10px;
  border-radius:999px;
  color:#472112;
  background:rgba(255,250,234,.68);
  border:1px solid rgba(91,48,22,.18);
  box-shadow:0 6px 18px rgba(83,39,15,.10);
}
.hero .metaline .ic{ color:#7a3b17; }

.countdown{ max-width:540px; margin-inline:auto; }
.hero__cta{ justify-content:center; }
.hero .cd{
  background:rgba(255,250,234,.70);
  border-color:rgba(91,48,22,.26);
  box-shadow:0 8px 22px rgba(83,39,15,.10);
}
.hero .cd b{ color:#4b1e0e; font-family:'GFS Didot','Times New Roman',serif; }
.hero .cd small{ color:#63351f; }
.hero .btn--ghost{
  color:#3d1b0f;
  background:rgba(255,250,234,.74);
  border-color:rgba(91,48,22,.28);
}
.hero .countdown__msg{
  color:#3d1b0f;
  background:rgba(255,250,234,.72);
  border-color:rgba(91,48,22,.25);
}

.intro{
  max-width:780px;
  margin-inline:auto;
  text-align:center;
}
.intro p:first-child{ color:#fff2d7; }

.speaker .av{
  background:linear-gradient(145deg,#f5d584,#b96d2e);
  color:#311207;
}

.footer__sig{ color:#bda17b; }
.h2,.venue__text h3,.agenda h3,.speaker h3{
  font-family:'GFS Didot','Times New Roman',serif;
}

/* Θεατρικό sliding: πρώτα έρχεται το εικαστικό και μετά ανεβαίνει η πρόσκληση. */
.js .hero__art{
  opacity:0;
  transform:translate3d(-42px,0,0) scale(1.015);
}
.js .hero.is-in .hero__art{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  transition:opacity 1.15s var(--stagey) .08s,transform 1.35s var(--stagey) .08s;
}
.js .hero__overlay{
  opacity:0;
  transform:translate3d(0,52px,0);
}
.js .hero.is-in .hero__overlay{
  opacity:1;
  transform:translate3d(0,0,0);
  transition:opacity .95s var(--stagey) .42s,transform 1.05s var(--stagey) .42s;
}

@media (max-width:600px){
  .hero{
    min-height:auto;
    width:calc(100vw - (2 * var(--drape)));
    margin-top:0;
    padding:0 10px 72px;
    justify-content:flex-start;
    border-radius:14px;
    background:linear-gradient(180deg,#fff8e7 0 24%,#edc679 58%,#dda857 100%);
  }
  .hero__art{
    position:relative;
    inset:auto;
    flex:none;
    width:calc(100% + 20px);
    aspect-ratio:1672/941;
    margin:0 -10px;
    overflow:hidden;
    border-radius:14px 14px 0 0;
  }
  .hero__art img{
    width:100%;
    height:100%;
    object-fit:contain;
  }
  .people-slider{
    position:relative;
    z-index:2;
    display:block;
    flex:none;
    width:calc(100% + 20px);
    margin:0 -10px;
    overflow:hidden;
    color:#4d260f;
    background:#fff8e7;
    border-block:1px solid rgba(117,73,35,.24);
    mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  }
  .people-slider__track{
    display:flex;
    width:max-content;
    gap:10px;
    padding:10px 0;
    animation:peopleSlide 24s linear infinite;
  }
  .people-slider__group{
    display:flex;
    flex:none;
    gap:10px;
  }
  .people-slider span{
    display:flex;
    align-items:baseline;
    gap:7px;
    white-space:nowrap;
    padding:7px 13px;
    border:1px solid rgba(117,73,35,.22);
    border-radius:999px;
    background:rgba(255,255,255,.52);
  }
  .people-slider b{
    font-family:'GFS Didot','Times New Roman',serif;
    font-size:.91rem;
  }
  .people-slider small{
    color:#8a5a31;
    font-size:.64rem;
    letter-spacing:.05em;
    text-transform:uppercase;
  }
  .hero::after{
    background:linear-gradient(180deg,transparent 0 25%,rgba(90,45,20,.04) 48%,rgba(90,45,20,.10) 100%);
  }
  .hero__overlay{
    width:100%;
    top:-8px;
    margin:-18px auto 0;
    padding:24px 14px 26px;
    border-radius:0;
    background:transparent;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .hero__pretitle{
    font-size:.78rem;
    letter-spacing:.12em;
  }
  .hero__pretitle::before,.hero__pretitle::after{ width:17px; }
  .eyebrow{
    margin-bottom:14px;
    font-size:.68rem;
    letter-spacing:.08em;
  }
  .hero__title{
    font-size:clamp(3rem,15vw,4.15rem);
    line-height:.88;
  }
  .hero__tagline{
    margin-top:16px;
    font-size:1.12rem;
  }
  .hero__meta{
    display:grid;
    justify-content:stretch;
    margin-top:22px;
    gap:7px;
  }
  .metaline{
    justify-content:center;
    padding:8px 10px;
    line-height:1.35;
  }
  .countdown{ margin-top:24px; }
  .hero__cta{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
    margin-top:24px;
  }
  .hero__cta .btn{ width:100%; }
  .stats{ grid-template-columns:1fr; }
  .stat > .card__in{ min-height:104px; }
}

@media (max-width:370px){
  .hero__title{ font-size:2.8rem; }
}

@media (prefers-reduced-motion:reduce){
  .people-slider{ overflow-x:auto; }
  .people-slider__track{ animation:none; }
  .js .hero__art,.js .hero__overlay{ opacity:1; transform:none; }
}

/* ============================================================
   11. Τα πληροφοριακά πλαίσια σε χρυσή ζώνη κάτω από το εικαστικό
   ============================================================ */
.hero::after{ background:none; }

.hero__details{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  width:100%;
  margin-top:-28px;
  padding:38px clamp(18px,4vw,42px) 34px;
  color:#3b190d;
  background:
    linear-gradient(180deg,rgba(255,224,136,.86),rgba(225,166,58,.88) 54%,rgba(193,126,36,.92));
  border-top:1px solid rgba(92,48,17,.28);
  box-shadow:0 -12px 28px rgba(92,48,17,.14);
}
.hero__details .hero__meta{ margin-top:0; }
.hero__details .countdown{ width:min(100%,540px); margin-top:18px; }
.hero__details .hero__cta{ margin-top:18px; }
.hero__details .metaline,
.hero__details .cd,
.hero__details .btn--ghost{
  background:rgba(255,249,225,.16);
  border:1px solid rgba(148,88,17,.58);
  box-shadow:inset 0 1px 0 rgba(255,246,205,.34),0 7px 18px rgba(84,43,15,.08);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.hero__details .cd{ border-radius:16px; }

.partners{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  width:min(100%,760px);
  margin:38px auto 30px;
}
.partner-logo{
  min-width:0;
  height:142px;
  display:grid;
  place-items:center;
  padding:16px 22px;
  overflow:hidden;
  background:rgba(255,249,229,.96);
  border:1px solid rgba(233,196,106,.54);
  border-radius:16px;
  box-shadow:0 16px 38px rgba(0,0,0,.24);
}
.partner-logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

@media (min-width:601px){
  .hero{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
    min-height:auto;
    padding:0;
    justify-content:normal;
    background:#dca84d;
  }
  .hero__art{
    position:relative;
    inset:auto;
    grid-column:1;
    grid-row:1;
    width:100%;
    height:auto;
    aspect-ratio:1672/941;
  }
  .hero__art img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center top;
  }
  .hero__overlay{
    grid-column:1;
    grid-row:1;
    align-self:start;
    top:0;
    margin:0 auto;
    padding:clamp(86px,8vw,132px) 40px 28px;
  }
  .hero__details{
    grid-column:1;
    grid-row:2;
  }
}

@media (max-width:600px){
  .hero__overlay{
    top:0;
    margin:0 auto;
    padding-top:24px;
  }
  .hero__details{
    margin-top:-14px;
    padding:28px 12px 30px;
  }
  .partners{
    gap:8px;
    margin:28px auto 24px;
  }
  .partner-logo{
    height:92px;
    padding:9px 10px;
    border-radius:12px;
  }
  .hero__details .hero__meta{
    width:100%;
  }
  .hero__details .countdown{
    width:100%;
    margin-top:14px;
  }
  .hero__details .hero__cta{
    width:100%;
    margin-top:14px;
  }
}

/* ============================================================
   13. Mobile invitation — compact, tactile and app-like
   This final layer intentionally wins over the earlier exploratory
   breakpoints and keeps the desktop composition unchanged.
   ============================================================ */
.mobile-dock{ display:block; }
.mobile-dock > a{ display:none; }
.mobile-dock > audio{ display:none; }
.swipe-hint{ display:none; }

/* The off-screen toast must not cover the fixed mobile controls. */
.toast{ visibility:hidden; opacity:0; pointer-events:none; }
.toast.is-on{ visibility:visible; opacity:1; pointer-events:auto; }

@media (max-width:600px){
  :root{
    --drape:10px;
    --pad:16px;
    --mobile-paper:#fff6df;
    --mobile-ink:#421b0d;
  }

  html{ scroll-padding-top:72px; }
  body{
    padding-bottom:calc(84px + env(safe-area-inset-bottom));
    background:
      radial-gradient(110% 34% at 50% 0,rgba(188,87,39,.28),transparent 70%),
      #170b08;
  }
  #app{
    width:100%;
    padding-inline:max(16px,env(safe-area-inset-left));
  }

  /* The curtain remains theatrical but no longer steals useful width. */
  .curtain__valance{
    height:66px;
    background-size:112% 108%;
    filter:drop-shadow(0 10px 13px rgba(0,0,0,.46));
  }
  .curtain__panel{ width:51%; }

  .hero{
    width:calc(100vw - 20px);
    min-height:auto;
    margin-left:50%;
    padding:0;
    overflow:hidden;
    transform:translateX(-50%);
    border:1px solid rgba(255,232,174,.44);
    border-radius:0 0 22px 22px;
    background:var(--mobile-paper);
    box-shadow:0 24px 52px rgba(0,0,0,.42);
  }
  .hero__art{
    width:100%;
    margin:0;
    aspect-ratio:16/9;
    border-radius:0;
    background:#d9a256;
  }
  .hero__art img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 48%;
    transform:scale(1.025);
  }

  .people-slider{
    width:100%;
    min-height:48px;
    margin:0;
    border-top:0;
    background:rgba(255,249,233,.98);
  }
  .people-slider__track{
    gap:8px;
    padding:7px 0;
    animation-duration:28s;
  }
  .people-slider__group{ gap:8px; }
  .people-slider span{
    gap:6px;
    padding:6px 11px;
    background:rgba(255,255,255,.72);
    box-shadow:0 3px 10px rgba(91,48,22,.06);
  }
  .people-slider b{ font-size:.82rem; }
  .people-slider small{ font-size:.56rem; }

  .hero__overlay{
    width:100%;
    min-height:0;
    top:0;
    margin:0;
    padding:20px 18px 22px;
    color:var(--mobile-ink);
    background:
      radial-gradient(circle at 50% 16%,rgba(255,255,255,.82),transparent 46%),
      linear-gradient(180deg,#fff9ea,#f7e5b8);
    border-top:1px solid rgba(103,56,25,.14);
  }
  .hero__pretitle{
    margin-bottom:8px;
    font-size:.67rem;
    letter-spacing:.15em;
  }
  .hero__pretitle::before,.hero__pretitle::after{ width:13px; }
  .eyebrow{
    max-width:34ch;
    margin-bottom:10px;
    font-size:.60rem;
    line-height:1.42;
    letter-spacing:.075em;
  }
  .hero__title{
    max-width:none;
    font-size:clamp(2.75rem,13.1vw,3.35rem);
    line-height:.86;
    letter-spacing:-.045em;
  }
  .hero__tagline{
    max-width:31ch;
    margin-top:13px;
    font-size:.98rem;
    line-height:1.34;
  }

  .hero__details{
    width:100%;
    margin:0;
    padding:17px 14px 21px;
    background:
      linear-gradient(180deg,rgba(255,229,157,.96),rgba(224,165,59,.96));
    border-top:1px solid rgba(120,67,21,.28);
    box-shadow:inset 0 1px rgba(255,249,226,.7);
  }
  .hero__details .hero__meta{
    display:grid;
    grid-template-columns:minmax(0,1fr) 78px;
    gap:7px;
    width:100%;
    margin:0;
  }
  .hero__details .metaline{
    min-width:0;
    justify-content:center;
    padding:8px 9px;
    border-radius:13px;
    font-size:.74rem;
    line-height:1.25;
    background:rgba(255,250,232,.48);
    border-color:rgba(126,70,20,.32);
  }
  .hero__details .metaline:last-child{ grid-column:1/-1; }
  .hero__details .metaline span{ min-width:0; }

  .hero__details .countdown{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
    width:100%;
    margin-top:12px;
  }
  .hero__details .cd{
    min-width:0;
    padding:10px 2px 9px;
    border-radius:12px;
    background:rgba(255,249,226,.43);
    border-color:rgba(126,70,20,.33);
  }
  .hero__details .cd b{ font-size:1.48rem; line-height:1; }
  .hero__details .cd small{
    margin-top:6px;
    font-size:.49rem;
    letter-spacing:.10em;
  }

  .hero__details .hero__cta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    width:100%;
    margin-top:12px;
  }
  .hero__details .hero__cta .btn{
    width:100%;
    min-height:47px;
    padding:9px 8px;
    border-radius:14px;
    font-size:.72rem;
    line-height:1.18;
  }
  .hero__title,.hero__tagline,.hero__meta,.countdown,.hero__cta{ translate:none !important; }

  .section{ padding:44px 0; }
  .h2{
    align-items:center;
    gap:9px;
    margin-bottom:23px;
    font-size:2rem;
    line-height:1;
  }
  .h2::after{
    content:"";
    flex:1;
    height:1px;
    margin-left:5px;
    background:linear-gradient(90deg,rgba(233,196,106,.58),transparent);
  }
  .h2__num{
    display:grid;
    place-items:center;
    width:28px;
    height:28px;
    flex:none;
    border:1px solid rgba(233,196,106,.46);
    border-radius:50%;
    font-size:.58rem;
  }

  .intro{ text-align:left; }
  .intro p{ font-size:.96rem; line-height:1.62; }
  .partners{
    gap:8px;
    margin:24px auto 20px;
  }
  .partner-logo{
    height:82px;
    padding:8px;
    border-radius:14px;
  }
  .stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
    margin-top:20px;
  }
  .stat > .card__in{
    min-height:86px;
    padding:14px 5px;
  }
  .stat b{ font-size:1.5rem; }
  .stat span{ font-size:.56rem; }

  #agenda{
    width:calc(100vw - 20px);
    margin-left:50%;
    padding:38px 17px 34px;
    transform:translateX(-50%);
    border:1px solid rgba(233,196,106,.48);
    border-radius:22px;
    background:
      linear-gradient(180deg,rgba(30,12,8,.52),rgba(25,10,7,.91) 29%,rgba(20,8,6,.97)),
      url("book-cover-agenda.webp") center top / 116% auto no-repeat,
      #24100b;
    box-shadow:0 22px 50px rgba(0,0,0,.32);
  }
  #agenda .h2{ margin-bottom:20px; }
  #agenda .agenda::before{ left:12px; top:19px; bottom:19px; }
  #agenda .agenda li{
    margin-bottom:8px;
    padding:12px 12px 13px 36px;
    border:1px solid rgba(236,202,132,.13);
    border-radius:13px;
    background:rgba(22,9,7,.53);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
  }
  #agenda .agenda li:last-child{ margin-bottom:0; }
  #agenda .agenda li::before{ left:7px; top:18px; }
  #agenda .agenda h3{ font-size:.98rem; line-height:1.3; }
  #agenda .agenda p{ font-size:.80rem; line-height:1.46; }

  .swipe-hint{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    width:max-content;
    margin:-13px 0 13px auto;
    color:#efd18a;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.035em;
    text-transform:uppercase;
  }
  .swipe-hint span{
    display:grid;
    place-items:center;
    width:29px;
    height:29px;
    border:1px solid rgba(239,209,138,.52);
    border-radius:50%;
    background:rgba(23,9,7,.56);
    font:700 1rem Georgia,serif;
    animation:swipeArrow 1.8s ease-in-out infinite;
  }
  @keyframes swipeArrow{
    0%,100%{ transform:translateX(0); }
    50%{ transform:translateX(4px); }
  }

  /* Swipeable cast and ticket rails reduce the very long mobile page. */
  .speakers,.info{
    display:flex;
    gap:11px;
    width:calc(100vw - 16px);
    margin-left:-16px;
    padding:2px 16px 15px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .speakers::-webkit-scrollbar,.info::-webkit-scrollbar{ display:none; }
  .speaker,.info__card{
    flex:0 0 min(82vw,294px);
    scroll-snap-align:center;
  }
  .speaker > .card__in{
    display:grid;
    grid-template-columns:52px minmax(0,1fr);
    grid-template-rows:auto auto;
    min-height:148px;
    padding:22px 24px 48px;
    column-gap:13px;
    text-align:left;
  }
  .speaker.is-static > .card__in{ padding-bottom:22px; }
  .speaker .av{
    grid-row:1/3;
    width:50px;
    height:50px;
    margin:0;
  }
  .speaker h3{ align-self:end; font-size:1rem; }
  .speaker p{ align-self:start; font-size:.78rem; line-height:1.4; }

  .info__card > .card__in{ min-height:194px; }
  .info__card .ic{ margin-bottom:10px; }
  .info__card h3{ font-size:1.08rem; }

  .venue{
    gap:17px;
    padding:20px;
    border:1px solid rgba(233,196,106,.24);
    border-radius:18px;
    background:rgba(255,246,223,.045);
  }
  .venue__links{ grid-template-columns:1fr 1fr; margin-top:17px; }
  .venue__links .btn{ min-height:46px; padding-inline:8px; font-size:.72rem; }
  .venue__map{ aspect-ratio:1/1; border-radius:14px; }

  .footer{
    padding:42px 0 calc(36px + env(safe-area-inset-bottom));
  }
  .footer__actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .footer__actions .btn{ min-width:0; padding-inline:8px; font-size:.70rem; }

  .modal{
    width:calc(100vw - 30px);
    max-height:calc(100dvh - 40px);
    margin:auto;
  }
  .modal::backdrop{
    background:rgba(13,6,5,.80);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
  }
  .modal__box{
    max-height:calc(100dvh - 40px);
    padding:30px 24px 27px;
    border-radius:20px;
  }

  .mobile-dock{
    position:fixed;
    left:50%;
    bottom:max(9px,env(safe-area-inset-bottom));
    z-index:86;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    width:calc(100vw - 24px);
    max-width:430px;
    min-height:62px;
    padding:5px;
    transform:translateX(-50%);
    border:1px solid rgba(238,204,128,.34);
    border-radius:20px;
    background:rgba(29,13,10,.92);
    box-shadow:0 16px 40px rgba(0,0,0,.48);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
  .mobile-dock a,.mobile-dock button{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:0;
    min-width:0;
    min-height:50px;
    padding:4px 2px;
    border:0;
    border-radius:15px;
    color:#f7dfad;
    background:transparent;
    text-decoration:none;
    font:inherit;
    cursor:pointer;
  }
  .mobile-dock a:active,.mobile-dock button:active{ background:rgba(233,196,106,.14); }
  .mobile-dock a > span{ display:none; }
  .mobile-dock small{ font-size:.68rem; font-weight:700; letter-spacing:.02em; }

  .mobile-dock .music-toggle{
    position:static;
    z-index:auto;
    flex-direction:row;
    gap:5px;
    width:auto;
    height:auto;
    min-height:50px;
    padding:4px 2px;
    border:0;
    border-radius:15px;
    color:#f7dfad;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .mobile-dock .music-toggle__icon{
    width:7px;
    height:7px;
    flex:none;
    overflow:hidden;
    border-radius:50%;
    color:transparent;
    background:#c09b54;
  }
  .mobile-dock .music-toggle [data-music-label]{
    position:static;
    width:auto;
    height:auto;
    overflow:visible;
    clip:auto;
    white-space:normal;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.02em;
  }
  .mobile-dock .music-toggle.is-playing{ background:rgba(233,196,106,.14); }
  .mobile-dock .music-toggle.is-playing .music-toggle__icon{
    background:#ffd97e;
    box-shadow:0 0 0 4px rgba(255,217,126,.12),0 0 12px rgba(255,217,126,.6);
  }
  .toast{ bottom:calc(84px + env(safe-area-inset-bottom)); }
}

@media (max-width:370px){
  .hero__title{ font-size:2.68rem; }
  .hero__details{ padding-inline:11px; }
  .hero__details .metaline{ font-size:.68rem; }
  .hero__details .hero__cta .btn{ font-size:.67rem; }
  .mobile-dock{ width:calc(100vw - 16px); }
}

/* Mobile hero follows the desktop composition: copy sits on the artwork. */
@media (max-width:600px){
  .hero{ position:relative; }
  .hero__art{
    position:relative;
    z-index:0;
    aspect-ratio:16/9;
  }
  .hero__art img{
    object-fit:cover;
    object-position:center;
  }
  .hero__overlay{
    position:absolute;
    inset:0 0 auto;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    aspect-ratio:16/9;
    min-height:0;
    margin:0;
    padding:40px 17px 7px;
    color:#3d1b0f;
    background:
      radial-gradient(ellipse 58% 82% at 50% 48%,rgba(255,238,187,.82),rgba(255,225,151,.38) 62%,transparent 100%);
    border:0;
    pointer-events:none;
  }
  .hero__pretitle{
    margin:0 0 3px;
    font-size:.50rem;
    line-height:1.2;
    letter-spacing:.14em;
    text-shadow:0 1px 2px rgba(255,244,207,.85);
  }
  .hero__pretitle::before,.hero__pretitle::after{ width:10px; }
  .hero__overlay .eyebrow{
    max-width:36ch;
    margin:0 0 4px;
    font-size:.45rem;
    line-height:1.2;
    letter-spacing:.055em;
    text-shadow:0 1px 2px rgba(255,244,207,.92);
  }
  .hero__overlay .hero__title{
    max-width:14ch;
    margin:0;
    font-size:clamp(1.92rem,8.7vw,2.28rem);
    line-height:.82;
    letter-spacing:-.045em;
    filter:drop-shadow(0 1px 0 rgba(255,243,204,.86)) drop-shadow(0 4px 8px rgba(91,42,16,.15));
  }
  .hero__overlay .hero__tagline{
    max-width:32ch;
    margin:6px 0 0;
    font-size:.64rem;
    line-height:1.2;
    text-shadow:0 1px 2px rgba(255,244,207,.94);
  }
  .people-slider{ z-index:3; }
}

@media (max-width:370px){
  .hero__overlay{ padding:37px 13px 6px; }
  .hero__overlay .hero__title{ font-size:1.88rem; }
  .hero__overlay .hero__tagline{ font-size:.60rem; }
}

/* The complete opening is one mobile viewport; the next section begins after scroll. */
@media (max-width:600px){
  .hero{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:minmax(0,1fr) auto auto;
    align-content:stretch;
    height:100svh;
    min-height:720px;
  }
  .hero__art{
    grid-column:1;
    grid-row:1;
    width:100%;
    height:100%;
    min-height:0;
    aspect-ratio:auto;
  }
  .hero__art img{
    width:100%;
    height:100%;
    object-fit:fill;
    transform:none;
  }
  .hero__overlay{
    position:relative;
    inset:auto;
    grid-column:1;
    grid-row:1;
    align-self:stretch;
    width:100%;
    height:100%;
    aspect-ratio:auto;
    padding:58px 20px 18px;
  }
  .hero__overlay .hero__title{
    max-width:11ch;
    font-size:clamp(2.65rem,12.5vw,3.25rem);
    line-height:.84;
  }
  .hero__overlay .hero__tagline{
    max-width:31ch;
    margin-top:10px;
    font-size:.76rem;
    line-height:1.28;
  }
  .hero__overlay .eyebrow{
    max-width:38ch;
    margin-bottom:7px;
    font-size:.51rem;
  }
  .hero__pretitle{
    margin-bottom:6px;
    font-size:.57rem;
  }
  .people-slider{
    grid-column:1;
    grid-row:2;
  }
  .hero__details{
    grid-column:1;
    grid-row:3;
    padding-bottom:calc(78px + env(safe-area-inset-bottom));
  }
}

@media (max-width:370px){
  .hero__overlay{ padding:54px 14px 14px; }
  .hero__overlay .hero__title{ font-size:2.55rem; }
  .hero__overlay .hero__tagline{ font-size:.70rem; }
}

/* ============================================================
   14. Portrait opening scene
   The first mobile viewport is only the illustrated invitation.
   Event details and countdown begin after the first scroll.
   ============================================================ */
.hero__art picture{
  display:block;
  width:100%;
  height:100%;
}
.hero__names{ display:none; }

@media (max-width:600px){
  .hero{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:100svh auto;
    height:auto;
    min-height:0;
  }
  .hero__art{
    grid-column:1;
    grid-row:1;
    width:100%;
    height:100svh;
    min-height:0;
    aspect-ratio:auto;
    background:#e4a948;
  }
  .hero__art picture{
    display:grid;
    place-items:center;
  }
  .hero__art img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    transform:none;
  }
  .hero__names{
    position:absolute;
    inset:0;
    z-index:2;
    display:block;
    pointer-events:none;
  }
  .hero__name{
    position:absolute;
    max-width:35%;
    color:#3f1b0e;
    font-family:'GFS Didot','Times New Roman',serif;
    font-size:clamp(.72rem,3.15vw,.86rem);
    font-style:italic;
    font-weight:700;
    line-height:1.05;
    text-align:center;
    text-wrap:balance;
    text-shadow:0 1px 0 rgba(255,237,180,.95),0 2px 5px rgba(79,34,13,.18);
  }
  .hero__name--antonis{ top:29%; left:3.5%; }
  .hero__name--giannis{ top:30%; right:3.5%; }
  .hero__name--nikos{ top:57%; left:3.5%; }
  .hero__name--mina{ top:58%; right:2.8%; }

  .hero__overlay{
    position:relative;
    inset:auto;
    grid-column:1;
    grid-row:1;
    align-self:stretch;
    justify-content:flex-start;
    width:100%;
    height:100svh;
    min-height:0;
    aspect-ratio:auto;
    padding:clamp(124px,18svh,164px) 19px 100px;
    background:radial-gradient(ellipse 52% 31% at 50% 30%,rgba(255,227,147,.30),transparent 100%);
  }
  .hero__overlay .hero__title{
    max-width:7.8ch;
    font-size:clamp(2.68rem,12.6vw,3.22rem);
    line-height:.84;
  }
  .hero__overlay .hero__tagline{
    max-width:28ch;
    margin-top:10px;
    font-size:.76rem;
    line-height:1.26;
  }
  .hero__overlay .eyebrow{
    max-width:37ch;
    margin-bottom:7px;
    font-size:.50rem;
  }
  .hero__pretitle{
    margin-bottom:6px;
    font-size:.56rem;
  }

  /* The names are now part of the artwork, so the duplicate ticker is unnecessary. */
  .people-slider{ display:none; }

  .hero__details{
    grid-column:1;
    grid-row:2;
    margin:0;
    padding-top:26px;
    padding-bottom:calc(34px + env(safe-area-inset-bottom));
  }

  .mobile-dock a,.mobile-dock button{ position:relative; }
  .mobile-dock a::after{
    content:"";
    position:absolute;
    left:24%;
    right:24%;
    bottom:4px;
    height:3px;
    border-radius:999px;
    background:linear-gradient(90deg,#bd7f25,#ffe49a,#bd7f25);
    box-shadow:0 0 10px rgba(255,218,120,.55);
    opacity:0;
    transform:scaleX(.2);
    transition:opacity .24s ease,transform .30s ease;
  }
  .mobile-dock a.is-active{
    color:#ffe7a3;
    background:rgba(233,196,106,.09);
  }
  .mobile-dock a.is-active::after{
    opacity:1;
    transform:scaleX(1);
  }
}

@media (max-width:370px){
  .hero__overlay{ padding:112px 14px 96px; }
  .hero__overlay .hero__title{ font-size:2.62rem; }
  .hero__overlay .hero__tagline{ font-size:.70rem; }
  .hero__name{ font-size:.67rem; }
}

.agenda-cover{ display:none; }

/* Final mobile art alignment and a real book-cover card below the programme. */
@media (max-width:600px){
  .hero__art img{
    position:absolute;
    top:0;
    left:0;
    height:auto;
    aspect-ratio:941/1672;
    object-fit:contain;
    object-position:center top;
    align-self:start;
  }
  .hero__art picture{
    position:absolute;
    inset:0;
    display:block;
  }
  .hero__overlay{
    padding-top:clamp(48px,7.2svh,66px);
  }
  .hero__name{
    max-width:37%;
    padding:4px 7px 5px;
    border:1px solid rgba(83,42,17,.20);
    border-radius:999px;
    background:rgba(255,231,169,.76);
    box-shadow:0 4px 12px rgba(71,30,11,.10);
  }
  .hero__name--antonis{ top:25.5%; left:3.5%; }
  .hero__name--giannis{ top:26.5%; right:3.5%; }
  .hero__name--nikos{ top:52.5%; left:3.5%; }
  .hero__name--mina{ top:53.5%; right:2.8%; }

  #agenda{
    background:linear-gradient(180deg,#2b120d,#170907 72%,#110604);
  }
  .agenda-cover{
    display:block;
    width:100%;
    margin:22px 0 0;
    padding:0;
    overflow:hidden;
    border:1px solid rgba(239,202,121,.42);
    border-radius:16px;
    background:#d49a65;
    box-shadow:0 18px 38px rgba(0,0,0,.38);
  }
  .agenda-cover img{
    display:block;
    width:100%;
    height:auto;
  }
}

@media (max-width:370px){
  .hero__overlay{ padding-top:44px; }
  .hero__name{ padding-inline:5px; font-size:.64rem; }
}

/* Keep all essential event information inside the first mobile viewport. */
@media (max-width:600px){
  .hero{
    grid-template-rows:100svh;
    height:100svh;
  }
  .hero__overlay{
    padding-top:clamp(132px,17svh,146px);
    padding-bottom:218px;
  }
  .hero__details{
    position:absolute;
    left:0;
    right:0;
    bottom:calc(72px + env(safe-area-inset-bottom));
    z-index:5;
    display:flex;
    width:100%;
    margin:0;
    padding:7px 9px 8px;
    border-top:1px solid rgba(112,59,18,.28);
    background:linear-gradient(180deg,rgba(248,205,104,.93),rgba(210,145,41,.96));
    box-shadow:0 -8px 22px rgba(85,37,12,.13);
  }
  .hero__details .hero__meta{
    display:grid;
    grid-template-columns:minmax(0,1fr) 62px;
    gap:4px;
    width:100%;
  }
  .hero__details .metaline{
    grid-column:auto;
    min-width:0;
    min-height:27px;
    padding:4px 5px;
    border-radius:9px;
    font-size:.53rem;
    line-height:1.05;
    white-space:nowrap;
  }
  .hero__details .metaline:last-child{ grid-column:1/-1; }
  .hero__details .metaline .ic{
    width:12px;
    height:12px;
    flex:none;
  }
  .hero__details .metaline span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .hero__details .countdown{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:4px;
    width:100%;
    margin-top:5px;
  }
  .hero__details .cd{
    min-width:0;
    padding:5px 1px 4px;
    border-radius:9px;
  }
  .hero__details .cd b{ font-size:1.06rem; }
  .hero__details .cd small{
    margin-top:3px;
    font-size:.38rem;
    letter-spacing:.08em;
  }
  .hero__details .hero__cta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:5px;
    width:100%;
    margin-top:5px;
  }
  .hero__details .hero__cta .btn{
    min-height:35px;
    padding:5px 6px;
    border-radius:10px;
    font-size:.58rem;
  }
}

@media (max-width:370px){
  .hero__overlay{
    padding-top:122px;
    padding-bottom:208px;
  }
  .hero__details{ padding-inline:7px; }
  .hero__details .metaline{ font-size:.48rem; }
}

/* ============================================================
   Privacy policy & terms
   ============================================================ */
.legal-page{
  min-height:100vh; color:var(--text);
  background:
    radial-gradient(circle at 50% 0,rgba(127,46,31,.24),transparent 32rem),
    linear-gradient(180deg,#160E0D,#090708 58%);
}
.legal-shell{ width:min(100% - 36px,850px); margin:0 auto; padding:clamp(36px,7vw,76px) 0 80px; }
.legal-back{ display:inline-flex; align-items:center; gap:8px; margin-bottom:34px; color:var(--gold); text-decoration:none; font-size:.86rem; }
.legal-card{ padding:clamp(24px,6vw,58px); border:1px solid rgba(233,196,106,.3); background:rgba(14,10,10,.86); box-shadow:0 28px 80px rgba(0,0,0,.38); }
.legal-kicker{ margin:0 0 10px; color:var(--gold); font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.legal-card h1{ margin:0; color:#F5E5BD; font-family:Georgia,'Times New Roman',serif; font-size:clamp(2.1rem,7vw,3.6rem); line-height:1; }
.legal-updated{ margin:14px 0 36px; color:#958773; font-size:.78rem; }
.legal-card h2{ margin:34px 0 10px; color:var(--gold); font-family:Georgia,'Times New Roman',serif; font-size:1.34rem; }
.legal-card p,.legal-card li{ color:#D6C9B2; line-height:1.75; }
.legal-card ul{ padding-left:1.25rem; }
.legal-card a{ color:#E9C46A; }
