/* ---------- Title screen: one full page, never scrolls ---------- */
#title { padding: 0; overflow: hidden; height: 100dvh; }
#title .title-bg::after { background: linear-gradient(90deg, rgba(3,14,20,.96) 0%, rgba(3,14,20,.78) 38%, rgba(3,14,20,.2) 75%, rgba(3,14,20,.5) 100%), linear-gradient(180deg, rgba(3,14,20,.25), rgba(3,14,20,.85)); }

/* artwork on the right */
.t-art { position: absolute; inset: 0 0 0 38%; z-index: 1; pointer-events: none; overflow: hidden; }
.t-art img { position: absolute; bottom: -2dvh; width: auto; max-width: none; filter: drop-shadow(0 0 40px rgba(63,214,200,.35)); }
.art-v { height: 104dvh; right: 26%; opacity: .5; filter: brightness(.7) saturate(.9) drop-shadow(0 0 50px rgba(138,123,255,.55)) !important; animation: floaty 9s ease-in-out infinite; }
.art-r { height: 90dvh; right: 4%; animation: floaty 7s ease-in-out -2s infinite; }
@keyframes floaty { 50% { transform: translateY(-1.4dvh); } }
.rune-ring { position: absolute; right: 2%; bottom: 14dvh; width: min(62dvh, 40vw); aspect-ratio: 1; border-radius: 50%; border: 1px dashed rgba(242,197,92,.45); box-shadow: 0 0 60px rgba(63,214,200,.18), inset 0 0 60px rgba(63,214,200,.14); animation: spin 60s linear infinite; }
.rune-ring::before, .rune-ring::after { content: ""; position: absolute; inset: 9%; border-radius: 50%; border: 1px solid rgba(63,214,200,.4); }
.rune-ring::after { inset: 20%; border-style: dotted; border-color: rgba(242,197,92,.5); }
@keyframes spin { to { transform: rotate(360deg); } }

/* gold frame with corner brackets */
.t-frame { position: absolute; inset: clamp(.5rem, 1.6vw, 1.1rem); border: 1px solid rgba(242,197,92,.28); z-index: 4; pointer-events: none; }
.t-frame i { position: absolute; width: 1.6rem; height: 1.6rem; border: 2px solid var(--gold); }
.t-frame i:nth-child(1) { top: -2px; left: -2px; border-right: 0; border-bottom: 0; }
.t-frame i:nth-child(2) { top: -2px; right: -2px; border-left: 0; border-bottom: 0; }
.t-frame i:nth-child(3) { bottom: -2px; left: -2px; border-right: 0; border-top: 0; }
.t-frame i:nth-child(4) { bottom: -2px; right: -2px; border-left: 0; border-top: 0; }

