/* Landing page (page-index.php), loaded only there. Same calm black glass as the rest of the site; the ship renders
   and gameplay loops come from do_img/local/landing/ (scripts/build-landing-media.py). */
.lp { --lp-accent:#4cc3e6; --lp-accent-rgb:76,195,230; --lp-text:#e9f0f7; --lp-muted:#a3b3c4; --lp-dim:#7d8da0; --lp-line:rgba(255,255,255,.09);
  --lp-glass:linear-gradient(180deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.015) 45%,rgba(0,0,0,.12) 100%),rgba(8,11,17,.62);
  position:relative; color:var(--lp-text); overflow-x:clip; }
.lp h2 { margin:0 0 14px; font-size:clamp(28px,3.1vw,40px); font-weight:500; line-height:1.15; letter-spacing:-.005em; color:#f3f7fb; }
.lp p { line-height:1.6; }
.lp-wrap { width:min(1180px,calc(100% - 48px)); margin-left:auto; margin-right:auto; }
.lp-eyebrow { margin:0 0 10px; color:var(--lp-accent); font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }

/* Top bar: scrolls away with the page; leaves room for the floating language menu on the right. */
.lp-bar { position:absolute; z-index:5; top:0; left:0; right:0; display:flex; align-items:center; gap:24px; padding:16px 140px 16px 28px; }
.lp-brand { display:inline-flex; align-items:center; font-family:'Revamped',Roboto,sans-serif; font-size:20px; letter-spacing:.14em; color:#f2f6fa !important; }
.lp-brand .brand-alpha { font-size:15px; margin-left:10px; }
.lp-links { margin-left:auto; display:flex; align-items:center; gap:6px; }
.lp-links a { padding:8px 12px; font-size:14px; color:#c9d6e3 !important; border-radius:2px; }
.lp-links a:hover { color:#fff !important; background:rgba(255,255,255,.06); }
.lp-links .lp-login-link { border:1px solid rgba(255,255,255,.18); background:rgba(6,9,13,.5); color:#fff !important; }

/* Hero: the existing headline and button on the left, the fleet on the right. */
.lp .lp-hero { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); align-items:center; gap:24px; max-width:1360px; min-height:min(94vh,920px); margin:0 auto; padding:110px 32px 40px; text-align:left; }
.lp .lp-hero-text { position:relative; z-index:2; }
.lp .lp-word { font-size:clamp(34px,4.4vw,60px); letter-spacing:.12em; white-space:nowrap; }
.lp .lp-title { margin:22px 0 14px; font-size:clamp(26px,2.8vw,38px); }
.lp .lp-lead { margin:0; max-width:560px; }
.lp .lp-actions { align-items:flex-start; margin-top:34px; }
.lp .lp-desktop { margin:22px 0 0; }
.lp .lp-desktop[hidden] { display:none; }
.lp-chips { display:flex; flex-wrap:wrap; gap:8px; margin:34px 0 0; padding:0; list-style:none; }
.lp-chips li { padding:6px 12px; font-size:13px; color:#c4d2df; border:1px solid var(--lp-line); background:rgba(6,9,13,.45); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-radius:999px; }
.lp-hero-art { position:relative; z-index:1; display:flex; justify-content:center; }
.lp-hero-art::before { content:''; position:absolute; inset:8% 4% 6% 10%; z-index:-1; border-radius:50%; background:radial-gradient(closest-side,rgba(var(--lp-accent-rgb),.22),rgba(var(--lp-accent-rgb),.06) 55%,rgba(0,0,0,0) 100%); filter:blur(20px); }
.lp-hero-art img { width:112%; max-width:880px; height:auto; margin-right:-8%; filter:drop-shadow(0 40px 50px rgba(0,0,0,.55)); animation:lp-drift 10s ease-in-out infinite alternate; }
@keyframes lp-drift { from { transform:translate3d(0,0,0) rotate(0deg); } to { transform:translate3d(-14px,-12px,0) rotate(-.6deg); } }

/* The idea behind the server, above the promises that back it up. */
.lp-idea { max-width:820px; margin-top:40px; margin-bottom:34px; text-align:center; }
.lp-idea p:not(.lp-eyebrow) { margin:0 auto; color:var(--lp-muted); font-size:18px; }

/* Three promises */
.lp .lp-promises { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:10px; margin-bottom:110px; max-width:1180px; }
.lp .lp-promise { display:grid; grid-template-columns:40px 1fr; grid-template-rows:auto 1fr; column-gap:14px; row-gap:4px; padding:20px 22px; background:var(--lp-glass); border:1px solid var(--lp-line); border-radius:10px; }
.lp .lp-promise svg { grid-row:span 2; width:34px; height:34px; fill:var(--lp-accent); filter:drop-shadow(0 0 10px rgba(var(--lp-accent-rgb),.45)); }
.lp .lp-promise b { font-size:16px; }
.lp .lp-promise span { font-size:14px; }

/* Feature rows: text on one side, a picture or loop on the other; .lp-flip swaps them. */
.lp-feature { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(28px,5vw,72px); align-items:center; margin-bottom:130px; }
.lp-flip { grid-template-columns:minmax(0,7fr) minmax(0,5fr); }
.lp-flip .lp-copy { order:2; }
.lp-copy > p:not(.lp-eyebrow) { margin:0; color:var(--lp-muted); font-size:16.5px; }
.lp-list { margin:22px 0 0; padding:0; list-style:none; display:grid; gap:12px; }
.lp-list li { display:grid; grid-template-columns:20px 1fr; gap:10px; align-items:start; color:#d3dee9; font-size:15px; line-height:1.5; }
.lp-list svg, .lp-us svg { width:18px; height:18px; margin-top:2px; fill:var(--lp-accent); }
.lp-media { position:relative; border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,.12); background:#05080c; box-shadow:0 30px 70px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.4); }
.lp-media video, .lp-screen video { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:#05080c; }
.lp-media.lp-stack { overflow:visible; border:0; background:none; box-shadow:none; padding:0 0 18% 0; }
.lp-stack video { border-radius:12px; border:1px solid rgba(255,255,255,.12); box-shadow:0 30px 70px rgba(0,0,0,.55); }
.lp-stack video + video { position:absolute; right:-4%; bottom:0; width:52%; }

/* A studio render instead of a loop: the item floats on the glass with a soft light behind it. */
.lp-media.lp-render { display:grid; place-items:center; justify-self:center; width:min(100%,520px); padding:28px; background:radial-gradient(closest-side,rgba(242,140,80,.16),rgba(0,0,0,0)),var(--lp-glass); }
.lp-render video { width:100%; max-width:340px; aspect-ratio:308/250; background:none; object-fit:contain; }

/* Laptop and phone frames for the browser client */
.lp-devices { position:relative; padding:0 0 14% 0; }
.lp-laptop { position:relative; padding:2.2% 2.2% 3%; background:linear-gradient(180deg,#1b222c,#0c1016); border:1px solid rgba(255,255,255,.12); border-radius:14px 14px 4px 4px; box-shadow:0 30px 70px rgba(0,0,0,.6); }
.lp-laptop::after { content:''; position:absolute; left:-6%; right:-6%; bottom:-14px; height:14px; border-radius:0 0 18px 18px; background:linear-gradient(180deg,#2a323d,#11161d); box-shadow:0 18px 30px rgba(0,0,0,.5); }
.lp-screen { overflow:hidden; border-radius:4px; background:#000; }
.lp-phone { position:absolute; right:-3%; bottom:0; width:46%; padding:1.6%; background:#0b0f15; border:1px solid rgba(255,255,255,.16); border-radius:22px; box-shadow:0 30px 60px rgba(0,0,0,.7),inset 0 0 0 2px #1d242e; }
.lp-phone .lp-screen { border-radius:16px; }
.lp-phone .lp-screen video { aspect-ratio:19.5/9; }

/* Companies: the join page's portraits, one card per company in its colour. */
.lp-factions { margin-bottom:130px; }
.lp-factions .lp-head { margin-bottom:28px; }
.lp-companies { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.lp-company { --c:76,195,230; position:relative; display:flex; align-items:flex-end; min-height:360px; overflow:hidden; border:1px solid rgba(var(--c),.35); border-radius:12px; background:#05080c; }
.lp-company.lp-mmo { --c:226,74,63; } .lp-company.lp-eic { --c:61,143,230; } .lp-company.lp-vru { --c:69,196,106; }
.lp-portrait { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 12%; transition:transform .6s ease; }
.lp-company::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(3,5,8,0) 30%,rgba(3,5,8,.85) 70%,rgba(3,5,8,.96)),linear-gradient(0deg,rgba(var(--c),.22),rgba(var(--c),0) 50%); }
.lp-company:hover .lp-portrait { transform:scale(1.04); }
.lp-company > div { position:relative; z-index:1; display:flex; flex-direction:column; gap:6px; padding:20px 22px 22px; }
.lp-company .lp-logo { width:auto; height:30px; align-self:flex-start; margin-bottom:6px; }
.lp-company b { font-size:17px; color:rgb(var(--c)); filter:brightness(1.25); }
.lp-company span { color:#c6d3df; font-size:14.5px; line-height:1.5; }
.lp-columns { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 32px; margin-top:28px; }

/* Ship strip */
.lp-ships { margin-bottom:130px; }
.lp-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:26px; }
.lp-head p:not(.lp-eyebrow) { margin:0; max-width:620px; color:var(--lp-muted); font-size:16.5px; }
.lp-arrows { display:flex; gap:8px; flex:none; }
.lp-arrows button { display:grid; place-items:center; width:44px; height:44px; padding:0; cursor:pointer; color:#e6edf5; background:var(--lp-glass); border:1px solid rgba(255,255,255,.14); border-radius:50%; }
.lp-arrows button:hover { border-color:rgba(var(--lp-accent-rgb),.6); }
.lp-arrows svg { width:16px; height:16px; fill:currentColor; }
.lp-track { display:grid; grid-auto-flow:column; grid-auto-columns:clamp(240px,24vw,300px); gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
  padding:6px max(24px,calc((100% - 1180px) / 2)) 22px; scroll-padding-inline:max(24px,calc((100% - 1180px) / 2)); scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.18) transparent; }
.lp-ship { position:relative; margin:0; scroll-snap-align:start; display:flex; flex-direction:column; background:var(--lp-glass); border:1px solid var(--lp-line); border-radius:12px; overflow:hidden; transition:border-color .25s, transform .25s; }
.lp-ship::before { content:''; position:absolute; left:10%; right:10%; top:6%; height:60%; border-radius:50%; background:radial-gradient(closest-side,rgba(var(--lp-accent-rgb),.16),rgba(0,0,0,0)); pointer-events:none; }
.lp-ship img { position:relative; display:block; width:100%; height:210px; object-fit:contain; padding:18px 18px 0; filter:drop-shadow(0 16px 20px rgba(0,0,0,.55)); transition:transform .4s ease; }
.lp-ship:hover { border-color:rgba(var(--lp-accent-rgb),.45); transform:translateY(-3px); }
.lp-ship:hover img { transform:scale(1.05) rotate(-1deg); }
.lp-ship figcaption { display:flex; flex-direction:column; gap:4px; padding:12px 18px 18px; }
.lp-ship figcaption b { font-family:'Revamped',Roboto,sans-serif; font-weight:400; font-size:20px; letter-spacing:.08em; text-transform:uppercase; }
.lp-ship figcaption > span:last-child { color:var(--lp-muted); font-size:14px; line-height:1.5; }
.lp-role { display:flex; align-items:center; gap:8px; color:var(--lp-accent); font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }

/* Cargo route multipliers */
.lp-routes { padding:26px 28px 22px; background:var(--lp-glass); }
.lp-routes-title { margin:0 0 14px; color:var(--lp-dim); font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.lp-route { display:grid; grid-template-columns:minmax(110px,170px) 1fr; align-items:center; gap:14px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.05); font-size:15px; }
.lp-route i { display:block; height:8px; width:var(--w); border-radius:4px; background:linear-gradient(90deg,rgba(var(--lp-accent-rgb),.35),rgba(var(--lp-accent-rgb),.95)); box-shadow:0 0 14px rgba(var(--lp-accent-rgb),.35); }
.lp-route:last-of-type i { background:linear-gradient(90deg,rgba(242,193,78,.4),#f2c14e); box-shadow:0 0 16px rgba(242,193,78,.4); }
.lp-routes-note { margin:14px 0 0; color:var(--lp-muted); font-size:14px; }

/* Comparison */
.lp-compare { margin-bottom:120px; }
.lp-table { margin-top:26px; border:1px solid var(--lp-line); border-radius:12px; overflow:hidden; background:rgba(8,11,17,.55); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.lp-row { display:grid; grid-template-columns:minmax(110px,180px) minmax(0,1fr) minmax(0,1.2fr); border-top:1px solid var(--lp-line); }
.lp-row:first-child { border-top:0; }
.lp-row > * { padding:15px 20px; font-size:15px; }
.lp-row > b { font-weight:600; }
.lp-them { color:var(--lp-dim); }
.lp-us { display:grid; grid-template-columns:20px 1fr; gap:10px; color:#eef4fa; background:rgba(var(--lp-accent-rgb),.07); border-left:1px solid rgba(var(--lp-accent-rgb),.25); }
.lp-row-head > * { padding:12px 20px; color:var(--lp-dim); font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.lp-row-head > span:last-child { color:var(--lp-accent); background:rgba(var(--lp-accent-rgb),.1); border-left:1px solid rgba(var(--lp-accent-rgb),.25); }

/* Closing call and the account card */
.lp-final { display:flex; flex-direction:column; align-items:center; text-align:center; padding:64px 24px; margin-bottom:70px; border:1px solid rgba(var(--lp-accent-rgb),.28); border-radius:16px;
  background:radial-gradient(ellipse at 50% 0%,rgba(var(--lp-accent-rgb),.2),rgba(var(--lp-accent-rgb),0) 70%),var(--lp-glass); }
.lp-final p { margin:0 0 28px; color:var(--lp-muted); font-size:17px; }
.lp #lp-account .card { background:var(--lp-glass); border:1px solid var(--lp-line); border-radius:12px; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,.5); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
.lp #lp-account .tabs { border-radius:0; border:0; border-bottom:1px solid var(--lp-line); }
.lp #lp-account input, .lp .lp-founder-modal input { color:var(--lp-text); border-bottom-color:rgba(255,255,255,.22); }
.lp #lp-account .input-field label, .lp #lp-account .prefix, .lp #lp-account .helper-text, .lp .lp-founder-modal .input-field label, .lp .lp-founder-modal .prefix, .lp .lp-founder-modal .helper-text { color:var(--lp-dim); }
.lp #lp-account .input-field .prefix.active, .lp .lp-founder-modal .input-field .prefix.active { color:var(--lp-accent); }
.lp #lp-account [type=checkbox] + span, .lp .lp-founder-modal [type=checkbox] + span { color:var(--lp-muted); }
.lp-account-title { margin:0 0 14px; text-align:center; color:var(--lp-dim); font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }

/* Why Alpha: what is still planned, closing the page above the account card. */
.lp-alpha { margin-bottom:80px; }
.lp-alpha .lp-columns { max-width:900px; }
.lp-alpha > p:not(.lp-eyebrow) { margin:0; color:var(--lp-muted); font-size:16.5px; }
.lp-alpha .lp-list svg { fill:var(--lp-dim); }

/* Sections ease in once (the class is set by the page script, so nothing hides without it). */
.lp-reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.lp-reveal.lp-in { opacity:1; transform:none; }

.lp-founders { --lp-gold:#f2c04e; --lp-gold-rgb:242,192,78; position:relative; display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(24px,4vw,56px); align-items:center; margin-bottom:110px; padding:clamp(22px,3vw,40px); border:1px solid rgba(var(--lp-gold-rgb),.32); border-radius:16px;
  background:radial-gradient(ellipse at 30% 50%,rgba(var(--lp-gold-rgb),.16),rgba(var(--lp-gold-rgb),0) 65%),var(--lp-glass); box-shadow:0 30px 70px rgba(0,0,0,.45); }
.lp-founders .lp-eyebrow { color:var(--lp-gold); }
.lp .lp-founders .lp-actions { margin-top:26px; }
.lp .lp-play.lp-gold { padding:0 40px; color:#fff7e2; border-color:rgba(242,192,78,.8); background:linear-gradient(180deg,rgba(242,192,78,.45),rgba(242,192,78,.14)); box-shadow:0 0 26px rgba(242,192,78,.3),inset 0 1px 0 rgba(255,255,255,.22); }
.lp .lp-play.lp-gold:hover, .lp .lp-play.lp-gold:focus-visible { background:linear-gradient(180deg,rgba(242,192,78,.62),rgba(242,192,78,.24)); box-shadow:0 0 36px rgba(242,192,78,.5),inset 0 1px 0 rgba(255,255,255,.28); }
/* The founder dialog (Materialize modal) with the registration form moved in. */
.lp .lp-founder-modal { width:min(520px,calc(100vw - 24px)); max-height:92vh; padding:22px 6px 6px; color:var(--lp-text); border:1px solid rgba(242,192,78,.4); border-radius:14px;
  background:radial-gradient(ellipse at 50% 0%,rgba(242,192,78,.14),rgba(242,192,78,0) 60%),linear-gradient(180deg,#141a24,#0b0f16); box-shadow:0 30px 80px rgba(0,0,0,.7); }
.lp .lp-founder-modal .lp-eyebrow { margin:0 22px 4px; color:#f2c04e; }
.lp-founder-close { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:34px; height:34px; padding:0; cursor:pointer; color:var(--lp-muted); background:none; border:0; border-radius:50%; }
.lp-founder-close:hover, .lp-founder-close:focus-visible { color:#fff; background:rgba(255,255,255,.08); outline:none; }
.lp-founder-close svg { width:14px; height:14px; fill:currentColor; }
.lp .lp-founder-modal [type=checkbox] + span a { color:var(--lp-accent); }
.lp-founders h2 { margin-top:0; }
.lp-founders-art img { display:block; width:108%; max-width:none; height:auto; margin-left:-4%; filter:drop-shadow(0 30px 40px rgba(0,0,0,.6)); animation:lp-drift 10s ease-in-out infinite alternate; }
.lp-founders-count { display:flex; align-items:baseline; gap:10px; margin:22px 0 10px; }
.lp-founders-count b { color:var(--lp-gold); font-size:44px; line-height:1; font-weight:700; text-shadow:0 0 22px rgba(var(--lp-gold-rgb),.45); }
.lp-founders-count span { color:var(--lp-muted); font-size:15px; }
.lp-founders-bar { height:8px; border-radius:4px; background:rgba(255,255,255,.08); overflow:hidden; }
.lp-founders-bar i { display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,rgba(var(--lp-gold-rgb),.45),rgba(var(--lp-gold-rgb),1)); box-shadow:0 0 14px rgba(var(--lp-gold-rgb),.45); }
.lp-copy > p.lp-founders-note { margin:16px 0 22px; font-size:14.5px; color:var(--lp-dim); }
.lp-founders-strip { display:flex; align-items:center; gap:14px; margin:0 0 6px; padding:10px 14px 10px 8px; border:1px solid rgba(242,192,78,.55); border-radius:10px; background:linear-gradient(90deg,rgba(242,192,78,.18),rgba(242,192,78,.04)); }
.lp-founders-strip img { flex:0 0 112px; width:112px; height:auto; }
.lp-founders-strip div { display:flex; flex-direction:column; gap:2px; }
.lp-founders-strip b { color:#f2c04e; font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.lp-founders-strip span { color:var(--lp-text); font-size:14px; line-height:1.45; }
@media (max-width:1000px) {
  .lp .lp-hero { grid-template-columns:minmax(0,1fr); min-height:0; padding:96px 24px 20px; text-align:center; }
  .lp .lp-lead { margin:0 auto; }
  .lp .lp-actions { align-items:center; }
  .lp-chips { justify-content:center; }
  .lp-hero-art img { width:100%; max-width:640px; margin:0; }
  .lp .lp-promises { grid-template-columns:minmax(0,1fr); margin-bottom:80px; }
  .lp-feature { grid-template-columns:minmax(0,1fr); margin-bottom:90px; }
  .lp-flip { grid-template-columns:minmax(0,1fr); }
  .lp-companies { grid-template-columns:minmax(0,1fr); }
  .lp-company { min-height:260px; }
  .lp-portrait { object-position:50% 18%; }
  .lp-columns { grid-template-columns:minmax(0,1fr); }
  .lp-factions { margin-bottom:90px; }
  .lp-flip .lp-copy { order:0; }
  .lp-founders { grid-template-columns:minmax(0,1fr); margin-bottom:80px; }
  .lp-founders-art img { width:100%; margin:0; }
}
@media (max-width:640px) {
  .lp-wrap { width:calc(100% - 32px); }
  .lp-bar { padding:12px 112px 12px 16px; }
  .lp-links a:not(.lp-login-link) { display:none; }
  .lp-brand { font-size:16px; } .lp-brand .brand-alpha { display:none; }
  .lp .lp-hero { padding:84px 16px 10px; }
  .lp .lp-word { font-size:clamp(22px,7.4vw,34px); letter-spacing:.08em; }
  .lp .lp-word .brand-alpha { font-size:.7em; margin-left:.4em; }
  .lp .lp-play { letter-spacing:.06em; font-size:15px; }
  .lp .lp-play { width:100%; }
  .lp-head { flex-direction:column; align-items:flex-start; }
  .lp-arrows { display:none; }
  .lp-track { grid-auto-columns:78%; padding-left:16px; padding-right:16px; scroll-padding-inline:16px; }
  .lp-row, .lp-row-head { grid-template-columns:minmax(0,1fr); }
  .lp-row-head { display:none; }
  .lp-row > * { padding:4px 16px; }
  .lp-row > b { padding-top:14px; }
  .lp-them::before { content:'– '; }
  .lp-us { border-left:0; background:none; padding-bottom:14px; }
  .lp-phone { width:58%; right:-2%; }
  .lp-route { grid-template-columns:minmax(0,1fr); gap:6px; }
  .lp-final { padding:44px 18px; }
}
@media (prefers-reduced-motion:reduce) {
  .lp-hero-art img, .lp-founders-art img { animation:none; }
  .lp-ship, .lp-ship img, .lp-reveal { transition:none; }
}
