/* fycoa.com, the front door.
   Same colours, type and wordmark as notes.fycoa.com, on a light ground.
   The attractions can be loud. This page is not. */

:root{
  --terra:#c2542e; --terra-dk:#a3431f; --tint:#f6e8e1;
  --ink:#2b3040; --paper:#f6eee1; --cream:#fdf8f0; --body:#5d646e; --mute:#8a8578; --line:#e6ded0;
  --teal:#146360; --teal-dk:#0d4744; --gold:#e5a12f;
  --fd:"Alfa Slab One","Rockwell",Georgia,serif;
  --fb:"Poppins",-apple-system,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--body);font-family:var(--fb);font-size:1.0625rem;line-height:1.68;margin:0;overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2{margin:0;color:var(--ink);line-height:1.02;text-wrap:balance;font-family:var(--fd);font-weight:400;letter-spacing:-.01em}
p{margin:0 0 1rem;max-width:34rem}
b,strong{font-weight:600;color:var(--ink)}
a{color:inherit}
.fs{color:var(--terra)}
.wrap{max-width:66rem;margin:0 auto;padding:0 clamp(1.15rem,4.5vw,3rem)}
.two{display:grid;gap:1.4rem}
@media(min-width:840px){.two{grid-template-columns:2fr 3fr;gap:4rem;align-items:start}}

/* the wordmark, identical to notes */
.mark{font-family:var(--fb);font-weight:700;text-transform:none;letter-spacing:normal;white-space:nowrap;text-decoration:none;color:var(--ink)}
.mark span{color:var(--terra)}

/* labels */
.k{display:inline-flex;align-items:center;gap:.6rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--terra);margin-bottom:1rem}
.k i{display:block;width:1.6rem;height:2px;background:var(--terra)}

/* ================= top bar ================= */
.bar{position:sticky;top:0;z-index:20;background:rgba(253,248,240,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar .wrap{display:flex;align-items:center;justify-content:space-between;min-height:3.6rem}
.bar .mark{font-size:1.125rem}
.bar nav,.end nav{display:flex;gap:1.4rem}
.bar nav a,.end nav a{font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-decoration:none;color:var(--body);min-height:44px;display:inline-flex;align-items:center}
.bar nav a:hover,.end nav a:hover{color:var(--terra)}

/* ================= the gate ================= */
.gate{padding:clamp(4rem,12vh,8rem) 0 clamp(3.5rem,9vh,6rem);background:var(--cream);position:relative;overflow:hidden}
.gate::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,var(--terra) 0 33%,var(--gold) 33% 66%,var(--teal) 66%)}
.gate h1{font-size:clamp(2.6rem,8vw,5.4rem);max-width:12ch}
.gate .sub{font-size:clamp(1.0625rem,2.1vw,1.3rem);font-weight:300;line-height:1.55;max-width:36ch;margin:1.4rem 0 0}
.btns{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}

/* ================= buttons ================= */
.btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--terra);color:#fdf8f0;font-weight:700;font-size:.9375rem;letter-spacing:.02em;padding:.75rem 1.4rem;border-radius:3px;box-shadow:0 3px 0 var(--terra-dk);transition:transform .12s,box-shadow .12s;text-decoration:none}
.btn:hover{transform:translateY(1px);box-shadow:0 2px 0 var(--terra-dk)}
.btn:active{transform:translateY(3px);box-shadow:0 0 0 var(--terra-dk)}
.btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.btn.ghost{background:transparent;box-shadow:none;color:var(--ink);text-decoration:underline;text-underline-offset:.25em;text-decoration-color:var(--gold);text-decoration-thickness:2px}
.btn.ghost:hover{transform:none;color:var(--terra)}
.btn[disabled]{background:#c9c2b6;box-shadow:0 3px 0 #a9a296;cursor:default;transform:none}

/* ================= why ================= */
.why{padding:clamp(3.5rem,9vh,6rem) 0;background:var(--paper)}
.why h2{font-size:clamp(1.9rem,4.6vw,3rem);max-width:14ch}
.why h2,.ticket h2{margin-bottom:1rem}
.why p{font-size:1.0625rem}
.why .who{margin-top:1.4rem;padding-top:1rem;border-top:2px solid var(--gold);font-size:.9375rem;max-width:26rem}

/* ================= notes ================= */
.notes{padding:clamp(3.5rem,9vh,6rem) 0;background:var(--cream)}
.notes h2{font-size:clamp(2.2rem,6vw,4rem)}
.notes .sub{font-size:clamp(1.0625rem,2vw,1.2rem);font-weight:300;line-height:1.55;max-width:40ch;margin:1rem 0 0}
.posters{display:grid;gap:1.2rem;margin-top:2.2rem}
@media(min-width:700px){.posters{grid-template-columns:repeat(3,1fr)}}
.posters a{display:block;text-decoration:none;color:inherit;background:var(--cream);border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:transform .18s,box-shadow .18s;box-shadow:0 1px 2px rgba(43,48,64,.06)}
.posters a:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(43,48,64,.12)}
.posters a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.posters img{width:100%;height:auto;display:block;background:var(--teal)}
.posters .cap{display:block;padding:.9rem 1rem 1.05rem}
.posters .cap b{display:block;font-family:var(--fd);font-weight:400;font-size:1.2rem;color:var(--ink);line-height:1.1}
.posters .cap i{display:block;font-style:normal;font-size:.8125rem;color:var(--body);margin-top:.3rem;line-height:1.4}
.notes .foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;margin:2rem 0 0;max-width:none}
.notes .foot span{font-size:.875rem;color:var(--mute)}

/* ================= the ticket ================= */
.ticket{padding:clamp(3.5rem,9vh,6rem) 0;background:var(--paper);border-top:1px solid var(--line)}
.ticket h2{font-size:clamp(1.8rem,4.4vw,2.8rem);max-width:14ch}
.ticket form{display:flex;flex-wrap:wrap;gap:.55rem;margin:.4rem 0 .7rem;max-width:30rem}
@media(min-width:840px){.ticket form{margin-top:2.4rem}}
.ticket input[type=email]{flex:1;min-width:11rem;min-height:44px;font-family:var(--fb);font-size:1rem;color:var(--ink);border:2px solid var(--ink);border-radius:3px;padding:.65rem .8rem;background:#fff}
.ticket input[type=email]:focus{outline:3px solid var(--gold);outline-offset:2px}
.hint{font-size:.8125rem;color:var(--mute);margin:0}

/* ================= footer ================= */
.end{padding:2.4rem 0 2.8rem;background:var(--cream);border-top:1px solid var(--line)}
.end p{font-size:.9375rem;margin-bottom:.6rem}
.end .fine{font-size:.8125rem;color:var(--mute);max-width:44rem}
.end nav{margin-top:1rem}

/* ================= reveal ================= */
.rv{opacity:0;transform:translateY(1rem);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