.t-main { position: relative; z-index: 3; height: 100%; width: min(100%, 44rem); padding: clamp(1.4rem, 4dvh, 3rem) clamp(1.4rem, 6vw, 5.5rem); display: flex; flex-direction: column; justify-content: center; gap: clamp(.8rem, 2.6dvh, 1.8rem); overflow: hidden; }
.t-lock { display: grid; gap: clamp(.2rem, .8dvh, .5rem); }
.eyebrow { margin: 0; display: flex; align-items: center; gap: .8rem; letter-spacing: .38em; text-transform: uppercase; font-size: clamp(.62rem, 1.5dvh, .8rem); color: var(--teal); }
.eyebrow span { height: 1px; width: 2.6rem; background: linear-gradient(90deg, var(--teal), transparent); }
.eyebrow span:last-child { display: none; }
.t-main h1 { margin: 0; line-height: .94; font-size: clamp(2.5rem, min(11.5vw, 12.5dvh), 6.4rem); letter-spacing: .03em; text-transform: uppercase; font-weight: 800; }
.t-main h1 b { display: block; font-weight: inherit; background: linear-gradient(180deg, #fffbe6 0%, var(--gold) 52%, #a97a22 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 28px rgba(242,197,92,.28)); }
.t-main h1 b:last-child { font-size: .8em; letter-spacing: .09em; }
.subtitle { margin: .2rem 0 0; display: flex; align-items: center; gap: .9rem; font-size: clamp(1rem, 3dvh, 1.6rem); font-style: italic; color: var(--teal); letter-spacing: .14em; }
.subtitle::after { content: ""; flex: 1; max-width: 9rem; height: 1px; background: linear-gradient(90deg, var(--teal), transparent); }
.pitch { margin: clamp(.2rem, 1dvh, .7rem) 0 0; color: #cfe6e4; line-height: 1.55; max-width: 31rem; font-size: clamp(.86rem, 2dvh, 1.02rem); }

.t-menu { display: grid; gap: clamp(.5rem, 1.4dvh, .8rem); max-width: 31rem; }
.cta { position: relative; overflow: hidden; display: flex; align-items: center; gap: 1rem; width: 100%; text-align: left; padding: clamp(.7rem, 1.8dvh, 1.05rem) 1.3rem; border: 0; color: #1a1305; background: linear-gradient(100deg, #ffe39a, #f2c55c 45%, #d39a2c); clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%, 14px 50%); box-shadow: 0 0 0 1px #fff3 inset; transition: transform .18s, filter .18s; }
.cta::after { content: ""; position: absolute; top: 0; bottom: 0; width: 30%; left: -40%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform: skewX(-18deg); animation: shine 4.5s ease-in-out infinite; }
@keyframes shine { 0%, 60% { left: -40%; } 100% { left: 130%; } }
.cta:hover, .cta:focus-visible { transform: translateX(6px); filter: brightness(1.08); }
.cta-ico { flex: none; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #1a1305; color: #ffe39a; display: grid; place-items: center; }
.cta-ico .ico { width: 1.2rem; height: 1.2rem; margin-left: 2px; }
.cta-txt { display: grid; line-height: 1.2; }
.cta-txt strong { font-size: clamp(1.05rem, 2.8dvh, 1.35rem); letter-spacing: .06em; text-transform: uppercase; }
.cta-txt small { font-size: .78rem; opacity: .75; letter-spacing: .03em; }
.cta.alt { background: linear-gradient(100deg, rgba(14,70,82,.95), rgba(8,40,52,.95)); color: var(--ink); box-shadow: 0 0 0 1px var(--teal) inset; }
.cta.alt .cta-ico { background: var(--teal); color: #04121a; }
.cta.alt::after { display: none; }
.cta[hidden] { display: none; }

.tiles { display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(.35rem, 1vw, .6rem); }
.tile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; padding: clamp(.5rem, 1.4dvh, .8rem) .2rem; min-height: 4.2rem; color: var(--ink); font-size: clamp(.68rem, 1.9dvh, .82rem); letter-spacing: .08em; text-transform: uppercase; background: linear-gradient(180deg, rgba(10,38,52,.9), rgba(5,22,32,.9)); border: 1px solid rgba(43,90,99,.9); border-radius: 3px; clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); transition: transform .15s, border-color .15s, color .15s, background .15s; text-align: center; }
.tile:hover, .tile:focus-visible { transform: translateY(-3px); border-color: var(--gold); color: var(--gold); background: linear-gradient(180deg, rgba(20,64,78,.95), rgba(8,32,44,.95)); }
.tile .ico, .ico { width: 1.45rem; height: 1.45rem; flex: none; }
.tile em { font-style: normal; }
.tile[aria-pressed="false"] { color: var(--ink-soft); }
.fine { margin: 0; font-size: clamp(.64rem, 1.5dvh, .76rem); color: var(--ink-soft); line-height: 1.45; max-width: 31rem; }

@media (max-width: 760px) {
  .t-art { inset: 0; opacity: .38; }
  .art-v { right: 30%; height: 80dvh; opacity: .4; }
  .art-r { right: -14%; height: 74dvh; }
  .rune-ring { right: -20%; width: 80vw; bottom: 12dvh; }
  #title .title-bg::after { background: linear-gradient(180deg, rgba(3,14,20,.55), rgba(3,14,20,.9)); }
  .t-main { width: 100%; justify-content: flex-end; padding-bottom: clamp(1.4rem, 5dvh, 3rem); }
  .tile { min-height: 3.8rem; letter-spacing: .04em; font-size: .62rem; }
}
@media (max-height: 700px) { .pitch { display: none; } }
@media (max-height: 520px) {
  .t-main { flex-direction: row; flex-wrap: wrap; align-content: center; align-items: center; width: 100%; max-width: none; gap: .8rem 2rem; }
  .t-lock, .t-menu { flex: 1 1 18rem; }
  .t-main h1 b { display: inline; }
  .t-main h1 b:last-child { font-size: inherit; }
  .t-main h1 { font-size: clamp(1.8rem, 11dvh, 3rem); }
  .tile { min-height: 3rem; flex-direction: row; gap: .3rem; padding: .35rem; }
  .tile .ico { width: 1rem; height: 1rem; }
  .fine { display: none; }
  .t-art { inset: 0 0 0 55%; }
}
@media (prefers-reduced-motion: reduce) { .rune-ring, .art-v, .art-r, .cta::after { animation: none; } }
