/* East Coast Bazaar brand for the public pages (/get, /join, /team, offline). No pink. Mobile first. */
:root{color-scheme:dark;--bg:#06050f;--ink:#efeaff;--ice:#eafeff;--cyan:#29e7ff;--blue:#3b82f6;--violet:#8b5cf6;--amber:#ffb347;--green:#5cf0a4;
  --muted:#b3b9d9;--line:rgba(41,231,255,.22);--panel:rgba(12,14,34,.88);--field:rgba(255,255,255,.05);
  --f-d:"Chakra Petch",ui-sans-serif,system-ui,sans-serif;--f-b:Manrope,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--f-l:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100dvh;color:var(--ink);font:18px/1.55 var(--f-b);
  background:radial-gradient(900px 520px at 85% -10%,rgba(59,130,246,.22),transparent 60%),radial-gradient(800px 480px at -15% 15%,rgba(139,92,246,.16),transparent 60%),radial-gradient(700px 400px at 50% 115%,rgba(41,231,255,.10),transparent 60%),var(--bg);background-attachment:fixed;
  padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
a{color:var(--cyan)}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.wrap{max-width:980px;margin:0 auto;display:grid;gap:20px}
.narrow{max-width:520px}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.logo{display:inline-flex;align-items:baseline;gap:.32em;text-decoration:none;font:700 clamp(24px,6vw,32px)/1 var(--f-d);letter-spacing:.01em;white-space:nowrap}
.logo .e{color:var(--ice);text-shadow:0 0 4px rgba(234,254,255,.75),0 0 14px rgba(41,231,255,.55),0 0 34px rgba(59,130,246,.45)}
.logo .b{color:var(--cyan);text-shadow:0 0 4px rgba(41,231,255,.95),0 0 14px rgba(41,231,255,.7),0 0 34px rgba(41,231,255,.4)}
.kicker{font:600 13px/1.2 var(--f-l);letter-spacing:.2em;text-transform:uppercase;color:var(--cyan)}
h1{margin:4px 0 6px;font:700 clamp(30px,7.5vw,48px)/1.08 var(--f-d)}
h1 em{font-style:normal;color:var(--cyan);text-shadow:0 0 18px rgba(41,231,255,.45)}
h2{margin:0 0 12px;font:700 clamp(22px,5vw,28px)/1.2 var(--f-d)}
h2 .n{display:inline-grid;place-items:center;width:34px;height:34px;margin-inline-end:10px;border-radius:99px;border:2px solid var(--cyan);color:var(--cyan);font:700 17px/1 var(--f-l);vertical-align:3px}
p{margin:0}
.lead{color:var(--muted);font-size:19px;max-width:640px}
.muted{color:var(--muted)}
.small{font-size:15px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 24px 60px -34px rgba(59,130,246,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:860px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.grid2{grid-template-columns:1fr}}
@media (max-width:400px){.grid4{grid-template-columns:1fr}}
.card{display:grid;gap:8px;align-content:start;text-align:start;width:100%;min-height:56px;padding:18px;border-radius:16px;border:2px solid var(--line);background:rgba(255,255,255,.03);color:var(--ink);font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.card:hover{border-color:rgba(41,231,255,.6)}
.card[aria-pressed="true"]{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan) inset,0 0 26px rgba(41,231,255,.22);background:linear-gradient(160deg,rgba(41,231,255,.10),rgba(59,130,246,.08))}
.card h3{margin:0;font:700 24px/1.15 var(--f-d)}
.card .say{font-size:18px}
.card ul{margin:2px 0 0;padding-inline-start:22px;display:grid;gap:4px;color:var(--muted);font-size:17px}
.card li::marker{color:var(--cyan)}
.card .pick{justify-self:start;margin-top:4px;font:600 13px/1 var(--f-l);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.card[aria-pressed="true"] .pick{color:var(--cyan)}
.card .price{font:700 34px/1 var(--f-d)}
.card .price small{font:500 15px var(--f-b);color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:12px 22px;border-radius:14px;border:2px solid var(--line);background:var(--field);color:var(--ink);font:700 19px/1.2 var(--f-b);cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--cyan)}
.btn.go{color:#03161c;border-color:transparent;background:linear-gradient(135deg,#6ff2ff,var(--cyan) 45%,#4aa8ff);box-shadow:0 0 22px rgba(41,231,255,.35)}
.btn.go:hover{filter:brightness(1.07)}
.btn.wide{width:100%}
.btn[disabled]{opacity:.55;cursor:default}
form{display:grid;gap:14px}
label{display:grid;gap:6px;font:700 17px/1.3 var(--f-b)}
label .opt{font-weight:500;color:var(--muted)}
input{width:100%;min-height:56px;padding:12px 16px;border-radius:14px;border:2px solid var(--line);background:rgba(0,0,0,.35);color:var(--ink);font:500 20px/1.2 var(--f-b)}
input::placeholder{color:#7f86a8}
input:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px rgba(41,231,255,.25)}
input.code{font:700 clamp(26px,8vw,34px)/1 var(--f-l);letter-spacing:.14em;text-transform:uppercase;text-align:center}
.msg{min-height:1.4em;font-size:17px}
.msg.ok{color:var(--green)}.msg.bad{color:var(--amber)}
.badge{display:inline-block;padding:4px 10px;border-radius:99px;border:1px solid var(--amber);color:var(--amber);font:600 12px/1.2 var(--f-l);letter-spacing:.12em;text-transform:uppercase}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.install{display:grid;gap:10px}
.install .ilead{font-weight:700}
.install .isteps{margin:0;padding-inline-start:26px;display:grid;gap:10px;font-size:18px}
.install .isteps li::marker{color:var(--cyan);font:700 18px var(--f-l)}
.install .ikey{display:inline-grid;place-items:center;width:34px;height:34px;margin:0 2px;vertical-align:middle;border-radius:9px;border:1px solid var(--line);color:var(--cyan);background:rgba(41,231,255,.07)}
.install .ibtn{display:inline-flex;align-items:center;justify-content:center;min-height:60px;width:100%;padding:12px 22px;border-radius:14px;border:0;color:#03161c;font:700 20px/1.2 var(--f-b);cursor:pointer;background:linear-gradient(135deg,#6ff2ff,var(--cyan) 45%,#4aa8ff);box-shadow:0 0 22px rgba(41,231,255,.35)}
.install .inote,.install .idone{color:var(--muted)}
.install .idone{color:var(--green)}
.foot{color:var(--muted);font-size:14px;text-align:center}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* == ECB back alley: the shared neon night-market look for every ECB app (build_hub.py inlines this block into the app) ==
   Tokens: --ecb-*  Classes: .ecb-alley-bg (wet alley backdrop; add .has-art when /alley.jpg exists), .ecb-window (app window)
   with .ecb-bar + .ecb-dots, .ecb-sign (neon shop-sign button, colour from --c), .ecb-seg (segmented switch), .ecb-tag (.o ours / .c credit).
   No pink: cyan, blue, violet and an amber accent only. */
:root{--ecb-night:#06050f;--ecb-wall:#0d0a22;--ecb-panel:#141033;--ecb-line:rgba(120,150,255,.24);--ecb-chalk:#efeaff;--ecb-dim:#a89fcb;
  --ecb-cyan:#29e7ff;--ecb-blue:#3b82f6;--ecb-violet:#8b5cf6;--ecb-amber:#ffae3d;
  --ecb-sign-font:"Chakra Petch",ui-sans-serif,system-ui,sans-serif;--ecb-script:"Kaushan Script","Brush Script MT",cursive;--ecb-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}
.ecb-alley-bg{position:relative;background-color:var(--ecb-night);
  background-image:linear-gradient(180deg,rgba(6,5,15,0) 45%,rgba(6,5,15,.55) 75%,var(--ecb-wall) 100%),
    repeating-linear-gradient(90deg,rgba(41,231,255,.05) 0 2px,transparent 2px 46px),
    radial-gradient(60% 40% at 18% 92%,rgba(41,231,255,.28),transparent 70%),radial-gradient(50% 36% at 82% 96%,rgba(139,92,246,.30),transparent 70%),
    radial-gradient(90% 60% at 50% -10%,rgba(59,130,246,.40),transparent 65%),linear-gradient(180deg,#0b0a2a 0%,#120c33 55%,#07061a 100%)}
.ecb-alley-bg.has-art{background-image:linear-gradient(180deg,rgba(6,5,15,.05) 40%,rgba(6,5,15,.6) 78%,var(--ecb-wall) 100%),url("/alley.jpg"),linear-gradient(180deg,#0b0a2a,#07061a);background-size:auto,cover,auto;background-position:center,50% 38%,center}
.ecb-window{border:1px solid var(--ecb-line);border-radius:16px;overflow:hidden;background:var(--ecb-wall);color:var(--ecb-chalk);
  box-shadow:0 0 0 1px #000,0 0 30px rgba(139,92,246,.22),0 0 80px rgba(41,231,255,.07)}
.ecb-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(#17123f,#100c2e);border-bottom:1px solid var(--ecb-line);min-width:0}
.ecb-dots{display:flex;gap:7px;flex:none}
.ecb-dots i{width:11px;height:11px;border-radius:50%;display:block}
.ecb-dots i:nth-child(1){background:var(--ecb-cyan);box-shadow:0 0 8px var(--ecb-cyan)}
.ecb-dots i:nth-child(2){background:var(--ecb-amber);box-shadow:0 0 8px var(--ecb-amber)}
.ecb-dots i:nth-child(3){background:var(--ecb-violet);box-shadow:0 0 8px var(--ecb-violet)}
.ecb-sign{--c:var(--ecb-cyan);position:relative;cursor:pointer;text-align:start;display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;min-height:64px;
  background:rgba(10,8,30,.88);color:var(--ecb-chalk);border:2px solid var(--c);border-radius:12px;padding:9px 10px;font:inherit;
  box-shadow:0 0 8px color-mix(in srgb,var(--c) 55%,transparent),inset 0 0 10px color-mix(in srgb,var(--c) 25%,transparent);transition:transform .15s,box-shadow .15s}
.ecb-sign:hover{transform:translateY(-2px);box-shadow:0 0 16px var(--c),inset 0 0 14px color-mix(in srgb,var(--c) 35%,transparent)}
.ecb-sign[aria-pressed="true"]{background:color-mix(in srgb,var(--c) 22%,#0a081e)}
.ecb-sign .pic{width:44px;height:44px;border-radius:8px;object-fit:contain;background:#eef0ff;display:grid;place-items:center;overflow:hidden;max-width:100%}
.ecb-sign .pic.none{background:color-mix(in srgb,var(--c) 18%,#0a081e);color:var(--c)}
.ecb-sign .nm{display:block;font:700 13px/1.15 var(--ecb-sign-font);letter-spacing:.06em;text-transform:uppercase;color:#fff;text-shadow:0 0 6px var(--c);overflow-wrap:anywhere}
.ecb-sign .ct{display:block;font:12px/1.3 var(--ecb-mono);color:var(--ecb-dim);font-variant-numeric:tabular-nums}
.ecb-seg{display:inline-flex;border:1px solid var(--ecb-line);border-radius:10px;overflow:hidden;background:rgba(10,8,30,.6)}
.ecb-seg button{font:700 14px var(--ecb-sign-font);color:var(--ecb-dim);background:transparent;border:0;padding:8px 14px;min-height:40px;cursor:pointer;letter-spacing:.03em}
.ecb-seg button[aria-pressed="true"]{color:#03141b;background:linear-gradient(135deg,var(--ecb-cyan),var(--ecb-blue));box-shadow:0 0 14px rgba(41,231,255,.5)}
.ecb-tag{justify-self:start;font:11px/1.4 var(--ecb-mono);letter-spacing:.06em;padding:1px 6px;border-radius:4px;border:1px solid}
.ecb-tag.o{color:var(--ecb-cyan);border-color:var(--ecb-cyan)}
.ecb-tag.c{color:var(--ecb-amber);border-color:var(--ecb-amber)}
.ecb-sign:focus-visible,.ecb-seg button:focus-visible{outline:3px solid var(--ecb-amber);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.ecb-sign{transition:none}.ecb-sign:hover{transform:none}}
.ecb-social{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:6px 0 0;padding:0;list-style:none}.ecb-social a{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#8c93b8;opacity:.75;text-decoration:none;transition:color .15s,opacity .15s,box-shadow .15s}.ecb-social a:hover,.ecb-social a:focus-visible{color:#29e7ff;opacity:1;box-shadow:0 0 0 1px rgba(41,231,255,.45),0 0 12px rgba(41,231,255,.3);outline:none}.ecb-social svg{width:17px;height:17px;display:block}
/* == end ECB back alley == */
